mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Update tests.
This commit is contained in:
parent
36022493df
commit
afa5f528f5
@ -7895,7 +7895,7 @@ BOOST_AUTO_TEST_CASE(tuples)
|
|||||||
if (a != 1 || b != 2 || c[0] != 3) return 2;
|
if (a != 1 || b != 2 || c[0] != 3) return 2;
|
||||||
(a, b) = (b, a);
|
(a, b) = (b, a);
|
||||||
if (a != 2 || b != 1) return 3;
|
if (a != 2 || b != 1) return 3;
|
||||||
(a, , b, ) = (8, 9, 10, 11, 12);
|
(a, , b, , ) = (8, 9, 10, 11, 12);
|
||||||
if (a != 8 || b != 10) return 4;
|
if (a != 8 || b != 10) return 4;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -7983,7 +7983,7 @@ BOOST_AUTO_TEST_CASE(destructuring_assignment)
|
|||||||
if (loc != 3) return 9;
|
if (loc != 3) return 9;
|
||||||
if (memArray.length != arrayData.length) return 10;
|
if (memArray.length != arrayData.length) return 10;
|
||||||
bytes memory memBytes;
|
bytes memory memBytes;
|
||||||
(x, memBytes, y[2], ) = (456, s, 789, 101112, 131415);
|
(x, memBytes, y[2], , ) = (456, s, 789, 101112, 131415);
|
||||||
if (x != 456 || memBytes.length != s.length || y[2] != 789) return 11;
|
if (x != 456 || memBytes.length != s.length || y[2] != 789) return 11;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -7992,31 +7992,6 @@ BOOST_AUTO_TEST_CASE(destructuring_assignment)
|
|||||||
ABI_CHECK(callContractFunction("f(bytes)", u256(0x20), u256(5), string("abcde")), encodeArgs(u256(0)));
|
ABI_CHECK(callContractFunction("f(bytes)", u256(0x20), u256(5), string("abcde")), encodeArgs(u256(0)));
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(destructuring_assignment_wildcard)
|
|
||||||
{
|
|
||||||
char const* sourceCode = R"(
|
|
||||||
contract C {
|
|
||||||
function f() public returns (uint) {
|
|
||||||
uint a;
|
|
||||||
uint b;
|
|
||||||
uint c;
|
|
||||||
(a,) = (1,);
|
|
||||||
if (a != 1) return 1;
|
|
||||||
(,b) = (2,3,4);
|
|
||||||
if (b != 4) return 2;
|
|
||||||
(, c,) = (5,6,7);
|
|
||||||
if (c != 6) return 3;
|
|
||||||
(a, b,) = (11, 12, 13);
|
|
||||||
if (a != 11 || b != 12) return 4;
|
|
||||||
(, a, b) = (11, 12, 13);
|
|
||||||
if (a != 12 || b != 13) return 5;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)";
|
|
||||||
compileAndRun(sourceCode);
|
|
||||||
ABI_CHECK(callContractFunction("f()"), encodeArgs(u256(0)));
|
|
||||||
}
|
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(lone_struct_array_type)
|
BOOST_AUTO_TEST_CASE(lone_struct_array_type)
|
||||||
{
|
{
|
||||||
char const* sourceCode = R"(
|
char const* sourceCode = R"(
|
||||||
|
@ -0,0 +1,11 @@
|
|||||||
|
contract C {
|
||||||
|
function f() public pure returns (uint, uint, bytes32) {
|
||||||
|
uint a;
|
||||||
|
bytes32 b;
|
||||||
|
(a,) = f();
|
||||||
|
(,b) = f();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// ----
|
||||||
|
// TypeError: (103-106): Type tuple(uint256,uint256,bytes32) is not implicitly convertible to expected type tuple(uint256,).
|
||||||
|
// TypeError: (117-120): Type tuple(uint256,uint256,bytes32) is not implicitly convertible to expected type tuple(,bytes32).
|
@ -6,5 +6,5 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
|
// TypeError: (89-101): Type tuple(int_const 1,int_const 2,struct C.S storage ref,struct C.S storage ref) is not implicitly convertible to expected type tuple(,struct C.S storage ref,struct C.S storage ref).
|
||||||
// Warning: (79-101): This assignment performs two copies to storage. Since storage copies do not first copy to a temporary location, one of them might be overwritten before the second is executed and thus may have unexpected effects. It is safer to perform the copies separately or assign to storage pointers first.
|
// Warning: (79-101): This assignment performs two copies to storage. Since storage copies do not first copy to a temporary location, one of them might be overwritten before the second is executed and thus may have unexpected effects. It is safer to perform the copies separately or assign to storage pointers first.
|
||||||
// Warning: (79-101): Different number of components on the left hand side (3) than on the right hand side (4).
|
|
@ -6,5 +6,5 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
|
// TypeError: (90-102): Type tuple(struct C.S storage ref,struct C.S storage ref,int_const 1,int_const 2) is not implicitly convertible to expected type tuple(struct C.S storage ref,struct C.S storage ref,).
|
||||||
// Warning: (79-102): This assignment performs two copies to storage. Since storage copies do not first copy to a temporary location, one of them might be overwritten before the second is executed and thus may have unexpected effects. It is safer to perform the copies separately or assign to storage pointers first.
|
// Warning: (79-102): This assignment performs two copies to storage. Since storage copies do not first copy to a temporary location, one of them might be overwritten before the second is executed and thus may have unexpected effects. It is safer to perform the copies separately or assign to storage pointers first.
|
||||||
// Warning: (79-102): Different number of components on the left hand side (3) than on the right hand side (4).
|
|
@ -8,5 +8,5 @@ contract C {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// ----
|
// ----
|
||||||
// TypeError: (126-136): Different number of components on the left hand side (2) than on the right hand side (3).
|
// TypeError: (133-136): Type tuple(uint256,uint256,bytes32) is not implicitly convertible to expected type tuple(uint256,).
|
||||||
// TypeError: (140-150): Different number of components on the left hand side (2) than on the right hand side (3).
|
// TypeError: (147-150): Type tuple(uint256,uint256,bytes32) is not implicitly convertible to expected type tuple(,bytes32).
|
||||||
|
@ -1,8 +0,0 @@
|
|||||||
contract C {
|
|
||||||
function f() public pure {
|
|
||||||
uint a;
|
|
||||||
(a,) = (uint(1),);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// ----
|
|
||||||
// Warning: (53-70): Different number of components on the left hand side (2) than on the right hand side (1).
|
|
@ -1,11 +0,0 @@
|
|||||||
contract C {
|
|
||||||
function f() public pure returns (uint, uint, bytes32) {
|
|
||||||
uint a;
|
|
||||||
bytes32 b;
|
|
||||||
(a,) = f();
|
|
||||||
(,b) = f();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// ----
|
|
||||||
// Warning: (96-106): Different number of components on the left hand side (2) than on the right hand side (3).
|
|
||||||
// Warning: (110-120): Different number of components on the left hand side (2) than on the right hand side (3).
|
|
Loading…
Reference in New Issue
Block a user