dart-sdk/tests/corelib_2
Tess Strickland bb24f76c72 [vm] Reland "Remove non-covariant checks from closure bodies (part 1)"
Also relands the followup CLs:
"Perform non-covariant checks when dynamically invoking callables."
"Use AreValidArguments so that names are checked as well."

Original description of first CL:

This change only affects compilation when running in non-precompiled
mode with --no-lazy-dispatchers enabled.

Instead of always compiling in non-covariant checks, even for closures
not called dynamically, remove the non-covariant checks from the closure
and instead do the non-covariant checks for dynamic calls during the
NoSuchMethodForCallStub fallback by calling
Function::DoArgumentTypesMatch.

Adds two overloads for Function::DoArgumentTypesMatch, one which takes a
function type argument vector and one which takes neither an
instantiator type argument vector or a function type argument vector.
For the versions that are not explicitly passed a type argument vector,
an appropriate one is constructed using the arguments. If there is not
enough information in the arguments, then we fall back to assuming the
empty type argument vector for the instantiator case and instantiating
to bounds in the function type argument case.

Fixes Function::DoArgumentTypesMatch to handle generic functions and to
check arguments appropriately according to the active null safety mode.
For generic functions, the provided or resulting function type vector
has non-covariant checks performed against the type parameter bounds.

This change uncovered one test that was incorrectly passing in strong
mode, see https://github.com/dart-lang/sdk/issues/42688 for details.

Original description of second CL:

The VM only does this when the callable function does not expect dynamic
invocations. Otherwise, performing the checks would be redundant, as the
function body already contains the appropriate non-covariant checks.

