From 5f5aacdde7083dddb34a8c9436b1c6026de90331 Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Fri, 29 Mar 2024 21:27:59 -0500 Subject: [PATCH 1/2] feat: add detector for unused imports --- slither/detectors/all_detectors.py | 1 + slither/detectors/statements/unused_import.py | 77 +++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100644 slither/detectors/statements/unused_import.py diff --git a/slither/detectors/all_detectors.py b/slither/detectors/all_detectors.py index 4151759f0..ff1c352c3 100644 --- a/slither/detectors/all_detectors.py +++ b/slither/detectors/all_detectors.py @@ -98,3 +98,4 @@ from .statements.tautological_compare import TautologicalCompare from .statements.return_bomb import ReturnBomb from .functions.out_of_order_retryable import OutOfOrderRetryable +from .statements.unused_import import UnusedImport diff --git a/slither/detectors/statements/unused_import.py b/slither/detectors/statements/unused_import.py new file mode 100644 index 000000000..9426e27a8 --- /dev/null +++ b/slither/detectors/statements/unused_import.py @@ -0,0 +1,77 @@ +from typing import List +from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification, Output + + +class UnusedImport(AbstractDetector): + """ + Detector unused imports. + """ + + ARGUMENT = "unused-import" + HELP = "Detects unused imports" + IMPACT = DetectorClassification.INFORMATIONAL + CONFIDENCE = DetectorClassification.HIGH + + WIKI = "https://github.com/crytic/slither/wiki/Detector-Documentation#unused-imports" + + WIKI_TITLE = "Unused Imports" + WIKI_DESCRIPTION = "Importing a file that is not used in the contract likely indicates a mistake. The import should be removed until it is needed." + + # region wiki_exploit_scenario + WIKI_EXPLOIT_SCENARIO = """ + ```solidity + import {A} from "./A.sol"; + contract B {} + ``` + B either should import from A and it was forgotten or the import is not needed and should be removed. + """ + # endregion wiki_exploit_scenario + WIKI_RECOMMENDATION = ( + "Remove the unused import. If the import is needed later, it can be added back." + ) + + def _detect(self) -> List[Output]: + results: List[Output] = [] + # This is computed lazily and then memoized so we need to trigger the computation. + self.slither._compute_offsets_to_ref_impl_decl() + + for unit in self.slither.compilation_units: + for filename, scope in unit.scopes.items(): + unused = [] + for i in scope.imports: + # `scope.imports` contains all transitive imports so we need to filter out imports not explicitly imported in the file. + # Otherwise, we would recommend removing an import that is used by a leaf contract and cause compilation errors. + if i.scope != scope: + continue + + import_path = self.slither.crytic_compile.filename_lookup(i.filename) + + use_found = False + # Search through all references to the imported file + for _, refs in self.slither._offset_to_references[import_path].items(): + for ref in refs: + # If there is a reference in this file to the imported file, it is used. + if ref.filename == filename: + use_found = True + break + + if use_found: + break + + if not use_found: + unused.append(f"{i.source_mapping.content} ({i.source_mapping}") + + if len(unused) > 0: + unused_list = "" + for i in unused: + unused_list += f"\n\t-{i}" + + results.append( + self.generate_result( + [ + f"The following unused import(s) in {filename.used} should be removed: {unused_list}\n", + ] + ) + ) + + return results From 098851cbd2e4894b84cf913cd098517e8391be0b Mon Sep 17 00:00:00 2001 From: alpharush <0xalpharush@protonmail.com> Date: Sun, 7 Apr 2024 15:42:04 -0500 Subject: [PATCH 2/2] add tests Co-authored-by: bart1e --- slither/detectors/statements/unused_import.py | 8 +- ..._detector_UnusedImport_0_8_16_C_sol__0.txt | 6 + ...ContractLevelUsedInContractTest_sol__0.txt | 0 ...ntContractLevelUsedTopLevelTest_sol__0.txt | 0 ...stantTopLevelUsedInContractTest_sol__0.txt | 0 ...onstantTopLevelUsedTopLevelTest_sol__0.txt | 0 ..._16_ContractUsedInContractTest1_sol__0.txt | 0 ..._16_ContractUsedInContractTest2_sol__0.txt | 0 ...0_8_16_ContractUsedTopLevelTest_sol__0.txt | 0 ...ErrorTopLevelUsedInContractTest_sol__0.txt | 0 ...ContractLevelUsedInContractTest_sol__0.txt | 0 ...ntContractLevelUsedTopLevelTest_sol__0.txt | 0 ...ontractLevelUsedInContractTest1_sol__0.txt | 0 ...ontractLevelUsedInContractTest2_sol__0.txt | 0 ...ontractLevelUsedInContractTest3_sol__0.txt | 0 ...ontractLevelUsedInContractTest4_sol__0.txt | 0 ...eContractLevelUsedTopLevelTest1_sol__0.txt | 0 ...eContractLevelUsedTopLevelTest2_sol__0.txt | 0 ...TypeTopLevelUsedInContractTest1_sol__0.txt | 0 ...TypeTopLevelUsedInContractTest2_sol__0.txt | 0 ...TypeTopLevelUsedInContractTest3_sol__0.txt | 0 ...TypeTopLevelUsedInContractTest4_sol__0.txt | 0 ...omTypeTopLevelUsedTopLevelTest1_sol__0.txt | 0 ...omTypeTopLevelUsedTopLevelTest2_sol__0.txt | 0 ...ContractLevelUsedInContractTest_sol__0.txt | 0 ...umContractLevelUsedTopLevelTest_sol__0.txt | 0 ..._EnumTopLevelUsedInContractTest_sol__0.txt | 0 ...16_EnumTopLevelUsedTopLevelTest_sol__0.txt | 0 ...ContractLevelUsedInContractTest_sol__0.txt | 0 ...onContractLevelUsedTopLevelTest_sol__0.txt | 0 ...ctionTopLevelUsedInContractTest_sol__0.txt | 0 ...unctionTopLevelUsedTopLevelTest_sol__0.txt | 0 ..._8_16_LibraryUsedInContractTest_sol__0.txt | 0 ..._0_8_16_LibraryUsedTopLevelTest_sol__0.txt | 0 ...ContractLevelUsedInContractTest_sol__0.txt | 0 ...ctContractLevelUsedTopLevelTest_sol__0.txt | 0 ...tructTopLevelUsedInContractTest_sol__0.txt | 0 ..._StructTopLevelUsedTopLevelTest_sol__0.txt | 0 .../test_data/unused-import/0.8.16/A.sol | 10 + .../test_data/unused-import/0.8.16/B.sol | 9 + .../test_data/unused-import/0.8.16/C.sol | 12 ++ .../unused-import/0.8.16/C.sol-0.8.16.zip | Bin 0 -> 2146 bytes .../0.8.16/ConstantContractLevel.sol | 7 + ...onstantContractLevelUsedInContractTest.sol | 9 + ...ractLevelUsedInContractTest.sol-0.8.16.zip | Bin 0 -> 2178 bytes .../ConstantContractLevelUsedTopLevelTest.sol | 12 ++ ...ntractLevelUsedTopLevelTest.sol-0.8.16.zip | Bin 0 -> 2219 bytes .../unused-import/0.8.16/ConstantTopLevel.sol | 10 + .../ConstantTopLevelUsedInContractTest.sol | 9 + ...tTopLevelUsedInContractTest.sol-0.8.16.zip | Bin 0 -> 1809 bytes .../ConstantTopLevelUsedTopLevelTest.sol | 12 ++ ...antTopLevelUsedTopLevelTest.sol-0.8.16.zip | Bin 0 -> 1742 bytes .../unused-import/0.8.16/Contract.sol | 7 + .../0.8.16/ContractUsedInContractTest1.sol | 9 + ...ContractUsedInContractTest1.sol-0.8.16.zip | Bin 0 -> 1515 bytes .../0.8.16/ContractUsedInContractTest2.sol | 9 + ...ContractUsedInContractTest2.sol-0.8.16.zip | Bin 0 -> 1380 bytes .../0.8.16/ContractUsedTopLevelTest.sol | 12 ++ .../ContractUsedTopLevelTest.sol-0.8.16.zip | Bin 0 -> 1886 bytes .../0.8.16/CustomErrorTopLevel.sol | 10 + .../CustomErrorTopLevelUsedInContractTest.sol | 17 ++ ...rTopLevelUsedInContractTest.sol-0.8.16.zip | Bin 0 -> 2124 bytes .../0.8.16/CustomEventContractLevel.sol | 7 + ...omEventContractLevelUsedInContractTest.sol | 12 ++ ...ractLevelUsedInContractTest.sol-0.8.16.zip | Bin 0 -> 2122 bytes ...stomEventContractLevelUsedTopLevelTest.sol | 15 ++ ...ntractLevelUsedTopLevelTest.sol-0.8.16.zip | Bin 0 -> 2068 bytes .../0.8.16/CustomTypeContractLevel.sol | 7 + ...omTypeContractLevelUsedInContractTest1.sol | 9 + ...actLevelUsedInContractTest1.sol-0.8.16.zip | Bin 0 -> 1674 bytes ...omTypeContractLevelUsedInContractTest2.sol | 12 ++ ...actLevelUsedInContractTest2.sol-0.8.16.zip | Bin 0 -> 2223 bytes ...omTypeContractLevelUsedInContractTest3.sol | 13 ++ ...actLevelUsedInContractTest3.sol-0.8.16.zip | Bin 0 -> 1824 bytes ...omTypeContractLevelUsedInContractTest4.sol | 12 ++ ...actLevelUsedInContractTest4.sol-0.8.16.zip | Bin 0 -> 1745 bytes ...stomTypeContractLevelUsedTopLevelTest1.sol | 15 ++ ...tractLevelUsedTopLevelTest1.sol-0.8.16.zip | Bin 0 -> 1800 bytes ...stomTypeContractLevelUsedTopLevelTest2.sol | 12 ++ ...tractLevelUsedTopLevelTest2.sol-0.8.16.zip | Bin 0 -> 2076 bytes .../0.8.16/CustomTypeTopLevel.sol | 10 + .../CustomTypeTopLevelUsedInContractTest1.sol | 9 + ...TopLevelUsedInContractTest1.sol-0.8.16.zip | Bin 0 -> 1733 bytes .../CustomTypeTopLevelUsedInContractTest2.sol | 12 ++ ...TopLevelUsedInContractTest2.sol-0.8.16.zip | Bin 0 -> 2277 bytes .../CustomTypeTopLevelUsedInContractTest3.sol | 13 ++ ...TopLevelUsedInContractTest3.sol-0.8.16.zip | Bin 0 -> 1878 bytes .../CustomTypeTopLevelUsedInContractTest4.sol | 12 ++ ...TopLevelUsedInContractTest4.sol-0.8.16.zip | Bin 0 -> 1801 bytes .../CustomTypeTopLevelUsedTopLevelTest1.sol | 15 ++ ...peTopLevelUsedTopLevelTest1.sol-0.8.16.zip | Bin 0 -> 1778 bytes .../CustomTypeTopLevelUsedTopLevelTest2.sol | 12 ++ ...peTopLevelUsedTopLevelTest2.sol-0.8.16.zip | Bin 0 -> 2003 bytes .../0.8.16/EnumContractLevel.sol | 10 + .../EnumContractLevelUsedInContractTest.sol | 9 + ...ractLevelUsedInContractTest.sol-0.8.16.zip | Bin 0 -> 2017 bytes .../EnumContractLevelUsedTopLevelTest.sol | 12 ++ ...ntractLevelUsedTopLevelTest.sol-0.8.16.zip | Bin 0 -> 1965 bytes .../unused-import/0.8.16/EnumTopLevel.sol | 13 ++ .../0.8.16/EnumTopLevelUsedInContractTest.sol | 9 + ...mTopLevelUsedInContractTest.sol-0.8.16.zip | Bin 0 -> 2032 bytes .../0.8.16/EnumTopLevelUsedTopLevelTest.sol | 12 ++ ...numTopLevelUsedTopLevelTest.sol-0.8.16.zip | Bin 0 -> 1893 bytes .../0.8.16/FunctionContractLevel.sol | 10 + ...unctionContractLevelUsedInContractTest.sol | 12 ++ ...ractLevelUsedInContractTest.sol-0.8.16.zip | Bin 0 -> 2035 bytes .../FunctionContractLevelUsedTopLevelTest.sol | 15 ++ ...ntractLevelUsedTopLevelTest.sol-0.8.16.zip | Bin 0 -> 2104 bytes .../unused-import/0.8.16/FunctionTopLevel.sol | 13 ++ .../FunctionTopLevelUsedInContractTest.sol | 12 ++ ...nTopLevelUsedInContractTest.sol-0.8.16.zip | Bin 0 -> 2003 bytes .../FunctionTopLevelUsedTopLevelTest.sol | 14 ++ ...ionTopLevelUsedTopLevelTest.sol-0.8.16.zip | Bin 0 -> 1881 bytes .../unused-import/0.8.16/Library.sol | 7 + .../0.8.16/LibraryUsedInContractTest.sol | 9 + .../LibraryUsedInContractTest.sol-0.8.16.zip | Bin 0 -> 1535 bytes .../0.8.16/LibraryUsedTopLevelTest.sol | 16 ++ .../LibraryUsedTopLevelTest.sol-0.8.16.zip | Bin 0 -> 1220 bytes .../0.8.16/StructContractLevel.sol | 10 + .../StructContractLevelUsedInContractTest.sol | 12 ++ ...ractLevelUsedInContractTest.sol-0.8.16.zip | Bin 0 -> 1719 bytes .../StructContractLevelUsedTopLevelTest.sol | 15 ++ ...ntractLevelUsedTopLevelTest.sol-0.8.16.zip | Bin 0 -> 1790 bytes .../unused-import/0.8.16/StructTopLevel.sol | 13 ++ .../StructTopLevelUsedInContractTest.sol | 12 ++ ...tTopLevelUsedInContractTest.sol-0.8.16.zip | Bin 0 -> 1792 bytes .../0.8.16/StructTopLevelUsedTopLevelTest.sol | 15 ++ ...uctTopLevelUsedTopLevelTest.sol-0.8.16.zip | Bin 0 -> 1761 bytes tests/e2e/detectors/test_detectors.py | 185 ++++++++++++++++++ 129 files changed, 795 insertions(+), 5 deletions(-) create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_C_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ConstantContractLevelUsedInContractTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ConstantContractLevelUsedTopLevelTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ConstantTopLevelUsedInContractTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ConstantTopLevelUsedTopLevelTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ContractUsedInContractTest1_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ContractUsedInContractTest2_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ContractUsedTopLevelTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomErrorTopLevelUsedInContractTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomEventContractLevelUsedInContractTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomEventContractLevelUsedTopLevelTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedInContractTest1_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedInContractTest2_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedInContractTest3_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedInContractTest4_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedTopLevelTest1_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedTopLevelTest2_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedInContractTest1_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedInContractTest2_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedInContractTest3_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedInContractTest4_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedTopLevelTest1_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedTopLevelTest2_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_EnumContractLevelUsedInContractTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_EnumContractLevelUsedTopLevelTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_EnumTopLevelUsedInContractTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_EnumTopLevelUsedTopLevelTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_FunctionContractLevelUsedInContractTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_FunctionContractLevelUsedTopLevelTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_FunctionTopLevelUsedInContractTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_FunctionTopLevelUsedTopLevelTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_LibraryUsedInContractTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_LibraryUsedTopLevelTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_StructContractLevelUsedInContractTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_StructContractLevelUsedTopLevelTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_StructTopLevelUsedInContractTest_sol__0.txt create mode 100644 tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_StructTopLevelUsedTopLevelTest_sol__0.txt create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/A.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/B.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/C.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/C.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevel.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevelUsedInContractTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevelUsedInContractTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevelUsedTopLevelTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevelUsedTopLevelTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantTopLevel.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantTopLevelUsedInContractTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantTopLevelUsedInContractTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantTopLevelUsedTopLevelTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantTopLevelUsedTopLevelTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/Contract.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest1.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest1.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest2.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest2.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedTopLevelTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedTopLevelTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomErrorTopLevel.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomErrorTopLevelUsedInContractTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomErrorTopLevelUsedInContractTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomEventContractLevel.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomEventContractLevelUsedInContractTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomEventContractLevelUsedInContractTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomEventContractLevelUsedTopLevelTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomEventContractLevelUsedTopLevelTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevel.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest1.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest1.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest2.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest2.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest3.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest3.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest4.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest4.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedTopLevelTest1.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedTopLevelTest1.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedTopLevelTest2.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedTopLevelTest2.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevel.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest1.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest1.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest2.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest2.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest3.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest3.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest4.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest4.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedTopLevelTest1.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedTopLevelTest1.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedTopLevelTest2.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedTopLevelTest2.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/EnumContractLevel.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/EnumContractLevelUsedInContractTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/EnumContractLevelUsedInContractTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/EnumContractLevelUsedTopLevelTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/EnumContractLevelUsedTopLevelTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/EnumTopLevel.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/EnumTopLevelUsedInContractTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/EnumTopLevelUsedInContractTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/EnumTopLevelUsedTopLevelTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/EnumTopLevelUsedTopLevelTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionContractLevel.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionContractLevelUsedInContractTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionContractLevelUsedInContractTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionContractLevelUsedTopLevelTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionContractLevelUsedTopLevelTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionTopLevel.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionTopLevelUsedInContractTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionTopLevelUsedInContractTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionTopLevelUsedTopLevelTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionTopLevelUsedTopLevelTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/Library.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/LibraryUsedInContractTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/LibraryUsedInContractTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/LibraryUsedTopLevelTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/LibraryUsedTopLevelTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/StructContractLevel.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/StructContractLevelUsedInContractTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/StructContractLevelUsedInContractTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/StructContractLevelUsedTopLevelTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/StructContractLevelUsedTopLevelTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/StructTopLevel.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/StructTopLevelUsedInContractTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/StructTopLevelUsedInContractTest.sol-0.8.16.zip create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/StructTopLevelUsedTopLevelTest.sol create mode 100644 tests/e2e/detectors/test_data/unused-import/0.8.16/StructTopLevelUsedTopLevelTest.sol-0.8.16.zip diff --git a/slither/detectors/statements/unused_import.py b/slither/detectors/statements/unused_import.py index 9426e27a8..fe29a91d8 100644 --- a/slither/detectors/statements/unused_import.py +++ b/slither/detectors/statements/unused_import.py @@ -1,7 +1,7 @@ from typing import List from slither.detectors.abstract_detector import AbstractDetector, DetectorClassification, Output - +# pylint: disable=protected-access,too-many-nested-blocks class UnusedImport(AbstractDetector): """ Detector unused imports. @@ -59,12 +59,10 @@ def _detect(self) -> List[Output]: break if not use_found: - unused.append(f"{i.source_mapping.content} ({i.source_mapping}") + unused.append(f"{i.source_mapping.content} ({i.source_mapping})") if len(unused) > 0: - unused_list = "" - for i in unused: - unused_list += f"\n\t-{i}" + unused_list = "\n\t-" + "\n\t-".join(unused) results.append( self.generate_result( diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_C_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_C_sol__0.txt new file mode 100644 index 000000000..f5556857b --- /dev/null +++ b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_C_sol__0.txt @@ -0,0 +1,6 @@ +The following unused import(s) in tests/e2e/detectors/test_data/unused-imports/0.8.16/B.sol should be removed: + -import "./A.sol"; (tests/e2e/detectors/test_data/unused-imports/0.8.16/B.sol#4) + +The following unused import(s) in tests/e2e/detectors/test_data/unused-imports/0.8.16/C.sol should be removed: + -import "./B.sol"; (tests/e2e/detectors/test_data/unused-imports/0.8.16/C.sol#4) + diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ConstantContractLevelUsedInContractTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ConstantContractLevelUsedInContractTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ConstantContractLevelUsedTopLevelTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ConstantContractLevelUsedTopLevelTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ConstantTopLevelUsedInContractTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ConstantTopLevelUsedInContractTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ConstantTopLevelUsedTopLevelTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ConstantTopLevelUsedTopLevelTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ContractUsedInContractTest1_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ContractUsedInContractTest1_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ContractUsedInContractTest2_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ContractUsedInContractTest2_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ContractUsedTopLevelTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_ContractUsedTopLevelTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomErrorTopLevelUsedInContractTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomErrorTopLevelUsedInContractTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomEventContractLevelUsedInContractTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomEventContractLevelUsedInContractTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomEventContractLevelUsedTopLevelTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomEventContractLevelUsedTopLevelTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedInContractTest1_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedInContractTest1_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedInContractTest2_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedInContractTest2_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedInContractTest3_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedInContractTest3_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedInContractTest4_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedInContractTest4_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedTopLevelTest1_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedTopLevelTest1_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedTopLevelTest2_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeContractLevelUsedTopLevelTest2_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedInContractTest1_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedInContractTest1_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedInContractTest2_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedInContractTest2_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedInContractTest3_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedInContractTest3_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedInContractTest4_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedInContractTest4_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedTopLevelTest1_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedTopLevelTest1_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedTopLevelTest2_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_CustomTypeTopLevelUsedTopLevelTest2_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_EnumContractLevelUsedInContractTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_EnumContractLevelUsedInContractTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_EnumContractLevelUsedTopLevelTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_EnumContractLevelUsedTopLevelTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_EnumTopLevelUsedInContractTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_EnumTopLevelUsedInContractTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_EnumTopLevelUsedTopLevelTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_EnumTopLevelUsedTopLevelTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_FunctionContractLevelUsedInContractTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_FunctionContractLevelUsedInContractTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_FunctionContractLevelUsedTopLevelTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_FunctionContractLevelUsedTopLevelTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_FunctionTopLevelUsedInContractTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_FunctionTopLevelUsedInContractTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_FunctionTopLevelUsedTopLevelTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_FunctionTopLevelUsedTopLevelTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_LibraryUsedInContractTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_LibraryUsedInContractTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_LibraryUsedTopLevelTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_LibraryUsedTopLevelTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_StructContractLevelUsedInContractTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_StructContractLevelUsedInContractTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_StructContractLevelUsedTopLevelTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_StructContractLevelUsedTopLevelTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_StructTopLevelUsedInContractTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_StructTopLevelUsedInContractTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_StructTopLevelUsedTopLevelTest_sol__0.txt b/tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_StructTopLevelUsedTopLevelTest_sol__0.txt new file mode 100644 index 000000000..e69de29bb diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/A.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/A.sol new file mode 100644 index 000000000..e09079341 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/A.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +library A +{ + function a() public + { + + } +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/B.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/B.sol new file mode 100644 index 000000000..0c51c9935 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/B.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./A.sol"; + +contract B +{ + +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/C.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/C.sol new file mode 100644 index 000000000..cc978727b --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/C.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./B.sol"; + +contract C +{ + constructor() + { + A.a(); + } +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/C.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/C.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..53f094deda6c20141f3d0b4e2b79b6de5cf4f0b2 GIT binary patch literal 2146 zcmZ{mX*kpi1I7QAL1~aB%b+lpq(PH?tdl*ACA_BW!;qa35gK8bA+C@$(}*`q$a;qo z*A|(2WQoDGg}Ig@jBWDP`~9Bt;XLPg&d2lNhqC72Gz8cIJ|L4&?TqVU4br#)0H*{1 z;s5|3VUeLh9+;T0(1<7xuLvJ(Kr{vx7#SLJh7$zb0e~a`&?gZ5;V1BL@+hrU4_wk0 z5+L6tos#JwVW3#g+o4fa!{~V()yiK`i)$M$jws%t4!o4l8k9fDjbvbmCA?*j1}p_i z-ad|H^jryrDZO#~D0cb$=hoZ*IWO*iawon%|J1l<`S34S-1RWW;KDGi41`=4KWWZ8 zlYJn!%do9Yuj0!@m|qB{)&<-j_6BP^_a5Bwh3{%Wz*{n9$f4=8Fp9s$-2N49S@#(n zt#d?2luR(bQe%*xwVgu?xu@+B>9!*+OUS!2y%Ei&G2veF7F7YbMV21@!g zhsE-crYBGeB*$?BU}*4Z;7N;J$w|pc*{A!5b=u-?;~91)CAL~;)%<&kOKD7zu%?Dw zE}1qX0ZAq5KyRl(3JL~+9aj2@Bwmi zz*Q6Ew^L+3Vf)UPle!fq@sH*w(o6Oc3jVal%3-Z2fYZp%y{XN&U3>0qA-+)z=7`Ff z5PD*68`Dfo|Fl68BnXdRlUilJo92seQn_^f!GO^ApZdyDT=jAbno%~aG%*82Csur0 z_FSW4TC%WL6sS@vgFD{8CO$AfH;RrLoEOQPDaA9ix5E$&`vYK3UBR zo$4=KDh*fYX0sj}eJB@JW*toMc7-2_sTkcxwnz ziskEurZ%Y138>0uB_9Ql#3aLWtx^q6hmwEh8-ho}VPqRIUQ!Z$_wSu3j*SQrm#HH> ztvDv$|B)%Mj@wJVXu7`zj-rFMpTA!mZTl=nY@}IW>N&0s@wIlxc5dFnP_!$B<`(rW zj=+=l#bn#5O8kaMo|2qD`BtYKVV>mG|RUG>V z`bG1f+`WMTB~AgK<#HMCj27a6pSku5{80k|b26@H6jZk;gdBJFP##{WHuAJnn)gB< z8d9S|*U=jl2(swCy-PnjX`P#>8MAV?bP=lyhxEq%hiHE~#b<3qQ%AD5W05g6;ZiZK zvtJ}OIMX<>_n}o_4?fo0Hnn;QIr=ktIqJZeE)ct%SC1rcoXaxs`floyD`2gZ6*O7rfbiwEhK}P*45FoQec}L*J)? zj6_i{w6AEi>-viR#2d^g)wd*IXq?S?de3}!=qI+yhK@Fo+#ft0NqC#8CoRSf{Vu~M z|3o9dxTUUU_q*mUL@6-dhx82jYB-4T=<)Oyi7!js6YMU4XI*-znr~Kyl;U{R*Ag6; zYp+0Cd7IO~%jMf)6JdmrrlI2kv$+Elv4^>KKTk5o*=!-ne?;?Dtqog@=(n`5X;!cd z#>1uKBB|VFh<5&A=w|sx&s*6hE7?VYmBntx~)e=C`#?f%h=2OVe1xm8b}6)baLF4tJ~DB5dh9wb_X>@n{aoMnrYPgt#{t3QRW z#ywh}*$oYsO2?A$${?FNl74}nJ~wGFC%r(C288fS%Q_dI>=E?+p$tj^!PzuAj)*Z~ zQE(|P@dCmDHp3wY!XvYv)m)>OnsY=mza3B$)%>v5Mb3ma4R%3+yi8_dbK9u9L|fj3 ziyfJ$-QY)0+;DABraET81}_^K{#0llzR&Yw^WEwM8{LHPaNspDu=#EuSOQ}ikyKnyUAmV`XI(gpckRK7U*5-4T?bi{AlCPbMZl{D|&*!+Rjm{y;@W_U@CK zzOqth+)>%R@lY-^+cYOT5OW=RKS(O9+I-faYMX7N5t2~;vGzwD6@RCc!6s^7+fzpv zb1{HGmIH`ItI%p70#uTo*?-=ll1pcoiw%_ru VP=K-qas3{!{j&M51o8ZC{{z&r0RaF2 literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevel.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevel.sol new file mode 100644 index 000000000..d19dc2657 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevel.sol @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +library ConstantContractLevel +{ + uint constant public CONSTANT = 0; +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevelUsedInContractTest.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevelUsedInContractTest.sol new file mode 100644 index 000000000..e63e3aea9 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevelUsedInContractTest.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./ConstantContractLevel.sol"; + +contract ConstantContractLevelUsedInContractTest +{ + uint private v = ConstantContractLevel.CONSTANT; +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevelUsedInContractTest.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevelUsedInContractTest.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..c9493124fae7712a6d5633bc70f5e74dcebb978c GIT binary patch literal 2178 zcmbuBX*ARg8^-@5#x7$k#MmYyL&=ggJ(g!M)MQPzEQ3k5nXzTfHkgJYj4f-~Vl=WP zdm^Gj+1D^xQrXfVkLNw-{rG-*@9V?woa@8&@jgE^>IAbczy$CBi3t_fxQ-;hB31y1 zlLi1?008uTeeeWlAHp#SIA>RaDJBqe#|n>eGxqs!Wr@KP6!E@yoG`(DzBq!DGtSi$ z8;DW7jra9oXJ!E$03ZqgbP^Igln<2s3x@{lwYYP;eXy`L@i?-%$Yoh7XR~T)SwKU74lZZ&WluRQxfgbjhF`&uaycK1)_4}n6#m=~S?QGbRfMa0sJj9OQ;8B)s!I6)g``VP2${r@h8jd3DEf8H& zN8mqtP;YqdT6hCI(d9g0yRfAw$A&VjDLf1KL= ziH%iP(%C>wA^NJ+)K!MZ=EO5nDi<3Xm^PT|FAXc5Mzho9p7H=n?JWH6S@;690dz-U zeG%f1eRHn+*+CF?**Yb$z4Uc5B?*YR)}bpwu}le})ag6`xxoo1?^lS|0%Ig=Qrsph z5nbh9r;Ld;pW&*0@)oC2?AaKeIL56bcz3guyv)Ux!s58rH`fv6G zLtVaIeRMX8J}WA=w4S}S0iuV+ZT31fddV;`;4_g0?7ecb4;{KPM`EsDjI?`UP$C({ zd)+)(^Y-4zs>dKR)yfNll(78x^L0q!lxlD$_mc3SRY;?yue~IF82tH3PUN7U=bp}lKkaaPfxczcvLq>vQbU!h#wbS_u^&7M7JYQ>L^4Dt~ z2vc`h)B($(Fq>dw@OVV5*QBOOt0Pp*0c5@`^UNJ3thnRR(-*zB@nraZ^(<@2VuQ?T z=BeRVe|v}{^7`M|$#(e_)Rs~8Dgkr=7`FN1&)1!YtSUPxgW!UJqFw*qG+pDso0YAj?6Rln1zX)DWOv{QIT6il8j$AzRS-xi zL;lU_R2-H&FnQBzDMBbETlv&qX2eU%W7exVa;zXCEB3svws)G z_!3F4LtZYUrgR1TNEg-?POy^fROV(VaYD~YzILYXBe^8XI!)#Sg<=nQOKo}`PIb3J zb-HQOF?4-}3?Uc8ixT#myUM-ZFWObG2B`uWQ>jGNIVdMDQAMP)VP|5v;5yCrKuv0Y zi_^~5C=ubZEOof5z1gH>a+`3v4WS42HaSZ;3B_{a3_K6FN zggvAbMBtpvPkqvudffHN-Km+cD0DYH%21bqOP7L8mk;^-#sWrkI#nceoR8zX&U+HYiyI=Y zPi6FPKB5N5^hUJ*0)2*`(Dc4q4w*tkO*CR*ocqkTW`{IHHKYwC2L#Wvq%{IoCi+{W z3u)bE!&GtNFD_fI%L^8QyDI*-7IX9_Znw-8-6Fm{$`GM>;y&CZS##YLwNmz@^{dQp z@unlgCku)DV*^!^s#deeOUj<)Eg<10quf{Qv*} literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevelUsedTopLevelTest.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevelUsedTopLevelTest.sol new file mode 100644 index 000000000..b8ce9dd61 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevelUsedTopLevelTest.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./ConstantContractLevel.sol"; + +uint constant __ = ConstantContractLevel.CONSTANT; + +// dummy contract, so that "No contract were found ..." message is not being thrown by Slither +contract Dummy +{ + +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevelUsedTopLevelTest.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevelUsedTopLevelTest.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..9be3aa487d2dcdcad23985b1d49f1d15b0ffb82c GIT binary patch literal 2219 zcmbuBX&@60AIIkym0LX$Ho{m$Ff8;ZHdHS6*0cvPRL+CUo_Uq1?}qbBoL|S ziSb39Wd{Nt0ss-er|@`pH_j z1k`qApffh>+lwFx9gw3G3r>&_aIB>Y#fF#TI78dp^bLE!dCL&LO=d{;Wyy_p0=BX?4;in$dy`gPyvC1JpiSWt-L*l1{x7%~~DjLZvx<}3f zHZLud!Z`$t?kp3X@ae9l8Pmg;XD4V>|Dpknl|YG-w_>#K3GG@qw#68TNJBn1%z>p* z+bT~U?LQTThurMtvMk@grS6qI`s{2L#m4ssT{_l?YA|2WcM}f5SI-d<}E+mJJuDS_glYI(e^g0IS54H5HU% zSp}150`Rnhd7#YGv8}+-0_pJ;2chC?m)|Wvfrd6d^7*8(pE5`>X5+h5WM#Leff#M* z%^*aowiXORq?s>r1xd%0_DIvT=OI2{R&n6iW>;_e=jhZg(BiSptn9L?3;VQnn8tF2 z{B5w{=~EVk=*V5=e4P5(&UJC2@?Vv@-!7O1i0gV4QaZ{k9_}z$qo4a~LmWRJiX`@R zx1D)FofDwK`{kCDZq$_6%ss~*#Yqrd$VqgaD}?Z$28nW&?-XQJlJ#%k4+y6|o>5!! zq$m|foGh%S*M5l%{OgTRretFGN!x6ukW2*y1a1#%>4r5bkI;$-GCNvM*ZD{qwd7qh zwA8sw;{@$$OF3H=fLp|-kxSYBij#)8O38bP#3Q+*QAf)I2zgcFc41c@e4BRM(PkI9 zgyif$0gV;sp=_)MgzUSix-rTzEu%TqbsCB(J48$CE`buu22K0Y)RmZw$V55{Ch)|( zV=ooX7nL7+^TxA_;|Ye>KL5>=pv}MBk*wAfniFNu8WlFynrY6MTU+u?cB7N=G;@xc zhR`@bb)n9<`kv(BE)SPl>E1+@;Fx_aYw|t!vxkO$VcODmE`kJ<8w2r|J>R9P3icNT zby-NC?dw1yRj+=?Wc4m&*iMq=GNAWpeN_~cXKkb)BJJ&PxwfpWUXVfh=HZ9XcW zYgwynTN48+pnk~!zMd;1eZV!dhNf8Ophy3fZ^qVPv#DFz2G;E24?!Q!vpBWbHnlM^ z_{Vez8uMNZ zoA)g;Q?ccxNOAVXzeP0n?84q(I8pfv<_r05_iZ^>O_>U=JpzoXVvhIqB$27FIi*@z zy>{UEpKPE2etFS&izmd#-Q4R{ps7Cs(q;3Lc_=G z?uo`A0*hmoN5U6N@m6Or$M)b3FeZ2?tK9@qbiLshIcR2SHH`xV98_cIcv(m*hbdI5 zPfSeDXPVU;8%au5@H!7R-Pcs~hJ9ceVnK?E&>-}r=+XI`s*j82V^xRYUR{Pg`y^qI zSVp|9GWXSxkh!-CHD^-&rHdz(#eu@A)A?CqXnkoj1tPJ@K!$&tBY)1cYb?lQm2;xG zmT?OfEbov$CQ2yiJWHQH6wi_oO+xekswTh+wGQs4uxyPLxjo25fpQBqc}B&)P4yn! z8EqfY*Ra}9D$xW@Se*99emyashA3GXENP|lT6bB!)_-&Sa~nBPZXU1reGh=c<-m!B*-YwR-;pts~&D6O%qliHyAS3sK z)bvQ^o7Ac0sl9v4@G5#$1h2p&tj&sQhBsQFO4&X*78{m@c&r0;FdK5myy*3gMnp?$ zoSby0xoK%O9$iU>>x9&Y$qj|?%sjIKw~pfnI$P;q2p<>L|C3Dwe`~Q0r9q>8>G^eT z(Aik!kT4u@;n_7hz~R&7^Lj+lT~NC&=-tVX-{zqbrJuW$bNybDH+m8S zvu#!Cs3d@=ZBV zbaZfG3@IMUhKt|1XNn3PvdhgT947tQAttBw2eHLr4S9-s%|#w&A@-v2)d~7*jFNpE z=zFqIW?eWaptzVT!mkLo`y)2LCGH$CAG9jhRokR?O2BS>TAK>q@;1W=l*u|ZR$AdA|A3tC?W z7aVSGz%PEX4|bhHn6R*FvHfpX_^k{7B!cA+{x5Stm;gEcjIjK!*Kf+5`Sbl3z=NgY#F;OjU>d;p)$_cP4?Y{k$ut_+0Ga{2em%*aw9 zOtPRlIklZ$o2ZMs#o^{z%j zlW0CYvU#`|SIlYcuTi}>pn8ylUq@3)gi96bgUVIPwtvO0cWH)esWZIBWHrR6ntVLP zW6M6>recCcrCEl)- z055cdo#%wP*@X0C+=y%ZTTQ-ylV7?ZWSadmtQ%kxfwJ8WA$dWRj8Jg5ZX*VL!#53>n2lBVz&8`YoF}#E~)+Hr5C+y6+hOtIGJpxAH6+tCN}G2Mk!W|k1Eccx3T%;E&dp*(F;iVF>?RS zg)@fByu-YR5O4A#miXS0j|vebtwu=uXj8>t5>Tns>2gsX8O+~jC(>%~7Z1g*dOYmv zOT*3knohGDXg{P(g}5>rZT9rTe@`O7oT7YXTXQcntoAQ2_<$rjm*}%oF>B$5=noM_5o3 zFAPJ*gt=GKcA;BcJnDw?O%{bHI-HaFaMAkJ&)9RFx*C?4HnP{>M?$Ky_Eqx>LV?V% z?0V&D`@DE7=R-88f->Vap&X#s|CuY*I7wEUXWp6LJp0SF*WNb$Y56aa`7Ypz*8QL7 ze<46!HU`M!RO{>)41gqn4_J$Y_@v7um&e&j!r_e@^`gkvG|~IZl|s+F6k|TDd;(1+ z{AH&)&smbg^na1|=%KUf?>-%V-|P}J?!BwI>tbBR$gz~r_QjL63*6vCrd!kzMxwKnu}x=|MuhP))y1E zk=$3?t?HK0g^EXouZIj!j!&&=w9^6;t42oMZa3YlbL|T~=HLB6z`_S8X$QZGajn&T zkuY(o2F}jDL)G_qi5UT^Ke!%Tma?9{nIdTOGb>@}vPgcJzVI{qbT%cNpI6ZK;j*4vwn{p>e z(TCv&zG5c_p==Ewdh9i>31#OkBGR7`o5pTZj&kyx0)I(S8kfY&IfrduPJzBQ&&H1Qkzc zHYVfnv8tmdm#U${E!nA&E zaWB1{^tgkoewoAkK}7ti#wLv=(+9xJj=AfIgDu}q<{vDh9xEmOTumcu-R?s2IQS9Y z<^hV=kHMcm>pcu4WHgW#Bt{Wt!9M8WO( RPEZE`Tqh1X$((=Me*mChT3-MF literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantTopLevelUsedTopLevelTest.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantTopLevelUsedTopLevelTest.sol new file mode 100644 index 000000000..a3466c383 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantTopLevelUsedTopLevelTest.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./ConstantTopLevel.sol"; + +uint constant __ = ConstantTopLevel; + +// dummy contract, so that "No contract were found ..." message is not being thrown by Slither +contract Dummy_ +{ + +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantTopLevelUsedTopLevelTest.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantTopLevelUsedTopLevelTest.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..ef39a1f2e701105ae9619b6a1b881c5f35945de6 GIT binary patch literal 1742 zcmbW2S6I`B0>%FjFd$(>Rv4lvBOqIlV1-;{rtH1TGK^A)WFfMV6p+0n2u($$tRN9; z%2HMs5d;J&NEo8#O3IKGPzX}(_x16<+;bkzIS=Rg=WGWOKmz=L7?7RS;Q3IiXpkoe z0ACaV0097i1ttcE501gRW3JnyiRhm^aOi9Qc6T%muY<$<6o|fY9fQRO24h1bB8h07 zA90u%VF5uP002?}z%(l>{37pSZ1vPL&8nffn&VrF!cyp3`>$qXU2HI}X!;PSO2+pmO27 zfW+oI$5)FdXR8O2jFY2s#i$HoW@jSk)(Bbid31>A%n|fS1FF??A&xLnLroJvxN@po zvSw_RQ8Yw4Gxy@BJurB_th;naqEz_IXJwt<;3b)<)tI0VjuKTKtPfRm={IC)=1hVe z$*dAt$!bMix61{2zeW$yw%&L-#Dcaws9u9Zk~Ye7%r6n;;i~tfAVBj}=|F@AO>y2_ zPr=Xd`Q-0yQbhu~DXfTNH@!r#vCP({X`}~z5B7U^X8z`#XEl28U}OlqV;2!8aHF1m zO$eLv16-XI=SSBL5-Tr;u6sqdxFwuM5FM=UQraoZj6X#-)0V@>-3fV0{vrCLvL$(t zS%Y_N(PJ%fTh+x-@c_9(!%g#I=6&oVGs{qv&~FckQRV*hX&Tw_H}mAZb=km}j+3EB zh9D94Mv!_!2CZ>+en}VoBh6d2#lla-A$x4tiOn&4^}^ogaE&5k?0}1UfAfrn5@Dk3 zg6mC29b@A&dQxB7!R}Q4URSLTgbrtTU~S8& zfqPvdlId8_u}=Gt><`#3<(o?&pYrac691!MB@kNPZ`bv8dH66WHddQK4BAiK|9GHc zoZx6X^)ualbcJKh^nkz$?^#MvwX(7WetG*&^F>ds;A1U=u~d?`vKC%REPjrl;`X8G z)3v%*(Lcxoq+X4UyW2vzp4)Y~>BbYD;k}F9ZkrYj9pOfSPUQI>>&&TSW};ymx9#1@ z`5Z_bbR@&(0U74u`G~tVx?drF#OGu?CeFgD1uRm^I_JG1S@MwPh#p?8%{t(%P`_~p!IunzEgnX)@?S-#Ffa{>5l zdRpG;H;wHzpnL4YIsS8$+h#`DHowG+cw{5CBdy-Y*Ds4-@-vYvXb(5vsm~az)v@EQ z%JgW#-!tt%KHH~?oKlYWAJdKzrby|MM`X;=dhlP@DJQ23znFnss(c{Qki0gq4VU@q z;>$v4$@+rxx$cn5@jmaSSEJTQMauCmqq$t8Z6#vnrTatba5`V5yGIMlm~}->N_rsi zc^u=qgL%G4nQZ$`4gA8xihgMU`^5+36|h0ih%E}&A!Z)SW^(=OEn3e92w~@t`LyJ` zr9i5+1$c3A3wrg|)f~08Cpm;bc&6#%D7A6Y@VO^GDed#df>p=~{;j@g-rc;nhe&Xc z4+DBxicla|eIew-ng22===5F2?Fa#9c`54IpJfk3Y4GR-Zr?cnj!X!c)Ao1z?PU+(Pi54Xu#_!bB)}$IIv;GFc CXf81T literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/Contract.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/Contract.sol new file mode 100644 index 000000000..0b2b32661 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/Contract.sol @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +contract Contract +{ + +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest1.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest1.sol new file mode 100644 index 000000000..733c0b05b --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest1.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./Contract.sol"; + +contract ContractUsedInContractTest1 +{ + Contract c; +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest1.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest1.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..e17f06327aa9b8e08aaf8f7f1780d71819a6dc3f GIT binary patch literal 1515 zcmb8vYdF&j90&0Km|M(Ta#`+ah%@FElIxr_Hf*k-6Ko+<{W%^Oi_(OHY z03bjW0L%dZK#_-QzOI zjL-K6n&31JTu_v_h|jB#u2N$~)*q@}-%VZYGa?xqJPdfMdRTs}Gss^aMi5}nwUr2+ z3&*-wR`G3!gsTMP<_(YPh>`ZJpdQn*=d}q6hm~d&2{UsI9nG3O`FwKrBIL|5?mQ7Q zTXI{qs^eUvf`aQ#H!Niot`sXY6{N8hobCROIKBJs>&6Bn!AJ#;b8+W?a`=|7m5KB> zEXgas_It#7^l+}lQ@u5;yY|d%JH(qP$e5Xt>@_S%F1qb%H6G^Z8Cn^X)13Z_5Lu?x zI3aArmCADB)|Wr9Jo?iTww)~D!>5#)sWePNx1DA6y!C7&e_*_lmJu>=9^?ZqaLMhd zJ8Sla1=%P#q97-rBOaiKd)91tfxC1(MRR{>(!kz|dFG3w7J;-K`w%YL#EX-;>J2EL zwD}E3p2|T#15SL~8YFw6veMkghF(p@)HtQ66h8o)xftt=PF_48$z_riUdG%E7w0aj zeT^VjndQ0fdW@Wuopz&NO6MYW9cPwCtGBTY$y!n*wHwA)9pZ_-m5WEOYbn3Q-4btG z)|^<4Lhn~;55W!`ttqA@Z2b(NGTh1+$D>{lkzLM|)gSzd)%llC<_}!7(3CP{GdjO?ftT-yH9?c(&@!#mkC1tay_B#*ak|v4 z2_-YfUgh@IJsY@)<=CXd)JGNwpq8z*KSUa=p%t2=>g_VVS$e_F6o%6{1=^yaUhZcq zn~zEl$uYfHvv=iShDI$06C;crI}o!`!i(_%5h$hKl44yPm6eVS>4NM%;lXxSR_JAy|%k;XbV)IX?VqPRJBVXj_?_WzToAED$WinN>b zae3XGC@p#e@*$|caBvWebZvIB?G`*{yRYh@HFD2(IKqtyE3~r<024MZl)=6>#c@Zf zj!wuH9+5<#@>%bVmcEKF6( zM+s53Jc3~1W8VSkU?;^C3(ryuhk9>TT#d9#E0zVDQ`63Rx6@HjHK87%fniS?ro=HD z3QgYda(o?#t`c9#Evv?^F?DJzBdch>HfE$UIw(rgZ?JtV!0T8y))y`5IO5DpJgCovc+Fn)NHo7 zt&I2T#kPT&i)Fv-uUaOmN9wjqB&;TRYOZ&s_dl9E6kOR8s=Ldfh6UP!FKzA}TTP{U zOhrFqC5aH{?cS(+u3B%kMRI$z;=z-7f{DcGng(Gz@sK!Goij`%X&K&V6H= zK!-es`P(yUOWIo;*^2PB%JfD*C(!LZ1Z5kP0Y;{0Kg2AZ2P;imD}Yz=<~;~lNLFUgK55oVt(;rsYYIrE6$H5@9J`p`gh(Tf1$VU38Y|N p?jR8d(f?NWJG}oU6ZB(#s{20-_Hq{!|M3d?UflPkd?y_M{sCrCzzhHY literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest2.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest2.sol new file mode 100644 index 000000000..96ccbb8d3 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest2.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./Contract.sol"; + +contract ContractUsedInContractTest2 is Contract +{ + +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest2.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest2.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..af70ee5ecf227d0cec44a6814b618bc6b42ce127 GIT binary patch literal 1380 zcmb8vX*kpg90%|}M!BV)WQi~gI^2viy9i@O#u?Vp#JJK-nISR}gB(Lkq|AiY(aJHN z9Ag+J69&b^xMo(4Ei$fc(&5@|wa?SbeX-x~i|_M$@q7D0!o@&#fG8jbWM@6`^)>!V zr+@$;K@k8<003~nV(_u3P`nQg9R|aEzr4{nysn;)01 z_rBT}a_MUuXzH13qzJ>$rHFEJhKA`5SoioQKKPCF71YtD<8|imc*dSo7<*D}DZyPo z%+Z(HYUx-K5soanmRq1YoGf&l;ka!zip@;0$wCU|HUS|EZKSI#pPcMMZ!@`_#@=^i zMy*=5-4((3iGuDjJ0~AC2z0&ShNbEF1)0}V+aUr@O`i3uo2$=Z(dB7ihQ)I&Dm9~H z65Py1t<@xfWR>qIKr|G3ZJ_R;LDsoA*-Fww$qlKQ2#c^-j`Rfr>fN8Ll-ir;Wl$r3l`t=P|1jdx*dx{oFZ=9rSZpjTu4M z4CzQ~lwcRDZ8XBp@;ip3!*hf>~q)Tn2vJpGOKUJzwiV7%wP89okMwxwVS6eU;v zK6UzVAP{^G->aFX83`@lk{n+9E8f+w89S`bh^<~r&%I4=T&GCCvgzpPDBtryP_ zJ8vs|Lt7tm^Wfb-JQieLB89p-Q%!*{&QDfk_gXSGtjxrmhrEAz0?6UsKbpl5tWK^x&nEVn=N{;X9wy$xAld@=n^QQ3w zW`Ee5jt1q=!xTFf<$3}LJ;ggoPL+8F(F(5y?G}Q0*Si-%eTubl;JWKXkR$;vyUuLT z9nrc0f2RJxE722koDx%cIN7ZQ_OjD(nt2VMU9jBqA^2zZkSkEn0QexuJ?-a3@JR3kONxdjCwE8 zh4;=_xmz$9V}21PH(S6ZQ4Vyabkmx)7efm@I}_Zuwk|*M=cm4Am%1C77(~82W~u2b zTlOQNt@(l7X?lKCw>&LLEt6xg-QG}@Cz8u`X-nNMV@Ef7+(4v%F~lJw$FQE*-<5h9 zA;(SzwiNl=_^ddtQV9Md;?5O40lY%lHw+uIwu29{SS|rvsn8tD4>nTlNi literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedTopLevelTest.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedTopLevelTest.sol new file mode 100644 index 000000000..0c2adb4cd --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedTopLevelTest.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./Contract.sol"; + +Contract constant c = Contract(address(0x0)); + +// dummy contract, so that "No contract were found ..." message is not being thrown by Slither +contract Dummy +{ + +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedTopLevelTest.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedTopLevelTest.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..a7db8fce0dedf8607aa235b0f32b3f76c697bb9b GIT binary patch literal 1886 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 R{~cjDvFAxrPd)Z~=}3;$tiAAf4b)4?X|@ zEDHeW0{{Sn01}z#Yec~k$Oc3L*&pLhw!l)bKDH#RhZ*6&)h#TEj35zxT(LoZM1Qg? z#@`+9MZqGxNkjra4+wAv0EhqpbYf#YRSs3|6^#xxUlq#lA$ZAkor_MgK6_2RPOt-6 zUbWW!l-zvcQFTDeK%Rfzc6(oi+{1pk!*tRbHX&c|v3Nbcv`XVcX$IvnM_K^&9`&n~|w?`fs_-bQB#Qbz| zWTLo!ULt23!prz@WpUm7$4|x1Bv=%3t1_H#PDge+gokEr*QiJn(a^lPpT@~W5s!Uq zOcqYgIO(e=@es_gU(Df&Eh_BN$zBxq0Y;UXt%+_d519+bgxzkd3$NvDHK$6ys*Z## z8@iAlnq4=1529w{*tXf|eSfH}A3B&$QnNh@g9Sp>J&T--ft4ygyoI z_;3wxQo3yEPb&MsGbp{R!GJ}9l9xu%`pfhP9#^*qM^krT$lgGk!(y5ompl6a%rrWE z<2DRKuP0g`R;YxXJ0Mue%QVxH0mXc7zp=xQrP$G zyp_)5rj69pGo3{6NfN4hzg|;FHxJa(J|NK(qISZczt;7!>*#xYi5_Oxi$ulp=Tyn z-4~#Q53PfzRN4J9VXY9ZOE!w@%6Qk>+rF5E^A(EQ;f<#8K~e4j0C7u$E%qUGw4G&S z-!Pb%P>dUMOYg+{fA((Fq!hfvCkN8WpEnqZ>c_A0&|}0Ld%2zCN^(cVPCXa347o3` z!$?a&;?~Gr>g3F`m-%I!Rf;i7vSi$(RUpf5uNPYnGkK=`QR}Or%z$>RPZ;l#)M3N9 zHT(Cz3a1u>e5%u5mk4*1GmQf;Tt@Mst(}0`1s4MUxJzS2?F4j|cLfyi-tX4CscIDG z6#Vq3Q8^h+ujFe>y>5*B3$#|2l%G@SZy_X;Hp#8svs%KscI_BB#N>v-p$Z3sC?C@uQN z!NrsZS2?Q|TEj01s-uttY`~LP!%bc1>(Z2(7Ff{KsXraA$LDM4Z8qbnX>i~SlB4t; zsix7?zm)nGue8^@n|16i3GqW@|3>N9*VCSfdi2z5ZuZZTUWx6dHy!rtTdIwG9cV8e zN;8Tu6YUGj#LK^2PH<^-HI+gY(ID28F?lQPBl`^G`%k0#(*%yLNCCqLFMjTt00vUZ|ga(l_R<=nA- z?eC_ZmS5I|b=g8~8Al5q>X(ZA6+3`T{`u{vgS0v~e8X<6AlI#%UV~bi>xp^MuQq^t zO}W-Gtz$0LnBh2q+I87gXeE3G`jKkLvEw8k#VMRtTk*bIMRip{j*_G`Q&AYDD{zoo zvp}xM{S#^D1VxA*XRdW(dU!apulgR%Iy0s1W57xo_0=NoY|^wNYFQCgn<@qg;i5<; z;UXcr)CsjxM-GENuw5b9bxS})XEyY&eT9?I`IKTR%?%8yA5VaG2a=v2`As^0+Ohbu zsbZC}>-AFk$IM35%1Oa-HQQEWw#oY<3Biw}Z{N#{uM5qTHgyu&O=#@#y#7hEs+CgK z%44}67~jPb(uC4JlXkI+PAKKaJ`>Jw&!2rew@Qo<$wJrW6`tyKx$M;bIbrE^=(ON5 z`?F|_%Y!p*PW!12^6Cmskv@Z2B9byPWdko7a7Sw=$_;u#0=a9m9o!OlXa}FoNzeldX*~$zbijZ1T8<2PL)xQE$ z3@;;>u>GW0O3gDF`ni}PXt literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomEventContractLevelUsedTopLevelTest.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomEventContractLevelUsedTopLevelTest.sol new file mode 100644 index 000000000..712126b5f --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomEventContractLevelUsedTopLevelTest.sol @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./CustomEventContractLevel.sol"; + +function f() +{ + emit CustomEventContractLevel.CustomEvent(); +} + +// dummy contract, so that "No contract were found ..." message is not being thrown by Slither +contract Dummy +{ + +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomEventContractLevelUsedTopLevelTest.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomEventContractLevelUsedTopLevelTest.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..d6a9a738bb240634e96e68d2bc536c39c74b79bb GIT binary patch literal 2068 zcmbuAX&@5{0LSO7(Xb+uULKO1IdbQo%n{3(SZKzG4Vw}3Mvg|C=A2N7VR+9OA<5N} zo;ga#qp-?QHYs7e*aJZuRpkxkgz2{5Fi1_B-eWNTpqcvcK`qg`4s@L z0ssKEF*rOn!j6E#;BB!Od~_fZ?~Ed#!aZ@QAP;QhzuNY8md}|*%c5$#cw9uu?Nt10Q$)@%^{^kmE54smU+byaXBjmC zC0IN+LU;Rg_joC|0w;zKJxp}vtEc~wRV&OAwUO5W4Z^50+DzqpKy68OON)vGz^<|cpBbFw-S_$YGz0sS#CwZhpV-~UOtvGsZUDXatq&lqd zO~C;V!ju3hnEmoQT-E%u^c7BJeIruhNpCK>4{z<{U3X6Qerv?Y`sCDIQ(alJm6Q)_ zwxxvjCkbO)FkwJ^u1ZqGEFFXB$S?pab>OP&g86lZ^G;^KrP!BHaW~9i(VLIW- zyOY1qxWg(=eqnNV%X&N(jn4XO!M95WE&zfw-Dm7yBhh1dybk=Z+VOUcb}HDTN-aUi ziF4D-CtEHGb921g9oE;|GYz^)=I}ur)mfX)?PT#0lJHIWr}O$xiG~;L4VMFCozbKk z?pO(#Gs5WY2m@(6hp9ZVCNqLnEu)le`d2mQ27+X^;<2s2?eI?7kN2J{J_*)~$5HNj zTBHhR%hjd5AnVtmvddj`T-dBlBac8v9^T(tYNEtPd}kx( zyn?Eb1rFcmbFgil7lXCMu6?X!+M^otGkrqyc}$%Es5?(DH#G|MW5Fv%PD7WXI3}nE z=2ZIynnEs>zNDFI=K(iG=M|{s*%in!5oCzAr3OPUErPoIK> zXMkI-Ug}NMTQ~oTxm(V4SEwHtcoepOkiR0F4?9W_Kvv}7H6L5KxCtrkLsOgmt)_{3 zBve@~Qq?u!L&DUkRLzZBi?KEz_A+B^X`PJ6x@fh)SW(G&;+gp-O~N;0`wMll_nwD6 zp{P&^i0byCGU52}?7@}s(9U?h4lAZ^2#98^W=dKU6aLsw+Wxe+-;Ci>l5wM7Q!1U! z5;v6%09|JTV4bhxvDtBml;(?=i}(^BMg6p0b3~+8N*XazhZ`Mkz$whSVizFnuboQ{ zGn6s(+Iw}x;MsmC2uu^+elevrzJ{WIUNZj1;u#-Pws&$Z^bo=iyGaLXpvgw*79r}P zH-KIoC6Ci|e!#1k!uPfdrc97}r-KX2qKB7YX+%1r%^d0VE zoUf^ZJ#}|3Edhd@FNY^5EUI9mb=EzkK|5O*3DPb)8M5ZCi15vF zBqfiCukNh82YrErnZzEgP8@PJ3A zMoz)(qO-QRUSbga`PAvdb=__Xn>2`R&`GWA z_&C$Ok)YTyQIZq*fYs(3F7htSMrw7*>Z>#)(vYk7!!|rPKax^S+JkO%JXT~-VL{6c zVq4~2L-*{?llW%ZE|;xskJijC5tG2qm2Laq-bTr|NbyMEQMnw2^aVed#!l1hx(|&< z=DFOm;BIS}lqV`E>?STT;7$U9mO}q+*Vt$hL)BOOz E-(1DgKmY&$ literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevel.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevel.sol new file mode 100644 index 000000000..10e1b5df4 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevel.sol @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +contract CustomTypeContractLevel +{ + type CustomType is uint; +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest1.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest1.sol new file mode 100644 index 000000000..90f0d473c --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest1.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./CustomTypeContractLevel.sol"; + +contract CustomTypeContractLevelUsedInContractTest1 +{ + CustomTypeContractLevel.CustomType private v; +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest1.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest1.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..8ef93e5563e91db40bb06509c45863536868392c GIT binary patch literal 1674 zcmbuAdpy$%0L6cvH*IT(th_1>i4Q~NgfNSBoi~QL@M*x zBpKnl+x5!OB@%8Wlt@W;#H~J``{(`Zp7Y1~ob$)|_v_)RplAok1Dk*}cBQ9o;bGY= zB>>3P0RVdd034W%C|Vev6+w2Og-6l-0-}zRqsgHJ2ASj%{_lh*GonyP1})Twd^Unc zkMi-O2LuI2laW*gEnG!W2{;1)2>@WjW(QiVT0|E2_tslOxEJMc^ieDykGhMdj?@wBUhN_Q21SYgeynb45NqEk;` z2(^KFuajz916R+)@pIPgE0f~=>P0px17&xor@)5rs_Yi5J6^r8GtbU$9$sO3seAip z&*A!hs>`g=S`M|NO>n8#Q^CKkVe2}r5|sg97F-=3IB#_vmhzODrPoY9a-LpH5B%77 z5P)9|O6vRL-Vpsbz)7?$WNYatVS~$P^crAE<9D^Op$T7HDIqCQD9-+dEc2A^uOx|;{_a8ajfw5mbN6qa?Ur0U zKzwDnsqjUHWwoAZvj(KU{_bhmH1?@e^cP=EG0pDFZ5wUSEhZ7u^;zqaCpkiE6`XdH zypwPGxA~AGeLSwQp!9T6=Ym_$*Upf&BNSe;JB(Yi+}pOtTX`bacX&Oo;miP=)33{hV9xCRvy5HcEe%GtnX4nAj{&|)Fv#02# zFRp=+6U`0Y0cUzP_IcL{RfEH6%)9{Yv0-?@==!KLdrowr*1uTsx)yjmcSC$VB2gl} zwSb!&yNn3^vnk!YcU1Cn{;yDL>(Kqg#3xbvraKyzM8H!Y|#6+9V1@h4;#bye~36It#XsQmzEc{(++ z)Q583aD7Wz?aJ4Yh_DKfB?T(yyWY+jODtn!SEyo>8}DnRKhbpg3jp?B_HO5xEA7uu zPA5hBf(esVp_(ygI0yq7GNEcj>O5~A2!;xW%jzO_Roq# z2~ik0r9_x#R?0VyFP9bYnQpK`a5}1KrZT6@%XtBAqJIlGCn~8qCLBV&RYe}NuXwD9 zl)uoX4gF(IsJ#O_O#&I|*lMM^+e$tf4t0QXlhtfo6_bqFI9Z9!4VA zD#hrHUh!^{Gy|>28y-yyyTlz*en=Ys^`+sY-qyF^FpSNLO2gkokMzzSp@M6$&c?V{ zcFd(SCAw1viy@nU{xOa~zYy60-fNI53R3-q_q!rgwzZ;!`<%3B7WeAwTtx8i?}%-Z zAygfUWpSxy)$fl>Ej<)lpFfun=~wREy&#P+Owf2$Cvl!&xLjQv6UgV+!psN6nuMp_ zT0WJBT&OlYd^!8F{A=eajye*8m9XMdi}wHG_EX>Ue3#$V_kS;b&--5duYU+D5W7AA2;c?$nN;Cuc5DFr8w>yd zWB~x9pD+%=;V}XB5kbDjm_R(%8;Q5}4fXYR!1F_-547@8xm-^$OotWN*YG})q zQp!qu9lnV#t1_gyHxHY)Me8n?OYM<6OvkPGraXn_i`V!S$rgS+h*)V?!l)>;x(;($`$<^22u&GUXr7a9o zVR>XaRA=_B4JBxJuY3KNmaha>BK=;Xjd}PDcx=>3(08vEw>73211hGd&6gku5R91~ zI-c%OVtPzJ2ppdhY$v@(9dy@Mt?e*NkU7W`U=O;MN2Di$QlTWQ_uuX7iT9J(56S?RrF(J`)aO+4H zCA>m>mt00zY@L&saxoXw)R^2>DYX1B@lzC)e1Yh+!Ai80AY>PEy7nPb`X$O{U`AP- zj7EWC_@08WRg_`^5v-OGKNis24!m%w!)7${R)$NL5eU>;*?x0<6&##kue8Y0N^5b~ z7ksyG7?cpw{Wc%v-A~?)1V0~E?Uaz_018itt@e_5X?(EJoaNd@h$rI%B*yYqK|otk z!0&!|lvA{rP&X|q;00Ba>$zJew<>6Ge!V#JnQ@yiBK*|FvLG>R-kH$LG&JizD@|bj z%-8qgvcWbqgk}_0{Pmp0{fqak|L*Z^ahS@DPTd+v_zFvxr>7$%H80uQHwOnfABS9) z+&Qn^JFLF+jUffB-}kiHgEzFi!4N;{2*#FH>om1UGr&&AN61B))#!X|3jA&D2`uHH zzL0=L($7-oZw4J9I`mrnzs#K-I=HUzz1toize$*9spdnvtrHQ-f@Jb(#n}n_Tpwe% zR*_ky9X46z=uqcQ!n&3F4OjkgU1rLFz&)q=fv_FMTY|wdDK*9`R=Y+yA;0m<*0`h7 z^&yB|y=4l^YnY8_xobi;WM{K-gC}%g!SssiigE zc;V4=c!j#KOgOJw_>*(%Qyc{^QJ!7a8o)t^(5{4l5Ty!mU93&N(GuR5jEcA32qW>= znWIrjMmGrlR?UlBw(c5&Hss15OOqX=iW6>w{B1Wb_2P#&BwH&dmJ7|Ew<4z`#mv9MbfK<;OYy)!R7 zhJC7Vr4(J}kdMru;~{qz>pz>VhCAHap4OfoBknD7?)C*&bg9}N5w;joX27sGJ$~d| zPD4ea`TR&^&FiXTKA}Mz-gCPLti{eG5R$3=CuK%Mguq8@%&;tb%@{Yy5s3Zw&xje` zekJQO;p1vM#nV+ZPebPtC`>-;A*1Vw;7hLQg)pbvQ!;LsyL(8{1+Mki*Wy6Mm;44X zZ-2iz`%GNo2;;3##E$}c1|n5eB&L3VNpKB7U+?v{lY&F8I_b5>DQAPy2<(H>i7)AX zH41_gPYpZaY7p1{wv3ni;N{>E&qYzn-U*K{n&(}}YifSAW}{T7Ok+UbS1r@9pq$Nx z{9^RIHOtbhKptVod6SCwQ)BnMZ?Q&e^p}lG`edsHXCAw1_Ol$S{bJ!v(uX&lA1&gC z#SOKp=Gaw$kDu>FjTsw6i4)9mL{Z&jGZ9jnm`={j0CH(jPu8h-^tSCv7;h16|5|D8 z8%1gOIoLzS!t7@1}6Bd5sTZRboP7)Gs|YE zc7_2T(Kp+Yh4S~>M1@D>%=k-Gxp6R`&==P%R>b`7)1Tx#EFqBB#9zg_L>(2-?nO5| zn=LHAvQotE7Dsgx5|Ex>7arnwM|lu~M@H8tbTjuQve=UpvVPPv1yi8wf@y^nc3ha9 z_^P2PTeP}oNRr;kXYq+ugcTc5AN0Rf;ioP9=VIA@;r|y0gcS$puTN}06ZDgckYDXz D@aiJ! literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest3.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest3.sol new file mode 100644 index 000000000..d22fd9ce6 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest3.sol @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./CustomTypeContractLevel.sol"; + +contract CustomTypeContractLevelUsedInContractTest3 +{ + modifier m() + { + CustomTypeContractLevel.CustomType ___; + _; + } +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest3.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest3.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..3c8b0acc496a84e451ac4e94471f8e50f991cfca GIT binary patch literal 1824 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 literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedTopLevelTest1.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedTopLevelTest1.sol new file mode 100644 index 000000000..d745e645b --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedTopLevelTest1.sol @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./CustomTypeContractLevel.sol"; + +struct CustomTypeContractLevelUsedTopLevelTest1 +{ + CustomTypeContractLevel.CustomType __; +} + +// dummy contract, so that "No contract were found ..." message is not being thrown by Slither +contract Dummy +{ + +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedTopLevelTest1.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedTopLevelTest1.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..af1a8f9b951dd41c09fee79d61f3c924cc05f687 GIT binary patch literal 1800 zcmbuA_aoa01IE9IEplpA+Dkda=+$Ur3sTye;S@bHA|lnZ#jYzF#MXEZF)wzFa^<2% zW0z{tv-j1?m2$DUNbCCc_xGpwd4Bjj&tLGdv*H061KfZpkV>v~YTgc8f%5@C`nLdJ z0sw$%SST^j-ytdpZyFdt48h`v*7$I|pJOQA+aWOM>vq705;fIA1N|`g$e_RwA_g0R zyYCy0S9=f|7$6AZ1>6B34gip3GT{d2MlfxBlx_en8VK-J?1Cj`*h7t!8ihNws_Qm; zpA+ejy!x=#H-#aE`|X2I6*GqvIXR)5__QM7l1okZ%N1yQXHlEIR|D0QU%HH4R1uq? zyE%)=5IF7+8*|TZ){qe_`Nfr*@;JNIw%sj{51NKp zt~d{-&=7Twac|4>&S(Ag!F>L>xl0Y^(8dqQ43fr?R8_d;xTV$wqIJE>C(}yo3y8^@ zKJ(d~-w*VTX`t0=kvX{c_G#`|CB?L^?(=4Kp{X&sbJiJ)sfB?OH<3aGm%|QPB66}X zfV5wDW(Et>D@cz_4EKj(uS>FY^xK%vWKRi`UUIn3l>On;3B`$%-iXj+RCII2%2Q}U ziv+i%VVH&l^k-#2nl%Wupq2zicXIRJHJTIC_F$mUyP`ELGP4mqGrm)WQk9zZd_WtY zx&O1k(OP#R#_96($Z=UKmIragm*r4VJ*|{JuK|ybT%=PsrES6_)T+AL(&T4$*F}c( zZ8sYrhrWKF2Y|ij-)T}9fYBSocz7i5TB4Q4(q}zpJ%8Q6*@o$ukB}s7|DSWEodfL- z1Cc?#8XZA*S>l!pY-y!eAuEGW!2UFw4tBj{PJOz%v>tGA2seg2p}5*{bE7X(K9GBT z%Vf$Qc5s+`r0>>a#*_HAaM(>gc?pRny;LpRGeptqc+_Yi2`9ALR518)#7V5IerUVZ zTW$bw@`ArlQerFzfC>|PQ`+X~6=s zXn)H}1Ie0m@0p>#K|8chR_AIBSgEwkwOG2J@0uay?^O3w0@D#q$Tpyc?fBR$acAFI&o|?h@2I(!kc>sHD8U*0S+U zn`1>OWj5P?hD+Q9)^TpePljdQvGc6mORB*NvJz&bf;s7KcOGFx5}nlRX&ZNWB4~#FEf9KW5Zr4-MWkp0L zXLgr?3wQo0&fN9MFXoWc?1xWz+@{-5CQnT4va%!=t>ae*ip0&CEIRT!OHrSA)%w7B`2mAXR=>NkB=;Tda+B~l>m8bh9}OPjV=ecrN^ z$<_RN>nDcaZIcuKyL~r_yv|+$Tfb#9$n;%8w{T2MZosh0!or>i#BuU=mHwh;{x3Gj zY-FfKMtO(oX*NwyFvI6k2#D;F*7?>A$dWbQXa1=*m&-7Nx5)mOM4T%ZDy5vqoUS%e zvbIEBETpE?iogp&gn8((#%l*L%}GJ1&A72WmfuHR w?}_5aoj1BG%Gz0RaU1jeZwq}9(bvRr{TKhQlkBW`zZebxxV|*t3rSz!zxr}lKL7v# literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedTopLevelTest2.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedTopLevelTest2.sol new file mode 100644 index 000000000..3e6d5bac0 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedTopLevelTest2.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./CustomTypeContractLevel.sol"; + +CustomTypeContractLevel.CustomType constant __ = CustomTypeContractLevel.CustomType.wrap(0); + +// dummy contract, so that "No contract were found ..." message is not being thrown by Slither +contract Dummy +{ + +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedTopLevelTest2.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedTopLevelTest2.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..f7c8452f8e53d314c86240f1d202bacfe33c8b07 GIT binary patch literal 2076 zcmbuBX&}>&1IE81E4PxPIl`QYkfel^<{vVQtlVpxSQ|ETR&q{CIdYA%YzP^K9Dg~= zFG-H(${EQuEpkle`1Sj}|G)Y_&x_}I^}PK&FdKdWb6_7J1|*S7T#Uulh0lTjph^`0 zEC2ww7)&7IZ^Od^P#5tyVvskIXp17Du+9Y3O*lT_-wsC+hz7a@Jk}Ex8h{TXdU^*T zeQ%Lax_$&a?x4Vaz#Rah0N^~Cj4|9c45WVUu01E3+m5@X)~p!!$nmI|21B^fsHk+I zt%_JHo>>}3i_AbRg#*w+ffjJF_IT~CFgpT5B z>$gkEJ}&2X{|nRKnDk12afbLSXO*EtbkoosKztuP&P^u^34Q=P?#s5ujBpP$DIQ}e zO_%ORK%|i(X0R04eji!qwQ31N*RwIyZe`%ZMOw{0Z-2f`b)hq{=Y9(+T9+N;uKXbQ zaV9I!a=UK#&@I9+DZ&@&$7WYM7M4{El@HUF?(ov(LkkiuQ;i-Rd`@gFdibqoB?W#r z!AUs(+VaDV2X9SWBlBps{`qaCnioprX~evU{l0fwUz)#9`p7-7eDniq!`PF}G(7#a zOFQk-^r%s$LXkpb9Ita1b0xF-Q*61Il7rAd7~gCV0;0%Ff$aK;mBu_n+27sm^u+-6zX%DXPc7Gw19Sa+fSn6@JFj3<+-;8pK)J zX#@_sz3GjCkaVlUJ$GzfZVqi=q|j^C!I3CYnbkcL<3e+5J26!!P=JtL#`oAKc1E;c z%{Srlu1v|+q-a*qTRo|9c{^Hhews~h#NaA_@<+zF?_f#{jX4t|wKQYlWbGJtT<3>P zmmW8>-UF)Ovtf0r2=u}acpOdf5?up_Khdp`?fQ^nc8jd;R zq9BM$cigdR@DVu$!AtAkk}S-YPqeecdpm#~9ewm@h)-5W4^1LueK5cjcHjApefQij zuZ$x`t0-N!PfH33fJel)4YdU7*C?Xgv_nph5enk+5Usiv2f9_PqL>fg*2%nZ7^vrr z=o{3i9a0*9ogT84-E?h$qNx%Me;4}M#9oD)#J)nkv*W0xS+Y<1n}G+*zRkY&@)B#4 z@+d{oi?@BYUxLOQvlC3$DCVv=yk_o(vc%g=_514!KZtE);oPT-Vw;>ncc}*I%IaS0%EZ*1ipI-IPu>jR77m!RXGqsdp{(g8Zpz2XFig$I(a(ecYq^!PjXlgH$d~ z!nS5RM!Cu&%)?;6e{F>2%_r8rBR#TTRTJ~jShG=%AW3%UP7h3{P?aqWaP71arvw1a za&KWRo+&%MyqF-~iS0fUPazv(=n34>5s}0-TTMj9!;Vk#hN*+T=Nl*42BsOanMl|k zK8{5kYfV+O>pn}-+tImd)o$d~r=1u2sFJB+>qw>9;;{#cW$pPCp;K2~Ij)Jl8gxW( z^uTp>+iC|!@N52BrL8+T*H?_lS{;I>n0(<)bYle_+4#n5Ym$}avuZ$U&Ka3Yz6H$M zH9*T>(MNpw;_`jiN=E4S${AjTZVD2}tHWf2!=hfhqM>#PN)06fHYklFmrma=8Ioud z=QKK&)<>dRST~G#QP5}FCqm7JKxbrd*Or3H2e(UX(!1GOF!G$FWixs-*JE=b zpD)r3S2_B;1DZ81nxNVSD)Y(qU^SK-Bd&zQOmtM} za>}vK@}GL9=Z~?@uvH=$KS(byLTX@_r*+jA6mIXv6*IT8y$4La$K^>(dmQgSZj(oZ zoPDOUbSdE`^g4u|epwANRr9|;MMZRyuyPHSzEJ7@JkWH(tHj@RJ&$$P>7jdG7dC=G z;O}n>2s3jFh@o@jFJt0UzIS)`!F~D_O{R8h!Je)%e(b`C@RQW+rW1|FIG{c*cd#-M zubJc3_Z*w`yLr_rvD-;9!+&0N#R5Kji76u)3c=9a-8UdR!49Tyxyknv6Sln=sCqKU zTJ7H48iR^;xleZ<4iS_2AVO;ytU`$wmSK4Xm-%bcb}Dc2)ycN1j@ATb`t+?kS-;|T z+N^DQ%oXNDP-zE0^%nP164kL`0eREAy&ZNi8@_$!{QsNGf8hMDqWJ!a|CiG+oBe|S Q?C||D?oVd@`2Ya$H!Q&5uK)l5 literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevel.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevel.sol new file mode 100644 index 000000000..92bfe9e96 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevel.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +type CustomType is uint; + +// dummy contract, so that "No contract were found ..." message is not being thrown by Slither +contract Dummy +{ + +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest1.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest1.sol new file mode 100644 index 000000000..7f543ee48 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest1.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./CustomTypeTopLevel.sol"; + +contract CustomTypeTopLevelUsedInContractTest1 +{ + CustomType private v; +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest1.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest1.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..bd27a67ef58af0c494d71e63e3d55b266893e836 GIT binary patch literal 1733 zcmbuASv=bZ0LTA{i4ml6RNO~HNaL#ej5aBCtD@?@;%o&;9IcyRtE9TjF=y3PR~c(u z>l715mC`O+)QG7@s@e>#qqA=Bd)n{!@caB;zOP?5M}e=f02mMlZWgq7@s;T{TtNW% zULF9f006*INMzzQkCZrq2QkixkVv@dNg{;V$Kr^wc*vIl`g*4H5suLcs5UK_x29UCtWS0Ua=E zYUK`hk(sd4HcHRqii8S&|5&p+eO&#BLE;i_Rzj=gJ0t6mwI2>sxWlK3I+_oCW)NEN zXH35|J06><8v*!X~E2gRuYCG8oN*3*JzZ>owLJ;wXOB2pNwUOF1iM(jf`a* z-2DY-c|9Kj<-Wz(c>>z+MD%QOdoYh1ZP<`eV@35-c{t1rTB*nhO7t->8*Y74!xhdWj(MiEy5U$BE++jqEceFCba) z&HZnj>7n7io6$tNu8)81cbD{XQ6i*@M00!1DQC$)JG*xG7m^|jeq9(&PzIwfoiff2 zEej9kB^L0OzXfuwpKtentPt}RO8KQ~h`)!0$yc`t^%kUBaweKo+IDoQ(rI%o!Gqjw zcCKesXuH|TK)Xl&yRt4(wv(vPmi>0jy@w|HM$I$BjDtTXDV=dkyiE#n^&P!Xx7Kgo zFW~jWy`$p|7r(~ZCBi^ke4mh0t}DVa{DsEXc%P)wNX5iAThB-799*AK*^!^rC*~Dx zR<*ma-1)@!z6%h+*+VJYkNG^PiR4`GkVFw9VEN~AH(}inOrog?^Shia=SW5A1(^pX zV9Toee~GH#LiS{?#DNZ0G;k>`qNFJa&x z21C3y>+LL-Aqk(WoK>>T&+4y9M)dL?fO4=IReQd@3zjaKCk}HEw=0#dE0mwsHg|kU zaU>qLFLlU8?|E~`q=kTrw6J_wjh*2*7T=pZ6(RDy!>p%DBRP!IRwv==0E89O1|Ef5 zMGcLJLewasa8z+YI`M)b zXmfBN^8|R~+N}+7fvnV586ee$aYBDsP*C!tXXo(mClbfTp~-D~3RMylV~_4oq_!Bl zNceRl|E4ENeA|>%a~H1o-9C#YJ-MXPTG9FBEK|y~wi>~rm7m2x?KZ{o&qZ&X9f+Nj z6_9gHI_YAErk+Vta=mMnap1rG9P-gu<2nepLLE$d%ePzUG0V^=riKO8&t1b{Y~@>t zejmOuJ|9%<*2pY{zU78cs;S~rM$#8ru@v+bL-LA@?UY+d=S`B=>%c{@Gfu*|!_Z8d z|Eh2G!fZ{RdWj=bKP(1rrz>r8A31>h;ltfiC~>_*$HD%}!x}yyZu@pyp*4c_hw4Nm zyzXS=9hE7C1nq_Lrgk%=qesju4OAX`28X!=nc&c{iVN=34f-oD-N&kenZ5wI>zs|3Lu=dgx&Gg&1ctM!vA5S4z zpVrnFsa|@*B!XR%OWN%mL$xB;+=dAJ6XkBW_YliTsU8r`^Xw{2=f&8sZ;Pjgb;)oz zN;G8~RHQ+@KMZSs81PWIrOz$(%<$dM-3q5GIS~PG#}v;=^maxG>>3@h qV>VGo*Ub?G#tQtmMZSpS-(-URng8V!H%CFpKM>HD#(Y`)zwd7pZV%-E literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest2.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest2.sol new file mode 100644 index 000000000..04c0e201b --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest2.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./CustomTypeTopLevel.sol"; + +contract CustomTypeTopLevelUsedInContractTest2 +{ + function f(CustomType) public + { + + } +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest2.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest2.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..e16787e063a9516789767abf68d2a869072495f6 GIT binary patch literal 2277 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 literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest4.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest4.sol new file mode 100644 index 000000000..ef0d8110a --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest4.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./CustomTypeTopLevel.sol"; + +contract CustomTypeTopLevelUsedInContractTest4 +{ + struct CustomStruct + { + CustomType ___; + } +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest4.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedInContractTest4.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..c60e44f4e37eeced82f227e5859b2949eb8740d4 GIT binary patch literal 1801 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 literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedTopLevelTest2.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedTopLevelTest2.sol new file mode 100644 index 000000000..b0e6a96ca --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedTopLevelTest2.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./CustomTypeTopLevel.sol"; + +CustomType constant __ = CustomType.wrap(0); + +// dummy contract, so that "No contract were found ..." message is not being thrown by Slither +contract Dummy_ +{ + +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedTopLevelTest2.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeTopLevelUsedTopLevelTest2.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..5ba1891554cc90dd2bf2ae44230381e749ac6b0b GIT binary patch literal 2003 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 R8U_G>zv}yoCq({ve*?U%qvZeq literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/EnumTopLevel.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/EnumTopLevel.sol new file mode 100644 index 000000000..d061c79e8 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/EnumTopLevel.sol @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +enum EnumTopLevel +{ + __ +} + +// dummy contract, so that "No contract were found ..." message is not being thrown by Slither +contract Dummy +{ + +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/EnumTopLevelUsedInContractTest.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/EnumTopLevelUsedInContractTest.sol new file mode 100644 index 000000000..6672d2d06 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/EnumTopLevelUsedInContractTest.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./EnumTopLevel.sol"; + +contract EnumTopLevelUsedInContractTest +{ + uint private v = uint(EnumTopLevel.__); +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/EnumTopLevelUsedInContractTest.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/EnumTopLevelUsedInContractTest.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..defd5c3af5b6fe8f299b7ffaa3355935f1839636 GIT binary patch literal 2032 zcmbW&YakN}0|wx+F(&!uejBESnk3GUk|mc)A+f`7%4M#ziEWMMvY1q?O{8*(+{sx+ zI2^akkz7OMo=e9iQj#UJozD0F`}4i;kN4O6`*Cpuf~*1Jfc=2flnTsaZk@L-7yvk= z0|1x-0027zIoypHaREoc;oYNf0p|#3hy+rkuRqBR7ez9PBI2*$s1d|S(iPuG|KJb` z&L}jBNRS3e0DJ&|1OUJ)B_+sIV0x`!sK4%nY)&U31ktL+NOM&`rO%ORLX}poyyTMV zwB^zvo{;N$`Q<02*LfR72Mq%nLLf>!G#A4zU)S?yhIX>44Sb6s)wM%b>5y( zwIG2Hjq^a{^h%N!@020Fi|w9{;8!!WQEwL?+0^`C&hZcApBR-K)FCK`uP5uDp%y-t ztjazYpjA@OTin$DUN-qFV)r#hZk767K3S>>!eg>^XUaF|zOL3aERvl^Crwc6@wrvO zK5;~nChi)Fo~MEP+J1k}`DFX<;cZP=JKSf=`^!61|Gf=6;p@aP$lzm_O!^J45V
    f>I_XLbwMv#e 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 literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionContractLevel.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionContractLevel.sol new file mode 100644 index 000000000..6a083b696 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionContractLevel.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +library FunctionContractLevel +{ + function f() public pure + { + + } +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionContractLevelUsedInContractTest.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionContractLevelUsedInContractTest.sol new file mode 100644 index 000000000..25b1c9b4c --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionContractLevelUsedInContractTest.sol @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./FunctionContractLevel.sol"; + +contract FunctionContractLevelUsedInContractTest +{ + function f2() private pure + { + FunctionContractLevel.f(); + } +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionContractLevelUsedInContractTest.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/FunctionContractLevelUsedInContractTest.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..504d983a9d40d4280d386f7d4d4f04f2399b62e8 GIT binary patch literal 2035 zcmbuAYdq5n1IPcvVs2T=!9+D=>hPNNOA;33=H4^APE4hGBZiWyT;Vg;Q`JCnL=Jfux6`jTDF@qLaR>dg=s~# zfZGtoIef1sx~Y#zV}5(yRjHZNt+~sH6a?HVlzIrO4=OuVy0#N1;Odd#+ONC^6?LE^ z93L;J5@{EgP?vvzp=OyFDm6*xRM_dyyo89wg{S)W(k{sq1f_s~tJtg|ZhPFeXHl02 zhE^=v=Uwi}Ayo2&#`z>wtYR=Fqg56~W?Ugrm-s{tw1tlYc&W36ZkfCe&H2E5=;GCj zhm+-Mhu;l}2j|BpCu%#v42|B*7n1aY>X)lE=FmTJitU;PVQR)LiQ_Iu*0c5D!es~# zm*u%*jAbNr7tWku)sG+VdanwMCLKK}I_vb&XCx}LE@ZhKTdH?S(dHGd{S?nhPY_sp zzQh-gib%Bs;kVs?)n};?*)@K8^GVVhs=>Bi>xJ6*dGls5H!+56%)gLVH1@PVXK3Ip znmal~8hS3>Z7`qmKuBg*ALd1Rh6(CPGUFUG=;Xf9k}Y00KN9=2vb znS-bb@oJ{qpTDoyme{N=bfpi8rZ?t+3PcJvDQdJMRdM~6+}Df4&&u4?dVHx$<+{Vp zx+(pP1hq}bhwI<6B@y_3%y7o4h;n6V$I2zC#KAaG?&CMQmTqODEA1e=%d!I>46|%X z>hCe+aAiYiS8EH$wqt{$l!QU@^CKLs7F623UY~31dlj*3O(FL^crE5DtdwVh@U9xw zZjhB1X?72>VQ0|YQ;E72u9z#-_&K)toa1AcN^#HV)mf)j+(H4%RhiE;Hs=7?jJnl# zk|iV0zs(`s#3*IjKnJdGe)Y}VbY)iG)kW{IeXHmr>FB0pK7&1`4fRv?giwb*UNI}} zCC-^bm{O@}#HT%1r?@B8Z#dd=s_j1U4B)Qt^a|$7XEw06C`xxaqRFmEQU9GZFKyEgpPiE zF6-&p)z^5!WSjJft6?^NL*7FKpgP8zulws-?%bbG?Bny;nl@9xDDXSM%j||YcMXv` zbx-92nnaajh83#=bn>MlS6oVkaSE##Ac>b0&X}O{$*FfQw90sY8l%fEE=`={%>+sr zi6|gVBM7oNvI*Kq8IuRra9ujN8|3ay8y^pi18;>KvwV_?gN;$Q?+_Gc4Ns~ZpK8uW zn0OWyif%Q68pL|mBrm{5h}ntkvc9Dbjo{Bd$F*!$^bUI#nUgnb&XjzRfFiFvc-`sD z>Kug9H)THSUASKi$+VETh-jPyKx^mb-EW+S(yIeU)0tUcV|L4-vvjcVBHgG;Em!d? z#*5-Rtm2g9fsDuFg4`(*lBB0S1-Q?i{#X*civLmKZ1+K$a`D zHg*QVKbct}kha$v7=Ui2vZ7XPRH$2Rz51Cf{-dD$X8&m;H?r3RTf03e$_D2T^E!R2 zrkBs}F=-nNqey@oLhJr=VAU#O96bI|+k8{p6}g2St;+Wy{Vu&mkVN0G7MLC!>vsNL zc0qn{+vV&;XVLEdi<{l{A3J=P3b@XOCmdP+9@m^>=Xd%h(ThhTuP&LIEGG1yx0<%~ z@xZ7p^1`ugK>A7!h%033 z^3pUJRdcW}w=eJxlXEBg%c=<6IjBbs?R9mut@0gR7)a?vD}64uy+gV~jb( zk9Cub3}InolSfMgv#uao>PO1r8rgN^6Z9tE)9Uc&XnM7!zRkBnsQ+#_O(f@7SAJY9# bl0g69|MV{g4L2)M*Rv}mK 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 literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/Library.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/Library.sol new file mode 100644 index 000000000..5a55dc215 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/Library.sol @@ -0,0 +1,7 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +library L +{ + +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/LibraryUsedInContractTest.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/LibraryUsedInContractTest.sol new file mode 100644 index 000000000..6ecfd3c3f --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/LibraryUsedInContractTest.sol @@ -0,0 +1,9 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./Library.sol"; + +contract LibraryUsedInContractTest +{ + using L for uint; +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/LibraryUsedInContractTest.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/LibraryUsedInContractTest.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..33ac2597f37c59b20855ab96acf8c495f89f4aaf GIT binary patch literal 1535 zcmb8vX*|;n00;0tM!6m%KCZGHQ?4;`JSJCGWSI)Z(j41k$i|FODr$Q&SI&_$GFNg& zMu;WN(Q>q@M?^a0AxD%ekDm9>i|6-y@q6`q`*n2|0oee;z;8fue3i!-NqHC{3IJ7# z000L702Sy*_9aKVhvRWh#A75Ph3xB3al?mGVBw@oSbS6{iA=%zlKlyRk$6~8IEg3@ z5(T^gAQk|Q#>WSkY?*`=55H(eNayzu1EHO2^yD)t)`w~(+f2*v&vrLZnq{)9BOdkV zk@J>Ydn=(S&!Jlx;j{R}e91!9I>J4z;-$^#*={`&>~OmmPf161r1^rUta8AXcT6pF zC$OOoeXgk=*Nu4iREaz-cFo?IyY?bLPQHqDaxEZ#q*D)b#nfY7E$F zpC%EI6Ja#5IT&LcB#wE5jFl*0_M~Zk){9TcBWzz7IbYwp18}^-so7F9Yd@nHJJa%& zG09Z9_LBylgmH^VZlxFFL51pj0*z6Ee05iJtuEQ>jKBij(Pl4yCz4?CxglFR7Ec51-?~BBhJq#|zRB-H$UgduVLxo03;t zR&gVi8D`^`+lfM!6N*f(eQ$oKZkvoxEL0Ct?NV@EE-7MF&e6k(Yxx{cF6ot1Skw&9%P< zbU&v1sR|=>KaH*3{q7T84+~+xiJM?O@G|dFyVva1H5?nWS2#7T05_7BXCv_S5#u;0JpTloixh zBcrJ30m(eO4!dyk+h9mt+U&Mn+7A4s7`nSbgbaPDIw?is@X#M^v+U54QAd zurtv*naT3{hOW)N0}+6+qn@@^UHr^oldB'T;ak*C8Jf`1cta5&@U^TKwnG3(%Y zc6P4Ib{3P2H3#_g!-E^*_{hbGKsO3;T%sxA%d`j@z41)@NFGuH&yYgAFT6E`=nxCE z++PIcB=J;@)SHKwgNIf;eMZ<%3W>f)Y|Uk4@12lZ&#jTIM4n}@c5x(zoO-Bk{`+fI zQj*0cT8VBbD`P>@r;mtU5zYMhOu7roA7S=Y$7?n$w2j|Ow+U4?`HC0OHqiixt3f>S31O7$D&s89!5K*ETMJd z$e;E)Bt!mskn(`Rou$4RTZO{om8Tg?n8O-dF{fe$OS)~uAAP1O(owqRP;;47I7KCg z?AYRc%c%Uv;47;npE0hy-6jX|Nv~0-w!)0)TR^7`#)LZFqI{FrNvWDpPSApn_E6k_kXMt!tV<2(HCjB~GEo?L^zZ7YIOi?6 z!p||i2qu?ppGNyUEwTdA`_hP7MTE`}`JxB%IR_@P~qD#A{*9 zEpc@l%c8rkp87hg;Q1YR**eFB)Xa$Zki%6oY*7PQLS}%_zI literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/LibraryUsedTopLevelTest.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/LibraryUsedTopLevelTest.sol new file mode 100644 index 000000000..059ad1776 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/LibraryUsedTopLevelTest.sol @@ -0,0 +1,16 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +// Top level UsingForDirective not supported yet in Slither. +// The following code may be uncommented when the support is added. +/* +import "./Library.sol"; + +using L for uint; +*/ + +// dummy contract, so that "No contract were found ..." message is not being thrown by Slither +contract Dummy +{ + +} \ No newline at end of file diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/LibraryUsedTopLevelTest.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/LibraryUsedTopLevelTest.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..9929912ad200d6b63e85d884afcc983ed61ef481 GIT binary patch literal 1220 zcmWIWW@fQxU}E57=wCngv)xHy|ej zGq=!-2EO~hQ<=^`UORi~7Of^uvo{kH6T4EsD`qGe|MxsR>6@fdY<<`zp8pFswI2KY zB=g_KGY1oFtV_o#lQ08Xt?>S3z>LY#F1MdIUjJ8{Qvdb$z z?tIiOv2O=tzH@Ug4NFpBvCg)6_^f!xY%WRXu&}wN3@0O2uX-|%>Ex@ge)qbu zRo-PGk5we8UqJa+PD_jW22K4}y0ewkV$HJKd!zP-be2&FVT!0YQU%Nr9^m&;D9{ zVdw2Wi&aMY`8&R*-!67M(eGyOnz7t|&5O7l6Mq;R>X}8`ocYH8nEU(T&p}_lNE*pL zoU~&8t#0;m|A-d$T^6D8E!}5|F8gUuvg-U$d;g5%f*q~NHMc_r_Ki{*}Djl1&C5*Q)=`Z8)SZy+=)ibF3=Y!UDiaMNWn`5t?E_(cG z;ar~Lzvl1SjjwOq;nu76ex9!E?0pwb29&!S0%9}o4@jEpt%Fk!+i28fzFaE(`q0+(PxVf5>~t6QAndszfldC z@|)HGUu8|=AvUSL@F?>R-r6Qk70GC5eI#?r2`ba*pxK`{6mYI2ZYN0rz1GL4%4Z4W zWj4%|zFn)+(9GTxRiAE_4`W4d_+e&8TIMwiIsM|)-;UriI8?z&g>}a^G#=BaD=W5- zi;FzyARUAy?wh%k?ix7rO+_^P-Mt9&Tmtg7#2aX_)IoEdeTD`u%D<}*smvdi+fKA)(o47z9JT4ZO4+O8=jE=~vPWz~40n5gyLf%(RKV<#U5v`0(* z%$DYB%BPB-m@*x7r2dYTqh%;m!AIE?yH+r;#fU6-bhiE8+k1^X&9}cuGybWac^?Bk zOVXu(%Uyl0#@|Th6ED6~fR(0{11*=FSBZ2A*Z+o|IfWxhi@k99l|q zql|#B&s|k|e2P7#T^YVWN&4un?lK^K{$)W3jF&wI+zDGQ#*H`NcR|;xh3eqRv~Q;J zN^gcV523Y;7uu5j+lx4ww)MhB^~|yhe?NM?mFN@*VF#aOZhI6)#@`A3?y2 z3o((U=DWjn1$0`PK|)ZcKAQxaGt?91qJm>Z`>*WWZtSg_FVi0L&yNeF^J{;ws&Bs3 z>sH9OrVhT*fkJ)&CZ}PXSGEnF1zPvntJF;iECzSXN8UMjGUeN4ZL6T_g-br}Fwb=> zU{FXKe9^_LjkO5!4$Qg0?K#wH=W2H!YA1M(1 zOR7cuE`||3K7cOe<^&r!WFWC!dc${Bem)rb#P99=fZiFplf&OyTCaTWJLM)XMKdnw zO6_HU*^Toc&odw@ryEu(Hw)krITrj=` zO-m{p7dK}^y#UJyBcUzaB!*lMPVT&T?j4G>Y}Jof0NlcdSjr~g1RmF5oLBN@7z z9K8?~a=VU(#IxF4tTR4# zR_78U+V2_TDyf#E{WsEYPrmJp65sZwPm<0v-yTw1vazn;Roe-ajyHZrJz*E_nnqa_ z-2fRbZc}?)!3ay^wuU2dyYx+g_1J=ZJ%_u`>I%$9{DQs}o|{>Zgnnw9j6pp)}P&n`24y*E%6(qfikpZ*mbr7CO; z@n>(-?232c+5az#eV zFX!oYEhS1I-?ke6L$ifd7x6^TgBNCJ{?s^YQh%EpIMBX#y84OpM&i@K_L*JzO@i7N zV6bE>w!b({y5GcG+)r|~HL_(lWH!kTcd4sF7Ppt2&B0u2{S|n1MgVcCY<*>B2OI~E zznoRri}ZOqiW9B?j*mc$RZ@<|@5@=Df4yP$Fu>Iv!@J9SYMqJ80Nuw*E6tyzai#6j z(~BSaj03|bHWiEXKL2~?Wi;G3AS*)ZU@Myf7W!JnaKP(TM+Xq%io5eM2|LOE&5f_< c_*<#R{)+#LBJR#o$NxGx_SHAPrupCPKW|7PtpET3 literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/StructContractLevelUsedTopLevelTest.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/StructContractLevelUsedTopLevelTest.sol new file mode 100644 index 000000000..0b3a733c0 --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/StructContractLevelUsedTopLevelTest.sol @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./StructContractLevel.sol"; + +struct CustomStruct +{ + StructContractLevel.CustomStruct __; +} + +// dummy contract, so that "No contract were found ..." message is not being thrown by Slither +contract Dummy +{ + +} diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/StructContractLevelUsedTopLevelTest.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/StructContractLevelUsedTopLevelTest.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..c2d7968aea5092fd42ff4fa7f9ea55a166ef6050 GIT binary patch literal 1790 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 D2E$TG literal 0 HcmV?d00001 diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/StructTopLevelUsedTopLevelTest.sol b/tests/e2e/detectors/test_data/unused-import/0.8.16/StructTopLevelUsedTopLevelTest.sol new file mode 100644 index 000000000..b2b16b43f --- /dev/null +++ b/tests/e2e/detectors/test_data/unused-import/0.8.16/StructTopLevelUsedTopLevelTest.sol @@ -0,0 +1,15 @@ +// SPDX-License-Identifier: Unlicense +pragma solidity 0.8.16; + +import "./StructTopLevel.sol"; + +struct CustomStruct +{ + StructTopLevel __; +} + +// dummy contract, so that "No contract were found ..." message is not being thrown by Slither +contract Dummy_ +{ + +} diff --git a/tests/e2e/detectors/test_data/unused-import/0.8.16/StructTopLevelUsedTopLevelTest.sol-0.8.16.zip b/tests/e2e/detectors/test_data/unused-import/0.8.16/StructTopLevelUsedTopLevelTest.sol-0.8.16.zip new file mode 100644 index 0000000000000000000000000000000000000000..5a490dae6f70d3d81eb3ea04ec0e307f0d3c65a8 GIT binary patch literal 1761 zcmbW2`9Bj51IIVVWV3nXzH%?sH;nJXS7SDt8!kQ`C8 z&6$KK*EfBMMUK?Ia^&vm`MzGykIyg9=kvq+^Z5(j7_^{}1wa4*17tHFd4Vj>2S|bd zfM8_+;5+~T@SsIT5ouUTgcFHQ3iG6r{QtYLBq~jZN(sA6iiw~^(k@?(BnAc3Njf1^ z3RzT07=Qx+k^lfRCNog~K>u3ByEm;S(6T;quom~kjcj)X^OFsb4uglaE8R`BR`EM^ zQEh{zk)_|;`)jmrz0x|!r>>AP%OK^7PlE1iR;=&Gu5_QF=xDQjM&wROjJ5iCOUMTv z;Nlw!f2Ji8jZH>Hq*vrA+f`sI)++a`c!^@j?pwMKdDV@aB{Oo-B?b&)^-bY*ul_XZ zXpatcrB+eYM_z2D=^YaatpM7^)!{4#b2P~^N*6HB1^%A>wNxGnz?q5G1 zULQJWCv&cW5zwMp$xDe@>1~od{1#`We=DbOS~`waF9TM}KVs?uwps4?#B#Wg@9Btb zjG9@gB;I*3@$>j>`F(|a&->%}HB(pLXL5WT4Ebr;JZZ`1mGS6M=j`o)W~hIR6{;s% z!4_t_E`@yP{vk554mLdM?xM`GoRI>fIw_C>e zpwxKludr)67Qx~Iz3PHOx2@f7bbytn2F`~n=E!OU?975izuM7`J(McCJDS)PE@^RC z3j0yM*{-a0VZc`*i$9>w{%vYwk6)I~y@wp6XCr6^UW-4M3NG*ueRltBt%1jP{6RYV zN(!?0efQZFH6=_;!|@OCGrQRvK|`0?Zq*2T#*8`eKO*L`zsMXpKlog@S+S&0{l=0J zcA@_`X1WWt5oo>mI>BkyCdTIEw2d+~j|58ny)xD_XovS6Ihp%7J?w~EXSi4bEstuH znrssx;&m1mLtSgU9{37;&B)}SG6SI3F>2R$>h^kO^XQHcdFz5|od|jH2M#ryo=v)e zDj7z_94ufLE*0*@1}>pS0>2NugA?ae)?BX8IbE@*3+7Nw`!&YnKx;>9+LxlPf&uoB zzi(AjbvIKQA@KZ37h&sJ42v(J(q32YzO7ug#|iW@^uUvp#Xb%iu6J(oPxr#`c!)*4_Za^W3!X7jTte7f zJOEXcD~1<)|Fh_tnZ)MXu&j1Q{T*bk$j3y?`r6zsT2ay<;%VYH_<@nMB=hf+TMjHE7CW7WK!^!( zdY~64Qq)UNJHg#lmG-3Do2bLxJBhpVVz29?ZKB`Bn2GwAF(n$1LYY|BegXU(ME$;RKNtr6BDSzfxu zZljN4wU+~PHFNG$J32Z48dzDx5@sUG8Cr>Y`jn!le!?nO`urp^@{}tDTvnmvyis(- zyJe(|WO%uHfTK`2Wmqn}_GQ^P(C}O#52rKu8vi?{z56JZ=te6m0nj zTD#a1&6|FuX;xyNCPQFc^h0=kLKbPq8KxCaU~^eGOux(1?GHc+iNpQMC*C&D?N8@h zm+Njirp&xZaBzPO<)=UB0RuNZIeAt}$)ET=7(KkveDwZPtlct&v;0;|^}vi&w_av}JNyPka<<=c(^!J0C9 z%aFdUBqXJaGW-bn9BgS@xn~bo?J{W=U74yAc3D>F>CI^%BGzU;wZhi19!a1Erc-9f z&BMm|?JWT!Hv_-ZJa)lNMccHbTQ$Ocos_FTu_fbhv@4&Pi$MbgECm0zXnwiouOtEg Yga1!E7_{&&bpZgtU-kdRz`x$V0s74