Additional tests for edge cases for mutability, visibility, location, experimental, global, indexed and anonymous

This commit is contained in:
vlad
2023-01-20 20:05:36 +01:00
committed by Kamil Śliwak
parent 7fbd36855d
commit 484ee8a621
57 changed files with 1794 additions and 183 deletions
@@ -0,0 +1,13 @@
==== Source: A ====
uint external a;
==== Source: B ====
uint internal a;
==== Source: C ====
uint public a;
==== Source: D ====
uint private a;
// ----
// ParserError 2314: (A:5-13): Expected identifier but got 'external'
// ParserError 2314: (B:5-13): Expected identifier but got 'internal'
// ParserError 2314: (C:5-11): Expected identifier but got 'public'
// ParserError 2314: (D:5-12): Expected identifier but got 'private'
@@ -0,0 +1,41 @@
==== Source: A ====
contract test {
function f(uint external a) public returns (uint) { }
}
==== Source: B ====
contract test {
function f(uint internal a) public returns (uint) { }
}
==== Source: C ====
contract test {
function f(uint public a) public returns (uint) { }
}
==== Source: D ====
contract test {
function f(uint private a) public returns (uint) { }
}
==== Source: E ====
contract test {
function f(uint a) public returns (uint external) { }
}
==== Source: F ====
contract test {
function f(uint a) public returns (uint internal) { }
}
==== Source: G ====
contract test {
function f(uint a) public returns (uint public) { }
}
==== Source: H ====
contract test {
function f(uint a) public returns (uint private) { }
}
// ----
// ParserError 2314: (A:36-44): Expected ',' but got 'external'
// ParserError 2314: (B:36-44): Expected ',' but got 'internal'
// ParserError 2314: (C:36-42): Expected ',' but got 'public'
// ParserError 2314: (D:36-43): Expected ',' but got 'private'
// ParserError 2314: (E:60-68): Expected ',' but got 'external'
// ParserError 2314: (F:60-68): Expected ',' but got 'internal'
// ParserError 2314: (G:60-66): Expected ',' but got 'public'
// ParserError 2314: (H:60-67): Expected ',' but got 'private'
@@ -0,0 +1,29 @@
==== Source: A ====
contract test {
function f(uint a) public {
uint public a;
}
}
==== Source: B ====
contract test {
function f(uint a) public {
uint private a;
}
}
==== Source: C ====
contract test {
function f(uint a) public {
uint external a;
}
}
==== Source: D ====
contract test {
function f(uint a) public {
uint internal a;
}
}
// ----
// ParserError 2314: (A:61-67): Expected ';' but got 'public'
// ParserError 2314: (B:61-68): Expected ';' but got 'private'
// ParserError 2314: (C:61-69): Expected ';' but got 'external'
// ParserError 2314: (D:61-69): Expected ';' but got 'internal'
@@ -0,0 +1,53 @@
contract C {
uint private internal a;
uint private public b;
uint private private c;
uint internal internal e;
uint internal public f;
uint internal private g;
uint public internal h;
uint public public i;
uint public private j;
function f1() private external {}
function f2() private internal {}
function f3() private public {}
function f4() private private {}
function f5() external external {}
function f6() external internal {}
function f7() external public {}
function f8() external private {}
function f9() internal external {}
function f10() internal internal {}
function f11() internal public {}
function f12() internal private {}
function f13() public external {}
function f14() public internal {}
function f15() public public {}
function f16() public private {}
}
// ----
// ParserError 4110: (30-38): Visibility already specified as "private".
// ParserError 4110: (59-65): Visibility already specified as "private".
// ParserError 4110: (86-93): Visibility already specified as "private".
// ParserError 4110: (115-123): Visibility already specified as "internal".
// ParserError 4110: (145-151): Visibility already specified as "internal".
// ParserError 4110: (173-180): Visibility already specified as "internal".
// ParserError 4110: (200-208): Visibility already specified as "public".
// ParserError 4110: (228-234): Visibility already specified as "public".
// ParserError 4110: (254-261): Visibility already specified as "public".
// ParserError 9439: (291-299): Visibility already specified as "private".
// ParserError 9439: (329-337): Visibility already specified as "private".
// ParserError 9439: (367-373): Visibility already specified as "private".
// ParserError 9439: (403-410): Visibility already specified as "private".
// ParserError 9439: (441-449): Visibility already specified as "external".
// ParserError 9439: (480-488): Visibility already specified as "external".
// ParserError 9439: (519-525): Visibility already specified as "external".
// ParserError 9439: (556-563): Visibility already specified as "external".
// ParserError 9439: (594-602): Visibility already specified as "internal".
// ParserError 9439: (634-642): Visibility already specified as "internal".
// ParserError 9439: (674-680): Visibility already specified as "internal".
// ParserError 9439: (712-719): Visibility already specified as "internal".
// ParserError 9439: (749-757): Visibility already specified as "public".
// ParserError 9439: (787-795): Visibility already specified as "public".
// ParserError 9439: (825-831): Visibility already specified as "public".
// ParserError 9439: (861-868): Visibility already specified as "public".
@@ -0,0 +1,16 @@
==== Source: A ====
contract C {
uint external external x;
}
==== Source: B ====
contract C {
uint internal external x;
}
==== Source: C ====
contract C {
uint external internal x;
}
// ----
// ParserError 2314: (A:22-30): Expected identifier but got 'external'
// ParserError 2314: (B:31-39): Expected identifier but got 'external'
// ParserError 2314: (C:22-30): Expected identifier but got 'external'