mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Additional tests for edge cases for mutability, visibility, location, experimental, global, indexed and anonymous
This commit is contained in:
@@ -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'
|
||||
+41
@@ -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'
|
||||
Reference in New Issue
Block a user