Third CL had no additional description.

Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-debug-x64-try,vm-dartkb-linux-release-x64-try,vm-kernel-reload-linux-release-x64-try, vm-kernel-reload-rollback-linux-debug-x64-try
Bug: https://github.com/dart-lang/sdk/issues/40813
Change-Id: I1a3e9c1865103a8d716e1cad814267caffaaadf2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154688
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-07-21 10:00:41 +00:00
..
regexp Fix null-read in RegExpMatch.groupNames. 2020-03-11 14:21:39 +00:00
apply2_test.dart
apply3_test.dart
apply4_test.dart
apply5_test.dart
apply_generic_function_test.dart
apply_test.dart
bigint_from_test.dart
bigint_js_test.dart
bigint_parse_radix_test.dart
bigint_test.dart [corelib] Fix for BigInt.toDouble() crash 2020-05-09 00:22:16 +00:00
bit_twiddling_test.dart
bool_from_environment2_test.dart
bool_from_environment_test.dart
bool_hashcode_test.dart
bool_operator_test.dart
cast_helper.dart [tests] Fix cast_test and migrate to nnbd. 2020-04-30 02:33:53 +00:00
cast_iterable_test.dart [tests] Fix cast_test and migrate to nnbd. 2020-04-30 02:33:53 +00:00
cast_list_test.dart [tests] Fix cast_test and migrate to nnbd. 2020-04-30 02:33:53 +00:00
cast_map_test.dart [tests] Fix cast_test and migrate to nnbd. 2020-04-30 02:33:53 +00:00
cast_set_test.dart [tests] Fix cast_test and migrate to nnbd. 2020-04-30 02:33:53 +00:00
collection_from_test.dart
collection_length_test.dart
collection_of_test.dart
collection_removes_test.dart
collection_test.dart
collection_to_string_test.dart
compare_to2_test.dart
compare_to_test.dart
const_list_literal_test.dart
const_list_remove_range_test.dart
const_list_set_range_test.dart
core_runtime_types_static_test.dart
core_runtime_types_test.dart Make all CastErrors be TypeErrors. 2020-03-11 23:31:06 +00:00
corelib_2.status Skip unicode surrogate test on android 2020-05-30 23:29:02 +00:00
data_uri_test.dart
date_time2_test.dart
date_time3_test.dart
date_time4_test.dart
date_time5_test.dart
date_time6_test.dart
date_time7_test.dart
date_time8_test.dart
date_time9_test.dart
date_time10_test.dart
date_time11_test.dart
date_time_extremes_test.dart
date_time_far_away_dates_test.dart
date_time_parse_test.dart [dart:core] Update DartTime.parse to support arbitrary precision fractional seconds. 2019-11-20 18:16:19 +00:00
date_time_test.dart
double_ceil2_test.dart
double_ceil_test.dart
double_ceil_to_double_test.dart
double_compare_test.dart
double_floor2_test.dart
double_floor_test.dart
double_floor_to_double_test.dart
double_hash_code_test.dart
double_parse_test.dart
double_round2_test.dart
double_round3_test.dart
double_round4_test.dart
double_round_test.dart
double_round_to_double2_test.dart
double_round_to_double3_test.dart
double_round_to_double_test.dart
double_truncate2_test.dart
double_truncate_test.dart
double_truncate_to_double_test.dart
double_try_parse_test.dart
duration_big_num_test.dart
duration_double_multiplication_test.dart
duration_test.dart Revert "Fix duration.toString() to conform the description" 2020-06-22 10:29:15 +00:00
dynamic_nosuchmethod_test.dart [vm] Reland "Remove non-covariant checks from closure bodies (part 1)" 2020-07-21 10:00:41 +00:00
error_stack_trace1_test.dart
error_stack_trace2_test.dart
error_stack_trace_test.dart
errors_test.dart Try to clarify the RangeError.range message 2020-05-27 14:59:39 +00:00
exception_implementation_test.dart
expando_test.dart
expression_test.dart
for_in_test.dart
format_exception_test.dart
from_environment_const_type_test.dart
from_environment_const_type_undefined_test.dart Update usage of int/String fromEnvironment 2020-03-24 11:19:14 +00:00
from_environment_default_value_test.dart Added new tests. 2020-03-27 19:02:52 +00:00
growable_list_test.dart [vm, compiler] Consistently produce OutOfMemoryErrors for large variable-length object allocations. 2019-09-30 20:19:03 +00:00
has_next_iterator_test.dart
hash_map2_test.dart
hash_map_test.dart
hash_set_test.dart
hash_set_type_check_test.dart
hashcode_boxed_test.dart
hashcode_test.dart
hidden_library2_test.dart
int_ceil_test.dart
int_ceil_to_double_test.dart
int_floor_test.dart
int_floor_to_double_test.dart
int_from_environment2_test.dart Change tests to expect new behavior of fromEnvironment 2020-03-17 13:43:17 +00:00
int_from_environment_int64_test.dart
int_from_environment_test.dart
int_modpow_hard_test.dart
int_modulo_arith_test.dart
int_parse_radix_bad_handler_test.dart
int_parse_radix_int64_test.dart
int_parse_radix_test.dart
int_parse_with_limited_ints_test.dart
int_round_test.dart
int_round_to_double_test.dart
int_to_int_test.dart
int_truncate_test.dart
int_truncate_to_double_test.dart
int_try_parse_int64_test.dart
int_try_parse_test.dart
integer_arith_vm_test.dart
integer_parsed_arith_vm_test.dart
integer_parsed_div_rem_vm_test.dart
integer_parsed_mul_div_vm_test.dart
integer_to_radix_string_test.dart
integer_to_string_test.dart
invocation_test.dart
is_operator_basic_types_test.dart
iterable_contains2_test.dart
iterable_contains_test.dart
iterable_element_at_test.dart
iterable_empty_test.dart
iterable_expand_test.dart
iterable_first_test.dart
iterable_first_where_test.dart
iterable_fold_test.dart
iterable_followed_by_test.dart
iterable_generate_test.dart
iterable_join_test.dart
iterable_last_test.dart
iterable_last_where_test.dart
iterable_length_test.dart
iterable_mapping_test.dart
iterable_reduce_test.dart
iterable_return_type_helper.dart [tests] Clean up List constructor usage and unused multi-test 2020-04-01 00:03:46 +00:00
iterable_return_type_int64_test.dart [tests] Clean up List constructor usage and unused multi-test 2020-04-01 00:03:46 +00:00
iterable_return_type_test.dart [tests] Clean up List constructor usage and unused multi-test 2020-04-01 00:03:46 +00:00
iterable_single_test.dart
iterable_single_where_test.dart
iterable_skip_test.dart
iterable_skip_while_test.dart
iterable_take_test.dart
iterable_take_while_test.dart
iterable_test.dart
iterable_to_list_test.dart
iterable_to_set_test.dart
iterable_tostring_test.dart
iterable_where_type_test.dart
json_map_test.dart
linked_hash_map_from_iterable_test.dart
linked_hash_map_from_iterables_test.dart
linked_hash_map_test.dart
list_as_map_test.dart
list_concurrent_modify_test.dart
list_contains_argument_order_test.dart
list_copy_range_test.dart
list_fill_range_test.dart
list_filled_type_argument_test.dart
list_first_test.dart
list_fixed_test.dart
list_for_each_test.dart
list_get_range_test.dart
list_growable_test.dart
list_index_of_test.dart
list_insert_all_test.dart
list_insert_test.dart
list_iterators_test.dart
list_last_test.dart
list_literal_is_growable_test.dart
list_literal_test.dart
list_map_test.dart
list_remove_range_test.dart
list_removeat_test.dart
list_replace_range_test.dart
list_reversed_test.dart
list_set_all_test.dart
list_set_range_test.dart
list_sort_test.dart
list_sublist_test.dart
list_test.dart Update corelib/list_test for default exception type change. 2020-05-05 22:25:27 +00:00
list_to_string2_test.dart
list_to_string_test.dart
list_unmodifiable_cast_test.dart
list_unmodifiable_test.dart
list_write_elements_test.dart
main_test.dart
map_contains_key_test.dart
map_contains_value_test.dart
map_entry_test.dart Convert from _JsonMap to Map<String, Object> in corelib/map_entry_test 2020-03-20 17:58:22 +00:00
map_from_entries_test.dart
map_from_iterable_test.dart
map_from_iterables_test.dart
map_from_test.dart
map_index_test.dart
map_keys2_test.dart
map_keys_test.dart
map_of_test.dart Make all CastErrors be TypeErrors. 2020-03-11 23:31:06 +00:00
map_remove_test.dart
map_set_undefined_test.dart
map_test.dart
map_to_string_test.dart
map_unmodifiable_cast_test.dart
map_update_test.dart
map_values2_test.dart
map_values3_test.dart
map_values4_test.dart
map_values_test.dart
nan_infinity_test.dart
nsm_invocation_generic_test.dart
nsm_invocation_test.dart
null_nosuchmethod_test.dart [vm] Reland "Remove non-covariant checks from closure bodies (part 1)" 2020-07-21 10:00:41 +00:00
null_test.dart
num_clamp_test.dart
num_parse_test.dart
num_sign_test.dart
num_try_parse_test.dart
queue_first_test.dart
queue_iterator_test.dart
queue_last_test.dart
queue_single_test.dart
queue_test.dart
range_error_test.dart
reg_exp1_test.dart
reg_exp4_test.dart Track files that do not need to be migrated in the NNBD progress script. 2019-12-20 21:25:35 +00:00
reg_exp5_test.dart
reg_exp_all_matches_test.dart
reg_exp_cache_test.dart
reg_exp_first_match_test.dart
reg_exp_group_test.dart
reg_exp_groups_test.dart
reg_exp_has_match_test.dart
reg_exp_pattern_test.dart
reg_exp_start_end_test.dart
reg_exp_string_match_test.dart
regress_11099_test.dart
regress_33166_test.dart
regress_r21715_test.dart
safe_to_string_test.dart
set_contains_test.dart
set_containsAll_test.dart
set_intersection_test.dart
set_iterator_test.dart
set_remove_test.dart
set_removeAll_test.dart
set_retainAll_test.dart
set_test.dart
set_to_string_test.dart
shuffle_test.dart
sort_helper.dart
sort_test.dart
splay_tree_from_iterable_test.dart
splay_tree_from_iterables_test.dart
splay_tree_test.dart
stacktrace_current_test.dart
stacktrace_fromstring_test.dart
stopwatch2_test.dart
stopwatch_test.dart
string_base_vm_static_test.dart
string_base_vm_test.dart
string_buffer_test.dart
string_case_test.dart
string_codeunits_test.dart
string_from_environment2_test.dart
string_from_environment3_test.dart
string_from_environment_test.dart
string_from_list_test.dart
string_fromcharcode_test.dart
string_fromcharcodes_test.dart
string_operations_with_null_test.dart
string_pattern_test.dart
string_replace_all_2_test.dart
string_replace_all_test.dart
string_replace_dollar_test.dart
string_replace_static_test.dart
string_replace_test.dart
string_runes_test.dart Backport changes to RuneIterator to non-NNBD SDK. 2020-03-12 16:47:46 +00:00
string_source_test.dart
string_split_test.dart
string_static_test.dart
string_substring_test.dart
string_test.dart
string_to_lower_case_test.dart
string_trim2_test.dart
string_trim_test.dart
string_trimlr_test.dart
strings_test.dart
symbol_map_helper.dart
symbol_operator_test.dart
symbol_reserved_word_test.dart
symbol_test.dart
throw_half_surrogate_pair_test.dart
toInt_test.dart
type_hashcode_test.dart
type_tostring_test.dart [VM/nnbd] Implement pre-nnbd language changes (see lang/#807). 2020-02-26 21:32:51 +00:00
typed_data_with_limited_ints_test.dart
unicode2_test.dart
unicode_test.dart
unsigned_shift_test.dart
uri_base_test.dart
uri_file_test.dart
uri_http_test.dart
uri_ipv4_test.dart
uri_ipv6_test.dart
uri_normalize_path_test.dart
uri_normalize_test.dart
uri_parameters_all_test.dart
uri_parse_test.dart
uri_path_test.dart
uri_query_test.dart
uri_scheme_test.dart
uri_test.dart