Offset from class when reporting errors on synthetic constructors
Bug: 36669
Change-Id: I11b5312e4023cd7368a4a3e36cff66398dadd69c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/100960
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
diff --git a/pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart b/pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart
index cfd35fb..a648190 100644
--- a/pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart
+++ b/pkg/front_end/lib/src/fasta/dill/dill_member_builder.dart
@@ -57,10 +57,8 @@
}
bool get isSynthetic {
- // TODO(ahe): Kernel should eventually support a synthetic bit.
- return isConstructor &&
- name == "" &&
- (charOffset == parent.charOffset || charOffset == -1);
+ final Member member = this.member;
+ return member is Constructor && member.isSynthetic;
}
bool get isField => member is Field;
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 b18bcb4..cbd139f 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -1501,7 +1501,7 @@
int offset = candidate.fileOffset;
Message contextMessage;
int length = noLength;
- if (offset == -1 && candidate is Constructor) {
+ if (candidate is Constructor && candidate.isSynthetic) {
offset = candidate.enclosingClass.fileOffset;
contextMessage = fasta.templateCandidateFoundIsDefaultConstructor
.withArguments(candidate.enclosingClass.name);
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
index 4533ae4..4dd4cca 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_target.dart
@@ -651,10 +651,14 @@
superTarget ??= defaultSuperConstructor(cls);
Initializer initializer;
if (superTarget == null) {
+ int offset = constructor.fileOffset;
+ if (offset == -1 && constructor.isSynthetic) {
+ offset = cls.fileOffset;
+ }
builder.addProblem(
templateSuperclassHasNoDefaultConstructor
.withArguments(cls.superclass.name),
- constructor.fileOffset,
+ offset,
noLength);
initializer = new InvalidInitializer();
} else {
diff --git a/pkg/front_end/lib/src/fasta/kernel/verifier.dart b/pkg/front_end/lib/src/fasta/kernel/verifier.dart
index 67ce675..26d6421 100644
--- a/pkg/front_end/lib/src/fasta/kernel/verifier.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/verifier.dart
@@ -11,7 +11,6 @@
Component,
ExpressionStatement,
Field,
- InvalidInitializer,
Let,
Library,
Member,
@@ -175,11 +174,6 @@
}
@override
- visitInvalidInitializer(InvalidInitializer node) {
- problem(node, "Invalid initializer.");
- }
-
- @override
visitUnknownType(UnknownType node) {
// Note: we can't pass [node] to [problem] because it's not a [TreeNode].
problem(null, "Unexpected appearance of the unknown type.");
diff --git a/pkg/front_end/testcases/legacy.status b/pkg/front_end/testcases/legacy.status
index 9f50c05..b1b1917 100644
--- a/pkg/front_end/testcases/legacy.status
+++ b/pkg/front_end/testcases/legacy.status
@@ -117,6 +117,7 @@
regress/issue_36400: RuntimeError
regress/issue_36647: RuntimeError # Expected
regress/issue_36647_2: RuntimeError # Expected
+regress/issue_36669: RuntimeError
reject_generic_function_types_in_bounds: RuntimeError # Expected
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/rasta/bad_default_constructor.dart.strong.expect b/pkg/front_end/testcases/rasta/bad_default_constructor.dart.strong.expect
new file mode 100644
index 0000000..8ea402c
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/bad_default_constructor.dart.strong.expect
@@ -0,0 +1,33 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/rasta/bad_default_constructor.dart:13:9: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
+// Try using a constructor or factory that is 'const'.
+// const B();
+// ^
+//
+// pkg/front_end/testcases/rasta/bad_default_constructor.dart:9:7: Error: The superclass, 'A', has no unnamed constructor that takes no arguments.
+// class B extends A {}
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ constructor •(dynamic x) → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : invalid-initializer
+ ;
+}
+static method main() → dynamic {
+ new self::B::•();
+ invalid-expression "pkg/front_end/testcases/rasta/bad_default_constructor.dart:13:9: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
+Try using a constructor or factory that is 'const'.
+ const B();
+ ^";
+}
diff --git a/pkg/front_end/testcases/rasta/bad_default_constructor.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/bad_default_constructor.dart.strong.transformed.expect
new file mode 100644
index 0000000..8ea402c
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/bad_default_constructor.dart.strong.transformed.expect
@@ -0,0 +1,33 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/rasta/bad_default_constructor.dart:13:9: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
+// Try using a constructor or factory that is 'const'.
+// const B();
+// ^
+//
+// pkg/front_end/testcases/rasta/bad_default_constructor.dart:9:7: Error: The superclass, 'A', has no unnamed constructor that takes no arguments.
+// class B extends A {}
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ constructor •(dynamic x) → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : invalid-initializer
+ ;
+}
+static method main() → dynamic {
+ new self::B::•();
+ invalid-expression "pkg/front_end/testcases/rasta/bad_default_constructor.dart:13:9: Error: Cannot invoke a non-'const' constructor where a const expression is expected.
+Try using a constructor or factory that is 'const'.
+ const B();
+ ^";
+}
diff --git a/pkg/front_end/testcases/rasta/issue_000039.dart.strong.expect b/pkg/front_end/testcases/rasta/issue_000039.dart.strong.expect
new file mode 100644
index 0000000..564c718
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/issue_000039.dart.strong.expect
@@ -0,0 +1,37 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/rasta/issue_000039.dart:10:3: Error: Expected an identifier, but got '}'.
+// }
+// ^
+//
+// pkg/front_end/testcases/rasta/issue_000039.dart:10:3: Error: Expected an identifier, but got ''.
+// }
+// ^
+//
+// pkg/front_end/testcases/rasta/issue_000039.dart:10:3: Error: Expected ';' after this.
+// }
+// ^
+//
+// pkg/front_end/testcases/rasta/issue_000039.dart:13:7: Error: The superclass, 'A', has no unnamed constructor that takes no arguments.
+// class B extends A {
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ field dynamic a = null;
+ constructor •(dynamic x) → self::A
+ : super core::Object::•() {
+ this.{self::A::a} = invalid-expression "pkg/front_end/testcases/rasta/issue_000039.dart:10:3: Error: Expected an identifier, but got ''.
+ }
+ ^";
+ }
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : invalid-initializer
+ ;
+}
diff --git a/pkg/front_end/testcases/rasta/issue_000039.dart.strong.transformed.expect b/pkg/front_end/testcases/rasta/issue_000039.dart.strong.transformed.expect
new file mode 100644
index 0000000..564c718
--- /dev/null
+++ b/pkg/front_end/testcases/rasta/issue_000039.dart.strong.transformed.expect
@@ -0,0 +1,37 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/rasta/issue_000039.dart:10:3: Error: Expected an identifier, but got '}'.
+// }
+// ^
+//
+// pkg/front_end/testcases/rasta/issue_000039.dart:10:3: Error: Expected an identifier, but got ''.
+// }
+// ^
+//
+// pkg/front_end/testcases/rasta/issue_000039.dart:10:3: Error: Expected ';' after this.
+// }
+// ^
+//
+// pkg/front_end/testcases/rasta/issue_000039.dart:13:7: Error: The superclass, 'A', has no unnamed constructor that takes no arguments.
+// class B extends A {
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ field dynamic a = null;
+ constructor •(dynamic x) → self::A
+ : super core::Object::•() {
+ this.{self::A::a} = invalid-expression "pkg/front_end/testcases/rasta/issue_000039.dart:10:3: Error: Expected an identifier, but got ''.
+ }
+ ^";
+ }
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : invalid-initializer
+ ;
+}
diff --git a/pkg/front_end/testcases/regress/issue_36669.dart b/pkg/front_end/testcases/regress/issue_36669.dart
new file mode 100644
index 0000000..5aba8e6
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_36669.dart
@@ -0,0 +1,11 @@
+// Copyright (c) 2019, 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.
+
+class NoUnnamedConstuctor {
+ NoUnnamedConstuctor._();
+}
+
+class MixMeIn {}
+
+class Foo extends NoUnnamedConstuctor with MixMeIn {}
diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.hierarchy.expect b/pkg/front_end/testcases/regress/issue_36669.dart.hierarchy.expect
new file mode 100644
index 0000000..b7c594c
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_36669.dart.hierarchy.expect
@@ -0,0 +1,114 @@
+Object:
+ superclasses:
+ interfaces:
+ classMembers:
+ Object._haveSameRuntimeType
+ Object.toString
+ Object.runtimeType
+ Object._toString
+ Object._simpleInstanceOf
+ Object._hashCodeRnd
+ Object._instanceOf
+ Object.noSuchMethod
+ Object._objectHashCode
+ Object._identityHashCode
+ Object.hashCode
+ Object._simpleInstanceOfFalse
+ Object._simpleInstanceOfTrue
+ Object.==
+ classSetters:
+
+NoUnnamedConstuctor:
+ superclasses:
+ Object
+ interfaces:
+ classMembers:
+ Object.toString
+ Object.runtimeType
+ Object._simpleInstanceOf
+ Object._instanceOf
+ Object.noSuchMethod
+ Object._identityHashCode
+ Object.hashCode
+ Object._simpleInstanceOfFalse
+ Object._simpleInstanceOfTrue
+ Object.==
+ classSetters:
+
+MixMeIn:
+ superclasses:
+ Object
+ interfaces:
+ classMembers:
+ Object.toString
+ Object.runtimeType
+ Object._simpleInstanceOf
+ Object._instanceOf
+ Object.noSuchMethod
+ Object._identityHashCode
+ Object.hashCode
+ Object._simpleInstanceOfFalse
+ Object._simpleInstanceOfTrue
+ Object.==
+ classSetters:
+
+NoUnnamedConstuctor with MixMeIn:
+ superclasses:
+ Object
+ -> NoUnnamedConstuctor
+ interfaces: MixMeIn
+ classMembers:
+ Object.toString
+ Object.runtimeType
+ Object._simpleInstanceOf
+ Object._instanceOf
+ Object.noSuchMethod
+ Object._identityHashCode
+ Object.hashCode
+ Object._simpleInstanceOfFalse
+ Object._simpleInstanceOfTrue
+ Object.==
+ classSetters:
+ interfaceMembers:
+ Object.toString
+ Object.runtimeType
+ Object._simpleInstanceOf
+ Object._instanceOf
+ Object.noSuchMethod
+ Object._identityHashCode
+ Object.hashCode
+ Object._simpleInstanceOfFalse
+ Object._simpleInstanceOfTrue
+ Object.==
+ interfaceSetters:
+
+Foo:
+ superclasses:
+ Object
+ -> NoUnnamedConstuctor
+ -> _Foo&NoUnnamedConstuctor&MixMeIn
+ interfaces: MixMeIn
+ classMembers:
+ Object.toString
+ Object.runtimeType
+ Object._simpleInstanceOf
+ Object._instanceOf
+ Object.noSuchMethod
+ Object._identityHashCode
+ Object.hashCode
+ Object._simpleInstanceOfFalse
+ Object._simpleInstanceOfTrue
+ Object.==
+ classSetters:
+ interfaceMembers:
+ Object.toString
+ Object.runtimeType
+ Object._simpleInstanceOf
+ Object._instanceOf
+ Object.noSuchMethod
+ Object._identityHashCode
+ Object.hashCode
+ Object._simpleInstanceOfFalse
+ Object._simpleInstanceOfTrue
+ Object.==
+ interfaceSetters:
diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.legacy.expect b/pkg/front_end/testcases/regress/issue_36669.dart.legacy.expect
new file mode 100644
index 0000000..104dfea
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_36669.dart.legacy.expect
@@ -0,0 +1,31 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/regress/issue_36669.dart:11:7: Error: The superclass, 'NoUnnamedConstuctor with MixMeIn', has no unnamed constructor that takes no arguments.
+// class Foo extends NoUnnamedConstuctor with MixMeIn {}
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class NoUnnamedConstuctor extends core::Object {
+ constructor _() → self::NoUnnamedConstuctor
+ : super core::Object::•()
+ ;
+}
+class MixMeIn extends core::Object {
+ synthetic constructor •() → self::MixMeIn
+ : super core::Object::•()
+ ;
+}
+abstract class _Foo&NoUnnamedConstuctor&MixMeIn = self::NoUnnamedConstuctor with self::MixMeIn {
+ synthetic constructor _() → self::_Foo&NoUnnamedConstuctor&MixMeIn
+ : super self::NoUnnamedConstuctor::_()
+ ;
+}
+class Foo extends self::_Foo&NoUnnamedConstuctor&MixMeIn {
+ synthetic constructor •() → self::Foo
+ : invalid-initializer
+ ;
+}
diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.legacy.transformed.expect b/pkg/front_end/testcases/regress/issue_36669.dart.legacy.transformed.expect
new file mode 100644
index 0000000..25e5cab
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_36669.dart.legacy.transformed.expect
@@ -0,0 +1,31 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/regress/issue_36669.dart:11:7: Error: The superclass, 'NoUnnamedConstuctor with MixMeIn', has no unnamed constructor that takes no arguments.
+// class Foo extends NoUnnamedConstuctor with MixMeIn {}
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class NoUnnamedConstuctor extends core::Object {
+ constructor _() → self::NoUnnamedConstuctor
+ : super core::Object::•()
+ ;
+}
+class MixMeIn extends core::Object {
+ synthetic constructor •() → self::MixMeIn
+ : super core::Object::•()
+ ;
+}
+abstract class _Foo&NoUnnamedConstuctor&MixMeIn extends self::NoUnnamedConstuctor implements self::MixMeIn {
+ synthetic constructor _() → self::_Foo&NoUnnamedConstuctor&MixMeIn
+ : super self::NoUnnamedConstuctor::_()
+ ;
+}
+class Foo extends self::_Foo&NoUnnamedConstuctor&MixMeIn {
+ synthetic constructor •() → self::Foo
+ : invalid-initializer
+ ;
+}
diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.outline.expect b/pkg/front_end/testcases/regress/issue_36669.dart.outline.expect
new file mode 100644
index 0000000..ea21227
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_36669.dart.outline.expect
@@ -0,0 +1,21 @@
+library;
+import self as self;
+import "dart:core" as core;
+
+class NoUnnamedConstuctor extends core::Object {
+ constructor _() → self::NoUnnamedConstuctor
+ ;
+}
+class MixMeIn extends core::Object {
+ synthetic constructor •() → self::MixMeIn
+ ;
+}
+abstract class _Foo&NoUnnamedConstuctor&MixMeIn = self::NoUnnamedConstuctor with self::MixMeIn {
+ synthetic constructor _() → self::_Foo&NoUnnamedConstuctor&MixMeIn
+ : super self::NoUnnamedConstuctor::_()
+ ;
+}
+class Foo extends self::_Foo&NoUnnamedConstuctor&MixMeIn {
+ synthetic constructor •() → self::Foo
+ ;
+}
diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.strong.expect b/pkg/front_end/testcases/regress/issue_36669.dart.strong.expect
new file mode 100644
index 0000000..104dfea
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_36669.dart.strong.expect
@@ -0,0 +1,31 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/regress/issue_36669.dart:11:7: Error: The superclass, 'NoUnnamedConstuctor with MixMeIn', has no unnamed constructor that takes no arguments.
+// class Foo extends NoUnnamedConstuctor with MixMeIn {}
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class NoUnnamedConstuctor extends core::Object {
+ constructor _() → self::NoUnnamedConstuctor
+ : super core::Object::•()
+ ;
+}
+class MixMeIn extends core::Object {
+ synthetic constructor •() → self::MixMeIn
+ : super core::Object::•()
+ ;
+}
+abstract class _Foo&NoUnnamedConstuctor&MixMeIn = self::NoUnnamedConstuctor with self::MixMeIn {
+ synthetic constructor _() → self::_Foo&NoUnnamedConstuctor&MixMeIn
+ : super self::NoUnnamedConstuctor::_()
+ ;
+}
+class Foo extends self::_Foo&NoUnnamedConstuctor&MixMeIn {
+ synthetic constructor •() → self::Foo
+ : invalid-initializer
+ ;
+}
diff --git a/pkg/front_end/testcases/regress/issue_36669.dart.strong.transformed.expect b/pkg/front_end/testcases/regress/issue_36669.dart.strong.transformed.expect
new file mode 100644
index 0000000..25e5cab
--- /dev/null
+++ b/pkg/front_end/testcases/regress/issue_36669.dart.strong.transformed.expect
@@ -0,0 +1,31 @@
+library;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/regress/issue_36669.dart:11:7: Error: The superclass, 'NoUnnamedConstuctor with MixMeIn', has no unnamed constructor that takes no arguments.
+// class Foo extends NoUnnamedConstuctor with MixMeIn {}
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class NoUnnamedConstuctor extends core::Object {
+ constructor _() → self::NoUnnamedConstuctor
+ : super core::Object::•()
+ ;
+}
+class MixMeIn extends core::Object {
+ synthetic constructor •() → self::MixMeIn
+ : super core::Object::•()
+ ;
+}
+abstract class _Foo&NoUnnamedConstuctor&MixMeIn extends self::NoUnnamedConstuctor implements self::MixMeIn {
+ synthetic constructor _() → self::_Foo&NoUnnamedConstuctor&MixMeIn
+ : super self::NoUnnamedConstuctor::_()
+ ;
+}
+class Foo extends self::_Foo&NoUnnamedConstuctor&MixMeIn {
+ synthetic constructor •() → self::Foo
+ : invalid-initializer
+ ;
+}
diff --git a/pkg/front_end/testcases/strong.status b/pkg/front_end/testcases/strong.status
index 063dc62..79ac736 100644
--- a/pkg/front_end/testcases/strong.status
+++ b/pkg/front_end/testcases/strong.status
@@ -87,7 +87,7 @@
rasta/abstract_constructor: RuntimeError
rasta/bad_constructor_redirection: RuntimeError
rasta/bad_continue: RuntimeError
-rasta/bad_default_constructor: VerificationError
+rasta/bad_default_constructor: RuntimeError
rasta/bad_explicit_super_constructor: RuntimeError
rasta/bad_implicit_super_constructor: RuntimeError
rasta/bad_interpolation: RuntimeError
@@ -106,7 +106,7 @@
rasta/issue_000032: RuntimeError
rasta/issue_000034: RuntimeError
rasta/issue_000036: RuntimeError
-rasta/issue_000039: VerificationError
+rasta/issue_000039: RuntimeError
rasta/issue_000041: RuntimeError
rasta/issue_000042: RuntimeError
rasta/issue_000043: RuntimeError
@@ -145,6 +145,7 @@
regress/issue_36400: RuntimeError
regress/issue_36647: RuntimeError # Expected
regress/issue_36647_2: RuntimeError # Expected
+regress/issue_36669: RuntimeError
reject_generic_function_types_in_bounds: RuntimeError # Expected
runtime_checks_new/contravariant_generic_return_with_compound_assign_implicit_downcast: RuntimeError
runtime_checks_new/mixin_forwarding_stub_field: TypeCheckError
diff --git a/pkg/front_end/testcases/text_serialization.status b/pkg/front_end/testcases/text_serialization.status
index 46d1029..25584dc 100644
--- a/pkg/front_end/testcases/text_serialization.status
+++ b/pkg/front_end/testcases/text_serialization.status
@@ -752,7 +752,7 @@
rasta/abstract_constructor: TextSerializationFailure # Was: RuntimeError
rasta/bad_constructor_redirection: TextSerializationFailure # Was: RuntimeError
rasta/bad_continue: TextSerializationFailure # Was: RuntimeError
-rasta/bad_default_constructor: VerificationError
+rasta/bad_default_constructor: TextSerializationFailure
rasta/bad_explicit_super_constructor: TextSerializationFailure # Was: RuntimeError
rasta/bad_implicit_super_constructor: TextSerializationFailure # Was: RuntimeError
rasta/bad_interpolation: TextSerializationFailure # Was: RuntimeError
@@ -792,7 +792,7 @@
rasta/issue_000035: TextSerializationFailure # Was: Pass
rasta/issue_000035a: TextSerializationFailure # Was: Pass
rasta/issue_000036: TextSerializationFailure # Was: RuntimeError
-rasta/issue_000039: VerificationError
+rasta/issue_000039: TextSerializationFailure
rasta/issue_000041: TextSerializationFailure # Was: RuntimeError
rasta/issue_000042: TextSerializationFailure # Was: RuntimeError
rasta/issue_000043: TextSerializationFailure # Was: RuntimeError
@@ -923,6 +923,7 @@
regress/issue_36647: TextSerializationFailure
regress/issue_36647_2: TextSerializationFailure
regress/issue_36793: TextSerializationFailure
+regress/issue_36669: TextSerializationFailure
reject_generic_function_types_in_bounds: TextSerializationFailure # Was: RuntimeError # Expected
return_with_unknown_type_in_context: TextSerializationFailure # Was: Pass
runtime_checks/call_kinds: TextSerializationFailure # Was: Pass