-
Notifications
You must be signed in to change notification settings - Fork 975
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #2392 from crytic/feat/unused-import
feat: add detector for unused imports
- Loading branch information
Showing
130 changed files
with
868 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
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. | ||
""" | ||
|
||
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 = "\n\t-" + "\n\t-".join(unused) | ||
|
||
results.append( | ||
self.generate_result( | ||
[ | ||
f"The following unused import(s) in {filename.used} should be removed: {unused_list}\n", | ||
] | ||
) | ||
) | ||
|
||
return results |
6 changes: 6 additions & 0 deletions
6
tests/e2e/detectors/snapshots/detectors__detector_UnusedImport_0_8_16_C_sol__0.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) | ||
|
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
library A | ||
{ | ||
function a() public | ||
{ | ||
|
||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
import "./A.sol"; | ||
|
||
contract B | ||
{ | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
import "./B.sol"; | ||
|
||
contract C | ||
{ | ||
constructor() | ||
{ | ||
A.a(); | ||
} | ||
} |
Binary file not shown.
7 changes: 7 additions & 0 deletions
7
tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevel.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
library ConstantContractLevel | ||
{ | ||
uint constant public CONSTANT = 0; | ||
} |
9 changes: 9 additions & 0 deletions
9
.../e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevelUsedInContractTest.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
import "./ConstantContractLevel.sol"; | ||
|
||
contract ConstantContractLevelUsedInContractTest | ||
{ | ||
uint private v = ConstantContractLevel.CONSTANT; | ||
} |
Binary file added
BIN
+2.13 KB
...ors/test_data/unused-import/0.8.16/ConstantContractLevelUsedInContractTest.sol-0.8.16.zip
Binary file not shown.
12 changes: 12 additions & 0 deletions
12
tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantContractLevelUsedTopLevelTest.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
{ | ||
|
||
} |
Binary file added
BIN
+2.17 KB
...ctors/test_data/unused-import/0.8.16/ConstantContractLevelUsedTopLevelTest.sol-0.8.16.zip
Binary file not shown.
10 changes: 10 additions & 0 deletions
10
tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantTopLevel.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
uint constant ConstantTopLevel = 0; | ||
|
||
// dummy contract, so that "No contract were found ..." message is not being thrown by Slither | ||
contract Dummy | ||
{ | ||
|
||
} |
9 changes: 9 additions & 0 deletions
9
tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantTopLevelUsedInContractTest.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
import "./ConstantTopLevel.sol"; | ||
|
||
contract ConstantTopLevelUsedInContractTest | ||
{ | ||
uint private v = ConstantTopLevel; | ||
} |
Binary file added
BIN
+1.77 KB
...etectors/test_data/unused-import/0.8.16/ConstantTopLevelUsedInContractTest.sol-0.8.16.zip
Binary file not shown.
12 changes: 12 additions & 0 deletions
12
tests/e2e/detectors/test_data/unused-import/0.8.16/ConstantTopLevelUsedTopLevelTest.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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_ | ||
{ | ||
|
||
} |
Binary file added
BIN
+1.7 KB
.../detectors/test_data/unused-import/0.8.16/ConstantTopLevelUsedTopLevelTest.sol-0.8.16.zip
Binary file not shown.
7 changes: 7 additions & 0 deletions
7
tests/e2e/detectors/test_data/unused-import/0.8.16/Contract.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
contract Contract | ||
{ | ||
|
||
} |
9 changes: 9 additions & 0 deletions
9
tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest1.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
import "./Contract.sol"; | ||
|
||
contract ContractUsedInContractTest1 | ||
{ | ||
Contract c; | ||
} |
Binary file added
BIN
+1.48 KB
...s/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest1.sol-0.8.16.zip
Binary file not shown.
9 changes: 9 additions & 0 deletions
9
tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest2.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
import "./Contract.sol"; | ||
|
||
contract ContractUsedInContractTest2 is Contract | ||
{ | ||
|
||
} |
Binary file added
BIN
+1.35 KB
...s/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedInContractTest2.sol-0.8.16.zip
Binary file not shown.
12 changes: 12 additions & 0 deletions
12
tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedTopLevelTest.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
{ | ||
|
||
} |
Binary file added
BIN
+1.84 KB
tests/e2e/detectors/test_data/unused-import/0.8.16/ContractUsedTopLevelTest.sol-0.8.16.zip
Binary file not shown.
10 changes: 10 additions & 0 deletions
10
tests/e2e/detectors/test_data/unused-import/0.8.16/CustomErrorTopLevel.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
error err(); | ||
|
||
// dummy contract, so that "No contract were found ..." message is not being thrown by Slither | ||
contract Dummy | ||
{ | ||
|
||
} |
17 changes: 17 additions & 0 deletions
17
tests/e2e/detectors/test_data/unused-import/0.8.16/CustomErrorTopLevelUsedInContractTest.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
import "./CustomErrorTopLevel.sol"; | ||
|
||
contract CustomErrorTopLevelUsedInContractTest | ||
{ | ||
constructor() | ||
{ | ||
f(); | ||
} | ||
|
||
function f() private pure | ||
{ | ||
revert err(); | ||
} | ||
} |
Binary file added
BIN
+2.07 KB
...ctors/test_data/unused-import/0.8.16/CustomErrorTopLevelUsedInContractTest.sol-0.8.16.zip
Binary file not shown.
7 changes: 7 additions & 0 deletions
7
tests/e2e/detectors/test_data/unused-import/0.8.16/CustomEventContractLevel.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
library CustomEventContractLevel | ||
{ | ||
event CustomEvent(); | ||
} |
12 changes: 12 additions & 0 deletions
12
...e/detectors/test_data/unused-import/0.8.16/CustomEventContractLevelUsedInContractTest.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
import "./CustomEventContractLevel.sol"; | ||
|
||
contract CustomEventContractLevelUsedInContractTest | ||
{ | ||
function f() public | ||
{ | ||
emit CustomEventContractLevel.CustomEvent(); | ||
} | ||
} |
Binary file added
BIN
+2.07 KB
.../test_data/unused-import/0.8.16/CustomEventContractLevelUsedInContractTest.sol-0.8.16.zip
Binary file not shown.
15 changes: 15 additions & 0 deletions
15
...e2e/detectors/test_data/unused-import/0.8.16/CustomEventContractLevelUsedTopLevelTest.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
{ | ||
|
||
} |
Binary file added
BIN
+2.02 KB
...rs/test_data/unused-import/0.8.16/CustomEventContractLevelUsedTopLevelTest.sol-0.8.16.zip
Binary file not shown.
7 changes: 7 additions & 0 deletions
7
tests/e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevel.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
contract CustomTypeContractLevel | ||
{ | ||
type CustomType is uint; | ||
} |
9 changes: 9 additions & 0 deletions
9
...e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest1.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
import "./CustomTypeContractLevel.sol"; | ||
|
||
contract CustomTypeContractLevelUsedInContractTest1 | ||
{ | ||
CustomTypeContractLevel.CustomType private v; | ||
} |
Binary file added
BIN
+1.63 KB
.../test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest1.sol-0.8.16.zip
Binary file not shown.
12 changes: 12 additions & 0 deletions
12
...e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest2.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
import "./CustomTypeContractLevel.sol"; | ||
|
||
contract CustomTypeContractLevelUsedInContractTest2 | ||
{ | ||
function f(CustomTypeContractLevel.CustomType) public | ||
{ | ||
|
||
} | ||
} |
Binary file added
BIN
+2.17 KB
.../test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest2.sol-0.8.16.zip
Binary file not shown.
13 changes: 13 additions & 0 deletions
13
...e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest3.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
import "./CustomTypeContractLevel.sol"; | ||
|
||
contract CustomTypeContractLevelUsedInContractTest3 | ||
{ | ||
modifier m() | ||
{ | ||
CustomTypeContractLevel.CustomType ___; | ||
_; | ||
} | ||
} |
Binary file added
BIN
+1.78 KB
.../test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest3.sol-0.8.16.zip
Binary file not shown.
12 changes: 12 additions & 0 deletions
12
...e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest4.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
// SPDX-License-Identifier: Unlicense | ||
pragma solidity 0.8.16; | ||
|
||
import "./CustomTypeContractLevel.sol"; | ||
|
||
contract CustomTypeContractLevelUsedInContractTest4 | ||
{ | ||
struct CustomStruct | ||
{ | ||
CustomTypeContractLevel.CustomType ___; | ||
} | ||
} |
Binary file added
BIN
+1.7 KB
.../test_data/unused-import/0.8.16/CustomTypeContractLevelUsedInContractTest4.sol-0.8.16.zip
Binary file not shown.
15 changes: 15 additions & 0 deletions
15
...e2e/detectors/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedTopLevelTest1.sol
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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 | ||
{ | ||
|
||
} |
Binary file added
BIN
+1.76 KB
...rs/test_data/unused-import/0.8.16/CustomTypeContractLevelUsedTopLevelTest1.sol-0.8.16.zip
Binary file not shown.
Oops, something went wrong.