From 1dbf2d19238068c19ef369e6fa2fb1b2f8ab1d13 Mon Sep 17 00:00:00 2001 From: Alex Beregszaszi Date: Tue, 24 Jul 2018 00:19:12 +0100 Subject: [PATCH] Add comprehensive syntax tests for indexed access --- .../syntaxTests/indexing/array_out_of_bounds_index.sol | 8 ++++++++ .../syntaxTests/indexing/array_without_index.sol | 8 ++++++++ .../indexing/fixedbytes_out_of_bounds_index.sol | 8 ++++++++ .../syntaxTests/indexing/fixedbytes_without_index.sol | 8 ++++++++ test/libsolidity/syntaxTests/indexing/function_type.sol | 7 +++++++ .../syntaxTests/indexing/function_type_without_index.sol | 7 +++++++ 6 files changed, 46 insertions(+) create mode 100644 test/libsolidity/syntaxTests/indexing/array_out_of_bounds_index.sol create mode 100644 test/libsolidity/syntaxTests/indexing/array_without_index.sol create mode 100644 test/libsolidity/syntaxTests/indexing/fixedbytes_out_of_bounds_index.sol create mode 100644 test/libsolidity/syntaxTests/indexing/fixedbytes_without_index.sol create mode 100644 test/libsolidity/syntaxTests/indexing/function_type.sol create mode 100644 test/libsolidity/syntaxTests/indexing/function_type_without_index.sol diff --git a/test/libsolidity/syntaxTests/indexing/array_out_of_bounds_index.sol b/test/libsolidity/syntaxTests/indexing/array_out_of_bounds_index.sol new file mode 100644 index 000000000..b00798570 --- /dev/null +++ b/test/libsolidity/syntaxTests/indexing/array_out_of_bounds_index.sol @@ -0,0 +1,8 @@ +contract C { + function f() public { + bytes[32] memory a; + a[64]; + } +} +// ---- +// TypeError: (65-70): Out of bounds array access. diff --git a/test/libsolidity/syntaxTests/indexing/array_without_index.sol b/test/libsolidity/syntaxTests/indexing/array_without_index.sol new file mode 100644 index 000000000..6b1c27781 --- /dev/null +++ b/test/libsolidity/syntaxTests/indexing/array_without_index.sol @@ -0,0 +1,8 @@ +contract C { + function f() public { + bytes memory a; + a[]; + } +} +// ---- +// TypeError: (61-64): Index expression cannot be omitted. diff --git a/test/libsolidity/syntaxTests/indexing/fixedbytes_out_of_bounds_index.sol b/test/libsolidity/syntaxTests/indexing/fixedbytes_out_of_bounds_index.sol new file mode 100644 index 000000000..8264a8b29 --- /dev/null +++ b/test/libsolidity/syntaxTests/indexing/fixedbytes_out_of_bounds_index.sol @@ -0,0 +1,8 @@ +contract C { + function f() public { + bytes32 b; + b[64]; + } +} +// ---- +// TypeError: (56-61): Out of bounds array access. diff --git a/test/libsolidity/syntaxTests/indexing/fixedbytes_without_index.sol b/test/libsolidity/syntaxTests/indexing/fixedbytes_without_index.sol new file mode 100644 index 000000000..979ac8a7f --- /dev/null +++ b/test/libsolidity/syntaxTests/indexing/fixedbytes_without_index.sol @@ -0,0 +1,8 @@ +contract C { + function f() public { + bytes32 b; + b[]; + } +} +// ---- +// TypeError: (56-59): Index expression cannot be omitted. diff --git a/test/libsolidity/syntaxTests/indexing/function_type.sol b/test/libsolidity/syntaxTests/indexing/function_type.sol new file mode 100644 index 000000000..6c6c06a93 --- /dev/null +++ b/test/libsolidity/syntaxTests/indexing/function_type.sol @@ -0,0 +1,7 @@ +contract C { + function f() public { + f[0]; + } +} +// ---- +// TypeError: (41-42): Indexed expression has to be a type, mapping or array (is function ()) diff --git a/test/libsolidity/syntaxTests/indexing/function_type_without_index.sol b/test/libsolidity/syntaxTests/indexing/function_type_without_index.sol new file mode 100644 index 000000000..bf511bc94 --- /dev/null +++ b/test/libsolidity/syntaxTests/indexing/function_type_without_index.sol @@ -0,0 +1,7 @@ +contract C { + function f() public { + f[]; + } +} +// ---- +// TypeError: (41-42): Indexed expression has to be a type, mapping or array (is function ())