mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge pull request #5061 from ethereum/fixedSizeArrayLength
Disallow fixed-size arrays with zero length
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
contract C {
|
||||
function a() public pure returns(int[0][500] memory) {}
|
||||
function b() public pure returns(uint[0][500] memory) {}
|
||||
function c() public pure returns(byte[0][500] memory) {}
|
||||
function d() public pure returns(bytes32[0][500] memory) {}
|
||||
function e() public pure returns(bytes[0][500] memory) {}
|
||||
function e() public pure returns(string[0][500] memory) {}
|
||||
}
|
||||
// ----
|
||||
// TypeError: (52-53): Array with zero length specified.
|
||||
// TypeError: (111-112): Array with zero length specified.
|
||||
// TypeError: (170-171): Array with zero length specified.
|
||||
// TypeError: (232-233): Array with zero length specified.
|
||||
// TypeError: (292-293): Array with zero length specified.
|
||||
// TypeError: (353-354): Array with zero length specified.
|
||||
@@ -0,0 +1,15 @@
|
||||
contract C {
|
||||
int[0] a;
|
||||
uint[0] b;
|
||||
byte[0] c;
|
||||
bytes32[0] d;
|
||||
bytes[0] e;
|
||||
string[0] f;
|
||||
}
|
||||
// ----
|
||||
// TypeError: (19-20): Array with zero length specified.
|
||||
// TypeError: (32-33): Array with zero length specified.
|
||||
// TypeError: (45-46): Array with zero length specified.
|
||||
// TypeError: (61-62): Array with zero length specified.
|
||||
// TypeError: (75-76): Array with zero length specified.
|
||||
// TypeError: (90-91): Array with zero length specified.
|
||||
@@ -21,5 +21,5 @@ contract C {
|
||||
uint[((2) + 1) + 1] a12;
|
||||
uint[(2 + 1) + ((1))] a13;
|
||||
uint[(((2) + 1)) + (((1)))] a14;
|
||||
uint[((((2) + 1)) + (((1))))%1] a15;
|
||||
uint[((((3) + 1)) + (((1))))%2] a15;
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
contract c {
|
||||
uint[10] a;
|
||||
uint[] a2;
|
||||
struct x { uint[2**20] b; y[0] c; }
|
||||
struct x { uint[2**20] b; y[1] c; }
|
||||
struct y { uint d; mapping(uint=>x)[] e; }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user