mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Update test wrt requiring storage locations.
This commit is contained in:
+1
-2
@@ -4,11 +4,10 @@ contract test {
|
||||
function f() public {
|
||||
uint[] storage s1 = a;
|
||||
uint[] memory s2 = new uint[](42);
|
||||
uint[] s3 = b;
|
||||
uint[] storage s3 = b;
|
||||
s1.push(42);
|
||||
s2[3] = 12;
|
||||
s3.push(42);
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning: (147-156): Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
|
||||
|
||||
+2
-3
@@ -1,6 +1,5 @@
|
||||
contract C {
|
||||
function f() public { string x = "abc"; }
|
||||
function f() public { string storage x = "abc"; }
|
||||
}
|
||||
// ----
|
||||
// Warning: (39-47): Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
|
||||
// TypeError: (39-55): Type literal_string "abc" is not implicitly convertible to expected type string storage pointer.
|
||||
// TypeError: (39-63): Type literal_string "abc" is not implicitly convertible to expected type string storage pointer.
|
||||
|
||||
+2
-3
@@ -3,15 +3,14 @@ contract C {
|
||||
struct S { uint a; uint b; uint[20][20][20] c; R d; }
|
||||
S data;
|
||||
function f() public {
|
||||
C.S x = data;
|
||||
C.S storage x = data;
|
||||
C.S memory y;
|
||||
C.S[10] memory z;
|
||||
C.S[10];
|
||||
y.a = 2;
|
||||
x.c[1][2][3] = 9;
|
||||
x.d.y[2][2] = 3;
|
||||
z;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning: (150-155): Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
|
||||
// Warning: (194-210): Unused local variable.
|
||||
|
||||
+2
-3
@@ -1,8 +1,7 @@
|
||||
contract C {
|
||||
function f() public {
|
||||
uint[3] x = [45, 'foo', true];
|
||||
uint[3] memory x = [45, 'foo', true];
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning: (47-56): Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
|
||||
// TypeError: (59-76): Unable to deduce common type for array elements.
|
||||
// TypeError: (66-83): Unable to deduce common type for array elements.
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
contract C {
|
||||
struct S { uint a; }
|
||||
S m_x;
|
||||
uint[] m_y;
|
||||
function f() view public {
|
||||
S x = m_x;
|
||||
uint[] y = m_y;
|
||||
x; y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// TypeError: (104-107): Data location must be specified as either "memory" or "storage".
|
||||
// TypeError: (123-131): Data location must be specified as either "memory" or "storage".
|
||||
@@ -1,10 +0,0 @@
|
||||
contract C {
|
||||
struct S { uint a; }
|
||||
S x;
|
||||
function f() view public {
|
||||
S y = x;
|
||||
y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning: (86-89): Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
|
||||
@@ -1,11 +0,0 @@
|
||||
pragma experimental "v0.5.0";
|
||||
contract C {
|
||||
struct S { uint a; }
|
||||
S x;
|
||||
function f() view public {
|
||||
S y = x;
|
||||
y;
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// TypeError: (116-119): Data location must be specified as either "memory" or "storage".
|
||||
+2
-3
@@ -1,8 +1,7 @@
|
||||
contract C {
|
||||
function f() pure public {
|
||||
string x = "abc";
|
||||
string storage x = "abc";
|
||||
}
|
||||
}
|
||||
// ----
|
||||
// Warning: (52-60): Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
|
||||
// TypeError: (52-68): Type literal_string "abc" is not implicitly convertible to expected type string storage pointer.
|
||||
// TypeError: (52-76): Type literal_string "abc" is not implicitly convertible to expected type string storage pointer.
|
||||
|
||||
@@ -1,8 +1,6 @@
|
||||
contract c {
|
||||
function f() public { c[10] a = 7; uint8[10 * 2] x; }
|
||||
function f() public { c[10] storage a = 7; uint8[10 * 2] storage x; }
|
||||
}
|
||||
// ----
|
||||
// Warning: (39-46): Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
|
||||
// Warning: (52-67): Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning.
|
||||
// TypeError: (39-50): Type int_const 7 is not implicitly convertible to expected type contract c[10] storage pointer.
|
||||
// DeclarationError: (52-67): Uninitialized storage pointer. Did you mean '<type> memory x'?
|
||||
// TypeError: (39-58): Type int_const 7 is not implicitly convertible to expected type contract c[10] storage pointer.
|
||||
// DeclarationError: (60-83): Uninitialized storage pointer.
|
||||
|
||||
Reference in New Issue
Block a user