From 26ad3c687220236c59fda175980fb5ad7fa719b6 Mon Sep 17 00:00:00 2001 From: Feist Josselin Date: Wed, 27 Jul 2022 10:28:12 +0200 Subject: [PATCH] include enums declared in top level (#1300) * include enums used in top level * mark where parsing is incorrect * update AST tests for custom errors Co-authored-by: alpharush <0xalpharush@protonmail.com> --- .../expressions/expression_parsing.py | 1 - .../solidity_types/type_parsing.py | 6 +++++- .../custom_error-0.8.4.sol-0.8.4-compact.zip | Bin 4871 -> 5732 bytes .../custom_error-0.8.4.sol-0.8.5-compact.zip | Bin 4862 -> 5737 bytes .../custom_error-0.8.4.sol-0.8.6-compact.zip | Bin 4858 -> 5730 bytes .../custom_error-0.8.4.sol-0.8.7-compact.zip | Bin 4849 -> 5702 bytes .../custom_error-0.8.4.sol-0.8.8-compact.zip | Bin 4949 -> 5875 bytes .../custom_error-0.8.4.sol-0.8.9-compact.zip | Bin 4952 -> 5883 bytes tests/ast-parsing/custom_error-0.8.4.sol | 12 +++++++++++- .../custom_error-0.8.4.sol-0.8.4-compact.json | 6 ++++-- .../custom_error-0.8.4.sol-0.8.5-compact.json | 6 ++++-- .../custom_error-0.8.4.sol-0.8.6-compact.json | 6 ++++-- .../custom_error-0.8.4.sol-0.8.7-compact.json | 6 ++++-- .../custom_error-0.8.4.sol-0.8.8-compact.json | 6 ++++-- .../custom_error-0.8.4.sol-0.8.9-compact.json | 6 ++++-- 15 files changed, 40 insertions(+), 15 deletions(-) diff --git a/slither/solc_parsing/expressions/expression_parsing.py b/slither/solc_parsing/expressions/expression_parsing.py index e5c26a548..fe26a0ea6 100644 --- a/slither/solc_parsing/expressions/expression_parsing.py +++ b/slither/solc_parsing/expressions/expression_parsing.py @@ -455,7 +455,6 @@ def parse_expression(expression: Dict, caller_context: CallerContextExpression) referenced_declaration = expression["referencedDeclaration"] else: referenced_declaration = None - var, was_created = find_variable(value, caller_context, referenced_declaration) if was_created: var.set_offset(src, caller_context.compilation_unit) diff --git a/slither/solc_parsing/solidity_types/type_parsing.py b/slither/solc_parsing/solidity_types/type_parsing.py index 413339611..5891962d1 100644 --- a/slither/solc_parsing/solidity_types/type_parsing.py +++ b/slither/solc_parsing/solidity_types/type_parsing.py @@ -272,8 +272,12 @@ def parse_type( all_structuress = [c.structures for c in scope.contracts.values()] all_structures = [item for sublist in all_structuress for item in sublist] all_structures += structures_direct_access + enums_direct_access = [] - all_enums = scope.enums.values() + all_enumss = [c.enums for c in scope.contracts.values()] + all_enums = [item for sublist in all_enumss for item in sublist] + all_enums += scope.enums.values() + contracts = scope.contracts.values() functions = list(scope.functions) diff --git a/tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.4-compact.zip b/tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.4-compact.zip index 913457a623127423994808d764a6c5b1ed0f578f..15e749a197c35eab02e52c62ab461de0e75388f5 100644 GIT binary patch delta 5627 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 a=2S@j%*?YD008!(ld2L<2KyBN0002YCE@Y_ delta 4750 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 T6#xMCp_8T(P6qT900000so3J= delta 4753 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 delta 4737 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 Pdz11NP6mS#00000Eb|LZ diff --git a/tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.8-compact.zip b/tests/ast-parsing/compile/custom_error-0.8.4.sol-0.8.8-compact.zip index d97e8eb0ffb1f48a873d335eea8843e879902914..d11a080ffb719edead27bc85b1d5fe869c9d071e 100644 GIT binary patch delta 5771 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 delta 4841 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 Pev_vbP6p}{00000X1`1t diff --git a/tests/ast-parsing/custom_error-0.8.4.sol b/tests/ast-parsing/custom_error-0.8.4.sol index d62f96e87..ea185de89 100644 --- a/tests/ast-parsing/custom_error-0.8.4.sol +++ b/tests/ast-parsing/custom_error-0.8.4.sol @@ -1,4 +1,8 @@ pragma solidity ^0.8.4; +interface I { + enum SomeEnum { ONE, TWO, THREE } + error ErrorWithEnum(SomeEnum e); +} struct St{ uint v; @@ -8,7 +12,8 @@ error ErrorSimple(); error ErrorWithArgs(uint, uint); error ErrorWithStruct(St s); -contract VendingMachine { + +contract VendingMachine is I { function err0() public { revert ErrorSimple(); @@ -19,10 +24,14 @@ contract VendingMachine { } function err2() public{ revert ErrorWithArgs(10+10, 10); + revert ErrorWithArgs(uint(SomeEnum.ONE), uint(SomeEnum.ONE)); } function err3() public{ revert('test'); } + function err4() public { + revert ErrorWithEnum(SomeEnum.ONE); + } } contract A{ @@ -43,3 +52,4 @@ contract B is A{ } } + diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.4-compact.json b/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.4-compact.json index 995b49f83..0a9029979 100644 --- a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.4-compact.json +++ b/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.4-compact.json @@ -1,9 +1,11 @@ { + "I": {}, "VendingMachine": { "err0()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", "err1()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n", - "err2()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", - "err3()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + "err2()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n", + "err3()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "err4()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" }, "A": { "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.5-compact.json b/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.5-compact.json index 995b49f83..0a9029979 100644 --- a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.5-compact.json +++ b/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.5-compact.json @@ -1,9 +1,11 @@ { + "I": {}, "VendingMachine": { "err0()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", "err1()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n", - "err2()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", - "err3()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + "err2()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n", + "err3()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "err4()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" }, "A": { "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.6-compact.json b/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.6-compact.json index 995b49f83..0a9029979 100644 --- a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.6-compact.json +++ b/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.6-compact.json @@ -1,9 +1,11 @@ { + "I": {}, "VendingMachine": { "err0()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", "err1()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n", - "err2()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", - "err3()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + "err2()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n", + "err3()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "err4()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" }, "A": { "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.7-compact.json b/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.7-compact.json index 995b49f83..0a9029979 100644 --- a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.7-compact.json +++ b/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.7-compact.json @@ -1,9 +1,11 @@ { + "I": {}, "VendingMachine": { "err0()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", "err1()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n", - "err2()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", - "err3()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + "err2()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n", + "err3()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "err4()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" }, "A": { "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.8-compact.json b/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.8-compact.json index 995b49f83..0a9029979 100644 --- a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.8-compact.json +++ b/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.8-compact.json @@ -1,9 +1,11 @@ { + "I": {}, "VendingMachine": { "err0()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", "err1()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n", - "err2()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", - "err3()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + "err2()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n", + "err3()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "err4()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" }, "A": { "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" diff --git a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.9-compact.json b/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.9-compact.json index 995b49f83..0a9029979 100644 --- a/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.9-compact.json +++ b/tests/ast-parsing/expected/custom_error-0.8.4.sol-0.8.9-compact.json @@ -1,9 +1,11 @@ { + "I": {}, "VendingMachine": { "err0()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", "err1()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: NEW VARIABLE 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n", - "err2()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", - "err3()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" + "err2()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n1->2;\n2[label=\"Node Type: EXPRESSION 2\n\"];\n}\n", + "err3()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n", + "err4()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n" }, "A": { "f()": "digraph{\n0[label=\"Node Type: ENTRY_POINT 0\n\"];\n0->1;\n1[label=\"Node Type: EXPRESSION 1\n\"];\n}\n"