Disallow indexed reference types in events when using ABIEncoderV2

This commit is contained in:
Leonardo Alt
2018-09-06 18:28:14 +02:00
committed by chriseth
parent ba5625063c
commit 768ea5b0be
8 changed files with 52 additions and 0 deletions
@@ -0,0 +1,7 @@
pragma experimental ABIEncoderV2;
contract c {
event E(uint[] indexed);
}
// ----
// Warning: (0-33): Experimental features are turned on. Do not use experimental features on live deployments.
// TypeError: (59-65): Reference types cannot be indexed.
@@ -0,0 +1,6 @@
pragma experimental ABIEncoderV2;
contract c {
event E(uint[]);
}
// ----
// Warning: (0-33): Experimental features are turned on. Do not use experimental features on live deployments.
@@ -0,0 +1,7 @@
pragma experimental ABIEncoderV2;
contract c {
event E(uint[][] indexed);
}
// ----
// Warning: (0-33): Experimental features are turned on. Do not use experimental features on live deployments.
// TypeError: (59-67): Reference types cannot be indexed.
@@ -0,0 +1,6 @@
pragma experimental ABIEncoderV2;
contract c {
event E(uint[][]);
}
// ----
// Warning: (0-33): Experimental features are turned on. Do not use experimental features on live deployments.
@@ -0,0 +1,8 @@
pragma experimental ABIEncoderV2;
contract c {
struct S { uint a ; }
event E(S indexed);
}
// ----
// Warning: (0-33): Experimental features are turned on. Do not use experimental features on live deployments.
// TypeError: (85-86): Reference types cannot be indexed.
@@ -0,0 +1,7 @@
pragma experimental ABIEncoderV2;
contract c {
struct S { uint a ; }
event E(S);
}
// ----
// Warning: (0-33): Experimental features are turned on. Do not use experimental features on live deployments.