dart-sdk/runtime/vm
Alexander Markov da18c7c9a7 [vm] Fix type of Future returned from async closure created in a factory
In order to create a Future for the result of async closure,
closure needs to instantiate a type argument of its result type.
The result type may reference type arguments of enclosing function or
class and scope builder should visit closure's result type
in order to capture receiver or type arguments variable of parent
factory.

TEST=runtime/tests/vm/dart/regress_49424_test.dart
Fixes https://github.com/dart-lang/sdk/issues/49424

Change-Id: I1cd131251717fca43f8ca95856d13718eb9aca68
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/251320
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2022-07-13 14:09:53 +00:00
..
compiler [vm] Fix type of Future returned from async closure created in a factory 2022-07-13 14:09:53 +00:00
heap [vm, gc] Make force-growth a thread-local property. 2022-06-30 00:21:36 +00:00
libfuzzer
service Fix typos 2022-07-12 19:35:22 +00:00
allocation.cc
allocation.h
allocation_test.cc
analyze_snapshot_api_impl.cc
app_snapshot.cc [vm] Account for pool entries that are immediate objects. 2022-06-30 20:32:44 +00:00
app_snapshot.h
assert_test.cc
atomic_test.cc
base64.cc
base64.h
base64_test.cc
base_isolate.h
benchmark_test.cc
benchmark_test.h
bit_set.h
bit_set_test.cc
bit_vector.cc
bit_vector.h
bit_vector_test.cc
bitfield.h
bitfield_test.cc
bitmap.cc
bitmap.h
bitmap_test.cc
boolfield.h
boolfield_test.cc
bootstrap.cc
bootstrap.h
bootstrap_natives.cc
bootstrap_natives.h [pkg/native_stack_traces] Support Mach-O dSYM debugging information. 2022-07-12 11:10:02 +00:00
bss_relocs.cc
bss_relocs.h
BUILD.gn
canonical_tables.cc
canonical_tables.h
catch_entry_moves_test.cc
class_finalizer.cc
class_finalizer.h
class_finalizer_test.cc
class_id.h
class_table.cc
class_table.h
closure_functions_cache.cc
closure_functions_cache.h
code_comments.cc
code_comments.h
code_descriptors.cc
code_descriptors.h Reland "[vm] Cleanup old async/async*/sync* implementation from the VM" 2022-07-12 19:25:32 +00:00
code_descriptors_test.cc
code_entry_kind.h
code_observers.cc
code_observers.h
code_patcher.cc
code_patcher.h
code_patcher_arm.cc
code_patcher_arm64.cc
code_patcher_arm64_test.cc
code_patcher_arm_test.cc
code_patcher_ia32.cc
code_patcher_ia32_test.cc
code_patcher_riscv.cc
code_patcher_riscv_test.cc
code_patcher_x64.cc
code_patcher_x64_test.cc
compiler_test.cc
constants.h Added byte registers to the x86-64 disassembler 2022-06-08 22:57:03 +00:00
constants_arm.cc
constants_arm.h [vm] Reduce number of callbacks used in sync* functions 2022-07-12 19:30:12 +00:00
constants_arm64.cc
constants_arm64.h [vm] Reduce number of callbacks used in sync* functions 2022-07-12 19:30:12 +00:00
constants_base.h
constants_ia32.cc Added byte registers to the x86-64 disassembler 2022-06-08 22:57:03 +00:00
constants_ia32.h [vm] Reduce number of callbacks used in sync* functions 2022-07-12 19:30:12 +00:00
constants_riscv.cc [vm, compiler] Use RISC-V's compare-and-branch for a shorter write barrier sequence. 2022-06-23 15:58:15 +00:00
constants_riscv.h [vm] Reduce number of callbacks used in sync* functions 2022-07-12 19:30:12 +00:00
constants_x64.cc Added byte registers to the x86-64 disassembler 2022-06-08 22:57:03 +00:00
constants_x64.h [vm] Reduce number of callbacks used in sync* functions 2022-07-12 19:30:12 +00:00
constants_x86.h
cpu.h
cpu_arm.cc
cpu_arm.h
cpu_arm64.cc
cpu_arm64.h
cpu_ia32.cc
cpu_ia32.h
cpu_riscv.cc
cpu_riscv.h
cpu_test.cc
cpu_x64.cc
cpu_x64.h
cpuid.cc
cpuid.h
cpuinfo.h
cpuinfo_android.cc
cpuinfo_fuchsia.cc
cpuinfo_linux.cc
cpuinfo_macos.cc
cpuinfo_test.cc
cpuinfo_win.cc
custom_isolate_test.cc
dart.cc Revert "[vm] Generate event ids for synchronous begin and end events." 2022-07-01 16:08:40 +00:00
dart.h
dart_api_impl.cc [ VM ] Print more useful error message when trying to run a program with no main 2022-07-12 17:21:32 +00:00
dart_api_impl.h
dart_api_impl_test.cc Revert "[vm] Forward dynamic events names to os_signposts as arguments." 2022-07-01 16:07:50 +00:00
dart_api_message.h
dart_api_state.cc
dart_api_state.h
dart_entry.cc
dart_entry.h
datastream.cc
datastream.h
datastream_test.cc
debugger.cc Reland "[vm] Cleanup old async/async*/sync* implementation from the VM" 2022-07-12 19:25:32 +00:00
debugger.h Reland "[vm] Cleanup old async/async*/sync* implementation from the VM" 2022-07-12 19:25:32 +00:00
debugger_api_impl_test.cc Fix typos 2022-06-10 15:48:54 +00:00
debugger_api_impl_test.h
debugger_arm.cc
debugger_arm64.cc
debugger_ia32.cc
debugger_riscv.cc
debugger_x64.cc
deferred_objects.cc
deferred_objects.h
deopt_instructions.cc Fix typos 2022-07-12 19:35:22 +00:00
deopt_instructions.h
dispatch_table.cc
dispatch_table.h
double_conversion.cc
double_conversion.h
double_internals.h
dwarf.cc Fix typos 2022-07-12 19:35:22 +00:00
dwarf.h
elf.cc
elf.h
exceptions.cc
exceptions.h
exceptions_test.cc
experimental_features.cc
experimental_features.h
ffi_callback_trampolines.cc
ffi_callback_trampolines.h
field_table.cc
field_table.h
finalizable_data.h
fixed_cache.h
fixed_cache_test.cc
flag_list.h Reland "[vm] Cleanup old async/async*/sync* implementation from the VM" 2022-07-12 19:25:32 +00:00
flags.cc
flags.h
flags_test.cc
frame_layout.h
gdb_helpers.cc
globals.h [vm, compiler] Fix loading Smis from the pool instead of as immediates due to polluted upper bits under compressed pointers. 2022-07-07 16:08:15 +00:00
growable_array.h
growable_array_test.cc
guard_field_test.cc
handle_visitor.h
handles.cc
handles.h
handles_impl.h
handles_test.cc
hash.h [vm] Avoid UB in FinalizeHash(hash) 2022-07-06 12:48:16 +00:00
hash_map.h
hash_map_test.cc [vm] Avoid UB in FinalizeHash(hash) 2022-07-06 12:48:16 +00:00
hash_table.h
hash_table_test.cc
image_snapshot.cc
image_snapshot.h
instructions.cc
instructions.h
instructions_arm.cc
instructions_arm.h
instructions_arm64.cc
instructions_arm64.h
instructions_arm64_test.cc
instructions_arm_test.cc
instructions_ia32.cc
instructions_ia32.h
instructions_ia32_test.cc
instructions_riscv.cc
instructions_riscv.h
instructions_riscv_test.cc
instructions_x64.cc
instructions_x64.h
instructions_x64_test.cc
intrusive_dlist.h
intrusive_dlist_test.cc
isolate.cc [vm] Don't read function entry points when initializing Threads that don't execute Dart code. 2022-07-06 21:49:10 +00:00
isolate.h
isolate_reload.cc [vm, gc] Make force-growth a thread-local property. 2022-06-30 00:21:36 +00:00
isolate_reload.h
isolate_reload_test.cc
isolate_test.cc
json_stream.cc
json_stream.h
json_test.cc
json_writer.cc
json_writer.h
kernel.cc
kernel.h
kernel_binary.cc
kernel_binary.h [kernel] Remove obsolete AsyncMarker.SyncYielding and YieldStatement.isNative 2022-07-11 18:20:45 +00:00
kernel_isolate.cc [vm] Fix --enable-mirrors VM flag to affect environment and conditional imports 2022-06-17 17:20:09 +00:00
kernel_isolate.h
kernel_loader.cc Reland "[vm] Cleanup old async/async*/sync* implementation from the VM" 2022-07-12 19:25:32 +00:00
kernel_loader.h
lockers.cc
lockers.h
log.cc
log.h
log_test.cc
longjump.cc
longjump.h
longjump_test.cc
malloc_hooks.h
malloc_hooks_arm.cc
malloc_hooks_arm64.cc
malloc_hooks_ia32.cc Reland "Update clang and gn to match Fuchsia." 2022-06-22 21:54:25 +00:00
malloc_hooks_riscv.cc [standalone] Update tcmalloc to 2.10. 2022-07-06 17:34:20 +00:00
malloc_hooks_tcmalloc.cc
malloc_hooks_test.cc
malloc_hooks_unsupported.cc
malloc_hooks_x64.cc
megamorphic_cache_table.cc
megamorphic_cache_table.h
memory_region.cc
memory_region.h
memory_region_test.cc
message.cc
message.h
message_handler.cc
message_handler.h
message_handler_test.cc
message_snapshot.cc
message_snapshot.h
message_test.cc
metrics.cc
metrics.h
metrics_test.cc
mixin_test.cc [cfe] Remove support for old super-mixins feature 2022-06-13 15:30:57 +00:00
native_api_impl.cc
native_arguments.h
native_entry.cc
native_entry.h
native_entry_test.cc
native_entry_test.h
native_function.h
native_message_handler.cc
native_message_handler.h
native_symbol.h
native_symbol_android.cc
native_symbol_fuchsia.cc
native_symbol_linux.cc
native_symbol_macos.cc
native_symbol_win.cc
object.cc Reland "[vm] Cleanup old async/async*/sync* implementation from the VM" 2022-07-12 19:25:32 +00:00
object.h Reland "[vm] Cleanup old async/async*/sync* implementation from the VM" 2022-07-12 19:25:32 +00:00
object_arm64_test.cc
object_arm_test.cc
object_graph.cc
object_graph.h
object_graph_copy.cc
object_graph_copy.h
object_graph_test.cc
object_ia32_test.cc
object_id_ring.cc
object_id_ring.h
object_id_ring_test.cc
object_reload.cc
object_riscv_test.cc
object_service.cc Revert "Reland "[ VM / Service ] Add abstract flag to Function"" 2022-07-07 02:39:11 +00:00
object_set.h
object_store.cc [vm] Reduce number of callbacks used in sync* functions 2022-07-12 19:30:12 +00:00
object_store.h [vm] Reduce number of callbacks used in sync* functions 2022-07-12 19:30:12 +00:00
object_store_test.cc
object_test.cc Revert "Reland "[ VM / Service ] Add abstract flag to Function"" 2022-07-07 02:39:11 +00:00
object_x64_test.cc
os.h
os_android.cc
os_fuchsia.cc
os_linux.cc
os_macos.cc
os_test.cc
os_thread.cc
os_thread.h
os_thread_absl.cc
os_thread_absl.h
os_thread_android.cc
os_thread_android.h
os_thread_fuchsia.cc
os_thread_fuchsia.h
os_thread_linux.cc
os_thread_linux.h
os_thread_macos.cc
os_thread_macos.h
os_thread_win.cc
os_thread_win.h
os_win.cc
parser.cc
parser.h
pending_deopts.cc
pending_deopts.h
pointer_tagging.h
port.cc
port.h
port_set.h
port_test.cc
proccpuinfo.cc
proccpuinfo.h
profiler.cc
profiler.h
profiler_service.cc
profiler_service.h
profiler_test.cc Fix typos 2022-07-12 19:35:22 +00:00
program_visitor.cc [vm] Bug fix in dedup optimization when build deferred components. 2022-07-06 11:04:10 +00:00
program_visitor.h
random.cc Revert "[vm] Generate event ids for synchronous begin and end events." 2022-07-01 16:08:40 +00:00
random.h Revert "[vm] Generate event ids for synchronous begin and end events." 2022-07-01 16:08:40 +00:00
raw_object.cc
raw_object.h [vm] Small fixes 2022-07-04 07:53:39 +00:00
raw_object_fields.cc
raw_object_fields.h
regexp.cc
regexp.h
regexp_assembler.cc
regexp_assembler.h
regexp_assembler_bytecode.cc
regexp_assembler_bytecode.h
regexp_assembler_bytecode_inl.h
regexp_assembler_ir.cc
regexp_assembler_ir.h
regexp_ast.cc
regexp_ast.h
regexp_bytecodes.h
regexp_interpreter.cc
regexp_interpreter.h
regexp_parser.cc
regexp_parser.h
regexp_test.cc
report.cc
report.h
resolver.cc
resolver.h
reusable_handles.h [vm] Bug fix in dedup optimization when build deferred components. 2022-07-06 11:04:10 +00:00
reverse_pc_lookup_cache.cc
reverse_pc_lookup_cache.h
ring_buffer.h
ring_buffer_test.cc
runtime_entry.cc [vm] Reduce number of callbacks used in sync* functions 2022-07-12 19:30:12 +00:00
runtime_entry.h
runtime_entry_arm.cc
runtime_entry_arm64.cc
runtime_entry_ia32.cc
runtime_entry_list.h [vm] New implementation of sync* based on suspend/resume stubs 2022-06-27 18:19:12 +00:00
runtime_entry_riscv.cc
runtime_entry_x64.cc
scope_timer.h
scopes.cc Reland "[vm] Cleanup old async/async*/sync* implementation from the VM" 2022-07-12 19:25:32 +00:00
scopes.h
scopes_test.cc
service.cc Revert "[vm] Forward dynamic events names to os_signposts as arguments." 2022-07-01 16:07:50 +00:00
service.h Revert "Reland "[ VM / Service ] Add abstract flag to Function"" 2022-07-07 02:39:11 +00:00
service_event.cc
service_event.h
service_isolate.cc
service_isolate.h Fix typos 2022-06-15 11:08:28 +00:00
service_test.cc
signal_handler.h
signal_handler_android.cc
signal_handler_fuchsia.cc
signal_handler_linux.cc
signal_handler_macos.cc
signal_handler_win.cc
simulator.h
simulator_arm.cc [vm] More thoroughly clobber volatile registers in the ARM simulators. 2022-07-07 16:02:51 +00:00
simulator_arm.h [vm] More thoroughly clobber volatile registers in the ARM simulators. 2022-07-07 16:02:51 +00:00
simulator_arm64.cc [vm] More thoroughly clobber volatile registers in the ARM simulators. 2022-07-07 16:02:51 +00:00
simulator_arm64.h [vm] More thoroughly clobber volatile registers in the ARM simulators. 2022-07-07 16:02:51 +00:00
simulator_riscv.cc [vm, compiler] Use RISC-V's compare-and-branch for a shorter write barrier sequence. 2022-06-23 15:58:15 +00:00
simulator_riscv.h [vm] Speed up the RISC-V simulator. 2022-06-16 17:56:02 +00:00
snapshot.cc
snapshot.h
snapshot_test.cc
source_report.cc Reland "[vm] Cleanup old async/async*/sync* implementation from the VM" 2022-07-12 19:25:32 +00:00
source_report.h
source_report_test.cc Revert "Reland "[ VM / Service ] Add abstract flag to Function"" 2022-07-07 02:39:11 +00:00
splay-tree.h
stack_frame.cc
stack_frame.h
stack_frame_arm.h
stack_frame_arm64.h
stack_frame_ia32.h
stack_frame_riscv.h
stack_frame_test.cc
stack_frame_x64.h
stack_trace.cc Reland "[vm] Cleanup old async/async*/sync* implementation from the VM" 2022-07-12 19:25:32 +00:00
stack_trace.h Reland "[vm] Cleanup old async/async*/sync* implementation from the VM" 2022-07-12 19:25:32 +00:00
static_type_exactness_state.h
stub_code.cc
stub_code.h
stub_code_arm64_test.cc
stub_code_arm_test.cc
stub_code_ia32_test.cc
stub_code_list.h [vm] Reduce number of callbacks used in sync* functions 2022-07-12 19:30:12 +00:00
stub_code_riscv_test.cc
stub_code_test.cc
stub_code_x64_test.cc
symbols.cc
symbols.h [vm] Reduce number of callbacks used in sync* functions 2022-07-12 19:30:12 +00:00
tagged_pointer.h
tags.cc
tags.h
thread.cc Revert "[vm] Generate event ids for synchronous begin and end events." 2022-07-01 16:08:40 +00:00
thread.h [vm] Reduce number of callbacks used in sync* functions 2022-07-12 19:30:12 +00:00
thread_barrier.h
thread_barrier_test.cc
thread_interrupter.cc
thread_interrupter.h
thread_interrupter_android.cc
thread_interrupter_android_arm.S
thread_interrupter_fuchsia.cc
thread_interrupter_linux.cc
thread_interrupter_macos.cc
thread_interrupter_win.cc
thread_pool.cc
thread_pool.h
thread_pool_test.cc
thread_registry.cc
thread_registry.h
thread_stack_resource.cc
thread_stack_resource.h
thread_state.cc
thread_state.h
thread_test.cc [vm, gc] Make force-growth a thread-local property. 2022-06-30 00:21:36 +00:00
timeline.cc Revert "[vm] Generate event ids for synchronous begin and end events." 2022-07-01 16:08:40 +00:00
timeline.h Revert "[vm] Generate event ids for synchronous begin and end events." 2022-07-01 16:08:40 +00:00
timeline_android.cc Revert "[vm] Generate event ids for synchronous begin and end events." 2022-07-01 16:08:40 +00:00
timeline_fuchsia.cc Revert "[vm] Generate event ids for synchronous begin and end events." 2022-07-01 16:08:40 +00:00
timeline_linux.cc Revert "[vm] Generate event ids for synchronous begin and end events." 2022-07-01 16:08:40 +00:00
timeline_macos.cc Revert "[vm] Generate event ids for synchronous begin and end events." 2022-07-01 16:08:40 +00:00
timeline_test.cc Revert "[vm] Generate event ids for synchronous begin and end events." 2022-07-01 16:08:40 +00:00
timer.cc
timer.h
token.cc
token.h
token_position.cc
token_position.h
type_testing_stubs.cc
type_testing_stubs.h
type_testing_stubs_test.cc
unibrow-inl.h
unibrow.cc
unibrow.h
unicode.cc
unicode_data.cc
unicode_test.cc
unit_test.cc
unit_test.h
uri.cc
uri.h
uri_test.cc
utils_test.cc
v8_snapshot_writer.cc
v8_snapshot_writer.h
version.h
version_in.cc
virtual_memory.cc
virtual_memory.h
virtual_memory_compressed.cc
virtual_memory_compressed.h
virtual_memory_fuchsia.cc
virtual_memory_posix.cc
virtual_memory_test.cc
virtual_memory_win.cc
visitor.cc
visitor.h
vm_sources.gni [standalone] Update tcmalloc to 2.10. 2022-07-06 17:34:20 +00:00
zone.cc
zone.h
zone_test.cc
zone_text_buffer.cc
zone_text_buffer.h