Fasta: Wrong number of type parameters is an error
E.g. `new Map<String>` is now reported as an error.
Note that this does not add a check for whether correct types are given,
so e.g.
```
class Foo<X extends num> {}
main() {
new Foo<String>();
}
```
is not caught by this fix.
Fixes #32972, #32281.
Change-Id: I57513b5c13865a828890775c8e14f7433d00bdbe
Reviewed-on: https://dart-review.googlesource.com/72382
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
diff --git a/pkg/front_end/lib/src/fasta/builder/named_type_builder.dart b/pkg/front_end/lib/src/fasta/builder/named_type_builder.dart
index 4cf8c2a..1c3c79f 100644
--- a/pkg/front_end/lib/src/fasta/builder/named_type_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/named_type_builder.dart
@@ -74,8 +74,8 @@
declaration = buildInvalidType(
charOffset,
fileUri,
- templateTypeArgumentMismatch.withArguments(
- name, declaration.typeVariablesCount));
+ templateTypeArgumentMismatch
+ .withArguments(declaration.typeVariablesCount));
}
}
diff --git a/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart b/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
index 7ad5957..bdb31cc 100644
--- a/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
+++ b/pkg/front_end/lib/src/fasta/fasta_codes_generated.dart
@@ -6956,24 +6956,23 @@
tip: r"""Try removing 'var.'""");
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
-const Template<Message Function(String name, int count)>
- templateTypeArgumentMismatch =
- const Template<Message Function(String name, int count)>(
- messageTemplate: r"""'#name' expects #count type arguments.""",
+const Template<Message Function(int count)> templateTypeArgumentMismatch =
+ const Template<Message Function(int count)>(
+ messageTemplate: r"""Expected #count type arguments.""",
withArguments: _withArgumentsTypeArgumentMismatch);
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
-const Code<Message Function(String name, int count)> codeTypeArgumentMismatch =
- const Code<Message Function(String name, int count)>(
+const Code<Message Function(int count)> codeTypeArgumentMismatch =
+ const Code<Message Function(int count)>(
"TypeArgumentMismatch", templateTypeArgumentMismatch,
analyzerCode: "WRONG_NUMBER_OF_TYPE_ARGUMENTS",
severity: Severity.errorLegacyWarning);
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
-Message _withArgumentsTypeArgumentMismatch(String name, int count) {
+Message _withArgumentsTypeArgumentMismatch(int count) {
return new Message(codeTypeArgumentMismatch,
- message: """'${name}' expects ${count} type arguments.""",
- arguments: {'name': name, 'count': count});
+ message: """Expected ${count} type arguments.""",
+ arguments: {'count': count});
}
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
index b560333..d312acf 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -1446,7 +1446,7 @@
@override
void warnTypeArgumentsMismatch(String name, int expected, int charOffset) {
addProblemErrorIfConst(
- fasta.templateTypeArgumentMismatch.withArguments(name, expected),
+ fasta.templateTypeArgumentMismatch.withArguments(expected),
charOffset,
name.length);
}
@@ -2963,11 +2963,18 @@
List<Object> types = forest.argumentsTypeArguments(arguments);
if (typeParameters.length != types.length) {
- // TODO(paulberry): Report error in this case as well,
- // after https://github.com/dart-lang/sdk/issues/32130 is fixed.
- types.clear();
- for (int i = 0; i < typeParameters.length; i++) {
- types.add(const DynamicType());
+ if (types.length == 0) {
+ // Expected `typeParameters.length` type arguments, but none given,
+ // so we fill in dynamic.
+ for (int i = 0; i < typeParameters.length; i++) {
+ types.add(const DynamicType());
+ }
+ } else {
+ // A wrong (non-zero) amount of type arguments given. That's an error.
+ // TODO(jensj): Position should be on type arguments instead.
+ return fasta.templateTypeArgumentMismatch
+ .withArguments(typeParameters.length)
+ .withLocation(uri, offset, noLength);
}
}
@@ -3003,6 +3010,15 @@
}
}
}
+ List<Object> types = forest.argumentsTypeArguments(arguments);
+ List<TypeParameter> typeParameters = function.typeParameters;
+ if (typeParameters.length != types.length && types.length != 0) {
+ // A wrong (non-zero) amount of type arguments given. That's an error.
+ // TODO(jensj): Position should be on type arguments instead.
+ return fasta.templateTypeArgumentMismatch
+ .withArguments(typeParameters.length)
+ .withLocation(uri, offset, noLength);
+ }
return null;
}
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart
index acb1b8b..6ea64a0 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_class_builder.dart
@@ -152,7 +152,7 @@
// That should be caught and reported as a compile-time error earlier.
return unhandled(
templateTypeArgumentMismatch
- .withArguments(name, typeVariables.length)
+ .withArguments(typeVariables.length)
.message,
"buildTypeArguments",
-1,
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_function_type_alias_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_function_type_alias_builder.dart
index 5e62f6b..fedd216 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_function_type_alias_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_function_type_alias_builder.dart
@@ -142,7 +142,7 @@
// That should be caught and reported as a compile-time error earlier.
return unhandled(
templateTypeArgumentMismatch
- .withArguments(name, typeVariables.length)
+ .withArguments(typeVariables.length)
.message,
"buildTypeArguments",
-1,
diff --git a/pkg/front_end/messages.yaml b/pkg/front_end/messages.yaml
index 49ac4bb..3aa09c8 100644
--- a/pkg/front_end/messages.yaml
+++ b/pkg/front_end/messages.yaml
@@ -1305,7 +1305,7 @@
severity: IGNORED
TypeArgumentMismatch:
- template: "'#name' expects #count type arguments."
+ template: "Expected #count type arguments."
severity: ERROR_LEGACY_WARNING
analyzerCode: WRONG_NUMBER_OF_TYPE_ARGUMENTS
diff --git a/pkg/front_end/testcases/compile.status b/pkg/front_end/testcases/compile.status
index cd8199e..dffedaf 100644
--- a/pkg/front_end/testcases/compile.status
+++ b/pkg/front_end/testcases/compile.status
@@ -104,6 +104,7 @@
regress/issue_29982: Fail # Issue 29982.
regress/issue_30836: RuntimeError # Issue 30836.
regress/issue_33452: RuntimeError # Test has an intentional error
+regress/issue_32972: RuntimeError
runtime_checks/implicit_downcast_constructor_initializer: RuntimeError # Test exercises strong mode semantics
runtime_checks/implicit_downcast_do: RuntimeError # Test exercises strong mode semantics
diff --git a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart
index c615c82..c72713a 100644
--- a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart
@@ -18,7 +18,7 @@
main() {
int y = /*info:DYNAMIC_CAST*/ new D()
- . /*error:WRONG_NUMBER_OF_TYPE_ARGUMENTS_METHOD*/ /*@target=D::m*/ m<int>(
- 42);
+ . /*error:WRONG_NUMBER_OF_TYPE_ARGUMENTS_METHOD*/ /*@target=D::m*/ /*@error=TypeArgumentMismatch*/ m<
+ int>(42);
print(y);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.strong.expect b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.strong.expect
index a6dedb5..5d1b277 100644
--- a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.strong.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.strong.expect
@@ -8,6 +8,10 @@
// Change to a subtype of test::C::m::T.
// /*@error=OverrideTypeMismatchReturnType*/ /*@topType=dynamic*/ m(
// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart:21:106: Error: Expected 0 type arguments.
+// . /*error:WRONG_NUMBER_OF_TYPE_ARGUMENTS_METHOD*/ /*@target=D::m*/ /*@error=TypeArgumentMismatch*/ m<
+// ^
library test;
import self as self;
diff --git a/pkg/front_end/testcases/regress/issue_29981.dart.strong.expect b/pkg/front_end/testcases/regress/issue_29981.dart.strong.expect
index 080a6f0..f2f6961 100644
--- a/pkg/front_end/testcases/regress/issue_29981.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/issue_29981.dart.strong.expect
@@ -1,6 +1,6 @@
// Errors:
//
-// pkg/front_end/testcases/regress/issue_29981.dart:6:3: Error: 'C' expects 1 type arguments.
+// pkg/front_end/testcases/regress/issue_29981.dart:6:3: Error: Expected 1 type arguments.
// C<String, String> field;
// ^
diff --git a/pkg/front_end/testcases/regress/issue_29981.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_29981.dart.strong.transformed.expect
index 080a6f0..f2f6961 100644
--- a/pkg/front_end/testcases/regress/issue_29981.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_29981.dart.strong.transformed.expect
@@ -1,6 +1,6 @@
// Errors:
//
-// pkg/front_end/testcases/regress/issue_29981.dart:6:3: Error: 'C' expects 1 type arguments.
+// pkg/front_end/testcases/regress/issue_29981.dart:6:3: Error: Expected 1 type arguments.
// C<String, String> field;
// ^
diff --git a/pkg/front_end/testcases/regress/issue_31190.dart.strong.expect b/pkg/front_end/testcases/regress/issue_31190.dart.strong.expect
index 64fefaf..d69d0be 100644
--- a/pkg/front_end/testcases/regress/issue_31190.dart.strong.expect
+++ b/pkg/front_end/testcases/regress/issue_31190.dart.strong.expect
@@ -7,7 +7,7 @@
// T<U> v;
// ^
//
-// pkg/front_end/testcases/regress/issue_31190.dart:6:3: Error: 'T' expects 0 type arguments.
+// pkg/front_end/testcases/regress/issue_31190.dart:6:3: Error: Expected 0 type arguments.
// T<U> v;
// ^
diff --git a/pkg/front_end/testcases/regress/issue_31190.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_31190.dart.strong.transformed.expect
index 64fefaf..d69d0be 100644
--- a/pkg/front_end/testcases/regress/issue_31190.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31190.dart.strong.transformed.expect
@@ -7,7 +7,7 @@
// T<U> v;
// ^
//
-// pkg/front_end/testcases/regress/issue_31190.dart:6:3: Error: 'T' expects 0 type arguments.
+// pkg/front_end/testcases/regress/issue_31190.dart:6:3: Error: Expected 0 type arguments.
// T<U> v;
// ^
diff --git a/pkg/front_end/testcases/regress/issue_32972.dart b/pkg/front_end/testcases/regress/issue_32972.dart
new file mode 100644
index 0000000..23a1482
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_32972.dart
@@ -0,0 +1,31 @@
+// Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+void foo<X>(X i) {
+ print(i);
+}
+
+class Foo {
+ static foo<X>(X i) {
+ print(i);
+ }
+
+ bar<X>(X i) {
+ print(i);
+ }
+}
+
+class Bar<X, Y> {}
+
+main() {
+ foo<String, String>("hello world");
+ foo<String>("hello world");
+ Foo.foo<int, int>(42);
+ Foo.foo<int>(42);
+ Foo f = new Foo();
+ f.bar<double, double>(42.42);
+ f.bar<double>(42.42);
+ new Bar<String>();
+ new Bar<String, String>();
+}
diff --git a/pkg/front_end/testcases/regress/issue_32972.dart.direct.expect b/pkg/front_end/testcases/regress/issue_32972.dart.direct.expect
new file mode 100644
index 0000000..720e78e
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_32972.dart.direct.expect
@@ -0,0 +1,34 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+class Foo extends core::Object {
+ synthetic constructor •() → void
+ : super core::Object::•()
+ ;
+ static method foo<X extends core::Object = dynamic>(self::Foo::foo::X i) → dynamic {
+ core::print(i);
+ }
+ method bar<X extends core::Object = dynamic>(self::Foo::bar::X i) → dynamic {
+ core::print(i);
+ }
+}
+class Bar<X extends core::Object = dynamic, Y extends core::Object = dynamic> extends core::Object {
+ synthetic constructor •() → void
+ : super core::Object::•()
+ ;
+}
+static method foo<X extends core::Object = dynamic>(self::foo::X i) → void {
+ core::print(i);
+}
+static method main() → dynamic {
+ throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#foo, 32, core::List::unmodifiable<dynamic>(<core::Type>[core::String, core::String]), core::List::unmodifiable<dynamic>(<dynamic>["hello world"]), core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
+ self::foo<core::String>("hello world");
+ throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#foo, 32, core::List::unmodifiable<dynamic>(<core::Type>[core::int, core::int]), core::List::unmodifiable<dynamic>(<dynamic>[42]), core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
+ self::Foo::foo<core::int>(42);
+ self::Foo f = new self::Foo::•();
+ f.bar<core::double, core::double>(42.42);
+ f.bar<core::double>(42.42);
+ throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#, 32, core::List::unmodifiable<dynamic>(<core::Type>[core::String]), const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
+ new self::Bar::•<core::String, core::String>();
+}
diff --git a/pkg/front_end/testcases/regress/issue_32972.dart.direct.transformed.expect b/pkg/front_end/testcases/regress/issue_32972.dart.direct.transformed.expect
new file mode 100644
index 0000000..720e78e
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_32972.dart.direct.transformed.expect
@@ -0,0 +1,34 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+class Foo extends core::Object {
+ synthetic constructor •() → void
+ : super core::Object::•()
+ ;
+ static method foo<X extends core::Object = dynamic>(self::Foo::foo::X i) → dynamic {
+ core::print(i);
+ }
+ method bar<X extends core::Object = dynamic>(self::Foo::bar::X i) → dynamic {
+ core::print(i);
+ }
+}
+class Bar<X extends core::Object = dynamic, Y extends core::Object = dynamic> extends core::Object {
+ synthetic constructor •() → void
+ : super core::Object::•()
+ ;
+}
+static method foo<X extends core::Object = dynamic>(self::foo::X i) → void {
+ core::print(i);
+}
+static method main() → dynamic {
+ throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#foo, 32, core::List::unmodifiable<dynamic>(<core::Type>[core::String, core::String]), core::List::unmodifiable<dynamic>(<dynamic>["hello world"]), core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
+ self::foo<core::String>("hello world");
+ throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#foo, 32, core::List::unmodifiable<dynamic>(<core::Type>[core::int, core::int]), core::List::unmodifiable<dynamic>(<dynamic>[42]), core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
+ self::Foo::foo<core::int>(42);
+ self::Foo f = new self::Foo::•();
+ f.bar<core::double, core::double>(42.42);
+ f.bar<core::double>(42.42);
+ throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#, 32, core::List::unmodifiable<dynamic>(<core::Type>[core::String]), const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
+ new self::Bar::•<core::String, core::String>();
+}
diff --git a/pkg/front_end/testcases/regress/issue_32972.dart.outline.expect b/pkg/front_end/testcases/regress/issue_32972.dart.outline.expect
new file mode 100644
index 0000000..e9de5cd
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_32972.dart.outline.expect
@@ -0,0 +1,20 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+class Foo extends core::Object {
+ synthetic constructor •() → void
+ ;
+ static method foo<X extends core::Object = dynamic>(self::Foo::foo::X i) → dynamic
+ ;
+ method bar<X extends core::Object = dynamic>(self::Foo::bar::X i) → dynamic
+ ;
+}
+class Bar<X extends core::Object = dynamic, Y extends core::Object = dynamic> extends core::Object {
+ synthetic constructor •() → void
+ ;
+}
+static method foo<X extends core::Object = dynamic>(self::foo::X i) → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/regress/issue_32972.dart.strong.expect b/pkg/front_end/testcases/regress/issue_32972.dart.strong.expect
new file mode 100644
index 0000000..11825b0
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_32972.dart.strong.expect
@@ -0,0 +1,52 @@
+// Errors:
+//
+// pkg/front_end/testcases/regress/issue_32972.dart:22:3: Error: Expected 1 type arguments.
+// foo<String, String>("hello world");
+// ^
+//
+// pkg/front_end/testcases/regress/issue_32972.dart:24:7: Error: Expected 1 type arguments.
+// Foo.foo<int, int>(42);
+// ^
+//
+// pkg/front_end/testcases/regress/issue_32972.dart:29:7: Error: Expected 2 type arguments.
+// new Bar<String>();
+// ^
+//
+// pkg/front_end/testcases/regress/issue_32972.dart:27:5: Error: Expected 1 type arguments.
+// f.bar<double, double>(42.42);
+// ^
+
+library;
+import self as self;
+import "dart:core" as core;
+
+class Foo extends core::Object {
+ synthetic constructor •() → void
+ : super core::Object::•()
+ ;
+ static method foo<X extends core::Object = dynamic>(self::Foo::foo::X i) → dynamic {
+ core::print(i);
+ }
+ method bar<X extends core::Object = dynamic>(self::Foo::bar::X i) → dynamic {
+ core::print(i);
+ }
+}
+class Bar<X extends core::Object = dynamic, Y extends core::Object = dynamic> extends core::Object {
+ synthetic constructor •() → void
+ : super core::Object::•()
+ ;
+}
+static method foo<X extends core::Object = dynamic>(self::foo::X i) → void {
+ core::print(i);
+}
+static method main() → dynamic {
+ throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#foo, 32, core::List::unmodifiable<dynamic>(<core::Type>[core::String, core::String]), core::List::unmodifiable<dynamic>(<dynamic>["hello world"]), core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
+ self::foo<core::String>("hello world");
+ throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#foo, 32, core::List::unmodifiable<dynamic>(<core::Type>[core::int, core::int]), core::List::unmodifiable<dynamic>(<dynamic>[42]), core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
+ self::Foo::foo<core::int>(42);
+ self::Foo f = new self::Foo::•();
+ f.{self::Foo::bar}<core::double, core::double>(42.42);
+ f.{self::Foo::bar}<core::double>(42.42);
+ throw new core::NoSuchMethodError::withInvocation(null, new core::_InvocationMirror::_withType(#, 32, core::List::unmodifiable<dynamic>(<core::Type>[core::String]), const <dynamic>[], core::Map::unmodifiable<core::Symbol, dynamic>(const <core::Symbol, dynamic>{})));
+ new self::Bar::•<core::String, core::String>();
+}
diff --git a/pkg/front_end/testcases/strong.status b/pkg/front_end/testcases/strong.status
index b5d4f7b..4707dea 100644
--- a/pkg/front_end/testcases/strong.status
+++ b/pkg/front_end/testcases/strong.status
@@ -199,6 +199,7 @@
regress/issue_30836: RuntimeError # Issue 30836.
regress/issue_31184: TypeCheckError
regress/issue_31299: TypeCheckError
+regress/issue_32972: TypeCheckError
regress/issue_33452: RuntimeError # Test has an intentional error
runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast: RuntimeError
diff --git a/tests/co19/co19-kernel.status b/tests/co19/co19-kernel.status
index 3eab189..011875a 100644
--- a/tests/co19/co19-kernel.status
+++ b/tests/co19/co19-kernel.status
@@ -4,10 +4,16 @@
[ $compiler == fasta ]
Language/Classes/Constructors/Generative_Constructors/final_variables_t01: CompileTimeError # Expects a warning, but this is an error in Dart 2
+Language/Expressions/Instance_Creation/New/generic_type_t01: CompileTimeError
+Language/Expressions/Instance_Creation/New/generic_type_t02: CompileTimeError
+Language/Expressions/Instance_Creation/New/generic_type_t03: CompileTimeError
Language/Expressions/Method_Invocation/Ordinary_Invocation/function_type_t01: CompileTimeError # Expects a warning, but this is an error in Dart 2
Language/Expressions/Method_Invocation/Ordinary_Invocation/static_type_t01: CompileTimeError # Expects a warning, but this is an error in Dart 2
Language/Functions/Formal_Parameters/Optional_Formals/default_value_t01: MissingCompileTimeError
Language/Functions/Formal_Parameters/Optional_Formals/default_value_t02: MissingCompileTimeError
+Language/Types/Parameterized_Types/arity_mismatch_t01: CompileTimeError
+Language/Types/Parameterized_Types/arity_mismatch_t05: CompileTimeError
+Language/Types/Parameterized_Types/arity_mismatch_t07: CompileTimeError
Language/Types/Type_Void/syntax_t08: MissingCompileTimeError
Language/Types/Type_Void/syntax_t09: MissingCompileTimeError
LayoutTests/*: Skip # TODO(ahe): Make dart:html available.
diff --git a/tests/co19_2/co19_2-kernel.status b/tests/co19_2/co19_2-kernel.status
index b78c3e4..388145f 100644
--- a/tests/co19_2/co19_2-kernel.status
+++ b/tests/co19_2/co19_2-kernel.status
@@ -96,9 +96,6 @@
Language/Expressions/Instance_Creation/New/evaluation_t16: MissingCompileTimeError # Issue 33308
Language/Expressions/Instance_Creation/New/evaluation_t17: MissingCompileTimeError # Issue 33308
Language/Expressions/Instance_Creation/New/evaluation_t18: MissingCompileTimeError # Issue 33308
-Language/Expressions/Instance_Creation/New/generic_type_t01: MissingCompileTimeError # Issue 32972
-Language/Expressions/Instance_Creation/New/generic_type_t02: MissingCompileTimeError # Issue 32972
-Language/Expressions/Instance_Creation/New/generic_type_t03: MissingCompileTimeError # Issue 32972
Language/Expressions/Instance_Creation/New/redirecting_factory_constructor_t02: MissingCompileTimeError # Issue 33308
Language/Expressions/Instance_Creation/New/syntax_t04: MissingCompileTimeError # Legal because of implicit new
Language/Expressions/Instance_Creation/New/type_argument_t01: MissingCompileTimeError # Issue 33308
@@ -158,9 +155,6 @@
Language/Statements/Try/catch_scope_t01: CompileTimeError
Language/Types/Dynamic_Type_System/malbounded_type_error_t01: MissingCompileTimeError # Issue 33308
Language/Types/Interface_Types/subtype_t30: CompileTimeError
-Language/Types/Parameterized_Types/arity_mismatch_t01: MissingCompileTimeError # Issue 32972
-Language/Types/Parameterized_Types/arity_mismatch_t05: MissingCompileTimeError # Issue 32972
-Language/Types/Parameterized_Types/arity_mismatch_t07: MissingCompileTimeError # Issue 32972
Language/Types/Parameterized_Types/malbounded_t01: MissingCompileTimeError # Issue 33308
Language/Types/Parameterized_Types/malbounded_t02: MissingCompileTimeError # Issue 33308
Language/Types/Parameterized_Types/malbounded_t03: MissingCompileTimeError # Issue 33308
diff --git a/tests/language_2/language_2_dart2js.status b/tests/language_2/language_2_dart2js.status
index 98d11b6..f997b19 100644
--- a/tests/language_2/language_2_dart2js.status
+++ b/tests/language_2/language_2_dart2js.status
@@ -468,8 +468,6 @@
type_literal_prefix_call_test/00: MissingCompileTimeError
type_promotion_logical_and_test/01: MissingCompileTimeError
type_variable_bounds_test/02: Crash # NoSuchMethodError: The method 'accept' was called on null.
-wrong_number_type_arguments_test/01: MissingCompileTimeError
-wrong_number_type_arguments_test/none: Pass
[ $compiler == dart2js && $minified ]
cyclic_type2_test: RuntimeError # Issue 31054
@@ -529,8 +527,6 @@
type_literal_prefix_call_test/00: MissingCompileTimeError
type_promotion_logical_and_test/01: MissingCompileTimeError
type_variable_bounds_test/02: Crash # NoSuchMethodError: The method 'accept' was called on null.
-wrong_number_type_arguments_test/01: MissingCompileTimeError
-wrong_number_type_arguments_test/none: Pass
[ $compiler == dart2js && $strong ]
async_await_test/02: RuntimeError
diff --git a/tests/language_2/language_2_dartdevc.status b/tests/language_2/language_2_dartdevc.status
index 6b9305d..e86031a 100644
--- a/tests/language_2/language_2_dartdevc.status
+++ b/tests/language_2/language_2_dartdevc.status
@@ -389,7 +389,6 @@
type_promotion_functions_test/none: CompileTimeError # Issue 31537
type_promotion_logical_and_test/01: MissingCompileTimeError
type_promotion_more_specific_test/04: CompileTimeError # Issue 31533
-wrong_number_type_arguments_test/01: MissingCompileTimeError
[ $compiler == dartdevk && $checked ]
assertion_initializer_const_error2_test/*: MissingCompileTimeError
diff --git a/tests/language_2/language_2_kernel.status b/tests/language_2/language_2_kernel.status
index ea7e5db..9c854d1 100644
--- a/tests/language_2/language_2_kernel.status
+++ b/tests/language_2/language_2_kernel.status
@@ -272,14 +272,8 @@
mixin_invalid_bound_test/10: MissingCompileTimeError # Issue 33308
mixin_super_bound_test/01: MissingCompileTimeError # Issue 33308
mixin_super_bound_test/02: MissingCompileTimeError # Issue 33308
-mixin_type_parameters_errors_test/03: MissingCompileTimeError # Issue 32972
-mixin_type_parameters_errors_test/04: MissingCompileTimeError # Issue 32972
named_constructor_test/01: MissingCompileTimeError # Issue 34159
named_parameters_default_eq_test/02: MissingCompileTimeError # Issue 34160
-partial_tearoff_instantiation_test/05: MissingCompileTimeError # Issue 32281
-partial_tearoff_instantiation_test/06: MissingCompileTimeError # Issue 32281
-partial_tearoff_instantiation_test/07: MissingCompileTimeError # Issue 32281
-partial_tearoff_instantiation_test/08: MissingCompileTimeError # Issue 32281
redirecting_factory_default_values_test/01: MissingCompileTimeError # Issue 34160
redirecting_factory_default_values_test/02: MissingCompileTimeError # Issue 34160
regress_22976_test/*: CompileTimeError # Issue 31935
@@ -300,7 +294,6 @@
type_variable_bounds_test/04: MissingCompileTimeError # Issue 33308
type_variable_bounds_test/05: MissingCompileTimeError # Issue 33308
type_variable_bounds_test/06: MissingCompileTimeError # Issue 33308
-type_variable_bounds_test/08: MissingCompileTimeError # Issue 33308
type_variable_bounds_test/11: MissingCompileTimeError # Issue 33308
vm/debug_break_enabled_vm_test/01: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
vm/debug_break_enabled_vm_test/none: CompileTimeError # KernelVM bug: Bad test using extended break syntax.
@@ -1036,7 +1029,6 @@
vm/type_vm_test/30: MissingRuntimeError
vm/type_vm_test/31: MissingRuntimeError
vm/type_vm_test/32: MissingRuntimeError
-wrong_number_type_arguments_test/01: MissingCompileTimeError
[ $compiler == dartkp && $minified ]
no_such_method_native_test: RuntimeError # Compares symbol #foobar with string "foobar" in noSuchMethod
@@ -1568,8 +1560,6 @@
vm/regress_29145_test: Skip # Issue 29145
vm/type_cast_vm_test: RuntimeError
web_int_literals_test/*: SkipByDesign # Test applies only to JavaScript targets
-wrong_number_type_arguments_test/01: MissingCompileTimeError
-wrong_number_type_arguments_test/none: Pass
[ $system == windows && $strong && ($compiler == dartk || $compiler == dartkb) ]
ct_const2_test: Fail
@@ -1591,7 +1581,6 @@
redirecting_factory_infinite_steps_test/01: MissingCompileTimeError
redirecting_factory_malbounded_test/01: MissingCompileTimeError
type_promotion_logical_and_test/01: MissingCompileTimeError
-wrong_number_type_arguments_test/01: MissingCompileTimeError
[ $fasta && !$strong ]
abstract_beats_arguments_test: MissingCompileTimeError
diff --git a/tests/lib_2/lib_2_kernel.status b/tests/lib_2/lib_2_kernel.status
index 7af501e..94ddd5c 100644
--- a/tests/lib_2/lib_2_kernel.status
+++ b/tests/lib_2/lib_2_kernel.status
@@ -35,10 +35,6 @@
mirrors/generic_interface_test/01: MissingCompileTimeError
mirrors/metadata_allowed_values_test/13: MissingCompileTimeError
mirrors/metadata_allowed_values_test/14: MissingCompileTimeError
-mirrors/reflected_type_classes_test/02: MissingCompileTimeError
-mirrors/reflected_type_classes_test/03: MissingCompileTimeError
-mirrors/reflected_type_test/02: MissingCompileTimeError
-mirrors/reflected_type_test/03: MissingCompileTimeError
[ $arch == simarm64 && $strong && ($compiler == dartk || $compiler == dartkb) ]
isolate/mint_maker_test: Timeout # Please triage.