Skip to content

Commit 04cd39e

Browse files
8.2.2 Release
8.2.2 Release 7308a93ca35c5a1e6b93c8cfdb52ab8da932b372
2 parents a27f12a + be892be commit 04cd39e

File tree

126 files changed

+4415
-1304
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

126 files changed

+4415
-1304
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
.idea/
2+

Public/TestEVM/FunctionFinders/EmptyModifiers/Test.sol

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ contract Test {
66
_;
77
}
88

9-
function int_f(string memory) internal initOnly returns (uint) {
9+
function int_f(string memory y) internal initOnly returns (uint) {
1010
return 0;
1111
}
1212

Public/TestEVM/MethodPickingTest/Bad.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
"C.sol:D",
55
"C.sol:E"
66
],
7-
method: ["C.foo(uint256,bool[3][])", "D.foo((uint256,bool[3][]))"],
7+
method: ["C.foo(uint256,bool[3][2])", "D.foo((uint256,bool[3][2]))"],
88
verify: "C:C.spec"
99
}

Public/TestEVM/MethodPickingTest/C.sol

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
contract C {
22
struct S {
33
uint a;
4-
bool[3][] b;
4+
bool[3][2] b;
55
}
66

77
function foo(S memory s) external {}
@@ -11,7 +11,7 @@ contract C {
1111
contract D {
1212
struct S {
1313
uint a;
14-
bool[3][] b;
14+
bool[3][2] b;
1515
}
1616

1717
function bar(S memory s) external {}
@@ -21,7 +21,7 @@ contract D {
2121
contract E {
2222
struct S {
2323
uint a;
24-
bool[3][] b;
24+
bool[3][2] b;
2525
}
2626

2727
function foo(S memory s) external {}

Public/TestEVM/MethodPickingTest/C.spec

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,5 @@ rule r(method f, env e, calldataarg args) {
22
f(e, args);
33
satisfy true;
44
}
5+
6+
invariant i() 5 >= 0;

Public/TestEVM/MethodPickingTest/ExcludeOnly.conf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
"C.sol:E"
66
],
77
exclude_method: [
8-
"foo((uint256,bool[3][]))", // Should exclude only C.foo
9-
"D.bar((uint256,bool[3][]))", // Should exclude only D.bar
10-
"_.baz((uint256,bool[3][]))" // Should exclude both D.baz and E.baz
8+
"foo((uint256,bool[3][2]))", // Should exclude only C.foo
9+
"D.bar((uint256,bool[3][2]))", // Should exclude only D.bar
10+
"_.baz((uint256,bool[3][2]))" // Should exclude both D.baz and E.baz
1111
],
1212
verify: "C:C.spec"
1313
}

Public/TestEVM/MethodPickingTest/IncludeAndExclude.conf

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
"C.sol:E"
66
],
77
method: [
8-
"foo((uint256,bool[3][]))", // Should take only C.foo
9-
"D.bar((uint256,bool[3][]))", // Should take only D.bar
10-
"_.baz((uint256,bool[3][]))" // Should take both D.baz and E.baz
8+
"foo((uint256,bool[3][2]))", // Should take only C.foo
9+
"D.bar((uint256,bool[3][2]))", // Should take only D.bar
10+
"_.baz((uint256,bool[3][2]))" // Should take both D.baz and E.baz
1111
],
1212
exclude_method: [
13-
"D.baz((uint256,bool[3][]))" // should remove D.baz from the set
13+
"D.baz((uint256,bool[3][2]))" // should remove D.baz from the set
1414
],
1515
verify: "C:C.spec"
1616
}

Public/TestEVM/MethodPickingTest/IncludeOnly.conf

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
"C.sol:E"
66
],
77
method: [
8-
"foo((uint256,bool[3][]))", // Should take only C.foo
9-
"D.bar((uint256,bool[3][]))", // Should take only D.bar
10-
"_.baz((uint256,bool[3][]))" // Should take both D.baz and E.baz
8+
"foo((uint256,bool[3][2]))", // Should take only C.foo
9+
"D.bar((uint256,bool[3][2]))", // Should take only D.bar
10+
"_.baz((uint256,bool[3][2]))" // Should take both D.baz and E.baz
1111
],
1212
verify: "C:C.spec"
1313
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
Error in spec file: Could not find a method named C.foo(uint256,bool[3][]) in the scene. Did you mean C.foo((uint256,bool[3][]))?
2-
Error in spec file: Could not find a method named D.foo((uint256,bool[3][])) in the scene. Did you mean C.foo((uint256,bool[3][])) or E.foo((uint256,bool[3][]))?
1+
Error in spec file: Could not find a method named C.foo(uint256,bool[3][2]) in the scene. Did you mean C.foo((uint256,bool[3][2]))?
2+
Error in spec file: Could not find a method named D.foo((uint256,bool[3][2])) in the scene. Did you mean C.foo((uint256,bool[3][2])) or E.foo((uint256,bool[3][2]))?

Public/TestEVM/MethodPickingTest/expectedExcludeOnly.json

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,22 @@
55
"FAIL": [],
66
"SANITY_FAIL": [],
77
"SUCCESS": [
8-
"C.bar((uint256,bool[3][]))",
9-
"E.foo((uint256,bool[3][]))"
8+
"C.bar((uint256,bool[3][2]))",
9+
"E.foo((uint256,bool[3][2]))"
1010
],
1111
"TIMEOUT": [],
1212
"UNKNOWN": []
13-
}
14-
}
15-
}
13+
},
14+
"i": {
15+
"Induction base: After the constructor": "SANITY_FAIL",
16+
"Induction step: after external (non-view) methods": {
17+
"Using general requirements": {
18+
"SANITY_FAIL": [
19+
"C.bar((uint256,bool[3][2]))",
20+
"E.foo((uint256,bool[3][2]))"
21+
]
22+
}
23+
}
24+
}
25+
}
26+
}

0 commit comments

Comments
 (0)