From 0993ab1f94e817b2767ab15469941ebcc317f09b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20=C5=9Aliwak?= Date: Thu, 19 Feb 2026 15:38:13 +0100 Subject: [PATCH 1/5] Reorganize calldata and abicoder semantic tests --- .../abi_decode_from_calldata.sol} | 0 .../abi_decode_from_calldata_dynamic_array.sol} | 0 .../abi_decode_from_calldata_static_array.sol} | 0 .../abi_decode_from_calldata_static_array_v2.sol} | 0 .../abi_decode_from_calldata_struct_v2.sol} | 0 .../abi_decode_from_memory_struct_v2.sol} | 0 .../abi_decode_from_storage_struct_v2.sol} | 0 .../abi_decode_offset_overflow_in_array.sol} | 0 .../abi_decode_offset_overflow_in_array_2.sol} | 0 .../abi_decode_offset_overflow_in_array_3.sol} | 0 .../abi_decode_overlapping_dynamic_arrays.sol} | 0 .../{abiEncodeDecode => abicoder}/abi_decode_simple.sol | 0 .../{abiEncodeDecode => abicoder}/abi_decode_simple_storage.sol | 0 .../decode_slice.sol => abicoder/abi_decode_slice.sol} | 0 .../{abiEncoderV1 => abicoder}/abi_decode_trivial.sol | 0 .../semanticTests/{abiEncoderV1 => abicoder}/abi_encode.sol | 0 .../semanticTests/{abiEncoderV1 => abicoder}/abi_encode_call.sol | 0 .../abi_encode_call_declaration_v2.sol} | 0 .../abi_encode_call_is_consistent_v2.sol} | 0 .../abi_encode_call_memory_v2.sol} | 0 .../abi_encode_call_special_args_v2.sol} | 0 .../{abiEncodeDecode => abicoder}/abi_encode_call_uint_bytes.sol | 0 .../abi_encode_call.sol => abicoder/abi_encode_call_v2.sol} | 0 .../{abiEncoderV1 => abicoder}/abi_encode_calldata_slice.sol | 0 .../abi_encode_calldata_slice_v2.sol} | 0 .../{abiEncoderV1 => abicoder}/abi_encode_decode_simple.sol | 0 .../abi_encode_empty_string_not_bytes0_v1.sol} | 0 .../abi_encode_empty_string_not_bytes0_v2.sol} | 0 .../abi_encode_empty_string_v1.sol} | 0 .../abi_encode_memory_dynamic_array_and_calldata_bytes_v1.sol} | 0 .../{abiEncoderV1 => abicoder}/abi_encode_rational.sol | 0 .../{abiEncoderV2 => abicoder}/abi_encode_rational_v2.sol | 0 .../abi_encode_storage_array_v2.sol} | 0 .../semanticTests/{abiEncoderV2 => abicoder}/abi_encode_v2.sol | 0 .../abi_encode_v2_in_function_inherited_in_v1_contract.sol | 0 .../abi_encode_v2_in_modifier_used_in_v1_contract.sol | 0 .../abi_encode_with_selector_v1.sol} | 0 .../abi_encode_with_selector_v2.sol} | 0 .../abi_encode_with_signature_v1.sol} | 0 .../abi_encode_with_signature_v2.sol} | 0 ...ug_abi_encoder_v2_head_overflow_with_static_array_cleanup.sol} | 0 .../calldataDecoding/array}/byte_arrays.sol | 0 .../array/calldata_array_2d_dynamic_dynamic_v2.sol} | 0 .../array/calldata_array_2d_dynamic_static_v2.sol} | 0 .../calldataDecoding/array/calldata_array_bytes_v2.sol} | 0 .../calldataDecoding/array/calldata_array_dynamic_of_uint_v2.sol} | 0 .../array/calldata_array_dynamic_of_value_types_v2.sol} | 0 .../array/calldata_array_dynamic_static_dynamic_v2.sol} | 0 .../array/calldata_array_dynamic_static_in_library_v2.sol} | 0 .../array/calldata_array_dynamic_static_short_decode_v2.sol} | 0 .../array/calldata_array_dynamic_static_short_reencode_v2.sol} | 0 .../calldataDecoding/array/calldata_array_function_types_v2.sol} | 0 .../calldataDecoding/array/calldata_array_indexing_1d_2d_v2.sol} | 0 .../array/calldata_array_indexing_3d_dynamic_v2.sol} | 0 .../calldataDecoding/array/calldata_array_indexing_3d_v2.sol} | 0 .../array/calldata_array_indexing_dynamic_bytes_v2.sol} | 0 .../array/calldata_array_indexing_dynamic_v2.sol} | 0 .../calldataDecoding/array/calldata_array_indexing_static_v2.sol} | 0 .../calldataDecoding/array/calldata_array_length_v2.sol} | 0 .../calldataDecoding/array/calldata_array_multi_dynamic_v2.sol} | 0 .../calldataDecoding/array/calldata_array_slicing_v2.sol} | 0 .../array/calldata_array_static_dynamic_static_v2.sol} | 0 .../calldataDecoding/array/calldata_array_static_of_uint_v2.sol} | 0 .../array/calldata_array_static_of_value_types_v2.sol} | 0 .../calldataDecoding/array/calldata_array_struct_dynamic_v2.sol} | 0 .../calldataDecoding/array/calldata_array_struct_static_v2.sol} | 0 .../calldataDecoding/array/calldata_array_two_dynamic_v2.sol} | 0 .../calldataDecoding/array/calldata_array_two_static_v2.sol} | 0 .../calldataDecoding/array/calldata_bytes_bytes32_arrays_v1.sol} | 0 .../array/calldata_dynamic_array_to_memory_v2.sol} | 0 .../calldataDecoding/array/calldata_nested_array_reencode_v2.sol} | 0 .../array/calldata_nested_array_static_reencode_v2.sol} | 0 .../array/calldata_overlapping_dynamic_arrays_v2.sol} | 0 .../array/calldata_overlapping_nested_dynamic_arrays_v2.sol} | 0 .../calldataDecoding/array/calldata_string_array_v2.sol} | 0 .../calldataDecoding/array/calldata_struct_array_reencode_v2.sol} | 0 .../calldataDecoding/array/memory_arrays_static.sol} | 0 .../array}/memory_dynamic_array_and_calldata_bytes.sol | 0 .../array}/memory_dynamic_array_and_calldata_static_array.sol | 0 .../calldataDecoding/array/memory_dynamic_arrays.sol} | 0 .../calldataDecoding/array/memory_dynamic_arrays_v2.sol} | 0 .../calldataDecoding/array/memory_dynamic_nested_arrays_v2.sol} | 0 .../array}/memory_params_in_external_function.sol | 0 .../array/memory_params_in_external_function_v2.sol} | 0 .../calldataDecoding}/copy_from_calldata_removes_bytes_data.sol | 0 .../calldataDecoding/struct/mediocre_dynamic_v2.sol} | 0 .../calldataDecoding/struct/mediocre_static_v2.sol} | 0 .../calldataDecoding/struct/member_array_dynamic2_v2.sol} | 0 .../struct/member_array_dynamic_multiple_fields_v2.sol} | 0 .../calldataDecoding/struct/member_array_dynamic_v2.sol} | 0 .../struct/member_array_static_mulitple_fields_v2.sol} | 0 .../calldataDecoding/struct/member_external_function_v2.sol} | 0 .../calldataDecoding/struct/member_offset_v2.sol} | 0 .../calldataDecoding/struct/multiple_structs_v2.sol} | 0 .../calldataDecoding/struct/nested_static_3_fields_v2.sol} | 0 .../calldataDecoding/struct/nested_static_4_fields_v2.sol} | 0 .../calldataDecoding/struct/nested_with_bytes_v2.sol} | 0 .../calldataDecoding/struct/nested_with_dynamic_array_v2.sol} | 0 .../struct/nested_with_dynamic_struct_array_v2.sol} | 0 .../calldataDecoding/struct/short_v2.sol} | 0 .../struct/simple_multiple_fields_short_types_v2.sol} | 0 .../calldataDecoding/struct/simple_multiple_fields_v2.sol} | 0 .../calldataDecoding/struct/simple_single_field_v2.sol} | 0 .../calldataDecoding/struct/struct_and_ints_v2.sol} | 0 .../cleanup/address.sol => abicoder/cleanup/address_v2.sol} | 0 .../bool_out_of_bounds.sol => abicoder/cleanup/bool_v1.sol} | 0 .../bool_out_of_bounds.sol => abicoder/cleanup/bool_v2.sol} | 0 .../bool.sol => abicoder/cleanup/bool_with_sanity_check_v2.sol} | 0 .../cleanup/bytesx.sol => abicoder/cleanup/bytesx_v2.sol} | 0 .../cleanup/cleanup.sol => abicoder/cleanup/cleanup_v1.sol} | 0 .../cleanup/cleanup.sol => abicoder/cleanup/cleanup_v2.sol} | 0 .../dynamic_array.sol => abicoder/cleanup/dynamic_array_v2.sol} | 0 .../{abiEncoderV1/enums.sol => abicoder/cleanup/enum_v1.sol} | 0 .../{abiEncoderV2/enums.sol => abicoder/cleanup/enum_v2.sol} | 0 .../cleanup/function.sol => abicoder/cleanup/function_v2.sol} | 0 .../cleanup/intx.sol => abicoder/cleanup/intx_v2.sol} | 0 .../cleanup/reencoded_calldata_string.sol | 0 .../static_array.sol => abicoder/cleanup/static_array_v2.sol} | 0 .../cleanup/struct2_v2.sol} | 0 .../cleanup/simple_struct.sol => abicoder/cleanup/struct_v2.sol} | 0 .../cleanup/uintx.sol => abicoder/cleanup/uintx_v2.sol} | 0 .../{abiEncodeDecode => abicoder}/contract_array.sol | 0 .../{abiEncodeDecode => abicoder}/contract_array_v2.sol | 0 .../libraryABI/storage_ptr.sol} | 0 .../return_dynamic_types_cross_call_advanced.sol | 0 .../return_dynamic_types_cross_call_out_of_range_homestead.sol} | 0 ...turn_dynamic_types_cross_call_out_of_range_post_homestead.sol} | 0 .../return_dynamic_types_cross_call_simple.sol | 0 .../validation/array_exceeds_calldatasize_no_revert_string.sol} | 0 .../validation/array_exceeds_calldatasize_v2.sol} | 0 .../validation/array_exceeds_size_limit_for_calldata_types.sol} | 0 .../calldata_array_dynamic_invalid_static_middle_v2.sol} | 0 .../validation/calldata_array_dynamic_invalid_v2.sol} | 0 .../validation/calldata_with_garbage_v2.sol} | 0 .../validation/external_function_type_inside_struct_v2.sol} | 0 .../validation/static_struct_v2.sol} | 0 .../calldata_array_bounds_check_nested_bytes.sol} | 0 ...y_bounds.sol => calldata_array_bounds_check_nested_bytes2.sol} | 0 ...calldata_to_memory.sol => nested_array_calldata_to_memory.sol} | 0 ...lldata_to_storage.sol => nested_array_calldata_to_storage.sol} | 0 .../nested_array_dynamic_dynamic_calldata_to_storage.sol} | 0 .../nested_array_dynamic_static_calldata_to_storage.sol} | 0 ...d_memory_to_storage.sol => nested_array_memory_to_storage.sol} | 0 ...d_storage_to_memory.sol => nested_array_storage_to_memory.sol} | 0 .../calldata_array_slicing.sol} | 0 .../{calldata => conversions}/calldata_bytes_to_memory.sol | 0 .../calldata_bytes_to_memory_reencode.sol} | 0 .../calldata_and_memory_arguments.sol} | 0 .../calldata_argument_external_bytes.sol} | 0 .../calldata_argument_internal_bytes.sol} | 0 .../calldata_argument_internal_dynamic_array_v2.sol} | 0 .../calldata_argument_internal_library_bytes.sol} | 0 .../calldata_argument_internal_library_dynamic_struct_v2.sol} | 0 .../calldata_argument_internal_library_static_struct_v2.sol} | 0 .../calldata_argument_internal_multi_array_v2.sol} | 0 .../calldata_argument_internal_multi_static_array_v2.sol} | 0 .../calldata_argument_internal_struct_as_memory_v2.sol} | 0 .../calldata_argument_internal_struct_v2.sol} | 0 .../internal_function_pointer_with_calldata_args.sol} | 0 ...ary_function_accepting_calldata_dynamic_array_or_slice_v2.sol} | 0 ...ernal_library_function_accepting_calldata_static_array_v2.sol} | 0 ...ed_internal_library_function_accepting_calldata_struct_v2.sol} | 0 .../attached_internal_library_function_accepting_calldata_v2.sol} | 0 ...ol => attached_public_library_function_accepting_calldata.sol} | 0 .../copy_struct_with_nested_struct_from_calldata_to_memory.sol} | 0 ...ory.sol => struct_copy_calldata_to_memory_nested_bytes_v2.sol} | 0 ...=> struct_copy_calldata_to_memory_nested_dynamic_array_v2.sol} | 0 ... => struct_copy_calldata_to_memory_nested_static_array_v2.sol} | 0 ...le_assignment.sol => struct_copy_calldata_to_memory_tuple.sol} | 0 ...struct_to_memory.sol => struct_copy_calldata_to_memory_v2.sol} | 0 ...> struct_copy_calldata_to_storage_nested_dynamic_array_v2.sol} | 0 ...ruct_to_storage.sol => struct_copy_calldata_to_storage_v2.sol} | 0 172 files changed, 0 insertions(+), 0 deletions(-) rename test/libsolidity/semanticTests/{abiEncodeDecode/abi_decode_calldata.sol => abicoder/abi_decode_from_calldata.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/abi_decode_dynamic_array.sol => abicoder/abi_decode_from_calldata_dynamic_array.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/abi_decode_static_array.sol => abicoder/abi_decode_from_calldata_static_array.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/abi_decode_static_array_v2.sol => abicoder/abi_decode_from_calldata_static_array_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/abi_decode_v2_calldata.sol => abicoder/abi_decode_from_calldata_struct_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/abi_decode_v2.sol => abicoder/abi_decode_from_memory_struct_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/abi_decode_v2_storage.sol => abicoder/abi_decode_from_storage_struct_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode/offset_overflow_in_array_decoding.sol => abicoder/abi_decode_offset_overflow_in_array.sol} (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode/offset_overflow_in_array_decoding_2.sol => abicoder/abi_decode_offset_overflow_in_array_2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode/offset_overflow_in_array_decoding_3.sol => abicoder/abi_decode_offset_overflow_in_array_3.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/dynamic_memory_copy.sol => abicoder/abi_decode_overlapping_dynamic_arrays.sol} (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode => abicoder}/abi_decode_simple.sol (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode => abicoder}/abi_decode_simple_storage.sol (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/decode_slice.sol => abicoder/abi_decode_slice.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1 => abicoder}/abi_decode_trivial.sol (100%) rename test/libsolidity/semanticTests/{abiEncoderV1 => abicoder}/abi_encode.sol (100%) rename test/libsolidity/semanticTests/{abiEncoderV1 => abicoder}/abi_encode_call.sol (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode/abi_encode_call_declaration.sol => abicoder/abi_encode_call_declaration_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode/abi_encode_call_is_consistent.sol => abicoder/abi_encode_call_is_consistent_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode/abi_encode_call_memory.sol => abicoder/abi_encode_call_memory_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode/abi_encode_call_special_args.sol => abicoder/abi_encode_call_special_args_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode => abicoder}/abi_encode_call_uint_bytes.sol (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode/abi_encode_call.sol => abicoder/abi_encode_call_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1 => abicoder}/abi_encode_calldata_slice.sol (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/abi_encode_calldata_slice.sol => abicoder/abi_encode_calldata_slice_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1 => abicoder}/abi_encode_decode_simple.sol (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode/abi_encode_empty_string_v1.sol => abicoder/abi_encode_empty_string_not_bytes0_v1.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/abi_encode_empty_string_v2.sol => abicoder/abi_encode_empty_string_not_bytes0_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/abi_encode_empty_string.sol => abicoder/abi_encode_empty_string_v1.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/memory_dynamic_array_and_calldata_bytes.sol => abicoder/abi_encode_memory_dynamic_array_and_calldata_bytes_v1.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1 => abicoder}/abi_encode_rational.sol (100%) rename test/libsolidity/semanticTests/{abiEncoderV2 => abicoder}/abi_encode_rational_v2.sol (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/storage_array_encoding.sol => abicoder/abi_encode_storage_array_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2 => abicoder}/abi_encode_v2.sol (100%) rename test/libsolidity/semanticTests/{abiEncoderV2 => abicoder}/abi_encode_v2_in_function_inherited_in_v1_contract.sol (100%) rename test/libsolidity/semanticTests/{abiEncoderV2 => abicoder}/abi_encode_v2_in_modifier_used_in_v1_contract.sol (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode/abi_encode_with_selector.sol => abicoder/abi_encode_with_selector_v1.sol} (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode/abi_encode_with_selectorv2.sol => abicoder/abi_encode_with_selector_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode/abi_encode_with_signature.sol => abicoder/abi_encode_with_signature_v1.sol} (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode/abi_encode_with_signaturev2.sol => abicoder/abi_encode_with_signature_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/abi_encoder_v2_head_overflow_with_static_array_cleanup_bug.sol => abicoder/bug_abi_encoder_v2_head_overflow_with_static_array_cleanup.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1 => abicoder/calldataDecoding/array}/byte_arrays.sol (100%) rename test/libsolidity/semanticTests/{array/calldata_array_two_dimensional_1.sol => abicoder/calldataDecoding/array/calldata_array_2d_dynamic_dynamic_v2.sol} (100%) rename test/libsolidity/semanticTests/{array/calldata_array_two_dimensional.sol => abicoder/calldataDecoding/array/calldata_array_2d_dynamic_static_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/byte_arrays.sol => abicoder/calldataDecoding/array/calldata_array_bytes_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array.sol => abicoder/calldataDecoding/array/calldata_array_dynamic_of_uint_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array_dynamic.sol => abicoder/calldataDecoding/array/calldata_array_dynamic_of_value_types_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array_dynamic_static_dynamic.sol => abicoder/calldataDecoding/array/calldata_array_dynamic_static_dynamic_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array_dynamic_static_in_library.sol => abicoder/calldataDecoding/array/calldata_array_dynamic_static_in_library_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array_dynamic_static_short_decode.sol => abicoder/calldataDecoding/array/calldata_array_dynamic_static_short_decode_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array_dynamic_static_short_reencode.sol => abicoder/calldataDecoding/array/calldata_array_dynamic_static_short_reencode_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array_function_types.sol => abicoder/calldataDecoding/array/calldata_array_function_types_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_array_access.sol => abicoder/calldataDecoding/array/calldata_array_indexing_1d_2d_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_three_dimensional_dynamic_array_index_access.sol => abicoder/calldataDecoding/array/calldata_array_indexing_3d_dynamic_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_array_three_dimensional.sol => abicoder/calldataDecoding/array/calldata_array_indexing_3d_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_array_dynamic_bytes.sol => abicoder/calldataDecoding/array/calldata_array_indexing_dynamic_bytes_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array_dynamic_index_access.sol => abicoder/calldataDecoding/array/calldata_array_indexing_dynamic_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array_static_index_access.sol => abicoder/calldataDecoding/array/calldata_array_indexing_static_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_array_length.sol => abicoder/calldataDecoding/array/calldata_array_length_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array_multi_dynamic.sol => abicoder/calldataDecoding/array/calldata_array_multi_dynamic_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_array_index_range_access.sol => abicoder/calldataDecoding/array/calldata_array_slicing_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array_static_dynamic_static.sol => abicoder/calldataDecoding/array/calldata_array_static_dynamic_static_v2.sol} (100%) rename test/libsolidity/semanticTests/{array/calldata_array.sol => abicoder/calldataDecoding/array/calldata_array_static_of_uint_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array_static.sol => abicoder/calldataDecoding/array/calldata_array_static_of_value_types_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array_struct_dynamic.sol => abicoder/calldataDecoding/array/calldata_array_struct_dynamic_v2.sol} (100%) rename test/libsolidity/semanticTests/{array/calldata_array_of_struct.sol => abicoder/calldataDecoding/array/calldata_array_struct_static_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array_two_dynamic.sol => abicoder/calldataDecoding/array/calldata_array_two_dynamic_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array_two_static.sol => abicoder/calldataDecoding/array/calldata_array_two_static_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/calldata_bytes_bytes32_arrays.sol => abicoder/calldataDecoding/array/calldata_bytes_bytes32_arrays_v1.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_dynamic_array_to_memory.sol => abicoder/calldataDecoding/array/calldata_dynamic_array_to_memory_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_nested_array_reencode.sol => abicoder/calldataDecoding/array/calldata_nested_array_reencode_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_nested_array_static_reencode.sol => abicoder/calldataDecoding/array/calldata_nested_array_static_reencode_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_overlapped_dynamic_arrays.sol => abicoder/calldataDecoding/array/calldata_overlapping_dynamic_arrays_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_overlapped_nested_dynamic_arrays.sol => abicoder/calldataDecoding/array/calldata_overlapping_nested_dynamic_arrays_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_string_array.sol => abicoder/calldataDecoding/array/calldata_string_array_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_struct_array_reencode.sol => abicoder/calldataDecoding/array/calldata_struct_array_reencode_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/abi_decode_fixed_arrays.sol => abicoder/calldataDecoding/array/memory_arrays_static.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2 => abicoder/calldataDecoding/array}/memory_dynamic_array_and_calldata_bytes.sol (100%) rename test/libsolidity/semanticTests/{abiEncoderV2 => abicoder/calldataDecoding/array}/memory_dynamic_array_and_calldata_static_array.sol (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/dynamic_arrays.sol => abicoder/calldataDecoding/array/memory_dynamic_arrays.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/dynamic_arrays.sol => abicoder/calldataDecoding/array/memory_dynamic_arrays_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/dynamic_nested_arrays.sol => abicoder/calldataDecoding/array/memory_dynamic_nested_arrays_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1 => abicoder/calldataDecoding/array}/memory_params_in_external_function.sol (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/memory_params_in_external_function.sol => abicoder/calldataDecoding/array/memory_params_in_external_function_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata => abicoder/calldataDecoding}/copy_from_calldata_removes_bytes_data.sol (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/struct/mediocre2_struct.sol => abicoder/calldataDecoding/struct/mediocre_dynamic_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/struct/mediocre_struct.sol => abicoder/calldataDecoding/struct/mediocre_static_v2.sol} (100%) rename test/libsolidity/semanticTests/{structs/calldata/dynamically_encoded.sol => abicoder/calldataDecoding/struct/member_array_dynamic2_v2.sol} (100%) rename test/libsolidity/semanticTests/{structs/calldata/calldata_struct_array_member_dynamic.sol => abicoder/calldataDecoding/struct/member_array_dynamic_multiple_fields_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_struct_dynamic.sol => abicoder/calldataDecoding/struct/member_array_dynamic_v2.sol} (100%) rename test/libsolidity/semanticTests/{structs/calldata/calldata_struct_array_member.sol => abicoder/calldataDecoding/struct/member_array_static_mulitple_fields_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/struct/struct_function.sol => abicoder/calldataDecoding/struct/member_external_function_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_struct_member_offset.sol => abicoder/calldataDecoding/struct/member_offset_v2.sol} (100%) rename test/libsolidity/semanticTests/{structs/calldata/calldata_structs.sol => abicoder/calldataDecoding/struct/multiple_structs_v2.sol} (100%) rename test/libsolidity/semanticTests/{structs/calldata/calldata_struct_struct_member.sol => abicoder/calldataDecoding/struct/nested_static_3_fields_v2.sol} (100%) rename test/libsolidity/semanticTests/{various/nested_calldata_struct.sol => abicoder/calldataDecoding/struct/nested_static_4_fields_v2.sol} (100%) rename test/libsolidity/semanticTests/{structs/calldata/calldata_struct_struct_member_dynamic.sol => abicoder/calldataDecoding/struct/nested_with_bytes_v2.sol} (100%) rename test/libsolidity/semanticTests/{structs/calldata/calldata_nested_structs.sol => abicoder/calldataDecoding/struct/nested_with_dynamic_array_v2.sol} (100%) rename test/libsolidity/semanticTests/{structs/calldata/dynamic_nested.sol => abicoder/calldataDecoding/struct/nested_with_dynamic_struct_array_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/struct/struct_short.sol => abicoder/calldataDecoding/struct/short_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/struct/struct_simple.sol => abicoder/calldataDecoding/struct/simple_multiple_fields_short_types_v2.sol} (100%) rename test/libsolidity/semanticTests/{structs/calldata/calldata_struct.sol => abicoder/calldataDecoding/struct/simple_multiple_fields_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_struct_simple.sol => abicoder/calldataDecoding/struct/simple_single_field_v2.sol} (100%) rename test/libsolidity/semanticTests/{structs/calldata/calldata_struct_and_ints.sol => abicoder/calldataDecoding/struct/struct_and_ints_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/cleanup/address.sol => abicoder/cleanup/address_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/bool_out_of_bounds.sol => abicoder/cleanup/bool_v1.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/bool_out_of_bounds.sol => abicoder/cleanup/bool_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/cleanup/bool.sol => abicoder/cleanup/bool_with_sanity_check_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/cleanup/bytesx.sol => abicoder/cleanup/bytesx_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/cleanup/cleanup.sol => abicoder/cleanup/cleanup_v1.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/cleanup/cleanup.sol => abicoder/cleanup/cleanup_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/cleanup/dynamic_array.sol => abicoder/cleanup/dynamic_array_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/enums.sol => abicoder/cleanup/enum_v1.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/enums.sol => abicoder/cleanup/enum_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/cleanup/function.sol => abicoder/cleanup/function_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/cleanup/intx.sol => abicoder/cleanup/intx_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2 => abicoder}/cleanup/reencoded_calldata_string.sol (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/cleanup/static_array.sol => abicoder/cleanup/static_array_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_struct_cleaning.sol => abicoder/cleanup/struct2_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/cleanup/simple_struct.sol => abicoder/cleanup/struct_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/cleanup/uintx.sol => abicoder/cleanup/uintx_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode => abicoder}/contract_array.sol (100%) rename test/libsolidity/semanticTests/{abiEncodeDecode => abicoder}/contract_array_v2.sol (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/struct/struct_storage_ptr.sol => abicoder/libraryABI/storage_ptr.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1 => abicoder}/return_dynamic_types_cross_call_advanced.sol (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/return_dynamic_types_cross_call_out_of_range_1.sol => abicoder/return_dynamic_types_cross_call_out_of_range_homestead.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/return_dynamic_types_cross_call_out_of_range_2.sol => abicoder/return_dynamic_types_cross_call_out_of_range_post_homestead.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1 => abicoder}/return_dynamic_types_cross_call_simple.sol (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array_short_no_revert_string.sol => abicoder/validation/array_exceeds_calldatasize_no_revert_string.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_array_short.sol => abicoder/validation/array_exceeds_calldatasize_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV1/calldata_arrays_too_large.sol => abicoder/validation/array_exceeds_size_limit_for_calldata_types.sol} (100%) rename test/libsolidity/semanticTests/{array/calldata_array_dynamic_invalid_static_middle.sol => abicoder/validation/calldata_array_dynamic_invalid_static_middle_v2.sol} (100%) rename test/libsolidity/semanticTests/{array/calldata_array_dynamic_invalid.sol => abicoder/validation/calldata_array_dynamic_invalid_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/calldata_with_garbage.sol => abicoder/validation/calldata_with_garbage_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/struct/validation_function_type_inside_struct.sol => abicoder/validation/external_function_type_inside_struct_v2.sol} (100%) rename test/libsolidity/semanticTests/{abiEncoderV2/struct/struct_validation.sol => abicoder/validation/static_struct_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_bytes_array_bounds.sol => array/calldata_array_bounds_check_nested_bytes.sol} (100%) rename test/libsolidity/semanticTests/array/{calldata_bytes_array_bounds.sol => calldata_array_bounds_check_nested_bytes2.sol} (100%) rename test/libsolidity/semanticTests/array/copying/{array_nested_calldata_to_memory.sol => nested_array_calldata_to_memory.sol} (100%) rename test/libsolidity/semanticTests/array/copying/{array_nested_calldata_to_storage.sol => nested_array_calldata_to_storage.sol} (100%) rename test/libsolidity/semanticTests/array/{nested_calldata_storage2.sol => copying/nested_array_dynamic_dynamic_calldata_to_storage.sol} (100%) rename test/libsolidity/semanticTests/array/{nested_calldata_storage.sol => copying/nested_array_dynamic_static_calldata_to_storage.sol} (100%) rename test/libsolidity/semanticTests/array/copying/{array_nested_memory_to_storage.sol => nested_array_memory_to_storage.sol} (100%) rename test/libsolidity/semanticTests/array/copying/{array_nested_storage_to_memory.sol => nested_array_storage_to_memory.sol} (100%) rename test/libsolidity/semanticTests/array/{calldata_slice_access.sol => slices/calldata_array_slicing.sol} (100%) rename test/libsolidity/semanticTests/{calldata => conversions}/calldata_bytes_to_memory.sol (100%) rename test/libsolidity/semanticTests/{calldata/calldata_bytes_to_memory_encode.sol => conversions/calldata_bytes_to_memory_reencode.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_memory_mixed.sol => functionCall/calldata_and_memory_arguments.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_bytes_external.sol => functionCall/calldata_argument_external_bytes.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_bytes_internal.sol => functionCall/calldata_argument_internal_bytes.sol} (100%) rename test/libsolidity/semanticTests/{array/calldata_array_as_argument_internal_function.sol => functionCall/calldata_argument_internal_dynamic_array_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_internal_library.sol => functionCall/calldata_argument_internal_library_bytes.sol} (100%) rename test/libsolidity/semanticTests/{structs/calldata/calldata_struct_as_argument_of_lib_function.sol => functionCall/calldata_argument_internal_library_dynamic_struct_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_struct.sol => functionCall/calldata_argument_internal_library_static_struct_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_internal_multi_array.sol => functionCall/calldata_argument_internal_multi_array_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_internal_multi_fixed_array.sol => functionCall/calldata_argument_internal_multi_static_array_v2.sol} (100%) rename test/libsolidity/semanticTests/{structs/calldata/calldata_struct_as_memory_argument.sol => functionCall/calldata_argument_internal_struct_as_memory_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_struct_internal.sol => functionCall/calldata_argument_internal_struct_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_internal_function_pointer.sol => functionTypes/internal_function_pointer_with_calldata_args.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_attached_to_dynamic_array_or_slice.sol => libraries/attached_internal_library_function_accepting_calldata_dynamic_array_or_slice_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_attached_to_static_array.sol => libraries/attached_internal_library_function_accepting_calldata_static_array_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_attached_to_struct.sol => libraries/attached_internal_library_function_accepting_calldata_struct_v2.sol} (100%) rename test/libsolidity/semanticTests/{calldata/calldata_attached_to_bytes.sol => libraries/attached_internal_library_function_accepting_calldata_v2.sol} (100%) rename test/libsolidity/semanticTests/libraries/{attached_public_library_function_accepting_calldata.sol.sol => attached_public_library_function_accepting_calldata.sol} (100%) rename test/libsolidity/semanticTests/{various/nested_calldata_struct_to_memory.sol => structs/copy_struct_with_nested_struct_from_calldata_to_memory.sol} (100%) rename test/libsolidity/semanticTests/structs/{calldata/calldata_struct_with_bytes_to_memory.sol => struct_copy_calldata_to_memory_nested_bytes_v2.sol} (100%) rename test/libsolidity/semanticTests/structs/{calldata/calldata_struct_with_nested_array_to_memory.sol => struct_copy_calldata_to_memory_nested_dynamic_array_v2.sol} (100%) rename test/libsolidity/semanticTests/structs/{calldata/calldata_struct_with_array_to_memory.sol => struct_copy_calldata_to_memory_nested_static_array_v2.sol} (100%) rename test/libsolidity/semanticTests/structs/{calldata/calldata_struct_to_memory_tuple_assignment.sol => struct_copy_calldata_to_memory_tuple.sol} (100%) rename test/libsolidity/semanticTests/structs/{calldata/calldata_struct_to_memory.sol => struct_copy_calldata_to_memory_v2.sol} (100%) rename test/libsolidity/semanticTests/structs/{calldata/calldata_struct_with_nested_array_to_storage.sol => struct_copy_calldata_to_storage_nested_dynamic_array_v2.sol} (100%) rename test/libsolidity/semanticTests/structs/{calldata/calldata_struct_to_storage.sol => struct_copy_calldata_to_storage_v2.sol} (100%) diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/abi_decode_calldata.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_from_calldata.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/abi_decode_calldata.sol rename to test/libsolidity/semanticTests/abicoder/abi_decode_from_calldata.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_decode_dynamic_array.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_from_calldata_dynamic_array.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/abi_decode_dynamic_array.sol rename to test/libsolidity/semanticTests/abicoder/abi_decode_from_calldata_dynamic_array.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_decode_static_array.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_from_calldata_static_array.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/abi_decode_static_array.sol rename to test/libsolidity/semanticTests/abicoder/abi_decode_from_calldata_static_array.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_decode_static_array_v2.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_from_calldata_static_array_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/abi_decode_static_array_v2.sol rename to test/libsolidity/semanticTests/abicoder/abi_decode_from_calldata_static_array_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_decode_v2_calldata.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_from_calldata_struct_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/abi_decode_v2_calldata.sol rename to test/libsolidity/semanticTests/abicoder/abi_decode_from_calldata_struct_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_decode_v2.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_from_memory_struct_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/abi_decode_v2.sol rename to test/libsolidity/semanticTests/abicoder/abi_decode_from_memory_struct_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_decode_v2_storage.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_from_storage_struct_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/abi_decode_v2_storage.sol rename to test/libsolidity/semanticTests/abicoder/abi_decode_from_storage_struct_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/offset_overflow_in_array_decoding.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/offset_overflow_in_array_decoding.sol rename to test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/offset_overflow_in_array_decoding_2.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/offset_overflow_in_array_decoding_2.sol rename to test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_2.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/offset_overflow_in_array_decoding_3.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_3.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/offset_overflow_in_array_decoding_3.sol rename to test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_3.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/dynamic_memory_copy.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_overlapping_dynamic_arrays.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/dynamic_memory_copy.sol rename to test/libsolidity/semanticTests/abicoder/abi_decode_overlapping_dynamic_arrays.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/abi_decode_simple.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_simple.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/abi_decode_simple.sol rename to test/libsolidity/semanticTests/abicoder/abi_decode_simple.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/abi_decode_simple_storage.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_simple_storage.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/abi_decode_simple_storage.sol rename to test/libsolidity/semanticTests/abicoder/abi_decode_simple_storage.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/decode_slice.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_slice.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/decode_slice.sol rename to test/libsolidity/semanticTests/abicoder/abi_decode_slice.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_decode_trivial.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_trivial.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/abi_decode_trivial.sol rename to test/libsolidity/semanticTests/abicoder/abi_decode_trivial.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_encode.sol b/test/libsolidity/semanticTests/abicoder/abi_encode.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/abi_encode.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_encode_call.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_call.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/abi_encode_call.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_call.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_call_declaration.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_call_declaration_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_call_declaration.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_call_declaration_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_call_is_consistent.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_call_is_consistent_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_call_is_consistent.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_call_is_consistent_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_call_memory.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_call_memory_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_call_memory.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_call_memory_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_call_special_args.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_call_special_args_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_call_special_args.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_call_special_args_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_call_uint_bytes.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_call_uint_bytes.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_call_uint_bytes.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_call_uint_bytes.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_call.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_call_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_call.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_call_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_encode_calldata_slice.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_calldata_slice.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/abi_encode_calldata_slice.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_calldata_slice.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_calldata_slice.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_calldata_slice_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/abi_encode_calldata_slice.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_calldata_slice_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_encode_decode_simple.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_decode_simple.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/abi_encode_decode_simple.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_decode_simple.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_empty_string_v1.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_empty_string_not_bytes0_v1.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_empty_string_v1.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_empty_string_not_bytes0_v1.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_empty_string_v2.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_empty_string_not_bytes0_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/abi_encode_empty_string_v2.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_empty_string_not_bytes0_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_encode_empty_string.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_empty_string_v1.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/abi_encode_empty_string.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_empty_string_v1.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/memory_dynamic_array_and_calldata_bytes.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_memory_dynamic_array_and_calldata_bytes_v1.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/memory_dynamic_array_and_calldata_bytes.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_memory_dynamic_array_and_calldata_bytes_v1.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_encode_rational.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_rational.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/abi_encode_rational.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_rational.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_rational_v2.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_rational_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/abi_encode_rational_v2.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_rational_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/storage_array_encoding.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_storage_array_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/storage_array_encoding.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_storage_array_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2_in_function_inherited_in_v1_contract.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_v2_in_function_inherited_in_v1_contract.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2_in_function_inherited_in_v1_contract.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_v2_in_function_inherited_in_v1_contract.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2_in_modifier_used_in_v1_contract.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_v2_in_modifier_used_in_v1_contract.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2_in_modifier_used_in_v1_contract.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_v2_in_modifier_used_in_v1_contract.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_with_selector.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_with_selector_v1.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_with_selector.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_with_selector_v1.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_with_selectorv2.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_with_selector_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_with_selectorv2.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_with_selector_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_with_signature.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_with_signature_v1.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_with_signature.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_with_signature_v1.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_with_signaturev2.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_with_signature_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/abi_encode_with_signaturev2.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_with_signature_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/abi_encoder_v2_head_overflow_with_static_array_cleanup_bug.sol b/test/libsolidity/semanticTests/abicoder/bug_abi_encoder_v2_head_overflow_with_static_array_cleanup.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/abi_encoder_v2_head_overflow_with_static_array_cleanup_bug.sol rename to test/libsolidity/semanticTests/abicoder/bug_abi_encoder_v2_head_overflow_with_static_array_cleanup.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/byte_arrays.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/byte_arrays.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/byte_arrays.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/byte_arrays.sol diff --git a/test/libsolidity/semanticTests/array/calldata_array_two_dimensional_1.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_2d_dynamic_dynamic_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/array/calldata_array_two_dimensional_1.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_2d_dynamic_dynamic_v2.sol diff --git a/test/libsolidity/semanticTests/array/calldata_array_two_dimensional.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_2d_dynamic_static_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/array/calldata_array_two_dimensional.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_2d_dynamic_static_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/byte_arrays.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_bytes_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/byte_arrays.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_bytes_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_dynamic_of_uint_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_dynamic_of_uint_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array_dynamic.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_dynamic_of_value_types_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array_dynamic.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_dynamic_of_value_types_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array_dynamic_static_dynamic.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_dynamic_static_dynamic_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array_dynamic_static_dynamic.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_dynamic_static_dynamic_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array_dynamic_static_in_library.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_dynamic_static_in_library_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array_dynamic_static_in_library.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_dynamic_static_in_library_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array_dynamic_static_short_decode.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_dynamic_static_short_decode_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array_dynamic_static_short_decode.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_dynamic_static_short_decode_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array_dynamic_static_short_reencode.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_dynamic_static_short_reencode_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array_dynamic_static_short_reencode.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_dynamic_static_short_reencode_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array_function_types.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_function_types_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array_function_types.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_function_types_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_array_access.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_indexing_1d_2d_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_array_access.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_indexing_1d_2d_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_three_dimensional_dynamic_array_index_access.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_indexing_3d_dynamic_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_three_dimensional_dynamic_array_index_access.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_indexing_3d_dynamic_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_array_three_dimensional.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_indexing_3d_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_array_three_dimensional.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_indexing_3d_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_array_dynamic_bytes.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_indexing_dynamic_bytes_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_array_dynamic_bytes.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_indexing_dynamic_bytes_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array_dynamic_index_access.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_indexing_dynamic_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array_dynamic_index_access.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_indexing_dynamic_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array_static_index_access.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_indexing_static_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array_static_index_access.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_indexing_static_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_array_length.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_length_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_array_length.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_length_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array_multi_dynamic.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_multi_dynamic_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array_multi_dynamic.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_multi_dynamic_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_array_index_range_access.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_slicing_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_array_index_range_access.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_slicing_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array_static_dynamic_static.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_static_dynamic_static_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array_static_dynamic_static.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_static_dynamic_static_v2.sol diff --git a/test/libsolidity/semanticTests/array/calldata_array.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_static_of_uint_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/array/calldata_array.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_static_of_uint_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array_static.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_static_of_value_types_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array_static.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_static_of_value_types_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array_struct_dynamic.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_struct_dynamic_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array_struct_dynamic.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_struct_dynamic_v2.sol diff --git a/test/libsolidity/semanticTests/array/calldata_array_of_struct.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_struct_static_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/array/calldata_array_of_struct.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_struct_static_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array_two_dynamic.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_two_dynamic_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array_two_dynamic.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_two_dynamic_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array_two_static.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_two_static_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array_two_static.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_two_static_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/calldata_bytes_bytes32_arrays.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_bytes_bytes32_arrays_v1.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/calldata_bytes_bytes32_arrays.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_bytes_bytes32_arrays_v1.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_dynamic_array_to_memory.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_dynamic_array_to_memory_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_dynamic_array_to_memory.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_dynamic_array_to_memory_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_nested_array_reencode.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_nested_array_reencode_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_nested_array_reencode.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_nested_array_reencode_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_nested_array_static_reencode.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_nested_array_static_reencode_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_nested_array_static_reencode.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_nested_array_static_reencode_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_overlapped_dynamic_arrays.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_overlapping_dynamic_arrays_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_overlapped_dynamic_arrays.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_overlapping_dynamic_arrays_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_overlapped_nested_dynamic_arrays.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_overlapping_nested_dynamic_arrays_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_overlapped_nested_dynamic_arrays.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_overlapping_nested_dynamic_arrays_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_string_array.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_string_array_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_string_array.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_string_array_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_struct_array_reencode.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_struct_array_reencode_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_struct_array_reencode.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_struct_array_reencode_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/abi_decode_fixed_arrays.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_arrays_static.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/abi_decode_fixed_arrays.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_arrays_static.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/memory_dynamic_array_and_calldata_bytes.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_dynamic_array_and_calldata_bytes.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/memory_dynamic_array_and_calldata_bytes.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_dynamic_array_and_calldata_bytes.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/memory_dynamic_array_and_calldata_static_array.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_dynamic_array_and_calldata_static_array.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/memory_dynamic_array_and_calldata_static_array.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_dynamic_array_and_calldata_static_array.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/dynamic_arrays.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_dynamic_arrays.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/dynamic_arrays.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_dynamic_arrays.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/dynamic_arrays.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_dynamic_arrays_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/dynamic_arrays.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_dynamic_arrays_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/dynamic_nested_arrays.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_dynamic_nested_arrays_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/dynamic_nested_arrays.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_dynamic_nested_arrays_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/memory_params_in_external_function.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_params_in_external_function.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/memory_params_in_external_function.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_params_in_external_function.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/memory_params_in_external_function.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_params_in_external_function_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/memory_params_in_external_function.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_params_in_external_function_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/copy_from_calldata_removes_bytes_data.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/copy_from_calldata_removes_bytes_data.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/copy_from_calldata_removes_bytes_data.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/copy_from_calldata_removes_bytes_data.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/struct/mediocre2_struct.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/mediocre_dynamic_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/struct/mediocre2_struct.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/mediocre_dynamic_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/struct/mediocre_struct.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/mediocre_static_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/struct/mediocre_struct.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/mediocre_static_v2.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/dynamically_encoded.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/member_array_dynamic2_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/dynamically_encoded.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/member_array_dynamic2_v2.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_struct_array_member_dynamic.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/member_array_dynamic_multiple_fields_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_struct_array_member_dynamic.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/member_array_dynamic_multiple_fields_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_struct_dynamic.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/member_array_dynamic_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_struct_dynamic.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/member_array_dynamic_v2.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_struct_array_member.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/member_array_static_mulitple_fields_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_struct_array_member.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/member_array_static_mulitple_fields_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/struct/struct_function.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/member_external_function_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/struct/struct_function.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/member_external_function_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_struct_member_offset.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/member_offset_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_struct_member_offset.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/member_offset_v2.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_structs.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/multiple_structs_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_structs.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/multiple_structs_v2.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_struct_struct_member.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/nested_static_3_fields_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_struct_struct_member.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/nested_static_3_fields_v2.sol diff --git a/test/libsolidity/semanticTests/various/nested_calldata_struct.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/nested_static_4_fields_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/various/nested_calldata_struct.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/nested_static_4_fields_v2.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_struct_struct_member_dynamic.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/nested_with_bytes_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_struct_struct_member_dynamic.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/nested_with_bytes_v2.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_nested_structs.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/nested_with_dynamic_array_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_nested_structs.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/nested_with_dynamic_array_v2.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/dynamic_nested.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/nested_with_dynamic_struct_array_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/dynamic_nested.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/nested_with_dynamic_struct_array_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/struct/struct_short.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/short_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/struct/struct_short.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/short_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/struct/struct_simple.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/simple_multiple_fields_short_types_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/struct/struct_simple.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/simple_multiple_fields_short_types_v2.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_struct.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/simple_multiple_fields_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_struct.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/simple_multiple_fields_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_struct_simple.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/simple_single_field_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_struct_simple.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/simple_single_field_v2.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_struct_and_ints.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/struct_and_ints_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_struct_and_ints.sol rename to test/libsolidity/semanticTests/abicoder/calldataDecoding/struct/struct_and_ints_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/cleanup/address.sol b/test/libsolidity/semanticTests/abicoder/cleanup/address_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/cleanup/address.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/address_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/bool_out_of_bounds.sol b/test/libsolidity/semanticTests/abicoder/cleanup/bool_v1.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/bool_out_of_bounds.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/bool_v1.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/bool_out_of_bounds.sol b/test/libsolidity/semanticTests/abicoder/cleanup/bool_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/bool_out_of_bounds.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/bool_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/cleanup/bool.sol b/test/libsolidity/semanticTests/abicoder/cleanup/bool_with_sanity_check_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/cleanup/bool.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/bool_with_sanity_check_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/cleanup/bytesx.sol b/test/libsolidity/semanticTests/abicoder/cleanup/bytesx_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/cleanup/bytesx.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/bytesx_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/cleanup/cleanup.sol b/test/libsolidity/semanticTests/abicoder/cleanup/cleanup_v1.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/cleanup/cleanup.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/cleanup_v1.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/cleanup/cleanup.sol b/test/libsolidity/semanticTests/abicoder/cleanup/cleanup_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/cleanup/cleanup.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/cleanup_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/cleanup/dynamic_array.sol b/test/libsolidity/semanticTests/abicoder/cleanup/dynamic_array_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/cleanup/dynamic_array.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/dynamic_array_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/enums.sol b/test/libsolidity/semanticTests/abicoder/cleanup/enum_v1.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/enums.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/enum_v1.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/enums.sol b/test/libsolidity/semanticTests/abicoder/cleanup/enum_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/enums.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/enum_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/cleanup/function.sol b/test/libsolidity/semanticTests/abicoder/cleanup/function_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/cleanup/function.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/function_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/cleanup/intx.sol b/test/libsolidity/semanticTests/abicoder/cleanup/intx_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/cleanup/intx.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/intx_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/cleanup/reencoded_calldata_string.sol b/test/libsolidity/semanticTests/abicoder/cleanup/reencoded_calldata_string.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/cleanup/reencoded_calldata_string.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/reencoded_calldata_string.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/cleanup/static_array.sol b/test/libsolidity/semanticTests/abicoder/cleanup/static_array_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/cleanup/static_array.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/static_array_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_struct_cleaning.sol b/test/libsolidity/semanticTests/abicoder/cleanup/struct2_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_struct_cleaning.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/struct2_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/cleanup/simple_struct.sol b/test/libsolidity/semanticTests/abicoder/cleanup/struct_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/cleanup/simple_struct.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/struct_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/cleanup/uintx.sol b/test/libsolidity/semanticTests/abicoder/cleanup/uintx_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/cleanup/uintx.sol rename to test/libsolidity/semanticTests/abicoder/cleanup/uintx_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/contract_array.sol b/test/libsolidity/semanticTests/abicoder/contract_array.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/contract_array.sol rename to test/libsolidity/semanticTests/abicoder/contract_array.sol diff --git a/test/libsolidity/semanticTests/abiEncodeDecode/contract_array_v2.sol b/test/libsolidity/semanticTests/abicoder/contract_array_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncodeDecode/contract_array_v2.sol rename to test/libsolidity/semanticTests/abicoder/contract_array_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/struct/struct_storage_ptr.sol b/test/libsolidity/semanticTests/abicoder/libraryABI/storage_ptr.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/struct/struct_storage_ptr.sol rename to test/libsolidity/semanticTests/abicoder/libraryABI/storage_ptr.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/return_dynamic_types_cross_call_advanced.sol b/test/libsolidity/semanticTests/abicoder/return_dynamic_types_cross_call_advanced.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/return_dynamic_types_cross_call_advanced.sol rename to test/libsolidity/semanticTests/abicoder/return_dynamic_types_cross_call_advanced.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/return_dynamic_types_cross_call_out_of_range_1.sol b/test/libsolidity/semanticTests/abicoder/return_dynamic_types_cross_call_out_of_range_homestead.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/return_dynamic_types_cross_call_out_of_range_1.sol rename to test/libsolidity/semanticTests/abicoder/return_dynamic_types_cross_call_out_of_range_homestead.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/return_dynamic_types_cross_call_out_of_range_2.sol b/test/libsolidity/semanticTests/abicoder/return_dynamic_types_cross_call_out_of_range_post_homestead.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/return_dynamic_types_cross_call_out_of_range_2.sol rename to test/libsolidity/semanticTests/abicoder/return_dynamic_types_cross_call_out_of_range_post_homestead.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/return_dynamic_types_cross_call_simple.sol b/test/libsolidity/semanticTests/abicoder/return_dynamic_types_cross_call_simple.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/return_dynamic_types_cross_call_simple.sol rename to test/libsolidity/semanticTests/abicoder/return_dynamic_types_cross_call_simple.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array_short_no_revert_string.sol b/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_calldatasize_no_revert_string.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array_short_no_revert_string.sol rename to test/libsolidity/semanticTests/abicoder/validation/array_exceeds_calldatasize_no_revert_string.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_array_short.sol b/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_calldatasize_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_array_short.sol rename to test/libsolidity/semanticTests/abicoder/validation/array_exceeds_calldatasize_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV1/calldata_arrays_too_large.sol b/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_size_limit_for_calldata_types.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV1/calldata_arrays_too_large.sol rename to test/libsolidity/semanticTests/abicoder/validation/array_exceeds_size_limit_for_calldata_types.sol diff --git a/test/libsolidity/semanticTests/array/calldata_array_dynamic_invalid_static_middle.sol b/test/libsolidity/semanticTests/abicoder/validation/calldata_array_dynamic_invalid_static_middle_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/array/calldata_array_dynamic_invalid_static_middle.sol rename to test/libsolidity/semanticTests/abicoder/validation/calldata_array_dynamic_invalid_static_middle_v2.sol diff --git a/test/libsolidity/semanticTests/array/calldata_array_dynamic_invalid.sol b/test/libsolidity/semanticTests/abicoder/validation/calldata_array_dynamic_invalid_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/array/calldata_array_dynamic_invalid.sol rename to test/libsolidity/semanticTests/abicoder/validation/calldata_array_dynamic_invalid_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/calldata_with_garbage.sol b/test/libsolidity/semanticTests/abicoder/validation/calldata_with_garbage_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/calldata_with_garbage.sol rename to test/libsolidity/semanticTests/abicoder/validation/calldata_with_garbage_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/struct/validation_function_type_inside_struct.sol b/test/libsolidity/semanticTests/abicoder/validation/external_function_type_inside_struct_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/struct/validation_function_type_inside_struct.sol rename to test/libsolidity/semanticTests/abicoder/validation/external_function_type_inside_struct_v2.sol diff --git a/test/libsolidity/semanticTests/abiEncoderV2/struct/struct_validation.sol b/test/libsolidity/semanticTests/abicoder/validation/static_struct_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/abiEncoderV2/struct/struct_validation.sol rename to test/libsolidity/semanticTests/abicoder/validation/static_struct_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_bytes_array_bounds.sol b/test/libsolidity/semanticTests/array/calldata_array_bounds_check_nested_bytes.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_bytes_array_bounds.sol rename to test/libsolidity/semanticTests/array/calldata_array_bounds_check_nested_bytes.sol diff --git a/test/libsolidity/semanticTests/array/calldata_bytes_array_bounds.sol b/test/libsolidity/semanticTests/array/calldata_array_bounds_check_nested_bytes2.sol similarity index 100% rename from test/libsolidity/semanticTests/array/calldata_bytes_array_bounds.sol rename to test/libsolidity/semanticTests/array/calldata_array_bounds_check_nested_bytes2.sol diff --git a/test/libsolidity/semanticTests/array/copying/array_nested_calldata_to_memory.sol b/test/libsolidity/semanticTests/array/copying/nested_array_calldata_to_memory.sol similarity index 100% rename from test/libsolidity/semanticTests/array/copying/array_nested_calldata_to_memory.sol rename to test/libsolidity/semanticTests/array/copying/nested_array_calldata_to_memory.sol diff --git a/test/libsolidity/semanticTests/array/copying/array_nested_calldata_to_storage.sol b/test/libsolidity/semanticTests/array/copying/nested_array_calldata_to_storage.sol similarity index 100% rename from test/libsolidity/semanticTests/array/copying/array_nested_calldata_to_storage.sol rename to test/libsolidity/semanticTests/array/copying/nested_array_calldata_to_storage.sol diff --git a/test/libsolidity/semanticTests/array/nested_calldata_storage2.sol b/test/libsolidity/semanticTests/array/copying/nested_array_dynamic_dynamic_calldata_to_storage.sol similarity index 100% rename from test/libsolidity/semanticTests/array/nested_calldata_storage2.sol rename to test/libsolidity/semanticTests/array/copying/nested_array_dynamic_dynamic_calldata_to_storage.sol diff --git a/test/libsolidity/semanticTests/array/nested_calldata_storage.sol b/test/libsolidity/semanticTests/array/copying/nested_array_dynamic_static_calldata_to_storage.sol similarity index 100% rename from test/libsolidity/semanticTests/array/nested_calldata_storage.sol rename to test/libsolidity/semanticTests/array/copying/nested_array_dynamic_static_calldata_to_storage.sol diff --git a/test/libsolidity/semanticTests/array/copying/array_nested_memory_to_storage.sol b/test/libsolidity/semanticTests/array/copying/nested_array_memory_to_storage.sol similarity index 100% rename from test/libsolidity/semanticTests/array/copying/array_nested_memory_to_storage.sol rename to test/libsolidity/semanticTests/array/copying/nested_array_memory_to_storage.sol diff --git a/test/libsolidity/semanticTests/array/copying/array_nested_storage_to_memory.sol b/test/libsolidity/semanticTests/array/copying/nested_array_storage_to_memory.sol similarity index 100% rename from test/libsolidity/semanticTests/array/copying/array_nested_storage_to_memory.sol rename to test/libsolidity/semanticTests/array/copying/nested_array_storage_to_memory.sol diff --git a/test/libsolidity/semanticTests/array/calldata_slice_access.sol b/test/libsolidity/semanticTests/array/slices/calldata_array_slicing.sol similarity index 100% rename from test/libsolidity/semanticTests/array/calldata_slice_access.sol rename to test/libsolidity/semanticTests/array/slices/calldata_array_slicing.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_bytes_to_memory.sol b/test/libsolidity/semanticTests/conversions/calldata_bytes_to_memory.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_bytes_to_memory.sol rename to test/libsolidity/semanticTests/conversions/calldata_bytes_to_memory.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_bytes_to_memory_encode.sol b/test/libsolidity/semanticTests/conversions/calldata_bytes_to_memory_reencode.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_bytes_to_memory_encode.sol rename to test/libsolidity/semanticTests/conversions/calldata_bytes_to_memory_reencode.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_memory_mixed.sol b/test/libsolidity/semanticTests/functionCall/calldata_and_memory_arguments.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_memory_mixed.sol rename to test/libsolidity/semanticTests/functionCall/calldata_and_memory_arguments.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_bytes_external.sol b/test/libsolidity/semanticTests/functionCall/calldata_argument_external_bytes.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_bytes_external.sol rename to test/libsolidity/semanticTests/functionCall/calldata_argument_external_bytes.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_bytes_internal.sol b/test/libsolidity/semanticTests/functionCall/calldata_argument_internal_bytes.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_bytes_internal.sol rename to test/libsolidity/semanticTests/functionCall/calldata_argument_internal_bytes.sol diff --git a/test/libsolidity/semanticTests/array/calldata_array_as_argument_internal_function.sol b/test/libsolidity/semanticTests/functionCall/calldata_argument_internal_dynamic_array_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/array/calldata_array_as_argument_internal_function.sol rename to test/libsolidity/semanticTests/functionCall/calldata_argument_internal_dynamic_array_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_internal_library.sol b/test/libsolidity/semanticTests/functionCall/calldata_argument_internal_library_bytes.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_internal_library.sol rename to test/libsolidity/semanticTests/functionCall/calldata_argument_internal_library_bytes.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_struct_as_argument_of_lib_function.sol b/test/libsolidity/semanticTests/functionCall/calldata_argument_internal_library_dynamic_struct_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_struct_as_argument_of_lib_function.sol rename to test/libsolidity/semanticTests/functionCall/calldata_argument_internal_library_dynamic_struct_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_struct.sol b/test/libsolidity/semanticTests/functionCall/calldata_argument_internal_library_static_struct_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_struct.sol rename to test/libsolidity/semanticTests/functionCall/calldata_argument_internal_library_static_struct_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_internal_multi_array.sol b/test/libsolidity/semanticTests/functionCall/calldata_argument_internal_multi_array_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_internal_multi_array.sol rename to test/libsolidity/semanticTests/functionCall/calldata_argument_internal_multi_array_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_internal_multi_fixed_array.sol b/test/libsolidity/semanticTests/functionCall/calldata_argument_internal_multi_static_array_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_internal_multi_fixed_array.sol rename to test/libsolidity/semanticTests/functionCall/calldata_argument_internal_multi_static_array_v2.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_struct_as_memory_argument.sol b/test/libsolidity/semanticTests/functionCall/calldata_argument_internal_struct_as_memory_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_struct_as_memory_argument.sol rename to test/libsolidity/semanticTests/functionCall/calldata_argument_internal_struct_as_memory_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_struct_internal.sol b/test/libsolidity/semanticTests/functionCall/calldata_argument_internal_struct_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_struct_internal.sol rename to test/libsolidity/semanticTests/functionCall/calldata_argument_internal_struct_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_internal_function_pointer.sol b/test/libsolidity/semanticTests/functionTypes/internal_function_pointer_with_calldata_args.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_internal_function_pointer.sol rename to test/libsolidity/semanticTests/functionTypes/internal_function_pointer_with_calldata_args.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_attached_to_dynamic_array_or_slice.sol b/test/libsolidity/semanticTests/libraries/attached_internal_library_function_accepting_calldata_dynamic_array_or_slice_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_attached_to_dynamic_array_or_slice.sol rename to test/libsolidity/semanticTests/libraries/attached_internal_library_function_accepting_calldata_dynamic_array_or_slice_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_attached_to_static_array.sol b/test/libsolidity/semanticTests/libraries/attached_internal_library_function_accepting_calldata_static_array_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_attached_to_static_array.sol rename to test/libsolidity/semanticTests/libraries/attached_internal_library_function_accepting_calldata_static_array_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_attached_to_struct.sol b/test/libsolidity/semanticTests/libraries/attached_internal_library_function_accepting_calldata_struct_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_attached_to_struct.sol rename to test/libsolidity/semanticTests/libraries/attached_internal_library_function_accepting_calldata_struct_v2.sol diff --git a/test/libsolidity/semanticTests/calldata/calldata_attached_to_bytes.sol b/test/libsolidity/semanticTests/libraries/attached_internal_library_function_accepting_calldata_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/calldata/calldata_attached_to_bytes.sol rename to test/libsolidity/semanticTests/libraries/attached_internal_library_function_accepting_calldata_v2.sol diff --git a/test/libsolidity/semanticTests/libraries/attached_public_library_function_accepting_calldata.sol.sol b/test/libsolidity/semanticTests/libraries/attached_public_library_function_accepting_calldata.sol similarity index 100% rename from test/libsolidity/semanticTests/libraries/attached_public_library_function_accepting_calldata.sol.sol rename to test/libsolidity/semanticTests/libraries/attached_public_library_function_accepting_calldata.sol diff --git a/test/libsolidity/semanticTests/various/nested_calldata_struct_to_memory.sol b/test/libsolidity/semanticTests/structs/copy_struct_with_nested_struct_from_calldata_to_memory.sol similarity index 100% rename from test/libsolidity/semanticTests/various/nested_calldata_struct_to_memory.sol rename to test/libsolidity/semanticTests/structs/copy_struct_with_nested_struct_from_calldata_to_memory.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_struct_with_bytes_to_memory.sol b/test/libsolidity/semanticTests/structs/struct_copy_calldata_to_memory_nested_bytes_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_struct_with_bytes_to_memory.sol rename to test/libsolidity/semanticTests/structs/struct_copy_calldata_to_memory_nested_bytes_v2.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_struct_with_nested_array_to_memory.sol b/test/libsolidity/semanticTests/structs/struct_copy_calldata_to_memory_nested_dynamic_array_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_struct_with_nested_array_to_memory.sol rename to test/libsolidity/semanticTests/structs/struct_copy_calldata_to_memory_nested_dynamic_array_v2.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_struct_with_array_to_memory.sol b/test/libsolidity/semanticTests/structs/struct_copy_calldata_to_memory_nested_static_array_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_struct_with_array_to_memory.sol rename to test/libsolidity/semanticTests/structs/struct_copy_calldata_to_memory_nested_static_array_v2.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_struct_to_memory_tuple_assignment.sol b/test/libsolidity/semanticTests/structs/struct_copy_calldata_to_memory_tuple.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_struct_to_memory_tuple_assignment.sol rename to test/libsolidity/semanticTests/structs/struct_copy_calldata_to_memory_tuple.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_struct_to_memory.sol b/test/libsolidity/semanticTests/structs/struct_copy_calldata_to_memory_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_struct_to_memory.sol rename to test/libsolidity/semanticTests/structs/struct_copy_calldata_to_memory_v2.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_struct_with_nested_array_to_storage.sol b/test/libsolidity/semanticTests/structs/struct_copy_calldata_to_storage_nested_dynamic_array_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_struct_with_nested_array_to_storage.sol rename to test/libsolidity/semanticTests/structs/struct_copy_calldata_to_storage_nested_dynamic_array_v2.sol diff --git a/test/libsolidity/semanticTests/structs/calldata/calldata_struct_to_storage.sol b/test/libsolidity/semanticTests/structs/struct_copy_calldata_to_storage_v2.sol similarity index 100% rename from test/libsolidity/semanticTests/structs/calldata/calldata_struct_to_storage.sol rename to test/libsolidity/semanticTests/structs/struct_copy_calldata_to_storage_v2.sol From c0a83bcacf73df34898883c2355b9ffe69d46e8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20=C5=9Aliwak?= Date: Thu, 19 Feb 2026 15:25:59 +0100 Subject: [PATCH 2/5] calldata_array_dynamic_bytes.sol: Enable testing via Yul - The test does seem to pass now via both pipelines. --- .../array/calldata_array_indexing_dynamic_bytes_v2.sol | 4 ---- 1 file changed, 4 deletions(-) diff --git a/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_indexing_dynamic_bytes_v2.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_indexing_dynamic_bytes_v2.sol index 932f19610207..d850d3812eac 100644 --- a/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_indexing_dynamic_bytes_v2.sol +++ b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/calldata_array_indexing_dynamic_bytes_v2.sol @@ -63,10 +63,6 @@ contract C { } } -// via yul disabled because of stack issues. - -// ==== -// compileViaYul: false // ---- // f1(bytes[1]): 0x20, 0x20, 0x3, hex"0102030000000000000000000000000000000000000000000000000000000000" -> 0x3, 0x1, 0x2, 0x3 // f2(bytes[1],bytes[1]): 0x40, 0xa0, 0x20, 0x3, hex"0102030000000000000000000000000000000000000000000000000000000000", 0x20, 0x2, hex"0102000000000000000000000000000000000000000000000000000000000000" -> 0x3, 0x1, 0x2, 0x3, 0x2, 0x1, 0x2 From 388b75d20b6b3ff0ef81bbf6823a575017111075 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20=C5=9Aliwak?= Date: Thu, 19 Feb 2026 15:44:37 +0100 Subject: [PATCH 3/5] Fix whitespace in some abiEncodeDecode tests --- .../abi_decode_offset_overflow_in_array.sol | 19 +++++++++--------- .../abi_decode_offset_overflow_in_array_2.sol | 20 +++++++++---------- .../abi_decode_offset_overflow_in_array_3.sol | 8 ++++---- ..._exceeds_calldatasize_no_revert_string.sol | 1 - 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array.sol index 02937aced8da..e7de18d7a474 100644 --- a/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array.sol +++ b/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array.sol @@ -6,16 +6,17 @@ contract Test { function test() public pure returns (uint) { uint[] memory before = new uint[](1); // at offset 0x80 // Two problems here: The first offset is zero, the second offset is missing. - bytes memory corrupt = abi.encode(uint(32), // offset to "tuple" - uint(0)); // bogus first element - /* - At this point the free pointer is 0x80 + 64 (size of before) + 32 (length field of corrupt) + 64 (two encoded words) + bytes memory corrupt = abi.encode( + uint(32), // offset to "tuple" + uint(0) // bogus first element + ); - Now let's put random junk into memory immediately after the bogus first element. Our goal is to overflow the read pointer to point to before. - The value read out at this point will be added to beginning of the encoded tuple, AKA corrupt + 64. We need then to write x where: - x + 0x80 + 64 (before) + 32 (length of corrupt) + 32 (first word of corrupt) = 0x80 (mod 2^256) - that is MAX_UINT - 128 - */ + // At this point the free pointer is 0x80 + 64 (size of before) + 32 (length field of corrupt) + 64 (two encoded words) + // + // Now let's put random junk into memory immediately after the bogus first element. Our goal is to overflow the read pointer to point to before. + // The value read out at this point will be added to beginning of the encoded tuple, AKA corrupt + 64. We need then to write x where: + // x + 0x80 + 64 (before) + 32 (length of corrupt) + 32 (first word of corrupt) = 0x80 (mod 2^256) + // that is MAX_UINT - 128 MemoryUint memory afterCorrupt; afterCorrupt.field = uint(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80); before[0] = 123456; diff --git a/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_2.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_2.sol index 0a874914a93d..539f3f277e46 100644 --- a/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_2.sol +++ b/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_2.sol @@ -6,21 +6,21 @@ contract Test { } function withinArray() public pure returns (uint) { uint[] memory before = new uint[](1); - bytes memory corrupt = abi.encode(uint(32), - uint(2)); + bytes memory corrupt = abi.encode( + uint(32), + uint(2) + ); MemoryTuple memory afterCorrupt; before[0] = 123456; - /* - As above, but in this case we are adding to: - 0x80 + 64 (before) + 32 (length of corrupt) + 32 (offset) + 32 (field pointer) - giving MAX_UINT - 96 - */ + + // As above, but in this case we are adding to: + // 0x80 + 64 (before) + 32 (length of corrupt) + 32 (offset) + 32 (field pointer) + // giving MAX_UINT - 96 afterCorrupt.field1 = uint(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60); afterCorrupt.field2 = uint(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60); uint[][] memory decoded = abi.decode(corrupt, (uint[][])); - /* - Will return 123456 * 2, AKA before has been copied twice - */ + + //Will return 123456 * 2, AKA before has been copied twice return decoded[0][0] + decoded[1][0]; } } diff --git a/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_3.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_3.sol index a20e9ae49fe1..acd00e2b0a53 100644 --- a/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_3.sol +++ b/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_3.sol @@ -6,10 +6,10 @@ contract Test { function test() public pure returns (uint) { uint[] memory before = new uint[](1); // at offset 0x80 bytes memory corrupt = abi.encode( - uint(32), - uint(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80), - uint(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80) - ); + uint(32), + uint(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80), + uint(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80) + ); MemoryUint memory afterCorrupt; afterCorrupt.field = uint(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80); before[0] = 123456; diff --git a/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_calldatasize_no_revert_string.sol b/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_calldatasize_no_revert_string.sol index 7fc08caafb04..f51c79ad3151 100644 --- a/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_calldatasize_no_revert_string.sol +++ b/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_calldatasize_no_revert_string.sol @@ -5,4 +5,3 @@ contract C { // f(uint256[]): 0x20, 0 -> // f(uint256[]): 0x20, 1 -> FAILURE // f(uint256[]): 0x20, 2 -> FAILURE - From f5e733b80db2d58b83e6c1ff76ff5401ee4db480 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20=C5=9Aliwak?= Date: Thu, 19 Feb 2026 19:23:58 +0100 Subject: [PATCH 4/5] Remove redundant ABI coder tests --- ...i_decode_from_calldata_static_array_v2.sol | 14 ---- .../abicoder/abi_encode_calldata_slice_v2.sol | 69 ------------------- ...=> abi_encode_empty_string_not_bytes0.sol} | 2 - .../abi_encode_empty_string_not_bytes0_v1.sol | 13 ---- .../abicoder/abi_encode_rational_v2.sol | 11 --- .../array/memory_dynamic_arrays_v2.sol | 10 --- .../memory_params_in_external_function_v2.sol | 18 ----- ...ldata_array_bounds_check_nested_bytes2.sol | 10 --- 8 files changed, 147 deletions(-) delete mode 100644 test/libsolidity/semanticTests/abicoder/abi_decode_from_calldata_static_array_v2.sol delete mode 100644 test/libsolidity/semanticTests/abicoder/abi_encode_calldata_slice_v2.sol rename test/libsolidity/semanticTests/abicoder/{abi_encode_empty_string_not_bytes0_v2.sol => abi_encode_empty_string_not_bytes0.sol} (88%) delete mode 100644 test/libsolidity/semanticTests/abicoder/abi_encode_empty_string_not_bytes0_v1.sol delete mode 100644 test/libsolidity/semanticTests/abicoder/abi_encode_rational_v2.sol delete mode 100644 test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_dynamic_arrays_v2.sol delete mode 100644 test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_params_in_external_function_v2.sol delete mode 100644 test/libsolidity/semanticTests/array/calldata_array_bounds_check_nested_bytes2.sol diff --git a/test/libsolidity/semanticTests/abicoder/abi_decode_from_calldata_static_array_v2.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_from_calldata_static_array_v2.sol deleted file mode 100644 index e228099c4eb3..000000000000 --- a/test/libsolidity/semanticTests/abicoder/abi_decode_from_calldata_static_array_v2.sol +++ /dev/null @@ -1,14 +0,0 @@ -pragma abicoder v2; - - -contract C { - function f(bytes calldata data) - external - pure - returns (uint256[2][3] memory) - { - return abi.decode(data, (uint256[2][3])); - } -} -// ---- -// f(bytes): 0x20, 0xc0, 0x1, 0x2, 0x3, 0x4, 0x5, 0x6 -> 1, 2, 3, 4, 5, 6 diff --git a/test/libsolidity/semanticTests/abicoder/abi_encode_calldata_slice_v2.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_calldata_slice_v2.sol deleted file mode 100644 index 0c59c33c4b32..000000000000 --- a/test/libsolidity/semanticTests/abicoder/abi_encode_calldata_slice_v2.sol +++ /dev/null @@ -1,69 +0,0 @@ -pragma abicoder v2; -contract C { - function enc_packed_bytes(bytes calldata data, uint256 start, uint256 end) external returns (bytes memory) { - return abi.encodePacked(data[start:end]); - } - function enc_packed_bytes_reference(bytes calldata data, uint256 start, uint256 end) external returns (bytes memory) { - return abi.encodePacked(bytes(data[start:end])); - } - - function enc_bytes(bytes calldata data, uint256 start, uint256 end) external returns (bytes memory) { - return abi.encode(data[start:end]); - } - function enc_bytes_reference(bytes calldata data, uint256 start, uint256 end) external returns (bytes memory) { - return abi.encode(bytes(data[start:end])); - } - - function enc_uint256(uint256[] calldata x, uint256 start, uint256 end) external returns (bytes memory) { - return abi.encode(x[start:end]); - } - function enc_uint256_reference(uint256[] calldata x, uint256 start, uint256 end) external returns (bytes memory) { - return abi.encode(x[start:end]); - } - - function enc_packed_uint256(uint256[] calldata x, uint256 start, uint256 end) external returns (bytes memory) { - return abi.encodePacked(x[start:end]); - } - function enc_packed_uint256_reference(uint256[] calldata x, uint256 start, uint256 end) external returns (bytes memory) { - return abi.encodePacked(x[start:end]); - } - - function compare(bytes memory x, bytes memory y) internal { - assert(x.length == y.length); - for (uint i = 0; i < x.length; ++i) - assert(x[i] == y[i]); - } - - function test_bytes() public { - bytes memory test = new bytes(3); - test[0] = 0x41; test[1] = 0x42; test[2] = 0x42; - for (uint i = 0; i < test.length; i++) - for (uint j = i; j <= test.length; j++) - { - compare(this.enc_packed_bytes(test, i, j), this.enc_packed_bytes_reference(test, i, j)); - compare(this.enc_bytes(test, i, j), this.enc_bytes_reference(test, i, j)); - } - } - - function test_uint256() public { - uint256[] memory test = new uint256[](3); - test[0] = 0x41; test[1] = 0x42; test[2] = 0x42; - for (uint i = 0; i < test.length; i++) - for (uint j = i; j <= test.length; j++) - { - compare(this.enc_packed_uint256(test, i, j), this.enc_packed_uint256_reference(test, i, j)); - compare(this.enc_uint256(test, i, j), this.enc_uint256_reference(test, i, j)); - } - } -} -// ==== -// EVMVersion: >homestead -// ---- -// test_bytes() -> -// gas irOptimized: 314884 -// gas legacy: 305816 -// gas legacyOptimized: 253573 -// test_uint256() -> -// gas irOptimized: 448346 -// gas legacy: 421304 -// gas legacyOptimized: 351544 diff --git a/test/libsolidity/semanticTests/abicoder/abi_encode_empty_string_not_bytes0_v2.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_empty_string_not_bytes0.sol similarity index 88% rename from test/libsolidity/semanticTests/abicoder/abi_encode_empty_string_not_bytes0_v2.sol rename to test/libsolidity/semanticTests/abicoder/abi_encode_empty_string_not_bytes0.sol index 849c24a91f3c..4b88c099b252 100644 --- a/test/libsolidity/semanticTests/abicoder/abi_encode_empty_string_not_bytes0_v2.sol +++ b/test/libsolidity/semanticTests/abicoder/abi_encode_empty_string_not_bytes0.sol @@ -1,7 +1,5 @@ // Tests that this will not end up using a "bytes0" type // (which would assert) -pragma abicoder v2; - contract C { function f() public pure returns (bytes memory, bytes memory) { diff --git a/test/libsolidity/semanticTests/abicoder/abi_encode_empty_string_not_bytes0_v1.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_empty_string_not_bytes0_v1.sol deleted file mode 100644 index 9f7216e6bcb4..000000000000 --- a/test/libsolidity/semanticTests/abicoder/abi_encode_empty_string_not_bytes0_v1.sol +++ /dev/null @@ -1,13 +0,0 @@ -pragma abicoder v1; -// Tests that this will not end up using a "bytes0" type -// (which would assert) -contract C { - function f() public pure returns (bytes memory, bytes memory) { - return (abi.encode(""), abi.encodePacked("")); - } -} -// ==== -// ABIEncoderV1Only: true -// compileViaYul: false -// ---- -// f() -> 0x40, 0xa0, 0x40, 0x20, 0x0, 0x0 diff --git a/test/libsolidity/semanticTests/abicoder/abi_encode_rational_v2.sol b/test/libsolidity/semanticTests/abicoder/abi_encode_rational_v2.sol deleted file mode 100644 index edd319d45a39..000000000000 --- a/test/libsolidity/semanticTests/abicoder/abi_encode_rational_v2.sol +++ /dev/null @@ -1,11 +0,0 @@ -// Tests that rational numbers (even negative ones) are encoded properly. -pragma abicoder v2; - - -contract C { - function f() public pure returns (bytes memory) { - return abi.encode(1, -2); - } -} -// ---- -// f() -> 0x20, 0x40, 0x1, -2 diff --git a/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_dynamic_arrays_v2.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_dynamic_arrays_v2.sol deleted file mode 100644 index e8b64a10826c..000000000000 --- a/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_dynamic_arrays_v2.sol +++ /dev/null @@ -1,10 +0,0 @@ -pragma abicoder v2; - -contract C { - function f(uint a, uint16[] memory b, uint c) - public pure returns (uint, uint, uint) { - return (b.length, b[a], c); - } -} -// ---- -// f(uint256,uint16[],uint256): 6, 0x60, 9, 7, 11, 12, 13, 14, 15, 16, 17 -> 7, 17, 9 diff --git a/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_params_in_external_function_v2.sol b/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_params_in_external_function_v2.sol deleted file mode 100644 index f8beb57030a5..000000000000 --- a/test/libsolidity/semanticTests/abicoder/calldataDecoding/array/memory_params_in_external_function_v2.sol +++ /dev/null @@ -1,18 +0,0 @@ -pragma abicoder v2; - -contract C { - function f(bytes memory a, bytes calldata b, uint[] memory c) - external - pure - returns (uint, bytes1, uint, bytes1, uint, uint) - { - return (a.length, a[1], b.length, b[2], c.length, c[3]); - } - function g() public returns (uint, bytes1, uint, bytes1, uint, uint) { - uint[] memory x = new uint[](4); - x[3] = 7; - return this.f("abc", "def", x); - } -} -// ---- -// g() -> 3, 0x6200000000000000000000000000000000000000000000000000000000000000, 3, 0x6600000000000000000000000000000000000000000000000000000000000000, 4, 7 diff --git a/test/libsolidity/semanticTests/array/calldata_array_bounds_check_nested_bytes2.sol b/test/libsolidity/semanticTests/array/calldata_array_bounds_check_nested_bytes2.sol deleted file mode 100644 index d6ff4679fe7f..000000000000 --- a/test/libsolidity/semanticTests/array/calldata_array_bounds_check_nested_bytes2.sol +++ /dev/null @@ -1,10 +0,0 @@ -pragma abicoder v2; -contract C { - function f(bytes[] calldata a, uint256 i) external returns (uint) { - return uint8(a[0][i]); - } -} -// ---- -// f(bytes[],uint256): 0x40, 0, 1, 0x20, 2, 0x6162000000000000000000000000000000000000000000000000000000000000 -> 0x61 -// f(bytes[],uint256): 0x40, 1, 1, 0x20, 2, 0x6162000000000000000000000000000000000000000000000000000000000000 -> 0x62 -// f(bytes[],uint256): 0x40, 2, 1, 0x20, 2, 0x6162000000000000000000000000000000000000000000000000000000000000 -> FAILURE, hex"4e487b71", 0x32 From 511cdc067c56f51328ce3a31bfd4dbdb85a46ff2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20=C5=9Aliwak?= Date: Thu, 19 Feb 2026 15:46:49 +0100 Subject: [PATCH 5/5] Enable debug revert strings in some of the existing calldata/encoding tests --- .../abi_decode_offset_overflow_in_array.sol | 4 +++- .../abi_decode_offset_overflow_in_array_2.sol | 4 +++- .../abi_decode_offset_overflow_in_array_3.sol | 4 +++- .../validation/array_exceeds_calldatasize_v1.sol | 13 +++++++++++++ ..._exceeds_size_limit_for_calldata_types_v1.sol | 13 +++++++++++++ ...exceeds_size_limit_for_calldata_types_v2.sol} | 6 +++++- ...ta_array_dynamic_invalid_static_middle_v2.sol | 13 +++++++------ .../calldata_array_dynamic_invalid_v2.sol | 11 ++++++----- .../validation/calldata_with_garbage_v2.sol | 16 +++++++++------- .../external_function_type_inside_struct_v2.sol | 4 +++- .../abicoder/validation/static_struct_v2.sol | 4 +++- 11 files changed, 68 insertions(+), 24 deletions(-) create mode 100644 test/libsolidity/semanticTests/abicoder/validation/array_exceeds_calldatasize_v1.sol create mode 100644 test/libsolidity/semanticTests/abicoder/validation/array_exceeds_size_limit_for_calldata_types_v1.sol rename test/libsolidity/semanticTests/abicoder/validation/{array_exceeds_size_limit_for_calldata_types.sol => array_exceeds_size_limit_for_calldata_types_v2.sol} (66%) diff --git a/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array.sol index e7de18d7a474..29eb1483c897 100644 --- a/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array.sol +++ b/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array.sol @@ -24,5 +24,7 @@ contract Test { return decoded[1][0]; } } +// ==== +// revertStrings: debug // ---- -// test() -> FAILURE +// test() -> FAILURE, hex"08c379a0", 0x20, 43, "ABI decoding: invalid calldata a", "rray stride" diff --git a/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_2.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_2.sol index 539f3f277e46..78bf581f0948 100644 --- a/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_2.sol +++ b/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_2.sol @@ -24,5 +24,7 @@ contract Test { return decoded[0][0] + decoded[1][0]; } } +// ==== +// revertStrings: debug // ---- -// withinArray() -> FAILURE +// withinArray() -> FAILURE, hex"08c379a0", 0x20, 43, "ABI decoding: invalid calldata a", "rray stride" diff --git a/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_3.sol b/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_3.sol index acd00e2b0a53..4eb871c2a866 100644 --- a/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_3.sol +++ b/test/libsolidity/semanticTests/abicoder/abi_decode_offset_overflow_in_array_3.sol @@ -17,5 +17,7 @@ contract Test { return decoded[1][0]; } } +// ==== +// revertStrings: debug // ---- -// test() -> FAILURE +// test() -> FAILURE, hex"08c379a0", 0x20, 43, "ABI decoding: invalid calldata a", "rray offset" diff --git a/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_calldatasize_v1.sol b/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_calldatasize_v1.sol new file mode 100644 index 000000000000..ba43942476d1 --- /dev/null +++ b/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_calldatasize_v1.sol @@ -0,0 +1,13 @@ +pragma abicoder v1; + +contract C { + function f(uint[] calldata) public {} +} +// ==== +// ABIEncoderV1Only: true +// compileViaYul: false +// revertStrings: debug +// ---- +// f(uint256[]): 0x20, 0 -> +// f(uint256[]): 0x20, 1 -> FAILURE, hex"08c379a0", 0x20, 43, "ABI calldata decoding: invalid d", "ata pointer" +// f(uint256[]): 0x20, 2 -> FAILURE, hex"08c379a0", 0x20, 43, "ABI calldata decoding: invalid d", "ata pointer" diff --git a/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_size_limit_for_calldata_types_v1.sol b/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_size_limit_for_calldata_types_v1.sol new file mode 100644 index 000000000000..44eade500e52 --- /dev/null +++ b/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_size_limit_for_calldata_types_v1.sol @@ -0,0 +1,13 @@ +pragma abicoder v1; + +contract C { + function f(uint a, uint[] calldata b, uint c) external pure returns (uint) { + return 7; + } +} +// ==== +// ABIEncoderV1Only: true +// compileViaYul: false +// revertStrings: debug +// ---- +// f(uint256,uint256[],uint256): 6, 0x60, 9, 0x8000000000000000000000000000000000000000000000000000000000000002, 1, 2 -> FAILURE, hex"08c379a0", 0x20, 43, "ABI calldata decoding: invalid d", "ata pointer" diff --git a/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_size_limit_for_calldata_types.sol b/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_size_limit_for_calldata_types_v2.sol similarity index 66% rename from test/libsolidity/semanticTests/abicoder/validation/array_exceeds_size_limit_for_calldata_types.sol rename to test/libsolidity/semanticTests/abicoder/validation/array_exceeds_size_limit_for_calldata_types_v2.sol index 49bee94ea344..01573d614f90 100644 --- a/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_size_limit_for_calldata_types.sol +++ b/test/libsolidity/semanticTests/abicoder/validation/array_exceeds_size_limit_for_calldata_types_v2.sol @@ -1,7 +1,11 @@ +pragma abicoder v2; + contract C { function f(uint a, uint[] calldata b, uint c) external pure returns (uint) { return 7; } } +// ==== +// revertStrings: debug // ---- -// f(uint256,uint256[],uint256): 6, 0x60, 9, 0x8000000000000000000000000000000000000000000000000000000000000002, 1, 2 -> FAILURE +// f(uint256,uint256[],uint256): 6, 0x60, 9, 0x8000000000000000000000000000000000000000000000000000000000000002, 1, 2 -> FAILURE, hex"08c379a0", 0x20, 43, "ABI decoding: invalid calldata a", "rray length" diff --git a/test/libsolidity/semanticTests/abicoder/validation/calldata_array_dynamic_invalid_static_middle_v2.sol b/test/libsolidity/semanticTests/abicoder/validation/calldata_array_dynamic_invalid_static_middle_v2.sol index 93470f1d22e2..117ea020aaec 100644 --- a/test/libsolidity/semanticTests/abicoder/validation/calldata_array_dynamic_invalid_static_middle_v2.sol +++ b/test/libsolidity/semanticTests/abicoder/validation/calldata_array_dynamic_invalid_static_middle_v2.sol @@ -1,5 +1,4 @@ -pragma abicoder v2; - +pragma abicoder v2; contract C { function f(uint256[][1][] calldata a) external returns (uint256) { @@ -16,14 +15,16 @@ contract C { return 42; } } +// ==== +// revertStrings: debug // ---- // f(uint256[][1][]): 0x20, 0x0 -> 42 # valid access stub # -// f(uint256[][1][]): 0x20, 0x1 -> FAILURE # invalid on argument decoding # +// f(uint256[][1][]): 0x20, 0x1 -> FAILURE, hex"08c379a0", 0x20, 43, "ABI decoding: invalid calldata a", "rray stride" # invalid on argument decoding # // f(uint256[][1][]): 0x20, 0x1, 0x20 -> 42 # invalid on outer access # -// g(uint256[][1][]): 0x20, 0x1, 0x20 -> FAILURE +// g(uint256[][1][]): 0x20, 0x1, 0x20 -> FAILURE, hex"08c379a0", 0x20, 0x1c, "Invalid calldata tail offset" // f(uint256[][1][]): 0x20, 0x1, 0x20, 0x20 -> 42 # invalid on inner access # // g(uint256[][1][]): 0x20, 0x1, 0x20, 0x20 -> 42 -// h(uint256[][1][]): 0x20, 0x1, 0x20, 0x20 -> FAILURE +// h(uint256[][1][]): 0x20, 0x1, 0x20, 0x20 -> FAILURE, hex"08c379a0", 0x20, 0x1c, "Invalid calldata tail offset" // f(uint256[][1][]): 0x20, 0x1, 0x20, 0x20, 0x1 -> 42 // g(uint256[][1][]): 0x20, 0x1, 0x20, 0x20, 0x1 -> 42 -// h(uint256[][1][]): 0x20, 0x1, 0x20, 0x20, 0x1 -> FAILURE +// h(uint256[][1][]): 0x20, 0x1, 0x20, 0x20, 0x1 -> FAILURE, hex"08c379a0", 0x20, 0x17, "Calldata tail too short" diff --git a/test/libsolidity/semanticTests/abicoder/validation/calldata_array_dynamic_invalid_v2.sol b/test/libsolidity/semanticTests/abicoder/validation/calldata_array_dynamic_invalid_v2.sol index dc1d1c31a18b..e3fd7d6fc832 100644 --- a/test/libsolidity/semanticTests/abicoder/validation/calldata_array_dynamic_invalid_v2.sol +++ b/test/libsolidity/semanticTests/abicoder/validation/calldata_array_dynamic_invalid_v2.sol @@ -1,5 +1,4 @@ -pragma abicoder v2; - +pragma abicoder v2; contract C { function f(uint256[][] calldata a) external returns (uint256) { @@ -11,10 +10,12 @@ contract C { return 42; } } +// ==== +// revertStrings: debug // ---- // f(uint256[][]): 0x20, 0x0 -> 42 # valid access stub # -// f(uint256[][]): 0x20, 0x1 -> FAILURE # invalid on argument decoding # +// f(uint256[][]): 0x20, 0x1 -> FAILURE, hex"08c379a0", 0x20, 43, "ABI decoding: invalid calldata a", "rray stride" # invalid on argument decoding # // f(uint256[][]): 0x20, 0x1, 0x20 -> 42 # invalid on outer access # -// g(uint256[][]): 0x20, 0x1, 0x20 -> FAILURE +// g(uint256[][]): 0x20, 0x1, 0x20 -> FAILURE, hex"08c379a0", 0x20, 0x1c, "Invalid calldata tail offset" // f(uint256[][]): 0x20, 0x1, 0x20, 0x2, 0x42 -> 42 # invalid on inner access # -// g(uint256[][]): 0x20, 0x1, 0x20, 0x2, 0x42 -> FAILURE +// g(uint256[][]): 0x20, 0x1, 0x20, 0x2, 0x42 -> FAILURE, hex"08c379a0", 0x20, 0x17, "Calldata tail too short" diff --git a/test/libsolidity/semanticTests/abicoder/validation/calldata_with_garbage_v2.sol b/test/libsolidity/semanticTests/abicoder/validation/calldata_with_garbage_v2.sol index 58f68b8cc268..3c759b00b023 100644 --- a/test/libsolidity/semanticTests/abicoder/validation/calldata_with_garbage_v2.sol +++ b/test/libsolidity/semanticTests/abicoder/validation/calldata_with_garbage_v2.sol @@ -39,28 +39,30 @@ contract C { return (a[which], b[0]); } } +// ==== +// revertStrings: debug // ---- // f_memory(uint256[]): 0x80, 9, 9, 9, 0 -> 0x20, 0 // f_memory(uint256[]): 0x80, 9, 9, 9, 1, 7 -> 0x20, 1, 7 -// f_memory(uint256[]): 0x80, 9, 9, 9, 2, 7 -> FAILURE +// f_memory(uint256[]): 0x80, 9, 9, 9, 2, 7 -> FAILURE, hex"08c379a0", 0x20, 43, "ABI decoding: invalid calldata a", "rray stride" // f_encode(uint256[]): 0x80, 9, 9, 9, 0 -> 0x20, 0x40, 0x20, 0 // f_encode(uint256[]): 0x80, 9, 9, 9, 1, 7 -> 0x20, 0x60, 0x20, 1, 7 -// f_encode(uint256[]): 0x80, 9, 9, 9, 2, 7 -> FAILURE +// f_encode(uint256[]): 0x80, 9, 9, 9, 2, 7 -> FAILURE, hex"08c379a0", 0x20, 43, "ABI decoding: invalid calldata a", "rray stride" // f_storage(uint256[]): 0x80, 9, 9, 9, 0 -> 0x20, 0x40, 0x20, 0 // f_storage(uint256[]): 0x80, 9, 9, 9, 1, 7 -> 0x20, 0x60, 0x20, 1, 7 -// f_storage(uint256[]): 0x80, 9, 9, 9, 2, 7 -> FAILURE +// f_storage(uint256[]): 0x80, 9, 9, 9, 2, 7 -> FAILURE, hex"08c379a0", 0x20, 43, "ABI decoding: invalid calldata a", "rray stride" // f_index(uint256[],uint256): 0xa0, 0, 9, 9, 9, 2, 7, 8 -> 7 // f_index(uint256[],uint256): 0xa0, 1, 9, 9, 9, 2, 7, 8 -> 8 // f_index(uint256[],uint256): 0xa0, 2, 9, 9, 9, 2, 7, 8 -> FAILURE, hex"4e487b71", 0x32 // g_memory(uint256[],uint256[2]): 0xc0, 1, 2, 9, 9, 9, 0 -> 0x60, 1, 2, 0 // g_memory(uint256[],uint256[2]): 0xc0, 1, 2, 9, 9, 9, 1, 7 -> 0x60, 1, 2, 1, 7 -// g_memory(uint256[],uint256[2]): 0xc0, 1, 2, 9, 9, 9, 2, 7 -> FAILURE +// g_memory(uint256[],uint256[2]): 0xc0, 1, 2, 9, 9, 9, 2, 7 -> FAILURE, hex"08c379a0", 0x20, 43, "ABI decoding: invalid calldata a", "rray stride" // g_encode(uint256[],uint256[2]): 0xc0, 1, 2, 9, 9, 9, 0 -> 0x20, 0x80, 0x60, 1, 2, 0 // g_encode(uint256[],uint256[2]): 0xc0, 1, 2, 9, 9, 9, 1, 7 -> 0x20, 0xa0, 0x60, 1, 2, 1, 7 -// g_encode(uint256[],uint256[2]): 0xc0, 1, 2, 9, 9, 9, 2, 7 -> FAILURE +// g_encode(uint256[],uint256[2]): 0xc0, 1, 2, 9, 9, 9, 2, 7 -> FAILURE, hex"08c379a0", 0x20, 43, "ABI decoding: invalid calldata a", "rray stride" // g_storage(uint256[],uint256[2]): 0xc0, 1, 2, 9, 9, 9, 0 -> 0x20, 0x80, 0x60, 1, 2, 0 // g_storage(uint256[],uint256[2]): 0xc0, 1, 2, 9, 9, 9, 1, 7 -> 0x20, 0xa0, 0x60, 1, 2, 1, 7 -// g_storage(uint256[],uint256[2]): 0xc0, 1, 2, 9, 9, 9, 2, 7 -> FAILURE +// g_storage(uint256[],uint256[2]): 0xc0, 1, 2, 9, 9, 9, 2, 7 -> FAILURE, hex"08c379a0", 0x20, 43, "ABI decoding: invalid calldata a", "rray stride" // g_index(uint256[],uint256[2],uint256): 0xe0, 1, 2, 0, 9, 9, 9, 2, 7, 8 -> 7, 1 // g_index(uint256[],uint256[2],uint256): 0xe0, 1, 2, 1, 9, 9, 9, 2, 7, 8 -> 8, 1 -// g_index(uint256[],uint256[2],uint256): 0xe0, 1, 2, 1, 9, 9, 9, 2, 7 -> FAILURE +// g_index(uint256[],uint256[2],uint256): 0xe0, 1, 2, 1, 9, 9, 9, 2, 7 -> FAILURE, hex"08c379a0", 0x20, 43, "ABI decoding: invalid calldata a", "rray stride" diff --git a/test/libsolidity/semanticTests/abicoder/validation/external_function_type_inside_struct_v2.sol b/test/libsolidity/semanticTests/abicoder/validation/external_function_type_inside_struct_v2.sol index 8a22b037f6de..d405711de964 100644 --- a/test/libsolidity/semanticTests/abicoder/validation/external_function_type_inside_struct_v2.sol +++ b/test/libsolidity/semanticTests/abicoder/validation/external_function_type_inside_struct_v2.sol @@ -1,4 +1,4 @@ -pragma abicoder v2; +pragma abicoder v2; contract C { struct S { function () external x; } @@ -6,6 +6,8 @@ contract C { function g(S calldata) external pure returns (uint r) { r = 2; } function h(S calldata s) external pure returns (uint r) { s.x; r = 3; } } +// ==== +// revertStrings: debug // ---- // f((function)): "01234567890123456789abcd" -> 1 // f((function)): "01234567890123456789abcdX" -> FAILURE diff --git a/test/libsolidity/semanticTests/abicoder/validation/static_struct_v2.sol b/test/libsolidity/semanticTests/abicoder/validation/static_struct_v2.sol index 57e218f7d561..2197d3ed2155 100644 --- a/test/libsolidity/semanticTests/abicoder/validation/static_struct_v2.sol +++ b/test/libsolidity/semanticTests/abicoder/validation/static_struct_v2.sol @@ -1,4 +1,4 @@ -pragma abicoder v2; +pragma abicoder v2; contract C { struct S { int16 a; uint8 b; bytes2 c; } @@ -10,6 +10,8 @@ contract C { } } } +// ==== +// revertStrings: debug // ---- // f((int16,uint8,bytes2)): 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, 0xff, "ab" -> 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01, 0xff, "ab" // f((int16,uint8,bytes2)): 0xff010, 0xff, "ab" -> FAILURE