diff --git a/sdk/lib/_internal/js_runtime/lib/js_rti.dart b/sdk/lib/_internal/js_runtime/lib/js_rti.dart index 5a18016a244..427a1b0c3b4 100644 --- a/sdk/lib/_internal/js_runtime/lib/js_rti.dart +++ b/sdk/lib/_internal/js_runtime/lib/js_rti.dart @@ -1030,11 +1030,9 @@ bool isSubtypeV2(var s, var sEnv, var t, var tEnv) { var field = '${JS_GET_NAME(JsGetName.OPERATOR_AS_PREFIX)}${typeOfTString}'; substitution = getField(typeOfSPrototype, field); } - // The class of [s] is a subclass of the class of [t]. If [s] has no type - // arguments and no substitution, it is used as raw type. If [t] has no - // type arguments, it used as a raw type. In both cases, [s] is a subtype - // of [t]. - if ((!isJsArray(s) && substitution == null) || !isJsArray(t)) { + // The class of [s] is a subclass of the class of [t]. If [t] has no + // type arguments, it used as a raw type and [s] is a subtype of [t]. + if (!isJsArray(t)) { return true; } // Recursively check the type arguments. diff --git a/tests/language_2/function_type_alias6_test.dart b/tests/language_2/function_type_alias6_test.dart index 47821da5712..4c5a5a6f424 100644 --- a/tests/language_2/function_type_alias6_test.dart +++ b/tests/language_2/function_type_alias6_test.dart @@ -21,7 +21,7 @@ main() { var f = (List x) {}; Expect.isTrue(f is F); var g = (List x) {}; - Expect.isTrue(g is F); + Expect.isFalse(g is F); var d = new D(); Expect.isTrue(d.foo is! C); Expect.isTrue(d.bar is C); diff --git a/tests/language_2/language_2_dart2js.status b/tests/language_2/language_2_dart2js.status index 8b7d045a43f..db28db8d0d9 100644 --- a/tests/language_2/language_2_dart2js.status +++ b/tests/language_2/language_2_dart2js.status @@ -73,7 +73,6 @@ function_subtype_call1_test: RuntimeError function_subtype_call2_test: RuntimeError function_subtype_cast1_test: RuntimeError function_subtype_not1_test: RuntimeError -function_subtype_typearg5_test: RuntimeError function_type/function_type0_test: RuntimeError # Issue 30476 function_type/function_type10_test: RuntimeError # Issue 30476 function_type/function_type12_test: RuntimeError # Issue 30476 @@ -339,8 +338,6 @@ generalized_void_syntax_test: CompileTimeError # Issue #30176. generic_closure_test/01: RuntimeError generic_closure_test/none: RuntimeError generic_function_dcall_test: Crash # Unsupported operation: Unsupported type parameter type node T. -generic_function_typedef_test/01: RuntimeError -generic_instanceof_test: RuntimeError generic_tearoff_test: Crash # Unsupported operation: Unsupported type parameter type node T. generic_typedef_test: RuntimeError getter_override2_test/02: MissingCompileTimeError @@ -371,7 +368,6 @@ list_literal_syntax_test/01: MissingCompileTimeError list_literal_syntax_test/02: MissingCompileTimeError list_literal_syntax_test/03: MissingCompileTimeError malformed2_test/00: MissingCompileTimeError -many_generic_instanceof_test: RuntimeError map_literal1_test/01: MissingCompileTimeError map_literal8_test: RuntimeError method_override7_test/00: MissingCompileTimeError @@ -744,7 +740,6 @@ function_subtype_cast1_test: RuntimeError function_subtype_inline2_test: RuntimeError function_subtype_not1_test: RuntimeError function_subtype_setter0_test: RuntimeError -function_subtype_typearg5_test: RuntimeError function_type_alias2_test: RuntimeError function_type_alias4_test: RuntimeError generic_closure_test/01: RuntimeError @@ -753,9 +748,7 @@ generic_function_bounds_test: RuntimeError generic_function_dcall_test: RuntimeError generic_function_type_as_type_argument_test/01: MissingCompileTimeError generic_function_type_as_type_argument_test/02: MissingCompileTimeError -generic_function_typedef_test/01: RuntimeError generic_instanceof2_test: RuntimeError -generic_instanceof_test: RuntimeError generic_is_check_test: RuntimeError generic_method_types_test/02: RuntimeError generic_methods_bounds_test/02: MissingRuntimeError @@ -803,7 +796,6 @@ local_function2_test/none: RuntimeError local_function3_test/none: RuntimeError local_function_test/none: RuntimeError main_test/03: RuntimeError -many_generic_instanceof_test: RuntimeError many_overridden_no_such_method_test: RuntimeError method_override7_test/00: MissingCompileTimeError method_override7_test/01: MissingCompileTimeError @@ -1229,7 +1221,6 @@ function_subtype_cast1_test: RuntimeError function_subtype_inline2_test: RuntimeError function_subtype_not1_test: RuntimeError function_subtype_setter0_test: RuntimeError -function_subtype_typearg5_test: RuntimeError function_type_alias2_test: RuntimeError function_type_alias4_test: RuntimeError generic_closure_test/01: RuntimeError @@ -1238,9 +1229,7 @@ generic_function_bounds_test: RuntimeError generic_function_dcall_test: RuntimeError generic_function_type_as_type_argument_test/01: MissingCompileTimeError generic_function_type_as_type_argument_test/02: MissingCompileTimeError -generic_function_typedef_test/01: RuntimeError generic_instanceof2_test: RuntimeError -generic_instanceof_test: RuntimeError generic_is_check_test: RuntimeError generic_method_types_test/02: RuntimeError generic_methods_bounds_test/01: MissingCompileTimeError @@ -1322,7 +1311,6 @@ malbounded_type_test2_test/00: MissingCompileTimeError malbounded_type_test_test/00: MissingCompileTimeError malbounded_type_test_test/01: MissingCompileTimeError malbounded_type_test_test/02: MissingCompileTimeError -many_generic_instanceof_test: RuntimeError many_overridden_no_such_method_test: RuntimeError map_literal3_test/01: MissingCompileTimeError map_literal3_test/02: MissingCompileTimeError @@ -1899,16 +1887,13 @@ function_subtype_cast1_test: RuntimeError function_subtype_inline2_test: RuntimeError function_subtype_not1_test: RuntimeError function_subtype_setter0_test: RuntimeError -function_subtype_typearg5_test: RuntimeError function_type_alias2_test: RuntimeError function_type_alias4_test: RuntimeError generic_function_bounds_test: RuntimeError generic_function_dcall_test: RuntimeError generic_function_type_as_type_argument_test/01: MissingCompileTimeError generic_function_type_as_type_argument_test/02: MissingCompileTimeError -generic_function_typedef_test/01: RuntimeError generic_instanceof2_test: RuntimeError -generic_instanceof_test: RuntimeError generic_is_check_test: RuntimeError generic_method_types_test/02: RuntimeError generic_methods_bounds_test/01: MissingCompileTimeError @@ -1990,7 +1975,6 @@ malbounded_type_test2_test/00: MissingCompileTimeError malbounded_type_test_test/00: MissingCompileTimeError malbounded_type_test_test/01: MissingCompileTimeError malbounded_type_test_test/02: MissingCompileTimeError -many_generic_instanceof_test: RuntimeError many_overridden_no_such_method_test: RuntimeError map_literal3_test/01: MissingCompileTimeError map_literal3_test/02: MissingCompileTimeError diff --git a/tests/language_2/language_2_dartdevc.status b/tests/language_2/language_2_dartdevc.status index 01721ef7b00..af2a8bbbaf7 100644 --- a/tests/language_2/language_2_dartdevc.status +++ b/tests/language_2/language_2_dartdevc.status @@ -757,7 +757,6 @@ flatten_test/09: MissingRuntimeError # Issue 29920 flatten_test/12: MissingRuntimeError # Issue 29920 for_variable_capture_test: RuntimeError # Issue 29920; Expect.equals(expected: <1>, actual: <0>) fails. function_subtype_inline2_test: RuntimeError # Expect.fail('Missing type error: 'new C.c1(m2)'.') -function_type_alias6_test/none: RuntimeError # Expect.isTrue(false) fails. generic_function_type_as_type_argument_test/01: MissingCompileTimeError # Issue 29920 generic_function_type_as_type_argument_test/02: MissingCompileTimeError # Issue 29920 generic_instanceof2_test: RuntimeError # Issue 29920; ReferenceError: FooOfK$String is not defined diff --git a/tests/language_2/language_2_kernel.status b/tests/language_2/language_2_kernel.status index 23b2b5a8aae..87e09b1cd31 100644 --- a/tests/language_2/language_2_kernel.status +++ b/tests/language_2/language_2_kernel.status @@ -645,7 +645,6 @@ flatten_test/12: MissingRuntimeError for_in_side_effects_test/01: MissingCompileTimeError function_propagation_test: RuntimeError function_subtype_inline2_test: RuntimeError -function_type_alias6_test/none: RuntimeError generic_instanceof2_test: RuntimeError generic_is_check_test: RuntimeError generic_no_such_method_dispatcher_simple_test: CompileTimeError # Issue 31533 diff --git a/tests/language_2/language_2_vm.status b/tests/language_2/language_2_vm.status index d6f55e65404..a5a9a0598da 100644 --- a/tests/language_2/language_2_vm.status +++ b/tests/language_2/language_2_vm.status @@ -1123,6 +1123,7 @@ function_type/function_type90_test: RuntimeError # Issue 30475 function_type/function_type96_test: RuntimeError # Issue 30475 function_type/function_type9_test: RuntimeError # Issue 30475 function_type_alias2_test: RuntimeError +function_type_alias6_test/none: RuntimeError invalid_override_in_mixin_test/01: MissingCompileTimeError type_literal_prefix_call_test: RuntimeError