aboutsummaryrefslogtreecommitdiffstats
path: root/test/buglist_test_vectors.md
diff options
context:
space:
mode:
Diffstat (limited to 'test/buglist_test_vectors.md')
-rw-r--r--test/buglist_test_vectors.md148
1 files changed, 148 insertions, 0 deletions
diff --git a/test/buglist_test_vectors.md b/test/buglist_test_vectors.md
new file mode 100644
index 00000000..e683f481
--- /dev/null
+++ b/test/buglist_test_vectors.md
@@ -0,0 +1,148 @@
+# NestedArrayFunctionCallDecoder
+
+## buggy
+
+function f() pure returns (uint[2][2]) { }
+
+--
+
+function f() returns (uint[2][2] a) { }
+
+--
+
+function f() returns (uint x, uint[200][2] a) { }
+
+--
+
+function f() returns (uint[200][2] a, uint x) { }
+
+--
+
+function f() returns (uint[200][2] a, uint x);
+
+--
+
+function f() returns (
+ uint
+ [
+ 200
+ ]
+ [2]
+ a, uint x);
+
+--
+
+function f() returns (
+ uint
+ [
+ ContractName.ConstantName
+ ]
+ [2]
+ a, uint x);
+
+## fine
+
+function f() returns (uint[2]) { }
+
+--
+
+function f() public pure returns (uint[2][] a) { }
+
+--
+
+function f() public pure returns (uint[ 2 ] [ ] a) { }
+
+--
+
+function f() public pure returns (uint x, uint[] a) { }
+
+--
+
+function f(uint[2][2]) { }
+
+--
+
+function f() m(uint[2][2]) { }
+
+--
+
+function f() returns (uint, uint) { uint[2][2] memory x; }
+
+# ExpExponentCleanup
+
+## buggy
+
+x ** y
+
+--
+
+x ** uint8(y)
+
+--
+
+x**y
+
+## fine
+
+x ** 2
+
+--
+
+x**2
+
+--
+
+x**200
+
+--
+
+/** bla **/
+
+--
+
+/**/
+
+# EventStructWrongData
+
+## buggy
+
+pragma experimental ABIEncoderV2;
+contract C
+{
+ struct S { uint x; }
+ event E(S);
+ event F(S);
+ enum A { B, C }
+ event G(A);
+ function f(S s);
+}
+
+--
+
+pragma experimental ABIEncoderV2;
+contract C
+{
+ struct S { uint x; }
+ event E(S indexed);
+ event F(uint, S, bool);
+}
+
+## fine
+
+pragma experimental ABIEncoderV2;
+contract C
+{
+ struct S { uint x; }
+ enum A { B, C }
+ event G(A);
+}
+
+--
+
+pragma experimental ABIEncoderV2;
+contract C
+{
+ struct S { uint x; }
+ function f(S s);
+ S s1;
+}