dart-sdk/tests/ffi
Aravind 8f89bbe1a9 [vm/ffi] Not preventing the transformation for InvalidExpression in ffi
Currently, we just "removed" the actual expression by transforming to
`InvalidExpression('Invalid Type')` if a expression is Invalid. But this  could cascade `.address` position errors (i.e transformer no longer able to walk `.address.abc` if the expression is just replaced with empty expression). So unwrapping actual expression from `InvalidExpression` and trying to transforming that actual expression through a recursive call.

TEST=tests/ffi/static_checks/address_position_cascade_test.dart
Bug: https://github.com/dart-lang/sdk/issues/56613
Change-Id: Ib1ba1d5021797b645c29ac296752d844d0935964
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/384080
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Slava Egorov <vegorov@google.com>
2024-09-13 06:59:39 +00:00
..
generator [vm/ffi] Variable length inline arrays 2024-08-06 07:50:49 +00:00
native_assets [native_assets] Don't tree-shake vm:ffi:native-assets library 2024-07-29 10:29:29 +00:00
static_checks [vm/ffi] Not preventing the transformation for InvalidExpression in ffi 2024-09-13 06:59:39 +00:00
abi_specific_int_incomplete_aot_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
abi_specific_int_incomplete_jit_test.dart Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
abi_specific_int_test.dart Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
abi_test.dart
address_of_array_generated_test.dart [vm/ffi] address of operator for FFI leaf calls 2024-04-25 10:06:16 +00:00
address_of_cast_test.dart [vm/ffi] Supporting .address.cast() expression in ffi leaf calls 2024-08-28 06:34:09 +00:00
address_of_generated_shared.dart [vm/ffi] address of operator for FFI leaf calls 2024-04-25 10:06:16 +00:00
address_of_shared.dart [vm/ffi] address of operator for FFI leaf calls 2024-04-25 10:06:16 +00:00
address_of_struct_generated_test.dart [vm/ffi] address of operator for FFI leaf calls 2024-04-25 10:06:16 +00:00
address_of_test.dart [vm/ffi] address of operator for FFI leaf calls 2024-04-25 10:06:16 +00:00
address_of_typeddata_generated_test.dart [vm/ffi] address of operator for FFI leaf calls 2024-04-25 10:06:16 +00:00
aliasing_test.dart Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
all_positive.dart
allocator_test.dart
analysis_options.yaml [tests] Remove obsolete Dart 3.0 experiments from FFI tests 2023-06-15 08:25:18 +00:00
async_callback_tests_utils.dart [test/ffi] Test generator pointer arguments 2024-08-05 09:26:50 +00:00
async_void_function_callbacks_test.dart [vm, ffi] Make callbacks profiler-safe. 2024-05-28 21:16:41 +00:00
bool_test.dart
c_types_test.dart
callback_tests_utils.dart [vm/ffi] Closure callbacks for sync callbacks 2023-08-25 03:35:44 +00:00
callback_unwind_error_test.dart [ffi] Add failing callback test with an Error that is not an UnhandledException. 2023-05-01 16:13:51 +00:00
calloc_test.dart
coordinate.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
coordinate_nnbd_workaround.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
data_not_asan_test.dart
data_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
deeply_immutable_c_api_finalizer_test.dart [vm/test] Fix imports 2024-03-15 17:21:30 +00:00
dl_api_exit_enter_isolate_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
dylib_close_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
dylib_isolates_test.dart
dylib_open_test.dart Reland "Tweak expect.dart library." 2024-04-26 15:28:26 +00:00
dylib_utils.dart [test/ffi] Fix tests on Fuchsia 2023-10-30 15:28:20 +00:00
expando_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
extension_methods_test.dart Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
external_typed_data_finalizer_test.dart [vm/ffi] Pointer.asTypedList finalizer 2023-05-10 11:38:57 +00:00
external_typed_data_test.dart
ffi.status [vm/ffi] Mark tests as slow 2024-07-29 12:11:51 +00:00
ffi_callback_unique_test.dart Reland "[vm] Migrate FFI callbacks to the new metadata system." 2023-06-06 02:07:58 +00:00
ffi_induce_a_crash_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
ffi_native_test.dart [vm/ffi] Remove deprecated FfiNative 2023-11-20 13:16:28 +00:00
ffi_test_helpers.dart
finalizer_external_size_accounting_test.dart [vm, gc] Add missing promotion of Finalizer external size. Remove race incrementing external size. 2022-11-30 17:14:59 +00:00
function_callbacks_many_test.dart [vm] Remove dual mapping of code 2024-01-09 12:36:55 +00:00
function_callbacks_structs_by_value_generated_test.dart [vm/ffi] Variable length inline arrays 2024-08-06 07:50:49 +00:00
function_callbacks_structs_by_value_native_callable_generated_test.dart [vm/ffi] Variable length inline arrays 2024-08-06 07:50:49 +00:00
function_callbacks_structs_by_value_test.dart Spelling tools 2023-01-09 15:48:57 +00:00
function_callbacks_subtype_test.dart [vm, ffi] Make callbacks profiler-safe. 2024-05-28 21:16:41 +00:00
function_callbacks_test.dart [vm, ffi] Make callbacks profiler-safe. 2024-05-28 21:16:41 +00:00
function_callbacks_varargs_generated_test.dart [vm/ffi] Fix variadic arguments on MacOS Arm64 2024-04-17 15:42:16 +00:00
function_callbacks_varargs_native_callable_generated_test.dart [vm/ffi] Fix variadic arguments on MacOS Arm64 2024-04-17 15:42:16 +00:00
function_callbacks_very_many_test.dart [vm] Remove dual mapping of code 2024-01-09 12:36:55 +00:00
function_struct_by_value_out_of_bounds_test.dart [ffi]: Add extension operator methods(+,-) for pointer arithmetic 2023-12-14 11:42:38 +00:00
function_structs_by_value_generated_args_leaf_test.dart [vm/ffi] Variable length inline arrays 2024-08-06 07:50:49 +00:00
function_structs_by_value_generated_args_native_leaf_test.dart [vm/ffi] Variable length inline arrays 2024-08-06 07:50:49 +00:00
function_structs_by_value_generated_args_native_test.dart [vm/ffi] Variable length inline arrays 2024-08-06 07:50:49 +00:00
function_structs_by_value_generated_args_test.dart [vm/ffi] Variable length inline arrays 2024-08-06 07:50:49 +00:00
function_structs_by_value_generated_compounds.dart [vm/ffi] Variable length inline arrays 2024-08-06 07:50:49 +00:00
function_structs_by_value_generated_ret_arg_leaf_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_ret_arg_native_leaf_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_ret_arg_native_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_ret_arg_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_ret_leaf_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_ret_native_leaf_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_ret_native_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_by_value_generated_ret_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
function_structs_test.dart Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
function_test.dart Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
function_varargs_generated_leaf_test.dart [vm/ffi] Fix variadic arguments on MacOS Arm64 2024-04-17 15:42:16 +00:00
function_varargs_generated_native_leaf_test.dart [vm/ffi] Fix variadic arguments on MacOS Arm64 2024-04-17 15:42:16 +00:00
function_varargs_generated_native_test.dart [vm/ffi] Fix variadic arguments on MacOS Arm64 2024-04-17 15:42:16 +00:00
function_varargs_generated_test.dart [vm/ffi] Fix variadic arguments on MacOS Arm64 2024-04-17 15:42:16 +00:00
function_varargs_name_test.dart [tests] Remove obsolete Dart 3.0 experiments from FFI tests 2023-06-15 08:25:18 +00:00
function_varargs_test.dart [tests] Remove obsolete Dart 3.0 experiments from FFI tests 2023-06-15 08:25:18 +00:00
function_very_many_test.dart [vm] Remove dual mapping of code 2024-01-09 12:36:55 +00:00
hardfp_test.dart [vm] Remove dual mapping of code 2024-01-09 12:36:55 +00:00
has_symbol_test.dart [vm/ffi] Support DynamicLibrary.process() on Windows 2022-09-27 08:42:03 +00:00
inline_array_multi_dimensional_test.dart
inline_array_test.dart [vm/ffi] Check Array<T extends AbiSpecificInt> bounds [] and []= 2024-01-05 12:35:49 +00:00
inline_array_variable_length_test.dart [vm/ffi] Variable length inline arrays 2024-08-06 07:50:49 +00:00
invoke_callback_after_suspension_test.dart [vm/ffi] Move ffi-callback related state from Thread to ObjectStore, move jit trampolines from Isolate to IsolateGroup 2023-05-17 11:23:28 +00:00
isolate_local_function_callbacks_test.dart [vm, ffi] Make callbacks profiler-safe. 2024-05-28 21:16:41 +00:00
msan_test.dart [vm/msan] Fix MemCopyInstr instrumentation 2024-04-08 10:40:23 +00:00
native_callables_async_structs_by_value_generated_test.dart [vm/ffi] Reformat generated tests 2024-04-15 10:55:46 +00:00
native_callables_sync_structs_by_value_generated_test.dart [vm/ffi] Variable length inline arrays 2024-08-06 07:50:49 +00:00
native_effect_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
negative_function_test.dart
pointer_arithmetic_operators_test.dart [tests/ffi]: Fix failing pointer arithmetic test. 2023-12-18 18:38:05 +00:00
regress_37254_test.dart [vm/ffi] Stop reifying type argument in Pointer 2022-11-28 09:45:45 +00:00
regress_39044_test.dart
regress_39063_test.dart
regress_39885_test.dart Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
regress_40537_test.dart Fixed various typos in a lot of files 2022-07-25 12:21:59 +00:00
regress_43016_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_43693_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_45189_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_45198_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_45507_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_45988_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_46004_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_46127_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_47594_test.dart [infra] Run JIT FFI tests on QEMU. 2023-05-26 23:22:32 +00:00
regress_47673_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_49402_test.dart
regress_49684_test.dart [vm/ffi] Remove deprecated FfiNative 2023-11-20 13:16:28 +00:00
regress_51315_test.dart [ffi]: Add extension operator methods(+,-) for pointer arithmetic 2023-12-14 11:42:38 +00:00
regress_51321_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
regress_51504_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
regress_51538_2_test.dart [cfe/ffi] Fix Finalizable in for( in ) loops 2023-03-02 09:05:19 +00:00
regress_51538_3_test.dart [cfe/ffi] Fix Finalizable in for( in ) loops 2023-03-02 09:05:19 +00:00
regress_51538_test.dart [cfe/ffi] Fix Finalizable in for( in ) loops 2023-03-02 09:05:19 +00:00
regress_52298_test.dart [analyzer/ffi] Fix spurious FFI errors 2023-05-08 15:16:05 +00:00
regress_52399_test.dart [vm/ffi] MSAN instrument StoreIndexedInstr x64 2023-09-19 16:51:30 +00:00
regress_56412_2_test.dart [vm] Variable scoping fixes 2024-08-23 07:03:15 +00:00
regress_56412_test.dart [vm] Variable scoping fixes 2024-08-23 07:03:15 +00:00
regress_b_261224444_test.dart [test/ffi] Free pointer allocated via malloc 2022-12-13 16:41:47 +00:00
regress_flutter79441_test.dart
regress_flutter97301_test.dart
regress_jump_to_frame_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
sizeof_test.dart [vm/ffi] Introduce SizedNativeType 2024-01-12 10:13:39 +00:00
snapshot_test.dart [vm/ffi] Allow Pointer objects to be shared across isolates 2024-02-07 12:48:50 +00:00
stacktrace_regress_37910_test.dart
structs_nested_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
structs_nnbd_workaround_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
structs_packed_test.dart
structs_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
structs_typed_data_test.dart Reland "[vm/ffi] Introduce Struct.create and Union.create" 2024-02-01 18:28:03 +00:00
unaligned_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
variance_function_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
very_large_struct.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
vmspecific_deprecated_funcs_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
vmspecific_dynamic_library_test.dart [vm/ffi] Cleanup tests 2024-02-09 21:27:29 +00:00
vmspecific_enable_ffi_test.dart
vmspecific_ffi_native_handles_test.dart [ffi/test] Skip handles test on Win AOT 2023-11-17 10:54:02 +00:00
vmspecific_ffi_native_test.dart [vm/ffi] Remove deprecated FfiNative 2023-11-20 13:16:28 +00:00
vmspecific_function_callbacks_exit_test.dart
vmspecific_function_callbacks_test.dart [vm] Remove dual mapping of code 2024-01-09 12:36:55 +00:00
vmspecific_function_gc_test.dart [vm] Remove dual mapping of code 2024-01-09 12:36:55 +00:00
vmspecific_function_test.dart [vm] Remove dual mapping of code 2024-01-09 12:36:55 +00:00
vmspecific_handle_dynamically_linked_test.dart Expose Dart_Null_DL from dart_api_dl.h 2023-12-11 21:06:37 +00:00
vmspecific_handle_test.dart Reland "[vm/ffi] Throw on returning Error in Handle" 2022-10-03 12:25:08 +00:00
vmspecific_highmem_32bit_test.dart
vmspecific_leaf_call_test.dart
vmspecific_native_finalizer_2_test.dart
vmspecific_native_finalizer_deeply_immutable_test.dart [vm/ffi] Throw on attaching NativeFinalizer to deeply immutable object 2024-03-28 11:24:36 +00:00
vmspecific_native_finalizer_isolate_groups_test.dart
vmspecific_native_finalizer_isolates_test.dart [vm/isolates] Introduce 'vm:isolate-unsendable' pragma. 2023-03-27 20:54:11 +00:00
vmspecific_native_finalizer_test.dart
vmspecific_object_gc_test.dart
vmspecific_pointer_load_il_test.dart [vm] Split DartReturnInstr and NativeReturnInstr 2024-03-26 11:12:38 +00:00
vmspecific_regress_37100_test.dart Reland "[vm/ffi] Add class modifiers" 2023-03-21 15:25:10 +00:00
vmspecific_regress_37511_callbacks_test.dart
vmspecific_regress_37511_test.dart Revert "[ffi]: Remove pointer elementAt method." 2024-01-22 12:20:48 +00:00
vmspecific_regress_37780_test.dart
vmspecific_regress_51794_test.dart [vm/ffi] Fix test on Android 2023-04-05 19:51:09 +00:00
vmspecific_send_port_id_test.dart