Move AST annotation of internal function dispatch IDs to ContractDefinition

Co-authored-by: Daniel <daniel@ekpyron.org>
Co-authored-by: Nikola Matić <nikola.matic@ethereum.org>
This commit is contained in:
Rodrigo Q. Saramago
2023-05-06 20:31:27 +02:00
co-authored by Daniel Nikola Matić
parent 41742c5410
commit a29f77369a
9 changed files with 1110 additions and 17 deletions
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,38 @@
==== Source: L ====
function free1() {}
function free2() {}
library L {
function g() internal {}
function h() internal {}
}
==== Source: A ====
import "L";
contract A {
function f() public {
(L.g)();
(free2)();
(L.h)();
}
}
contract B {
function f() public {
(L.h)();
(free2)();
}
}
==== Source: C ====
import "L";
contract C {
function f() public {
(L.g)();
(free2)();
(L.h)();
}
}
// ----
@@ -41,7 +41,6 @@
},
"id": 4,
"implemented": true,
"internalFunctionID": 1,
"kind": "freeFunction",
"modifiers": [],
"name": "free1",
@@ -77,7 +76,6 @@
},
"id": 8,
"implemented": true,
"internalFunctionID": 2,
"kind": "freeFunction",
"modifiers": [],
"name": "free2",
@@ -146,6 +144,13 @@
"contractKind": "library",
"fullyImplemented": true,
"id": 53,
"internalFunctionIDs":
{
"20": 3,
"24": 4,
"4": 1,
"8": 2
},
"linearizedBaseContracts":
[
53
@@ -201,7 +206,6 @@
},
"id": 20,
"implemented": true,
"internalFunctionID": 3,
"kind": "function",
"modifiers": [],
"name": "inr1",
@@ -237,7 +241,6 @@
},
"id": 24,
"implemented": true,
"internalFunctionID": 4,
"kind": "function",
"modifiers": [],
"name": "inr2",
@@ -579,6 +582,15 @@
"contractKind": "contract",
"fullyImplemented": true,
"id": 128,
"internalFunctionIDs":
{
"20": 3,
"24": 4,
"4": 1,
"69": 5,
"73": 6,
"8": 2
},
"linearizedBaseContracts":
[
128
@@ -706,7 +718,6 @@
},
"id": 69,
"implemented": true,
"internalFunctionID": 5,
"kind": "function",
"modifiers": [],
"name": "inr1",
@@ -742,7 +753,6 @@
},
"id": 73,
"implemented": true,
"internalFunctionID": 6,
"kind": "function",
"modifiers": [],
"name": "inr2",
@@ -1405,6 +1415,15 @@
"contractKind": "contract",
"fullyImplemented": true,
"id": 141,
"internalFunctionIDs":
{
"20": 3,
"24": 4,
"4": 1,
"69": 5,
"73": 6,
"8": 2
},
"linearizedBaseContracts":
[
141,