Version 2.17.0-192.0.dev
Merge commit '9dc81176ab8dabad51b42a24203eb85cee7334e3' into 'dev'
diff --git a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
index b8da52c..ff593a0 100644
--- a/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/parser/parser_impl.dart
@@ -6710,7 +6710,7 @@
break;
}
Token? colon = null;
- if (optional(':', next.next!)) {
+ if (optional(':', next.next!) || /* recovery */ optional(':', next)) {
token =
ensureIdentifier(token, IdentifierContext.namedArgumentReference)
.next!;
diff --git a/pkg/analysis_server/lib/src/services/completion/dart/arglist_contributor.dart b/pkg/analysis_server/lib/src/services/completion/dart/arglist_contributor.dart
index 2fee0c2..9a11b19 100644
--- a/pkg/analysis_server/lib/src/services/completion/dart/arglist_contributor.dart
+++ b/pkg/analysis_server/lib/src/services/completion/dart/arglist_contributor.dart
@@ -2,7 +2,6 @@
// 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.
-import 'package:_fe_analyzer_shared/src/scanner/token.dart';
import 'package:analysis_server/src/provisional/completion/completion_core.dart';
import 'package:analysis_server/src/provisional/completion/dart/completion_dart.dart';
import 'package:analysis_server/src/services/completion/dart/completion_manager.dart';
@@ -200,16 +199,15 @@
bool _isEditingNamedArgLabel() {
if (argumentList != null) {
var entity = request.target.entity;
- if (entity is SimpleIdentifier &&
- entity.isSynthetic &&
- entity.token.next?.type == TokenType.COLON) {
- return true;
- }
if (entity is NamedExpression) {
var offset = request.offset;
- if (entity.offset < offset && offset < entity.end) {
- return true;
+ var nameId = entity.name.label;
+ // `^id: value` - add a new named argument.
+ // `^: value` - edit the name of this named argument.
+ if (offset == nameId.offset && !nameId.isSynthetic) {
+ return false;
}
+ return nameId.offset <= offset && offset <= nameId.end;
}
}
return false;
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48288.dart b/pkg/front_end/parser_testcases/error_recovery/issue_48288.dart
new file mode 100644
index 0000000..5aeef11
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48288.dart
@@ -0,0 +1,3 @@
+void f(int x) {
+ g(: 1, bbb: 0);
+}
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48288.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48288.dart.expect
new file mode 100644
index 0000000..a19ccf7
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48288.dart.expect
@@ -0,0 +1,44 @@
+Problems reported:
+
+parser/error_recovery/issue_48288:2:5: Expected an identifier, but got ':'.
+ g(: 1, bbb: 0);
+ ^
+
+beginCompilationUnit(void)
+ beginMetadataStar(void)
+ endMetadataStar(0)
+ beginTopLevelMember(void)
+ beginTopLevelMethod(, null, null)
+ handleVoidKeyword(void)
+ handleIdentifier(f, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ handleIdentifier(g, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ':'., Try inserting an identifier before ':'., {lexeme: :}], :, :)
+ handleIdentifier(, namedArgumentReference)
+ handleLiteralInt(1)
+ handleNamedArgument(:)
+ handleIdentifier(bbb, namedArgumentReference)
+ handleLiteralInt(0)
+ handleNamedArgument(:)
+ endArguments(2, (, ))
+ handleSend(g, ;)
+ handleExpressionStatement(;)
+ endBlockFunctionBody(1, {, })
+ endTopLevelMethod(void, null, })
+ endTopLevelDeclaration()
+endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48288.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48288.dart.intertwined.expect
new file mode 100644
index 0000000..1c7b843
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48288.dart.intertwined.expect
@@ -0,0 +1,92 @@
+parseUnit(void)
+ skipErrorTokens(void)
+ listener: beginCompilationUnit(void)
+ syntheticPreviousToken(void)
+ parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+ parseMetadataStar()
+ listener: beginMetadataStar(void)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl()
+ listener: beginTopLevelMember(void)
+ parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+ listener: beginTopLevelMethod(, null, null)
+ listener: handleVoidKeyword(void)
+ ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+ listener: handleIdentifier(f, topLevelFunctionDeclaration)
+ parseMethodTypeVar(f)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(f, f, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(f, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, g)
+ parseStatement({)
+ parseStatementX({)
+ parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false)
+ looksLikeLocalFunction(g)
+ parseExpressionStatement({)
+ parseExpression({)
+ parsePrecedenceExpression({, 1, true)
+ parseUnaryExpression({, true)
+ parsePrimary({, expression)
+ parseSendOrFunctionLiteral({, expression)
+ looksLikeFunctionBody(;)
+ parseSend({, expression)
+ isNextIdentifier({)
+ ensureIdentifier({, expression)
+ listener: handleIdentifier(g, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(g)
+ parseArguments(g)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ ensureIdentifier((, namedArgumentReference)
+ insertSyntheticIdentifier((, namedArgumentReference, message: Message[ExpectedIdentifier, Expected an identifier, but got ':'., Try inserting an identifier before ':'., {lexeme: :}], messageOnToken: null)
+ reportRecoverableError(:, Message[ExpectedIdentifier, Expected an identifier, but got ':'., Try inserting an identifier before ':'., {lexeme: :}])
+ listener: handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ':'., Try inserting an identifier before ':'., {lexeme: :}], :, :)
+ rewriter()
+ listener: handleIdentifier(, namedArgumentReference)
+ parseExpression(:)
+ parsePrecedenceExpression(:, 1, true)
+ parseUnaryExpression(:, true)
+ parsePrimary(:, expression)
+ parseLiteralInt(:)
+ listener: handleLiteralInt(1)
+ listener: handleNamedArgument(:)
+ ensureIdentifier(,, namedArgumentReference)
+ listener: handleIdentifier(bbb, namedArgumentReference)
+ parseExpression(:)
+ parsePrecedenceExpression(:, 1, true)
+ parseUnaryExpression(:, true)
+ parsePrimary(:, expression)
+ parseLiteralInt(:)
+ listener: handleLiteralInt(0)
+ listener: handleNamedArgument(:)
+ listener: endArguments(2, (, ))
+ listener: handleSend(g, ;)
+ ensureSemicolon())
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(1, {, })
+ listener: endTopLevelMethod(void, null, })
+ listener: endTopLevelDeclaration()
+ reportAllErrorTokens(void)
+ listener: endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48288.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48288.dart.parser.expect
new file mode 100644
index 0000000..57b6b56a
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48288.dart.parser.expect
@@ -0,0 +1,11 @@
+NOTICE: Stream was rewritten by parser!
+
+void f(int x) {
+g(*synthetic*: 1, bbb: 0);
+}
+
+
+void[KeywordToken] f[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+g[StringToken]([BeginToken][SyntheticStringToken]:[SimpleToken] 1[StringToken],[SimpleToken] bbb[StringToken]:[SimpleToken] 0[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48288.dart.scanner.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48288.dart.scanner.expect
new file mode 100644
index 0000000..b02d99b
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48288.dart.scanner.expect
@@ -0,0 +1,9 @@
+void f(int x) {
+g(: 1, bbb: 0);
+}
+
+
+void[KeywordToken] f[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+g[StringToken]([BeginToken]:[SimpleToken] 1[StringToken],[SimpleToken] bbb[StringToken]:[SimpleToken] 0[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48288.equivalence_info b/pkg/front_end/parser_testcases/error_recovery/issue_48288.equivalence_info
new file mode 100644
index 0000000..b479e22
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48288.equivalence_info
@@ -0,0 +1,7 @@
+files:
+ - issue_48288.dart
+ - issue_48288_prime.dart
+filters:
+ - ignoreListenerArguments
+ignored:
+ - handleRecoverableError
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48288_prime.dart b/pkg/front_end/parser_testcases/error_recovery/issue_48288_prime.dart
new file mode 100644
index 0000000..b547da1
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48288_prime.dart
@@ -0,0 +1,3 @@
+void f(int x) {
+ g(foo: 1, bbb: 0);
+}
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48288_prime.dart.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48288_prime.dart.expect
new file mode 100644
index 0000000..061f44a
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48288_prime.dart.expect
@@ -0,0 +1,37 @@
+beginCompilationUnit(void)
+ beginMetadataStar(void)
+ endMetadataStar(0)
+ beginTopLevelMember(void)
+ beginTopLevelMethod(, null, null)
+ handleVoidKeyword(void)
+ handleIdentifier(f, topLevelFunctionDeclaration)
+ handleNoTypeVariables(()
+ beginFormalParameters((, MemberKind.TopLevelMethod)
+ beginMetadataStar(int)
+ endMetadataStar(0)
+ beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ handleIdentifier(int, typeReference)
+ handleNoTypeArguments(x)
+ handleType(int, null)
+ handleIdentifier(x, formalParameterDeclaration)
+ handleFormalParameterWithoutValue())
+ endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ handleAsyncModifier(null, null)
+ beginBlockFunctionBody({)
+ handleIdentifier(g, expression)
+ handleNoTypeArguments(()
+ beginArguments(()
+ handleIdentifier(foo, namedArgumentReference)
+ handleLiteralInt(1)
+ handleNamedArgument(:)
+ handleIdentifier(bbb, namedArgumentReference)
+ handleLiteralInt(0)
+ handleNamedArgument(:)
+ endArguments(2, (, ))
+ handleSend(g, ;)
+ handleExpressionStatement(;)
+ endBlockFunctionBody(1, {, })
+ endTopLevelMethod(void, null, })
+ endTopLevelDeclaration()
+endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48288_prime.dart.intertwined.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48288_prime.dart.intertwined.expect
new file mode 100644
index 0000000..def81ae
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48288_prime.dart.intertwined.expect
@@ -0,0 +1,88 @@
+parseUnit(void)
+ skipErrorTokens(void)
+ listener: beginCompilationUnit(void)
+ syntheticPreviousToken(void)
+ parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
+ parseMetadataStar()
+ listener: beginMetadataStar(void)
+ listener: endMetadataStar(0)
+ parseTopLevelMemberImpl()
+ listener: beginTopLevelMember(void)
+ parseTopLevelMethod(, null, null, , Instance of 'VoidType', null, f, false)
+ listener: beginTopLevelMethod(, null, null)
+ listener: handleVoidKeyword(void)
+ ensureIdentifierPotentiallyRecovered(void, topLevelFunctionDeclaration, false)
+ listener: handleIdentifier(f, topLevelFunctionDeclaration)
+ parseMethodTypeVar(f)
+ listener: handleNoTypeVariables(()
+ parseGetterOrFormalParameters(f, f, false, MemberKind.TopLevelMethod)
+ parseFormalParameters(f, MemberKind.TopLevelMethod)
+ parseFormalParametersRest((, MemberKind.TopLevelMethod)
+ listener: beginFormalParameters((, MemberKind.TopLevelMethod)
+ parseFormalParameter((, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ parseMetadataStar(()
+ listener: beginMetadataStar(int)
+ listener: endMetadataStar(0)
+ listener: beginFormalParameter(int, MemberKind.TopLevelMethod, null, null, null)
+ listener: handleIdentifier(int, typeReference)
+ listener: handleNoTypeArguments(x)
+ listener: handleType(int, null)
+ ensureIdentifier(int, formalParameterDeclaration)
+ listener: handleIdentifier(x, formalParameterDeclaration)
+ listener: handleFormalParameterWithoutValue())
+ listener: endFormalParameter(null, null, null, x, null, null, FormalParameterKind.mandatory, MemberKind.TopLevelMethod)
+ listener: endFormalParameters(1, (, ), MemberKind.TopLevelMethod)
+ parseAsyncModifierOpt())
+ listener: handleAsyncModifier(null, null)
+ inPlainSync()
+ parseFunctionBody(), false, false)
+ listener: beginBlockFunctionBody({)
+ notEofOrValue(}, g)
+ parseStatement({)
+ parseStatementX({)
+ parseExpressionStatementOrDeclarationAfterModifiers({, {, null, null, null, false)
+ looksLikeLocalFunction(g)
+ parseExpressionStatement({)
+ parseExpression({)
+ parsePrecedenceExpression({, 1, true)
+ parseUnaryExpression({, true)
+ parsePrimary({, expression)
+ parseSendOrFunctionLiteral({, expression)
+ looksLikeFunctionBody(;)
+ parseSend({, expression)
+ isNextIdentifier({)
+ ensureIdentifier({, expression)
+ listener: handleIdentifier(g, expression)
+ listener: handleNoTypeArguments(()
+ parseArgumentsOpt(g)
+ parseArguments(g)
+ parseArgumentsRest(()
+ listener: beginArguments(()
+ ensureIdentifier((, namedArgumentReference)
+ listener: handleIdentifier(foo, namedArgumentReference)
+ parseExpression(:)
+ parsePrecedenceExpression(:, 1, true)
+ parseUnaryExpression(:, true)
+ parsePrimary(:, expression)
+ parseLiteralInt(:)
+ listener: handleLiteralInt(1)
+ listener: handleNamedArgument(:)
+ ensureIdentifier(,, namedArgumentReference)
+ listener: handleIdentifier(bbb, namedArgumentReference)
+ parseExpression(:)
+ parsePrecedenceExpression(:, 1, true)
+ parseUnaryExpression(:, true)
+ parsePrimary(:, expression)
+ parseLiteralInt(:)
+ listener: handleLiteralInt(0)
+ listener: handleNamedArgument(:)
+ listener: endArguments(2, (, ))
+ listener: handleSend(g, ;)
+ ensureSemicolon())
+ listener: handleExpressionStatement(;)
+ notEofOrValue(}, })
+ listener: endBlockFunctionBody(1, {, })
+ listener: endTopLevelMethod(void, null, })
+ listener: endTopLevelDeclaration()
+ reportAllErrorTokens(void)
+ listener: endCompilationUnit(1, )
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48288_prime.dart.parser.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48288_prime.dart.parser.expect
new file mode 100644
index 0000000..a4c0177
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48288_prime.dart.parser.expect
@@ -0,0 +1,9 @@
+void f(int x) {
+g(foo: 1, bbb: 0);
+}
+
+
+void[KeywordToken] f[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+g[StringToken]([BeginToken]foo[StringToken]:[SimpleToken] 1[StringToken],[SimpleToken] bbb[StringToken]:[SimpleToken] 0[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/parser_testcases/error_recovery/issue_48288_prime.dart.scanner.expect b/pkg/front_end/parser_testcases/error_recovery/issue_48288_prime.dart.scanner.expect
new file mode 100644
index 0000000..a4c0177
--- /dev/null
+++ b/pkg/front_end/parser_testcases/error_recovery/issue_48288_prime.dart.scanner.expect
@@ -0,0 +1,9 @@
+void f(int x) {
+g(foo: 1, bbb: 0);
+}
+
+
+void[KeywordToken] f[StringToken]([BeginToken]int[StringToken] x[StringToken])[SimpleToken] {[BeginToken]
+g[StringToken]([BeginToken]foo[StringToken]:[SimpleToken] 1[StringToken],[SimpleToken] bbb[StringToken]:[SimpleToken] 0[StringToken])[SimpleToken];[SimpleToken]
+}[SimpleToken]
+[SimpleToken]
diff --git a/pkg/front_end/testcases/general/tabs.dart b/pkg/front_end/testcases/general/tabs.dart
index 32b56da..17daaf4 100644
--- a/pkg/front_end/testcases/general/tabs.dart
+++ b/pkg/front_end/testcases/general/tabs.dart
@@ -1,7 +1,7 @@
// 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.
-// @dart=2.9
+
// Test that error messages are indented correctly
// in the presence of tabs.
diff --git a/pkg/front_end/testcases/general/tabs.dart.textual_outline.expect b/pkg/front_end/testcases/general/tabs.dart.textual_outline.expect
index 001308b..ec6b9e0 100644
--- a/pkg/front_end/testcases/general/tabs.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/tabs.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
test() {}
main() {}
diff --git a/pkg/front_end/testcases/general/tabs.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/tabs.dart.textual_outline_modelled.expect
index 38df08d..f67dbb0 100644
--- a/pkg/front_end/testcases/general/tabs.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/tabs.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
main() {}
test() {}
diff --git a/pkg/front_end/testcases/general/tabs.dart.weak.expect b/pkg/front_end/testcases/general/tabs.dart.weak.expect
index c69fb6b..75f5781 100644
--- a/pkg/front_end/testcases/general/tabs.dart.weak.expect
+++ b/pkg/front_end/testcases/general/tabs.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
diff --git a/pkg/front_end/testcases/general/tabs.dart.weak.modular.expect b/pkg/front_end/testcases/general/tabs.dart.weak.modular.expect
index c69fb6b..75f5781 100644
--- a/pkg/front_end/testcases/general/tabs.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/tabs.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
diff --git a/pkg/front_end/testcases/general/tabs.dart.weak.outline.expect b/pkg/front_end/testcases/general/tabs.dart.weak.outline.expect
index a29647d..64923de 100644
--- a/pkg/front_end/testcases/general/tabs.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/tabs.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
static method test() → dynamic
diff --git a/pkg/front_end/testcases/general/tabs.dart.weak.transformed.expect b/pkg/front_end/testcases/general/tabs.dart.weak.transformed.expect
index c69fb6b..75f5781 100644
--- a/pkg/front_end/testcases/general/tabs.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/tabs.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
diff --git a/pkg/front_end/testcases/general/this_field_call.dart b/pkg/front_end/testcases/general/this_field_call.dart
index b7b47d6..8b26b24 100644
--- a/pkg/front_end/testcases/general/this_field_call.dart
+++ b/pkg/front_end/testcases/general/this_field_call.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2020, 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.
-// @dart=2.9
+
class A<T> {
void Function(T) f;
A(this.f);
diff --git a/pkg/front_end/testcases/general/this_field_call.dart.textual_outline.expect b/pkg/front_end/testcases/general/this_field_call.dart.textual_outline.expect
index 116a8da..eb3e361 100644
--- a/pkg/front_end/testcases/general/this_field_call.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/this_field_call.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T> {
void Function(T) f;
A(this.f);
diff --git a/pkg/front_end/testcases/general/this_field_call.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/this_field_call.dart.textual_outline_modelled.expect
index 4b5395b..b5116cc 100644
--- a/pkg/front_end/testcases/general/this_field_call.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/this_field_call.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T> {
A(this.f);
foo(T x) => this.f(x);
diff --git a/pkg/front_end/testcases/general/this_field_call.dart.weak.expect b/pkg/front_end/testcases/general/this_field_call.dart.weak.expect
index 1156174..0512ad4 100644
--- a/pkg/front_end/testcases/general/this_field_call.dart.weak.expect
+++ b/pkg/front_end/testcases/general/this_field_call.dart.weak.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- field (self::A::T*) →* void f;
- constructor •((self::A::T*) →* void f) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ field (self::A::T%) → void f;
+ constructor •((self::A::T%) → void f) → self::A<self::A::T%>
: self::A::f = f, super core::Object::•()
;
- method foo(covariant-by-class self::A::T* x) → dynamic
- return let final self::A::T* #t1 = x in this.{self::A::f}{(self::A::T*) →* void}(#t1){(self::A::T*) →* void};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo(covariant-by-class self::A::T% x) → dynamic
+ return let final self::A::T% #t1 = x in this.{self::A::f}{(self::A::T%) → void}(#t1){(self::A::T%) → void};
}
static method main() → dynamic {
- new self::A::•<core::int*>((core::int* x) → Null {}).{self::A::foo}(3){(core::int*) →* dynamic};
+ new self::A::•<core::int>((core::int x) → void {}).{self::A::foo}(3){(core::int) → dynamic};
}
diff --git a/pkg/front_end/testcases/general/this_field_call.dart.weak.modular.expect b/pkg/front_end/testcases/general/this_field_call.dart.weak.modular.expect
index 1156174..0512ad4 100644
--- a/pkg/front_end/testcases/general/this_field_call.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/this_field_call.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- field (self::A::T*) →* void f;
- constructor •((self::A::T*) →* void f) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ field (self::A::T%) → void f;
+ constructor •((self::A::T%) → void f) → self::A<self::A::T%>
: self::A::f = f, super core::Object::•()
;
- method foo(covariant-by-class self::A::T* x) → dynamic
- return let final self::A::T* #t1 = x in this.{self::A::f}{(self::A::T*) →* void}(#t1){(self::A::T*) →* void};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo(covariant-by-class self::A::T% x) → dynamic
+ return let final self::A::T% #t1 = x in this.{self::A::f}{(self::A::T%) → void}(#t1){(self::A::T%) → void};
}
static method main() → dynamic {
- new self::A::•<core::int*>((core::int* x) → Null {}).{self::A::foo}(3){(core::int*) →* dynamic};
+ new self::A::•<core::int>((core::int x) → void {}).{self::A::foo}(3){(core::int) → dynamic};
}
diff --git a/pkg/front_end/testcases/general/this_field_call.dart.weak.outline.expect b/pkg/front_end/testcases/general/this_field_call.dart.weak.outline.expect
index 5ef3cd8..71acb0c 100644
--- a/pkg/front_end/testcases/general/this_field_call.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/this_field_call.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- field (self::A::T*) →* void f;
- constructor •((self::A::T*) →* void f) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ field (self::A::T%) → void f;
+ constructor •((self::A::T%) → void f) → self::A<self::A::T%>
;
- method foo(covariant-by-class self::A::T* x) → dynamic
+ method foo(covariant-by-class self::A::T% x) → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/this_field_call.dart.weak.transformed.expect b/pkg/front_end/testcases/general/this_field_call.dart.weak.transformed.expect
index 1156174..0512ad4 100644
--- a/pkg/front_end/testcases/general/this_field_call.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/this_field_call.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- field (self::A::T*) →* void f;
- constructor •((self::A::T*) →* void f) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ field (self::A::T%) → void f;
+ constructor •((self::A::T%) → void f) → self::A<self::A::T%>
: self::A::f = f, super core::Object::•()
;
- method foo(covariant-by-class self::A::T* x) → dynamic
- return let final self::A::T* #t1 = x in this.{self::A::f}{(self::A::T*) →* void}(#t1){(self::A::T*) →* void};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo(covariant-by-class self::A::T% x) → dynamic
+ return let final self::A::T% #t1 = x in this.{self::A::f}{(self::A::T%) → void}(#t1){(self::A::T%) → void};
}
static method main() → dynamic {
- new self::A::•<core::int*>((core::int* x) → Null {}).{self::A::foo}(3){(core::int*) →* dynamic};
+ new self::A::•<core::int>((core::int x) → void {}).{self::A::foo}(3){(core::int) → dynamic};
}
diff --git a/pkg/front_end/testcases/general/three_typedefs_loop.dart b/pkg/front_end/testcases/general/three_typedefs_loop.dart
index da2c06d..d4f0110 100644
--- a/pkg/front_end/testcases/general/three_typedefs_loop.dart
+++ b/pkg/front_end/testcases/general/three_typedefs_loop.dart
@@ -1,7 +1,7 @@
// 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.
-// @dart=2.9
+
// The test for recursive typedef declaration involving multiple typedefs.
typedef Foo<T> = void Function(Bar<T>);
diff --git a/pkg/front_end/testcases/general/three_typedefs_loop.dart.textual_outline.expect b/pkg/front_end/testcases/general/three_typedefs_loop.dart.textual_outline.expect
index 37b7fd2..0e6af39 100644
--- a/pkg/front_end/testcases/general/three_typedefs_loop.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/three_typedefs_loop.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
typedef Foo<T> = void Function(Bar<T>);
typedef Bar<T> = void Function(Baz<T>);
typedef Baz<T> = void Function(Foo<T>);
diff --git a/pkg/front_end/testcases/general/three_typedefs_loop.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/three_typedefs_loop.dart.textual_outline_modelled.expect
index 3164897..d241b1c 100644
--- a/pkg/front_end/testcases/general/three_typedefs_loop.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/three_typedefs_loop.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
main() {}
typedef Bar<T> = void Function(Baz<T>);
typedef Baz<T> = void Function(Foo<T>);
diff --git a/pkg/front_end/testcases/general/three_typedefs_loop.dart.weak.expect b/pkg/front_end/testcases/general/three_typedefs_loop.dart.weak.expect
index bd2fff9..5a5dbe0 100644
--- a/pkg/front_end/testcases/general/three_typedefs_loop.dart.weak.expect
+++ b/pkg/front_end/testcases/general/three_typedefs_loop.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,7 +13,7 @@
import self as self;
import "dart:core" as core;
-typedef Foo<unrelated T extends core::Object* = dynamic> = invalid-type;
-typedef Bar<unrelated T extends core::Object* = dynamic> = ((invalid-type) →* void) →* void;
-typedef Baz<unrelated T extends core::Object* = dynamic> = (invalid-type) →* void;
+typedef Foo<unrelated T extends core::Object? = dynamic> = invalid-type;
+typedef Bar<unrelated T extends core::Object? = dynamic> = ((invalid-type) → void) → void;
+typedef Baz<unrelated T extends core::Object? = dynamic> = (invalid-type) → void;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/three_typedefs_loop.dart.weak.modular.expect b/pkg/front_end/testcases/general/three_typedefs_loop.dart.weak.modular.expect
index bd2fff9..5a5dbe0 100644
--- a/pkg/front_end/testcases/general/three_typedefs_loop.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/three_typedefs_loop.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,7 +13,7 @@
import self as self;
import "dart:core" as core;
-typedef Foo<unrelated T extends core::Object* = dynamic> = invalid-type;
-typedef Bar<unrelated T extends core::Object* = dynamic> = ((invalid-type) →* void) →* void;
-typedef Baz<unrelated T extends core::Object* = dynamic> = (invalid-type) →* void;
+typedef Foo<unrelated T extends core::Object? = dynamic> = invalid-type;
+typedef Bar<unrelated T extends core::Object? = dynamic> = ((invalid-type) → void) → void;
+typedef Baz<unrelated T extends core::Object? = dynamic> = (invalid-type) → void;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/three_typedefs_loop.dart.weak.outline.expect b/pkg/front_end/testcases/general/three_typedefs_loop.dart.weak.outline.expect
index f030616..c40c627 100644
--- a/pkg/front_end/testcases/general/three_typedefs_loop.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/three_typedefs_loop.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,8 +13,8 @@
import self as self;
import "dart:core" as core;
-typedef Foo<unrelated T extends core::Object* = dynamic> = invalid-type;
-typedef Bar<unrelated T extends core::Object* = dynamic> = ((invalid-type) →* void) →* void;
-typedef Baz<unrelated T extends core::Object* = dynamic> = (invalid-type) →* void;
+typedef Foo<unrelated T extends core::Object? = dynamic> = invalid-type;
+typedef Bar<unrelated T extends core::Object? = dynamic> = ((invalid-type) → void) → void;
+typedef Baz<unrelated T extends core::Object? = dynamic> = (invalid-type) → void;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/three_typedefs_loop.dart.weak.transformed.expect b/pkg/front_end/testcases/general/three_typedefs_loop.dart.weak.transformed.expect
index bd2fff9..5a5dbe0 100644
--- a/pkg/front_end/testcases/general/three_typedefs_loop.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/three_typedefs_loop.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,7 +13,7 @@
import self as self;
import "dart:core" as core;
-typedef Foo<unrelated T extends core::Object* = dynamic> = invalid-type;
-typedef Bar<unrelated T extends core::Object* = dynamic> = ((invalid-type) →* void) →* void;
-typedef Baz<unrelated T extends core::Object* = dynamic> = (invalid-type) →* void;
+typedef Foo<unrelated T extends core::Object? = dynamic> = invalid-type;
+typedef Bar<unrelated T extends core::Object? = dynamic> = ((invalid-type) → void) → void;
+typedef Baz<unrelated T extends core::Object? = dynamic> = (invalid-type) → void;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/top_level_accessors.dart b/pkg/front_end/testcases/general/top_level_accessors.dart
index dc770bb..a0dbc51 100644
--- a/pkg/front_end/testcases/general/top_level_accessors.dart
+++ b/pkg/front_end/testcases/general/top_level_accessors.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
library top_level_accessors;
part 'top_level_accessors_part.dart';
diff --git a/pkg/front_end/testcases/general/top_level_accessors.dart.textual_outline.expect b/pkg/front_end/testcases/general/top_level_accessors.dart.textual_outline.expect
index 679edd0..184dba8 100644
--- a/pkg/front_end/testcases/general/top_level_accessors.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/top_level_accessors.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library top_level_accessors;
part 'top_level_accessors_part.dart';
diff --git a/pkg/front_end/testcases/general/top_level_accessors.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/top_level_accessors.dart.textual_outline_modelled.expect
index 679edd0..184dba8 100644
--- a/pkg/front_end/testcases/general/top_level_accessors.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/top_level_accessors.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library top_level_accessors;
part 'top_level_accessors_part.dart';
diff --git a/pkg/front_end/testcases/general/top_level_accessors.dart.weak.expect b/pkg/front_end/testcases/general/top_level_accessors.dart.weak.expect
index 9898bf6..837a217 100644
--- a/pkg/front_end/testcases/general/top_level_accessors.dart.weak.expect
+++ b/pkg/front_end/testcases/general/top_level_accessors.dart.weak.expect
@@ -1,12 +1,12 @@
-library top_level_accessors;
+library top_level_accessors /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
part top_level_accessors_part.dart;
-static set /* from org-dartlang-testcase:///top_level_accessors_part.dart */ exitCode(core::int* code) → void {
+static set /* from org-dartlang-testcase:///top_level_accessors_part.dart */ exitCode(core::int code) → void {
core::print(code);
}
-static get /* from org-dartlang-testcase:///top_level_accessors_part.dart */ exitCode() → core::int*
+static get /* from org-dartlang-testcase:///top_level_accessors_part.dart */ exitCode() → core::int
return 0;
static method /* from org-dartlang-testcase:///top_level_accessors_part.dart */ main() → dynamic {
self::exitCode = 42;
diff --git a/pkg/front_end/testcases/general/top_level_accessors.dart.weak.modular.expect b/pkg/front_end/testcases/general/top_level_accessors.dart.weak.modular.expect
index 9898bf6..837a217 100644
--- a/pkg/front_end/testcases/general/top_level_accessors.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/top_level_accessors.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library top_level_accessors;
+library top_level_accessors /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
part top_level_accessors_part.dart;
-static set /* from org-dartlang-testcase:///top_level_accessors_part.dart */ exitCode(core::int* code) → void {
+static set /* from org-dartlang-testcase:///top_level_accessors_part.dart */ exitCode(core::int code) → void {
core::print(code);
}
-static get /* from org-dartlang-testcase:///top_level_accessors_part.dart */ exitCode() → core::int*
+static get /* from org-dartlang-testcase:///top_level_accessors_part.dart */ exitCode() → core::int
return 0;
static method /* from org-dartlang-testcase:///top_level_accessors_part.dart */ main() → dynamic {
self::exitCode = 42;
diff --git a/pkg/front_end/testcases/general/top_level_accessors.dart.weak.outline.expect b/pkg/front_end/testcases/general/top_level_accessors.dart.weak.outline.expect
index bbdb2a7..298c657 100644
--- a/pkg/front_end/testcases/general/top_level_accessors.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/top_level_accessors.dart.weak.outline.expect
@@ -1,11 +1,11 @@
-library top_level_accessors;
+library top_level_accessors /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
part top_level_accessors_part.dart;
-static set /* from org-dartlang-testcase:///top_level_accessors_part.dart */ exitCode(core::int* code) → void
+static set /* from org-dartlang-testcase:///top_level_accessors_part.dart */ exitCode(core::int code) → void
;
-static get /* from org-dartlang-testcase:///top_level_accessors_part.dart */ exitCode() → core::int*
+static get /* from org-dartlang-testcase:///top_level_accessors_part.dart */ exitCode() → core::int
;
static method /* from org-dartlang-testcase:///top_level_accessors_part.dart */ main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/top_level_accessors.dart.weak.transformed.expect b/pkg/front_end/testcases/general/top_level_accessors.dart.weak.transformed.expect
index 9898bf6..837a217 100644
--- a/pkg/front_end/testcases/general/top_level_accessors.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/top_level_accessors.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library top_level_accessors;
+library top_level_accessors /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
part top_level_accessors_part.dart;
-static set /* from org-dartlang-testcase:///top_level_accessors_part.dart */ exitCode(core::int* code) → void {
+static set /* from org-dartlang-testcase:///top_level_accessors_part.dart */ exitCode(core::int code) → void {
core::print(code);
}
-static get /* from org-dartlang-testcase:///top_level_accessors_part.dart */ exitCode() → core::int*
+static get /* from org-dartlang-testcase:///top_level_accessors_part.dart */ exitCode() → core::int
return 0;
static method /* from org-dartlang-testcase:///top_level_accessors_part.dart */ main() → dynamic {
self::exitCode = 42;
diff --git a/pkg/front_end/testcases/general/top_level_accessors_part.dart b/pkg/front_end/testcases/general/top_level_accessors_part.dart
index e7d124c..6aeed08 100644
--- a/pkg/front_end/testcases/general/top_level_accessors_part.dart
+++ b/pkg/front_end/testcases/general/top_level_accessors_part.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
part of top_level_accessors;
void set exitCode(int code) {
diff --git a/pkg/front_end/testcases/general/top_level_variance2.dart b/pkg/front_end/testcases/general/top_level_variance2.dart
new file mode 100644
index 0000000..f9f1b69
--- /dev/null
+++ b/pkg/front_end/testcases/general/top_level_variance2.dart
@@ -0,0 +1,163 @@
+// 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.
+
+// Testing that instantiate-to-bound and super-bounded types take the
+// variance of formal type parameters into account when a type alias is
+// used as a raw type.
+
+// Standard type comparison support.
+
+typedef F<X> = void Function<Y extends X>();
+F<X> toF<X>(X x) => throw '';
+
+// Material specific to this test.
+
+typedef Fcov<X> = X Function();
+typedef Fcon<X> = Function(X);
+typedef Finv<X> = X Function(X);
+
+typedef FcovBound<X extends num> = X Function();
+typedef FconBound<X extends num> = Function(X);
+typedef FinvBound<X extends num> = X Function(X);
+
+class A<X> {}
+
+typedef FcovCyclicBound<X extends A<X>> = X Function();
+typedef FconCyclicBound<X extends A<X>> = Function(X);
+typedef FinvCyclicBound<X extends A<X>> = X Function(X);
+
+typedef FcovCyclicCoBound<X extends Function(X)> = X Function();
+typedef FconCyclicCoBound<X extends Function(X)> = Function(X);
+typedef FinvCyclicCoBound<X extends Function(X)> = X Function(X);
+
+class B<X> {}
+
+void testTopLevel(
+ Fcov source1,
+ Fcon source2,
+ Finv source3,
+ FcovBound source4,
+ FconBound source5,
+ FinvBound source6,
+ FcovCyclicBound source7,
+ FconCyclicBound source8,
+ FcovCyclicCoBound source10,
+ FconCyclicCoBound source11,
+ FinvCyclicCoBound source12) {
+ // I2b initial value for a covariant type parameter w/o bound: dynamic.
+ var fsource1 = toF(source1);
+ F<Fcov<dynamic>> target1 = fsource1;
+
+ // I2b initial value for a contravariant type parameter w/o bound: dynamic.
+ var fsource2 = toF(source2);
+ F<Fcon<dynamic>> target2 = fsource2;
+
+ // I2b initial value for an invariant type parameter w/o bound: dynamic.
+ var fsource3 = toF(source3);
+ F<Finv<dynamic>> target3 = fsource3;
+
+ // I2b initial value for a covariant type parameter: bound.
+ var fsource4 = toF(source4);
+ F<FcovBound<num>> target4 = fsource4;
+
+ // I2b initial value for a contravariant type parameter: bound.
+ var fsource5 = toF(source5);
+ F<FconBound<num>> target5 = fsource5;
+
+ // I2b initial value for an invariant type parameter: bound.
+ var fsource6 = toF(source6);
+ F<FinvBound<num>> target6 = fsource6;
+
+ // I2b for a covariant type parameter w F-bound: Use bound, then break
+ // cycle by replacing covariant occurrence by `dynamic`. Resulting type
+ // is super-bounded: FcovCyclicBound<A<Null>> is regular-bounded.
+ var fsource7 = toF(source7);
+ F<FcovCyclicBound<A<dynamic>>> target7 = fsource7;
+
+ // I2b for a contravariant type parameter w F-bound: Use bound, then break
+ // cycle by replacing contravariant occurrence by `Never`. Resulting type
+ // is super-bounded: FconCyclicBound<A<Object>> is regular-bounded.
+ var fsource8 = toF(source8);
+ F<FconCyclicBound<A<Never>>> target8 = fsource8;
+
+ // I2b for an invariant type parameter w F-bound: Use bound, then break
+ // cycle by replacing invariant occurrence by `dynamic`. Resulting type is
+ // _not_ super-bounded: FinvCyclicBound<A<dynamic>> not regular-bounded.
+ FinvCyclicBound source9; //# 01: compile-time error
+ // var fsource9 = toF(source9);
+ // F<FinvCyclicBound<A<dynamic>>> target9 = fsource9;
+
+ // I2b for a covariant type parameter w F-bound: Use bound, then break
+ // cycle by replacing contravariant occurrence by `Never`. Resulting type
+ // is super-bounded: FcovCyclicBound<Function(Object)> is regular-bounded.
+ var fsource10 = toF(source10);
+ F<FcovCyclicCoBound<Function(Never)>> target10 = fsource10;
+
+ // I2b for a contravariant type parameter w F-bound: Use bound, then break
+ // cycle by replacing covariant occurrence by `dynamic`. Resulting type
+ // FconCyclicCoBound<Function(dynamic)> is regular-bounded.
+ var fsource11 = toF(source11);
+ F<FconCyclicCoBound<Function(dynamic)>> target11 = fsource11;
+
+ // I2b for an invariant type parameter w F-bound: Use bound, then break
+ // cycle by replacing invariant occurrence by `dynamic`. Resulting type
+ // F<FinvCyclicCoBound<Function(dynamic)>> is regular-bounded.
+ var fsource12 = toF(source12);
+ F<FinvCyclicCoBound<Function(dynamic)>> target12 = fsource12;
+}
+
+void testNested(
+ B<Fcov> source1,
+ B<Fcon> source2,
+ B<Finv> source3,
+ B<FcovBound> source4,
+ B<FconBound> source5,
+ B<FinvBound> source6,
+ B<FcovCyclicBound> source7,
+ B<FconCyclicBound> source8,
+ B<FcovCyclicCoBound> source10,
+ B<FconCyclicCoBound> source11,
+ B<FinvCyclicCoBound> source12) {
+ // Everything gets the same treatment when the cases from
+ // `testTopLevel` are duplicated at the nested level.
+
+ var fsource1 = toF(source1);
+ F<B<Fcov<dynamic>>> target1 = fsource1;
+
+ var fsource2 = toF(source2);
+ F<B<Fcon<dynamic>>> target2 = fsource2;
+
+ var fsource3 = toF(source3);
+ F<B<Finv<dynamic>>> target3 = fsource3;
+
+ var fsource4 = toF(source4);
+ F<B<FcovBound<num>>> target4 = fsource4;
+
+ var fsource5 = toF(source5);
+ F<B<FconBound<num>>> target5 = fsource5;
+
+ var fsource6 = toF(source6);
+ F<B<FinvBound<num>>> target6 = fsource6;
+
+ var fsource7 = toF(source7);
+ F<B<FcovCyclicBound<A<dynamic>>>> target7 = fsource7;
+
+ var fsource8 = toF(source8);
+ F<B<FconCyclicBound<A<Never>>>> target8 = fsource8;
+
+ B<FinvCyclicBound> source9; //# 02: compile-time error
+ // var fsource9 = toF(source9);
+ // F<B<FinvCyclicBound<A<dynamic>>>> target9 = fsource9;
+
+ var fsource10 = toF(source10);
+ F<B<FcovCyclicCoBound<Function(Never)>>> target10 = fsource10;
+
+ var fsource11 = toF(source11);
+ F<B<FconCyclicCoBound<Function(dynamic)>>> target11 = fsource11;
+
+ var fsource12 = toF(source12);
+ F<B<FinvCyclicCoBound<Function(dynamic)>>> target12 = fsource12;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/top_level_variance2.dart.textual_outline.expect b/pkg/front_end/testcases/general/top_level_variance2.dart.textual_outline.expect
new file mode 100644
index 0000000..cc6feb2
--- /dev/null
+++ b/pkg/front_end/testcases/general/top_level_variance2.dart.textual_outline.expect
@@ -0,0 +1,45 @@
+typedef F<X> = void Function<Y extends X>();
+F<X> toF<X>(X x) => throw '';
+typedef Fcov<X> = X Function();
+typedef Fcon<X> = Function(X);
+typedef Finv<X> = X Function(X);
+typedef FcovBound<X extends num> = X Function();
+typedef FconBound<X extends num> = Function(X);
+typedef FinvBound<X extends num> = X Function(X);
+
+class A<X> {}
+
+typedef FcovCyclicBound<X extends A<X>> = X Function();
+typedef FconCyclicBound<X extends A<X>> = Function(X);
+typedef FinvCyclicBound<X extends A<X>> = X Function(X);
+typedef FcovCyclicCoBound<X extends Function(X)> = X Function();
+typedef FconCyclicCoBound<X extends Function(X)> = Function(X);
+typedef FinvCyclicCoBound<X extends Function(X)> = X Function(X);
+
+class B<X> {}
+
+void testTopLevel(
+ Fcov source1,
+ Fcon source2,
+ Finv source3,
+ FcovBound source4,
+ FconBound source5,
+ FinvBound source6,
+ FcovCyclicBound source7,
+ FconCyclicBound source8,
+ FcovCyclicCoBound source10,
+ FconCyclicCoBound source11,
+ FinvCyclicCoBound source12) {}
+void testNested(
+ B<Fcov> source1,
+ B<Fcon> source2,
+ B<Finv> source3,
+ B<FcovBound> source4,
+ B<FconBound> source5,
+ B<FinvBound> source6,
+ B<FcovCyclicBound> source7,
+ B<FconCyclicBound> source8,
+ B<FcovCyclicCoBound> source10,
+ B<FconCyclicCoBound> source11,
+ B<FinvCyclicCoBound> source12) {}
+main() {}
diff --git a/pkg/front_end/testcases/general/top_level_variance2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/top_level_variance2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..688697a
--- /dev/null
+++ b/pkg/front_end/testcases/general/top_level_variance2.dart.textual_outline_modelled.expect
@@ -0,0 +1,44 @@
+F<X> toF<X>(X x) => throw '';
+
+class A<X> {}
+
+class B<X> {}
+
+main() {}
+typedef F<X> = void Function<Y extends X>();
+typedef Fcon<X> = Function(X);
+typedef FconBound<X extends num> = Function(X);
+typedef FconCyclicBound<X extends A<X>> = Function(X);
+typedef FconCyclicCoBound<X extends Function(X)> = Function(X);
+typedef Fcov<X> = X Function();
+typedef FcovBound<X extends num> = X Function();
+typedef FcovCyclicBound<X extends A<X>> = X Function();
+typedef FcovCyclicCoBound<X extends Function(X)> = X Function();
+typedef Finv<X> = X Function(X);
+typedef FinvBound<X extends num> = X Function(X);
+typedef FinvCyclicBound<X extends A<X>> = X Function(X);
+typedef FinvCyclicCoBound<X extends Function(X)> = X Function(X);
+void testNested(
+ B<Fcov> source1,
+ B<Fcon> source2,
+ B<Finv> source3,
+ B<FcovBound> source4,
+ B<FconBound> source5,
+ B<FinvBound> source6,
+ B<FcovCyclicBound> source7,
+ B<FconCyclicBound> source8,
+ B<FcovCyclicCoBound> source10,
+ B<FconCyclicCoBound> source11,
+ B<FinvCyclicCoBound> source12) {}
+void testTopLevel(
+ Fcov source1,
+ Fcon source2,
+ Finv source3,
+ FcovBound source4,
+ FconBound source5,
+ FinvBound source6,
+ FcovCyclicBound source7,
+ FconCyclicBound source8,
+ FcovCyclicCoBound source10,
+ FconCyclicCoBound source11,
+ FinvCyclicCoBound source12) {}
diff --git a/pkg/front_end/testcases/general/top_level_variance2.dart.weak.expect b/pkg/front_end/testcases/general/top_level_variance2.dart.weak.expect
new file mode 100644
index 0000000..85c9d46
--- /dev/null
+++ b/pkg/front_end/testcases/general/top_level_variance2.dart.weak.expect
@@ -0,0 +1,80 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef F<invariant X extends core::Object? = dynamic> = <Y extends X% = dynamic>() → void;
+typedef Fcov<X extends core::Object? = dynamic> = () → X%;
+typedef Fcon<contravariant X extends core::Object? = dynamic> = (X%) → dynamic;
+typedef Finv<invariant X extends core::Object? = dynamic> = (X%) → X%;
+typedef FcovBound<X extends core::num> = () → X;
+typedef FconBound<contravariant X extends core::num> = (X) → dynamic;
+typedef FinvBound<invariant X extends core::num> = (X) → X;
+typedef FcovCyclicBound<X extends self::A<X> = self::A<dynamic>> = () → X;
+typedef FconCyclicBound<contravariant X extends self::A<X> = self::A<Never>> = (X) → dynamic;
+typedef FinvCyclicBound<invariant X extends self::A<X> = self::A<dynamic>> = (X) → X;
+typedef FcovCyclicCoBound<X extends (X) → dynamic = (Never) → dynamic> = () → X;
+typedef FconCyclicCoBound<contravariant X extends (X) → dynamic = (dynamic) → dynamic> = (X) → dynamic;
+typedef FinvCyclicCoBound<invariant X extends (X) → dynamic = (dynamic) → dynamic> = (X) → X;
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
+ : super core::Object::•()
+ ;
+}
+class B<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%>
+ : super core::Object::•()
+ ;
+}
+static method toF<X extends core::Object? = dynamic>(self::toF::X% x) → <Y extends self::toF::X% = dynamic>() → void
+ return throw "";
+static method testTopLevel(() → dynamic source1, (dynamic) → dynamic source2, (dynamic) → dynamic source3, () → core::num source4, (core::num) → dynamic source5, (core::num) → core::num source6, () → self::A<dynamic> source7, (self::A<Never>) → dynamic source8, () → (Never) → dynamic source10, ((dynamic) → dynamic) → dynamic source11, ((dynamic) → dynamic) → (dynamic) → dynamic source12) → void {
+ <Y extends () → dynamic = dynamic>() → void fsource1 = self::toF<() → dynamic>(source1);
+ <Y extends () → dynamic = dynamic>() → void target1 = fsource1;
+ <Y extends (dynamic) → dynamic = dynamic>() → void fsource2 = self::toF<(dynamic) → dynamic>(source2);
+ <Y extends (dynamic) → dynamic = dynamic>() → void target2 = fsource2;
+ <Y extends (dynamic) → dynamic = dynamic>() → void fsource3 = self::toF<(dynamic) → dynamic>(source3);
+ <Y extends (dynamic) → dynamic = dynamic>() → void target3 = fsource3;
+ <Y extends () → core::num = dynamic>() → void fsource4 = self::toF<() → core::num>(source4);
+ <Y extends () → core::num = dynamic>() → void target4 = fsource4;
+ <Y extends (core::num) → dynamic = dynamic>() → void fsource5 = self::toF<(core::num) → dynamic>(source5);
+ <Y extends (core::num) → dynamic = dynamic>() → void target5 = fsource5;
+ <Y extends (core::num) → core::num = dynamic>() → void fsource6 = self::toF<(core::num) → core::num>(source6);
+ <Y extends (core::num) → core::num = dynamic>() → void target6 = fsource6;
+ <Y extends () → self::A<dynamic> = dynamic>() → void fsource7 = self::toF<() → self::A<dynamic>>(source7);
+ <Y extends () → self::A<dynamic> = dynamic>() → void target7 = fsource7;
+ <Y extends (self::A<Never>) → dynamic = dynamic>() → void fsource8 = self::toF<(self::A<Never>) → dynamic>(source8);
+ <Y extends (self::A<Never>) → dynamic = dynamic>() → void target8 = fsource8;
+ (self::A<dynamic>) → self::A<dynamic> source9;
+ <Y extends () → (Never) → dynamic = dynamic>() → void fsource10 = self::toF<() → (Never) → dynamic>(source10);
+ <Y extends () → (Never) → dynamic = dynamic>() → void target10 = fsource10;
+ <Y extends ((dynamic) → dynamic) → dynamic = dynamic>() → void fsource11 = self::toF<((dynamic) → dynamic) → dynamic>(source11);
+ <Y extends ((dynamic) → dynamic) → dynamic = dynamic>() → void target11 = fsource11;
+ <Y extends ((dynamic) → dynamic) → (dynamic) → dynamic = dynamic>() → void fsource12 = self::toF<((dynamic) → dynamic) → (dynamic) → dynamic>(source12);
+ <Y extends ((dynamic) → dynamic) → (dynamic) → dynamic = dynamic>() → void target12 = fsource12;
+}
+static method testNested(self::B<() → dynamic> source1, self::B<(dynamic) → dynamic> source2, self::B<(dynamic) → dynamic> source3, self::B<() → core::num> source4, self::B<(core::num) → dynamic> source5, self::B<(core::num) → core::num> source6, self::B<() → self::A<dynamic>> source7, self::B<(self::A<Never>) → dynamic> source8, self::B<() → (Never) → dynamic> source10, self::B<((dynamic) → dynamic) → dynamic> source11, self::B<((dynamic) → dynamic) → (dynamic) → dynamic> source12) → void {
+ <Y extends self::B<() → dynamic> = dynamic>() → void fsource1 = self::toF<self::B<() → dynamic>>(source1);
+ <Y extends self::B<() → dynamic> = dynamic>() → void target1 = fsource1;
+ <Y extends self::B<(dynamic) → dynamic> = dynamic>() → void fsource2 = self::toF<self::B<(dynamic) → dynamic>>(source2);
+ <Y extends self::B<(dynamic) → dynamic> = dynamic>() → void target2 = fsource2;
+ <Y extends self::B<(dynamic) → dynamic> = dynamic>() → void fsource3 = self::toF<self::B<(dynamic) → dynamic>>(source3);
+ <Y extends self::B<(dynamic) → dynamic> = dynamic>() → void target3 = fsource3;
+ <Y extends self::B<() → core::num> = dynamic>() → void fsource4 = self::toF<self::B<() → core::num>>(source4);
+ <Y extends self::B<() → core::num> = dynamic>() → void target4 = fsource4;
+ <Y extends self::B<(core::num) → dynamic> = dynamic>() → void fsource5 = self::toF<self::B<(core::num) → dynamic>>(source5);
+ <Y extends self::B<(core::num) → dynamic> = dynamic>() → void target5 = fsource5;
+ <Y extends self::B<(core::num) → core::num> = dynamic>() → void fsource6 = self::toF<self::B<(core::num) → core::num>>(source6);
+ <Y extends self::B<(core::num) → core::num> = dynamic>() → void target6 = fsource6;
+ <Y extends self::B<() → self::A<dynamic>> = dynamic>() → void fsource7 = self::toF<self::B<() → self::A<dynamic>>>(source7);
+ <Y extends self::B<() → self::A<dynamic>> = dynamic>() → void target7 = fsource7;
+ <Y extends self::B<(self::A<Never>) → dynamic> = dynamic>() → void fsource8 = self::toF<self::B<(self::A<Never>) → dynamic>>(source8);
+ <Y extends self::B<(self::A<Never>) → dynamic> = dynamic>() → void target8 = fsource8;
+ self::B<(self::A<dynamic>) → self::A<dynamic>> source9;
+ <Y extends self::B<() → (Never) → dynamic> = dynamic>() → void fsource10 = self::toF<self::B<() → (Never) → dynamic>>(source10);
+ <Y extends self::B<() → (Never) → dynamic> = dynamic>() → void target10 = fsource10;
+ <Y extends self::B<((dynamic) → dynamic) → dynamic> = dynamic>() → void fsource11 = self::toF<self::B<((dynamic) → dynamic) → dynamic>>(source11);
+ <Y extends self::B<((dynamic) → dynamic) → dynamic> = dynamic>() → void target11 = fsource11;
+ <Y extends self::B<((dynamic) → dynamic) → (dynamic) → dynamic> = dynamic>() → void fsource12 = self::toF<self::B<((dynamic) → dynamic) → (dynamic) → dynamic>>(source12);
+ <Y extends self::B<((dynamic) → dynamic) → (dynamic) → dynamic> = dynamic>() → void target12 = fsource12;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/top_level_variance2.dart.weak.modular.expect b/pkg/front_end/testcases/general/top_level_variance2.dart.weak.modular.expect
new file mode 100644
index 0000000..85c9d46
--- /dev/null
+++ b/pkg/front_end/testcases/general/top_level_variance2.dart.weak.modular.expect
@@ -0,0 +1,80 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef F<invariant X extends core::Object? = dynamic> = <Y extends X% = dynamic>() → void;
+typedef Fcov<X extends core::Object? = dynamic> = () → X%;
+typedef Fcon<contravariant X extends core::Object? = dynamic> = (X%) → dynamic;
+typedef Finv<invariant X extends core::Object? = dynamic> = (X%) → X%;
+typedef FcovBound<X extends core::num> = () → X;
+typedef FconBound<contravariant X extends core::num> = (X) → dynamic;
+typedef FinvBound<invariant X extends core::num> = (X) → X;
+typedef FcovCyclicBound<X extends self::A<X> = self::A<dynamic>> = () → X;
+typedef FconCyclicBound<contravariant X extends self::A<X> = self::A<Never>> = (X) → dynamic;
+typedef FinvCyclicBound<invariant X extends self::A<X> = self::A<dynamic>> = (X) → X;
+typedef FcovCyclicCoBound<X extends (X) → dynamic = (Never) → dynamic> = () → X;
+typedef FconCyclicCoBound<contravariant X extends (X) → dynamic = (dynamic) → dynamic> = (X) → dynamic;
+typedef FinvCyclicCoBound<invariant X extends (X) → dynamic = (dynamic) → dynamic> = (X) → X;
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
+ : super core::Object::•()
+ ;
+}
+class B<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%>
+ : super core::Object::•()
+ ;
+}
+static method toF<X extends core::Object? = dynamic>(self::toF::X% x) → <Y extends self::toF::X% = dynamic>() → void
+ return throw "";
+static method testTopLevel(() → dynamic source1, (dynamic) → dynamic source2, (dynamic) → dynamic source3, () → core::num source4, (core::num) → dynamic source5, (core::num) → core::num source6, () → self::A<dynamic> source7, (self::A<Never>) → dynamic source8, () → (Never) → dynamic source10, ((dynamic) → dynamic) → dynamic source11, ((dynamic) → dynamic) → (dynamic) → dynamic source12) → void {
+ <Y extends () → dynamic = dynamic>() → void fsource1 = self::toF<() → dynamic>(source1);
+ <Y extends () → dynamic = dynamic>() → void target1 = fsource1;
+ <Y extends (dynamic) → dynamic = dynamic>() → void fsource2 = self::toF<(dynamic) → dynamic>(source2);
+ <Y extends (dynamic) → dynamic = dynamic>() → void target2 = fsource2;
+ <Y extends (dynamic) → dynamic = dynamic>() → void fsource3 = self::toF<(dynamic) → dynamic>(source3);
+ <Y extends (dynamic) → dynamic = dynamic>() → void target3 = fsource3;
+ <Y extends () → core::num = dynamic>() → void fsource4 = self::toF<() → core::num>(source4);
+ <Y extends () → core::num = dynamic>() → void target4 = fsource4;
+ <Y extends (core::num) → dynamic = dynamic>() → void fsource5 = self::toF<(core::num) → dynamic>(source5);
+ <Y extends (core::num) → dynamic = dynamic>() → void target5 = fsource5;
+ <Y extends (core::num) → core::num = dynamic>() → void fsource6 = self::toF<(core::num) → core::num>(source6);
+ <Y extends (core::num) → core::num = dynamic>() → void target6 = fsource6;
+ <Y extends () → self::A<dynamic> = dynamic>() → void fsource7 = self::toF<() → self::A<dynamic>>(source7);
+ <Y extends () → self::A<dynamic> = dynamic>() → void target7 = fsource7;
+ <Y extends (self::A<Never>) → dynamic = dynamic>() → void fsource8 = self::toF<(self::A<Never>) → dynamic>(source8);
+ <Y extends (self::A<Never>) → dynamic = dynamic>() → void target8 = fsource8;
+ (self::A<dynamic>) → self::A<dynamic> source9;
+ <Y extends () → (Never) → dynamic = dynamic>() → void fsource10 = self::toF<() → (Never) → dynamic>(source10);
+ <Y extends () → (Never) → dynamic = dynamic>() → void target10 = fsource10;
+ <Y extends ((dynamic) → dynamic) → dynamic = dynamic>() → void fsource11 = self::toF<((dynamic) → dynamic) → dynamic>(source11);
+ <Y extends ((dynamic) → dynamic) → dynamic = dynamic>() → void target11 = fsource11;
+ <Y extends ((dynamic) → dynamic) → (dynamic) → dynamic = dynamic>() → void fsource12 = self::toF<((dynamic) → dynamic) → (dynamic) → dynamic>(source12);
+ <Y extends ((dynamic) → dynamic) → (dynamic) → dynamic = dynamic>() → void target12 = fsource12;
+}
+static method testNested(self::B<() → dynamic> source1, self::B<(dynamic) → dynamic> source2, self::B<(dynamic) → dynamic> source3, self::B<() → core::num> source4, self::B<(core::num) → dynamic> source5, self::B<(core::num) → core::num> source6, self::B<() → self::A<dynamic>> source7, self::B<(self::A<Never>) → dynamic> source8, self::B<() → (Never) → dynamic> source10, self::B<((dynamic) → dynamic) → dynamic> source11, self::B<((dynamic) → dynamic) → (dynamic) → dynamic> source12) → void {
+ <Y extends self::B<() → dynamic> = dynamic>() → void fsource1 = self::toF<self::B<() → dynamic>>(source1);
+ <Y extends self::B<() → dynamic> = dynamic>() → void target1 = fsource1;
+ <Y extends self::B<(dynamic) → dynamic> = dynamic>() → void fsource2 = self::toF<self::B<(dynamic) → dynamic>>(source2);
+ <Y extends self::B<(dynamic) → dynamic> = dynamic>() → void target2 = fsource2;
+ <Y extends self::B<(dynamic) → dynamic> = dynamic>() → void fsource3 = self::toF<self::B<(dynamic) → dynamic>>(source3);
+ <Y extends self::B<(dynamic) → dynamic> = dynamic>() → void target3 = fsource3;
+ <Y extends self::B<() → core::num> = dynamic>() → void fsource4 = self::toF<self::B<() → core::num>>(source4);
+ <Y extends self::B<() → core::num> = dynamic>() → void target4 = fsource4;
+ <Y extends self::B<(core::num) → dynamic> = dynamic>() → void fsource5 = self::toF<self::B<(core::num) → dynamic>>(source5);
+ <Y extends self::B<(core::num) → dynamic> = dynamic>() → void target5 = fsource5;
+ <Y extends self::B<(core::num) → core::num> = dynamic>() → void fsource6 = self::toF<self::B<(core::num) → core::num>>(source6);
+ <Y extends self::B<(core::num) → core::num> = dynamic>() → void target6 = fsource6;
+ <Y extends self::B<() → self::A<dynamic>> = dynamic>() → void fsource7 = self::toF<self::B<() → self::A<dynamic>>>(source7);
+ <Y extends self::B<() → self::A<dynamic>> = dynamic>() → void target7 = fsource7;
+ <Y extends self::B<(self::A<Never>) → dynamic> = dynamic>() → void fsource8 = self::toF<self::B<(self::A<Never>) → dynamic>>(source8);
+ <Y extends self::B<(self::A<Never>) → dynamic> = dynamic>() → void target8 = fsource8;
+ self::B<(self::A<dynamic>) → self::A<dynamic>> source9;
+ <Y extends self::B<() → (Never) → dynamic> = dynamic>() → void fsource10 = self::toF<self::B<() → (Never) → dynamic>>(source10);
+ <Y extends self::B<() → (Never) → dynamic> = dynamic>() → void target10 = fsource10;
+ <Y extends self::B<((dynamic) → dynamic) → dynamic> = dynamic>() → void fsource11 = self::toF<self::B<((dynamic) → dynamic) → dynamic>>(source11);
+ <Y extends self::B<((dynamic) → dynamic) → dynamic> = dynamic>() → void target11 = fsource11;
+ <Y extends self::B<((dynamic) → dynamic) → (dynamic) → dynamic> = dynamic>() → void fsource12 = self::toF<self::B<((dynamic) → dynamic) → (dynamic) → dynamic>>(source12);
+ <Y extends self::B<((dynamic) → dynamic) → (dynamic) → dynamic> = dynamic>() → void target12 = fsource12;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/top_level_variance2.dart.weak.outline.expect b/pkg/front_end/testcases/general/top_level_variance2.dart.weak.outline.expect
new file mode 100644
index 0000000..9cacf36
--- /dev/null
+++ b/pkg/front_end/testcases/general/top_level_variance2.dart.weak.outline.expect
@@ -0,0 +1,33 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef F<invariant X extends core::Object? = dynamic> = <Y extends X% = dynamic>() → void;
+typedef Fcov<X extends core::Object? = dynamic> = () → X%;
+typedef Fcon<contravariant X extends core::Object? = dynamic> = (X%) → dynamic;
+typedef Finv<invariant X extends core::Object? = dynamic> = (X%) → X%;
+typedef FcovBound<X extends core::num> = () → X;
+typedef FconBound<contravariant X extends core::num> = (X) → dynamic;
+typedef FinvBound<invariant X extends core::num> = (X) → X;
+typedef FcovCyclicBound<X extends self::A<X> = self::A<dynamic>> = () → X;
+typedef FconCyclicBound<contravariant X extends self::A<X> = self::A<Never>> = (X) → dynamic;
+typedef FinvCyclicBound<invariant X extends self::A<X> = self::A<dynamic>> = (X) → X;
+typedef FcovCyclicCoBound<X extends (X) → dynamic = (Never) → dynamic> = () → X;
+typedef FconCyclicCoBound<contravariant X extends (X) → dynamic = (dynamic) → dynamic> = (X) → dynamic;
+typedef FinvCyclicCoBound<invariant X extends (X) → dynamic = (dynamic) → dynamic> = (X) → X;
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
+ ;
+}
+class B<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%>
+ ;
+}
+static method toF<X extends core::Object? = dynamic>(self::toF::X% x) → <Y extends self::toF::X% = dynamic>() → void
+ ;
+static method testTopLevel(() → dynamic source1, (dynamic) → dynamic source2, (dynamic) → dynamic source3, () → core::num source4, (core::num) → dynamic source5, (core::num) → core::num source6, () → self::A<dynamic> source7, (self::A<Never>) → dynamic source8, () → (Never) → dynamic source10, ((dynamic) → dynamic) → dynamic source11, ((dynamic) → dynamic) → (dynamic) → dynamic source12) → void
+ ;
+static method testNested(self::B<() → dynamic> source1, self::B<(dynamic) → dynamic> source2, self::B<(dynamic) → dynamic> source3, self::B<() → core::num> source4, self::B<(core::num) → dynamic> source5, self::B<(core::num) → core::num> source6, self::B<() → self::A<dynamic>> source7, self::B<(self::A<Never>) → dynamic> source8, self::B<() → (Never) → dynamic> source10, self::B<((dynamic) → dynamic) → dynamic> source11, self::B<((dynamic) → dynamic) → (dynamic) → dynamic> source12) → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/general/top_level_variance2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/top_level_variance2.dart.weak.transformed.expect
new file mode 100644
index 0000000..85c9d46
--- /dev/null
+++ b/pkg/front_end/testcases/general/top_level_variance2.dart.weak.transformed.expect
@@ -0,0 +1,80 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef F<invariant X extends core::Object? = dynamic> = <Y extends X% = dynamic>() → void;
+typedef Fcov<X extends core::Object? = dynamic> = () → X%;
+typedef Fcon<contravariant X extends core::Object? = dynamic> = (X%) → dynamic;
+typedef Finv<invariant X extends core::Object? = dynamic> = (X%) → X%;
+typedef FcovBound<X extends core::num> = () → X;
+typedef FconBound<contravariant X extends core::num> = (X) → dynamic;
+typedef FinvBound<invariant X extends core::num> = (X) → X;
+typedef FcovCyclicBound<X extends self::A<X> = self::A<dynamic>> = () → X;
+typedef FconCyclicBound<contravariant X extends self::A<X> = self::A<Never>> = (X) → dynamic;
+typedef FinvCyclicBound<invariant X extends self::A<X> = self::A<dynamic>> = (X) → X;
+typedef FcovCyclicCoBound<X extends (X) → dynamic = (Never) → dynamic> = () → X;
+typedef FconCyclicCoBound<contravariant X extends (X) → dynamic = (dynamic) → dynamic> = (X) → dynamic;
+typedef FinvCyclicCoBound<invariant X extends (X) → dynamic = (dynamic) → dynamic> = (X) → X;
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
+ : super core::Object::•()
+ ;
+}
+class B<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%>
+ : super core::Object::•()
+ ;
+}
+static method toF<X extends core::Object? = dynamic>(self::toF::X% x) → <Y extends self::toF::X% = dynamic>() → void
+ return throw "";
+static method testTopLevel(() → dynamic source1, (dynamic) → dynamic source2, (dynamic) → dynamic source3, () → core::num source4, (core::num) → dynamic source5, (core::num) → core::num source6, () → self::A<dynamic> source7, (self::A<Never>) → dynamic source8, () → (Never) → dynamic source10, ((dynamic) → dynamic) → dynamic source11, ((dynamic) → dynamic) → (dynamic) → dynamic source12) → void {
+ <Y extends () → dynamic = dynamic>() → void fsource1 = self::toF<() → dynamic>(source1);
+ <Y extends () → dynamic = dynamic>() → void target1 = fsource1;
+ <Y extends (dynamic) → dynamic = dynamic>() → void fsource2 = self::toF<(dynamic) → dynamic>(source2);
+ <Y extends (dynamic) → dynamic = dynamic>() → void target2 = fsource2;
+ <Y extends (dynamic) → dynamic = dynamic>() → void fsource3 = self::toF<(dynamic) → dynamic>(source3);
+ <Y extends (dynamic) → dynamic = dynamic>() → void target3 = fsource3;
+ <Y extends () → core::num = dynamic>() → void fsource4 = self::toF<() → core::num>(source4);
+ <Y extends () → core::num = dynamic>() → void target4 = fsource4;
+ <Y extends (core::num) → dynamic = dynamic>() → void fsource5 = self::toF<(core::num) → dynamic>(source5);
+ <Y extends (core::num) → dynamic = dynamic>() → void target5 = fsource5;
+ <Y extends (core::num) → core::num = dynamic>() → void fsource6 = self::toF<(core::num) → core::num>(source6);
+ <Y extends (core::num) → core::num = dynamic>() → void target6 = fsource6;
+ <Y extends () → self::A<dynamic> = dynamic>() → void fsource7 = self::toF<() → self::A<dynamic>>(source7);
+ <Y extends () → self::A<dynamic> = dynamic>() → void target7 = fsource7;
+ <Y extends (self::A<Never>) → dynamic = dynamic>() → void fsource8 = self::toF<(self::A<Never>) → dynamic>(source8);
+ <Y extends (self::A<Never>) → dynamic = dynamic>() → void target8 = fsource8;
+ (self::A<dynamic>) → self::A<dynamic> source9;
+ <Y extends () → (Never) → dynamic = dynamic>() → void fsource10 = self::toF<() → (Never) → dynamic>(source10);
+ <Y extends () → (Never) → dynamic = dynamic>() → void target10 = fsource10;
+ <Y extends ((dynamic) → dynamic) → dynamic = dynamic>() → void fsource11 = self::toF<((dynamic) → dynamic) → dynamic>(source11);
+ <Y extends ((dynamic) → dynamic) → dynamic = dynamic>() → void target11 = fsource11;
+ <Y extends ((dynamic) → dynamic) → (dynamic) → dynamic = dynamic>() → void fsource12 = self::toF<((dynamic) → dynamic) → (dynamic) → dynamic>(source12);
+ <Y extends ((dynamic) → dynamic) → (dynamic) → dynamic = dynamic>() → void target12 = fsource12;
+}
+static method testNested(self::B<() → dynamic> source1, self::B<(dynamic) → dynamic> source2, self::B<(dynamic) → dynamic> source3, self::B<() → core::num> source4, self::B<(core::num) → dynamic> source5, self::B<(core::num) → core::num> source6, self::B<() → self::A<dynamic>> source7, self::B<(self::A<Never>) → dynamic> source8, self::B<() → (Never) → dynamic> source10, self::B<((dynamic) → dynamic) → dynamic> source11, self::B<((dynamic) → dynamic) → (dynamic) → dynamic> source12) → void {
+ <Y extends self::B<() → dynamic> = dynamic>() → void fsource1 = self::toF<self::B<() → dynamic>>(source1);
+ <Y extends self::B<() → dynamic> = dynamic>() → void target1 = fsource1;
+ <Y extends self::B<(dynamic) → dynamic> = dynamic>() → void fsource2 = self::toF<self::B<(dynamic) → dynamic>>(source2);
+ <Y extends self::B<(dynamic) → dynamic> = dynamic>() → void target2 = fsource2;
+ <Y extends self::B<(dynamic) → dynamic> = dynamic>() → void fsource3 = self::toF<self::B<(dynamic) → dynamic>>(source3);
+ <Y extends self::B<(dynamic) → dynamic> = dynamic>() → void target3 = fsource3;
+ <Y extends self::B<() → core::num> = dynamic>() → void fsource4 = self::toF<self::B<() → core::num>>(source4);
+ <Y extends self::B<() → core::num> = dynamic>() → void target4 = fsource4;
+ <Y extends self::B<(core::num) → dynamic> = dynamic>() → void fsource5 = self::toF<self::B<(core::num) → dynamic>>(source5);
+ <Y extends self::B<(core::num) → dynamic> = dynamic>() → void target5 = fsource5;
+ <Y extends self::B<(core::num) → core::num> = dynamic>() → void fsource6 = self::toF<self::B<(core::num) → core::num>>(source6);
+ <Y extends self::B<(core::num) → core::num> = dynamic>() → void target6 = fsource6;
+ <Y extends self::B<() → self::A<dynamic>> = dynamic>() → void fsource7 = self::toF<self::B<() → self::A<dynamic>>>(source7);
+ <Y extends self::B<() → self::A<dynamic>> = dynamic>() → void target7 = fsource7;
+ <Y extends self::B<(self::A<Never>) → dynamic> = dynamic>() → void fsource8 = self::toF<self::B<(self::A<Never>) → dynamic>>(source8);
+ <Y extends self::B<(self::A<Never>) → dynamic> = dynamic>() → void target8 = fsource8;
+ self::B<(self::A<dynamic>) → self::A<dynamic>> source9;
+ <Y extends self::B<() → (Never) → dynamic> = dynamic>() → void fsource10 = self::toF<self::B<() → (Never) → dynamic>>(source10);
+ <Y extends self::B<() → (Never) → dynamic> = dynamic>() → void target10 = fsource10;
+ <Y extends self::B<((dynamic) → dynamic) → dynamic> = dynamic>() → void fsource11 = self::toF<self::B<((dynamic) → dynamic) → dynamic>>(source11);
+ <Y extends self::B<((dynamic) → dynamic) → dynamic> = dynamic>() → void target11 = fsource11;
+ <Y extends self::B<((dynamic) → dynamic) → (dynamic) → dynamic> = dynamic>() → void fsource12 = self::toF<self::B<((dynamic) → dynamic) → (dynamic) → dynamic>>(source12);
+ <Y extends self::B<((dynamic) → dynamic) → (dynamic) → dynamic> = dynamic>() → void target12 = fsource12;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/top_level_variance_test.dart b/pkg/front_end/testcases/general/top_level_variance_test.dart
index 69a8f4d..c08e99b 100644
--- a/pkg/front_end/testcases/general/top_level_variance_test.dart
+++ b/pkg/front_end/testcases/general/top_level_variance_test.dart
@@ -1,7 +1,9 @@
// 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.
+
// @dart=2.9
+
// Testing that instantiate-to-bound and super-bounded types take the
// variance of formal type parameters into account when a type alias is
// used as a raw type.
@@ -160,7 +162,4 @@
F<B<FinvCyclicCoBound<Function(dynamic)>>> target12 = fsource12;
}
-main() {
- testTopLevel();
- testNested();
-}
+main() {}
diff --git a/pkg/front_end/testcases/general/top_level_variance_test.dart.weak.expect b/pkg/front_end/testcases/general/top_level_variance_test.dart.weak.expect
index c61d2e4..c3f3efa 100644
--- a/pkg/front_end/testcases/general/top_level_variance_test.dart.weak.expect
+++ b/pkg/front_end/testcases/general/top_level_variance_test.dart.weak.expect
@@ -119,7 +119,4 @@
<Y extends self::B<((dynamic) →* dynamic) →* (dynamic) →* dynamic>* = dynamic>() →* void fsource12 = self::toF<self::B<((dynamic) →* dynamic) →* (dynamic) →* dynamic>*>(source12);
<Y extends self::B<((dynamic) →* dynamic) →* (dynamic) →* dynamic>* = dynamic>() →* void target12 = fsource12;
}
-static method main() → dynamic {
- self::testTopLevel();
- self::testNested();
-}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/top_level_variance_test.dart.weak.modular.expect b/pkg/front_end/testcases/general/top_level_variance_test.dart.weak.modular.expect
index c61d2e4..c3f3efa 100644
--- a/pkg/front_end/testcases/general/top_level_variance_test.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/top_level_variance_test.dart.weak.modular.expect
@@ -119,7 +119,4 @@
<Y extends self::B<((dynamic) →* dynamic) →* (dynamic) →* dynamic>* = dynamic>() →* void fsource12 = self::toF<self::B<((dynamic) →* dynamic) →* (dynamic) →* dynamic>*>(source12);
<Y extends self::B<((dynamic) →* dynamic) →* (dynamic) →* dynamic>* = dynamic>() →* void target12 = fsource12;
}
-static method main() → dynamic {
- self::testTopLevel();
- self::testNested();
-}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/top_level_variance_test.dart.weak.transformed.expect b/pkg/front_end/testcases/general/top_level_variance_test.dart.weak.transformed.expect
index c61d2e4..c3f3efa 100644
--- a/pkg/front_end/testcases/general/top_level_variance_test.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/top_level_variance_test.dart.weak.transformed.expect
@@ -119,7 +119,4 @@
<Y extends self::B<((dynamic) →* dynamic) →* (dynamic) →* dynamic>* = dynamic>() →* void fsource12 = self::toF<self::B<((dynamic) →* dynamic) →* (dynamic) →* dynamic>*>(source12);
<Y extends self::B<((dynamic) →* dynamic) →* (dynamic) →* dynamic>* = dynamic>() →* void target12 = fsource12;
}
-static method main() → dynamic {
- self::testTopLevel();
- self::testNested();
-}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/type_literal_as_metadata.dart b/pkg/front_end/testcases/general/type_literal_as_metadata.dart
index e1a7a9f..1eafeef 100644
--- a/pkg/front_end/testcases/general/type_literal_as_metadata.dart
+++ b/pkg/front_end/testcases/general/type_literal_as_metadata.dart
@@ -1,7 +1,7 @@
// 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.
-// @dart=2.9
+
class A {
const A();
}
diff --git a/pkg/front_end/testcases/general/type_literal_as_metadata.dart.textual_outline.expect b/pkg/front_end/testcases/general/type_literal_as_metadata.dart.textual_outline.expect
index 0c2f948..54f0474 100644
--- a/pkg/front_end/testcases/general/type_literal_as_metadata.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/type_literal_as_metadata.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A {
const A();
}
diff --git a/pkg/front_end/testcases/general/type_literal_as_metadata.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/type_literal_as_metadata.dart.textual_outline_modelled.expect
index 0c2f948..54f0474 100644
--- a/pkg/front_end/testcases/general/type_literal_as_metadata.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/type_literal_as_metadata.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A {
const A();
}
diff --git a/pkg/front_end/testcases/general/type_literal_as_metadata.dart.weak.expect b/pkg/front_end/testcases/general/type_literal_as_metadata.dart.weak.expect
index 6039ee4..efd2822 100644
--- a/pkg/front_end/testcases/general/type_literal_as_metadata.dart.weak.expect
+++ b/pkg/front_end/testcases/general/type_literal_as_metadata.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,36 +10,16 @@
import "dart:core" as core;
class A extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::A*
+ const constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
@invalid-expression "pkg/front_end/testcases/general/type_literal_as_metadata.dart:9:2: Error: This can't be used as an annotation; an annotation should be a reference to a compile-time constant variable, or a call to a constant constructor.
@A
^"
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/type_literal_as_metadata.dart.weak.modular.expect b/pkg/front_end/testcases/general/type_literal_as_metadata.dart.weak.modular.expect
index 6039ee4..efd2822 100644
--- a/pkg/front_end/testcases/general/type_literal_as_metadata.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/type_literal_as_metadata.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,36 +10,16 @@
import "dart:core" as core;
class A extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::A*
+ const constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
@invalid-expression "pkg/front_end/testcases/general/type_literal_as_metadata.dart:9:2: Error: This can't be used as an annotation; an annotation should be a reference to a compile-time constant variable, or a call to a constant constructor.
@A
^"
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/type_literal_as_metadata.dart.weak.outline.expect b/pkg/front_end/testcases/general/type_literal_as_metadata.dart.weak.outline.expect
index 49f26e6..da077fb 100644
--- a/pkg/front_end/testcases/general/type_literal_as_metadata.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/type_literal_as_metadata.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,36 +10,16 @@
import "dart:core" as core;
class A extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::A*
+ const constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
@invalid-expression "pkg/front_end/testcases/general/type_literal_as_metadata.dart:9:2: Error: This can't be used as an annotation; an annotation should be a reference to a compile-time constant variable, or a call to a constant constructor.
@A
- ^" in self::A*
+ ^" in self::A
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/type_literal_as_metadata.dart.weak.transformed.expect b/pkg/front_end/testcases/general/type_literal_as_metadata.dart.weak.transformed.expect
index 6039ee4..efd2822 100644
--- a/pkg/front_end/testcases/general/type_literal_as_metadata.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/type_literal_as_metadata.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,36 +10,16 @@
import "dart:core" as core;
class A extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::A*
+ const constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
@invalid-expression "pkg/front_end/testcases/general/type_literal_as_metadata.dart:9:2: Error: This can't be used as an annotation; an annotation should be a reference to a compile-time constant variable, or a call to a constant constructor.
@A
^"
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/type_of_null.dart b/pkg/front_end/testcases/general/type_of_null.dart
index 752287b..8a89e24 100644
--- a/pkg/front_end/testcases/general/type_of_null.dart
+++ b/pkg/front_end/testcases/general/type_of_null.dart
@@ -1,31 +1,31 @@
// 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
-T map<T>(T Function() f1, T Function() f2) {}
+T map<T>(T Function() f1, T Function() f2) => throw '';
id<T>(T t) => t;
Null foo() => null;
-main() {
- /*@ typeArgs=Null */ map(/*@ returnType=Null */ () {},
- /*@ returnType=Null */ () => throw "hello");
- /*@ typeArgs=Null */ map(/*@ returnType=Null */ () => throw "hello",
- /*@ returnType=Null */ () {});
+test() {
+ /*@ typeArgs=Null */ map(
+ /*@ returnType=Null */ () {}, /*@returnType=Never*/ () => throw "hello");
+ /*@ typeArgs=Null */ map(
+ /*@returnType=Never*/ () => throw "hello", /*@ returnType=Null */ () {});
Null Function() f = /*@ returnType=Null */ () {};
- /*@ typeArgs=Null */ map(
- foo, /*@ returnType=Null */ () => throw "hello");
- /*@ typeArgs=Null */ map(
- /*@ returnType=Null */ () => throw "hello", foo);
+ /*@ typeArgs=Null */ map(foo, /*@returnType=Never*/ () => throw "hello");
+ /*@ typeArgs=Null */ map(/*@returnType=Never*/ () => throw "hello", foo);
/*@ typeArgs=Null */ map(/*@ returnType=Null */ () {
return null;
- }, /*@ returnType=Null */ () => throw "hello");
+ }, /*@returnType=Never*/ () => throw "hello");
- /*@ typeArgs=Null */ map(/*@ returnType=Null */ () => throw "hello",
+ /*@ typeArgs=Null */ map(/*@returnType=Never*/ () => throw "hello",
/*@ returnType=Null */ () {
return null;
});
- /*@ typeArgs=() ->* Null */ id(/*@ returnType=Null */ () {});
+ /*@typeArgs=() -> Null*/ id(/*@ returnType=Null */ () {});
}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/type_of_null.dart.textual_outline.expect b/pkg/front_end/testcases/general/type_of_null.dart.textual_outline.expect
index 117df44..a453890 100644
--- a/pkg/front_end/testcases/general/type_of_null.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/type_of_null.dart.textual_outline.expect
@@ -1,5 +1,5 @@
-// @dart = 2.9
-T map<T>(T Function() f1, T Function() f2) {}
+T map<T>(T Function() f1, T Function() f2) => throw '';
id<T>(T t) => t;
Null foo() => null;
+test() {}
main() {}
diff --git a/pkg/front_end/testcases/general/type_of_null.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/type_of_null.dart.textual_outline_modelled.expect
index bfde047..231e22d 100644
--- a/pkg/front_end/testcases/general/type_of_null.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/type_of_null.dart.textual_outline_modelled.expect
@@ -1,5 +1,5 @@
-// @dart = 2.9
Null foo() => null;
-T map<T>(T Function() f1, T Function() f2) {}
+T map<T>(T Function() f1, T Function() f2) => throw '';
id<T>(T t) => t;
main() {}
+test() {}
diff --git a/pkg/front_end/testcases/general/type_of_null.dart.weak.expect b/pkg/front_end/testcases/general/type_of_null.dart.weak.expect
index 4f0b860..84c9c74 100644
--- a/pkg/front_end/testcases/general/type_of_null.dart.weak.expect
+++ b/pkg/front_end/testcases/general/type_of_null.dart.weak.expect
@@ -1,26 +1,28 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method map<T extends core::Object* = dynamic>(() →* self::map::T* f1, () →* self::map::T* f2) → self::map::T* {}
-static method id<T extends core::Object* = dynamic>(self::id::T* t) → dynamic
+static method map<T extends core::Object? = dynamic>(() → self::map::T% f1, () → self::map::T% f2) → self::map::T%
+ return throw "";
+static method id<T extends core::Object? = dynamic>(self::id::T% t) → dynamic
return t;
static method foo() → Null
return null;
-static method main() → dynamic {
- self::map<Null>(() → Null {}, () → Null => throw "hello");
- self::map<Null>(() → Null => throw "hello", () → Null {});
- () →* Null f = () → Null {};
- self::map<Null>(#C1, () → Null => throw "hello");
- self::map<Null>(() → Null => throw "hello", #C1);
+static method test() → dynamic {
+ self::map<Null>(() → Null {}, () → Never => throw "hello");
+ self::map<Null>(() → Never => throw "hello", () → Null {});
+ () → Null f = () → Null {};
+ self::map<Null>(#C1, () → Never => throw "hello");
+ self::map<Null>(() → Never => throw "hello", #C1);
self::map<Null>(() → Null {
return null;
- }, () → Null => throw "hello");
- self::map<Null>(() → Null => throw "hello", () → Null {
+ }, () → Never => throw "hello");
+ self::map<Null>(() → Never => throw "hello", () → Null {
return null;
});
- self::id<() →* Null>(() → Null {});
+ self::id<() → Null>(() → Null {});
}
+static method main() → dynamic {}
constants {
#C1 = static-tearoff self::foo
diff --git a/pkg/front_end/testcases/general/type_of_null.dart.weak.modular.expect b/pkg/front_end/testcases/general/type_of_null.dart.weak.modular.expect
index 4f0b860..84c9c74 100644
--- a/pkg/front_end/testcases/general/type_of_null.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/type_of_null.dart.weak.modular.expect
@@ -1,26 +1,28 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method map<T extends core::Object* = dynamic>(() →* self::map::T* f1, () →* self::map::T* f2) → self::map::T* {}
-static method id<T extends core::Object* = dynamic>(self::id::T* t) → dynamic
+static method map<T extends core::Object? = dynamic>(() → self::map::T% f1, () → self::map::T% f2) → self::map::T%
+ return throw "";
+static method id<T extends core::Object? = dynamic>(self::id::T% t) → dynamic
return t;
static method foo() → Null
return null;
-static method main() → dynamic {
- self::map<Null>(() → Null {}, () → Null => throw "hello");
- self::map<Null>(() → Null => throw "hello", () → Null {});
- () →* Null f = () → Null {};
- self::map<Null>(#C1, () → Null => throw "hello");
- self::map<Null>(() → Null => throw "hello", #C1);
+static method test() → dynamic {
+ self::map<Null>(() → Null {}, () → Never => throw "hello");
+ self::map<Null>(() → Never => throw "hello", () → Null {});
+ () → Null f = () → Null {};
+ self::map<Null>(#C1, () → Never => throw "hello");
+ self::map<Null>(() → Never => throw "hello", #C1);
self::map<Null>(() → Null {
return null;
- }, () → Null => throw "hello");
- self::map<Null>(() → Null => throw "hello", () → Null {
+ }, () → Never => throw "hello");
+ self::map<Null>(() → Never => throw "hello", () → Null {
return null;
});
- self::id<() →* Null>(() → Null {});
+ self::id<() → Null>(() → Null {});
}
+static method main() → dynamic {}
constants {
#C1 = static-tearoff self::foo
diff --git a/pkg/front_end/testcases/general/type_of_null.dart.weak.outline.expect b/pkg/front_end/testcases/general/type_of_null.dart.weak.outline.expect
index b7c00566..72ae809 100644
--- a/pkg/front_end/testcases/general/type_of_null.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/type_of_null.dart.weak.outline.expect
@@ -1,12 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method map<T extends core::Object* = dynamic>(() →* self::map::T* f1, () →* self::map::T* f2) → self::map::T*
+static method map<T extends core::Object? = dynamic>(() → self::map::T% f1, () → self::map::T% f2) → self::map::T%
;
-static method id<T extends core::Object* = dynamic>(self::id::T* t) → dynamic
+static method id<T extends core::Object? = dynamic>(self::id::T% t) → dynamic
;
static method foo() → Null
;
+static method test() → dynamic
+ ;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/type_of_null.dart.weak.transformed.expect b/pkg/front_end/testcases/general/type_of_null.dart.weak.transformed.expect
index 4f0b860..84c9c74 100644
--- a/pkg/front_end/testcases/general/type_of_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/type_of_null.dart.weak.transformed.expect
@@ -1,26 +1,28 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method map<T extends core::Object* = dynamic>(() →* self::map::T* f1, () →* self::map::T* f2) → self::map::T* {}
-static method id<T extends core::Object* = dynamic>(self::id::T* t) → dynamic
+static method map<T extends core::Object? = dynamic>(() → self::map::T% f1, () → self::map::T% f2) → self::map::T%
+ return throw "";
+static method id<T extends core::Object? = dynamic>(self::id::T% t) → dynamic
return t;
static method foo() → Null
return null;
-static method main() → dynamic {
- self::map<Null>(() → Null {}, () → Null => throw "hello");
- self::map<Null>(() → Null => throw "hello", () → Null {});
- () →* Null f = () → Null {};
- self::map<Null>(#C1, () → Null => throw "hello");
- self::map<Null>(() → Null => throw "hello", #C1);
+static method test() → dynamic {
+ self::map<Null>(() → Null {}, () → Never => throw "hello");
+ self::map<Null>(() → Never => throw "hello", () → Null {});
+ () → Null f = () → Null {};
+ self::map<Null>(#C1, () → Never => throw "hello");
+ self::map<Null>(() → Never => throw "hello", #C1);
self::map<Null>(() → Null {
return null;
- }, () → Null => throw "hello");
- self::map<Null>(() → Null => throw "hello", () → Null {
+ }, () → Never => throw "hello");
+ self::map<Null>(() → Never => throw "hello", () → Null {
return null;
});
- self::id<() →* Null>(() → Null {});
+ self::id<() → Null>(() → Null {});
}
+static method main() → dynamic {}
constants {
#C1 = static-tearoff self::foo
diff --git a/pkg/front_end/testcases/general/type_parameter_type_named_int.dart b/pkg/front_end/testcases/general/type_parameter_type_named_int.dart
index 8b645f8..0284905 100644
--- a/pkg/front_end/testcases/general/type_parameter_type_named_int.dart
+++ b/pkg/front_end/testcases/general/type_parameter_type_named_int.dart
@@ -1,14 +1,14 @@
// 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.
-// @dart=2.9
+
abstract class Foo<T> {
List<T> get list;
void setList<T>(List<T> value);
}
class Bar implements Foo<int> {
- List<int> list;
+ late List<int> list;
void setList<int>(List<int> value) {
list = value;
}
diff --git a/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.textual_outline.expect b/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.textual_outline.expect
index 16d1105..9465953 100644
--- a/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
abstract class Foo<T> {
List<T> get list;
void setList<T>(List<T> value);
}
class Bar implements Foo<int> {
- List<int> list;
+ late List<int> list;
void setList<int>(List<int> value) {}
}
diff --git a/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.textual_outline_modelled.expect
index 16d1105..beb5eea 100644
--- a/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.textual_outline_modelled.expect
@@ -1,10 +1,11 @@
-// @dart = 2.9
abstract class Foo<T> {
List<T> get list;
void setList<T>(List<T> value);
}
-
class Bar implements Foo<int> {
+ ---- unknown chunk starts ----
+late
+---- unknown chunk ends ----
List<int> list;
void setList<int>(List<int> value) {}
}
diff --git a/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.weak.expect b/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.weak.expect
index ea169b3..6618b46 100644
--- a/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.weak.expect
+++ b/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -12,44 +12,24 @@
import self as self;
import "dart:core" as core;
-abstract class Foo<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+abstract class Foo<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T%>
: super core::Object::•()
;
- abstract get list() → core::List<self::Foo::T*>*;
- abstract method setList<T extends core::Object* = dynamic>(core::List<self::Foo::setList::T*>* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get list() → core::List<self::Foo::T%>;
+ abstract method setList<T extends core::Object? = dynamic>(core::List<self::Foo::setList::T%> value) → void;
}
-class Bar extends core::Object implements self::Foo<core::int*> {
- field core::List<core::int*>* list = null;
- synthetic constructor •() → self::Bar*
+class Bar extends core::Object implements self::Foo<core::int> {
+ late field core::List<core::int> list;
+ synthetic constructor •() → self::Bar
: super core::Object::•()
;
- method setList<int extends core::Object* = dynamic>(core::List<self::Bar::setList::int*>* value) → void {
+ method setList<int extends core::Object? = dynamic>(core::List<self::Bar::setList::int%> value) → void {
this.{self::Bar::list} = invalid-expression "pkg/front_end/testcases/general/type_parameter_type_named_int.dart:13:12: Error: A value of type 'List<int/*1*/>' can't be assigned to a variable of type 'List<int/*2*/>'.
- 'List' is from 'dart:core'.
- 'int/*1*/' is from 'pkg/front_end/testcases/general/type_parameter_type_named_int.dart'.
- 'int/*2*/' is from 'dart:core'.
list = value;
- ^" in value as{TypeError} core::List<core::int*>*;
+ ^" in value as{TypeError,ForNonNullableByDefault} core::List<core::int>;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
diff --git a/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.weak.modular.expect b/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.weak.modular.expect
index ea169b3..6618b46 100644
--- a/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -12,44 +12,24 @@
import self as self;
import "dart:core" as core;
-abstract class Foo<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+abstract class Foo<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T%>
: super core::Object::•()
;
- abstract get list() → core::List<self::Foo::T*>*;
- abstract method setList<T extends core::Object* = dynamic>(core::List<self::Foo::setList::T*>* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get list() → core::List<self::Foo::T%>;
+ abstract method setList<T extends core::Object? = dynamic>(core::List<self::Foo::setList::T%> value) → void;
}
-class Bar extends core::Object implements self::Foo<core::int*> {
- field core::List<core::int*>* list = null;
- synthetic constructor •() → self::Bar*
+class Bar extends core::Object implements self::Foo<core::int> {
+ late field core::List<core::int> list;
+ synthetic constructor •() → self::Bar
: super core::Object::•()
;
- method setList<int extends core::Object* = dynamic>(core::List<self::Bar::setList::int*>* value) → void {
+ method setList<int extends core::Object? = dynamic>(core::List<self::Bar::setList::int%> value) → void {
this.{self::Bar::list} = invalid-expression "pkg/front_end/testcases/general/type_parameter_type_named_int.dart:13:12: Error: A value of type 'List<int/*1*/>' can't be assigned to a variable of type 'List<int/*2*/>'.
- 'List' is from 'dart:core'.
- 'int/*1*/' is from 'pkg/front_end/testcases/general/type_parameter_type_named_int.dart'.
- 'int/*2*/' is from 'dart:core'.
list = value;
- ^" in value as{TypeError} core::List<core::int*>*;
+ ^" in value as{TypeError,ForNonNullableByDefault} core::List<core::int>;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
diff --git a/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.weak.outline.expect b/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.weak.outline.expect
index c0e0f1c..95c0159 100644
--- a/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.weak.outline.expect
@@ -1,37 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class Foo<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+abstract class Foo<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T%>
;
- abstract get list() → core::List<self::Foo::T*>*;
- abstract method setList<T extends core::Object* = dynamic>(core::List<self::Foo::setList::T*>* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get list() → core::List<self::Foo::T%>;
+ abstract method setList<T extends core::Object? = dynamic>(core::List<self::Foo::setList::T%> value) → void;
}
-class Bar extends core::Object implements self::Foo<core::int*> {
- field core::List<core::int*>* list;
- synthetic constructor •() → self::Bar*
+class Bar extends core::Object implements self::Foo<core::int> {
+ late field core::List<core::int> list;
+ synthetic constructor •() → self::Bar
;
- method setList<int extends core::Object* = dynamic>(core::List<self::Bar::setList::int*>* value) → void
+ method setList<int extends core::Object? = dynamic>(core::List<self::Bar::setList::int%> value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
diff --git a/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.weak.transformed.expect b/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.weak.transformed.expect
index ea169b3..6618b46 100644
--- a/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/type_parameter_type_named_int.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -12,44 +12,24 @@
import self as self;
import "dart:core" as core;
-abstract class Foo<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+abstract class Foo<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T%>
: super core::Object::•()
;
- abstract get list() → core::List<self::Foo::T*>*;
- abstract method setList<T extends core::Object* = dynamic>(core::List<self::Foo::setList::T*>* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get list() → core::List<self::Foo::T%>;
+ abstract method setList<T extends core::Object? = dynamic>(core::List<self::Foo::setList::T%> value) → void;
}
-class Bar extends core::Object implements self::Foo<core::int*> {
- field core::List<core::int*>* list = null;
- synthetic constructor •() → self::Bar*
+class Bar extends core::Object implements self::Foo<core::int> {
+ late field core::List<core::int> list;
+ synthetic constructor •() → self::Bar
: super core::Object::•()
;
- method setList<int extends core::Object* = dynamic>(core::List<self::Bar::setList::int*>* value) → void {
+ method setList<int extends core::Object? = dynamic>(core::List<self::Bar::setList::int%> value) → void {
this.{self::Bar::list} = invalid-expression "pkg/front_end/testcases/general/type_parameter_type_named_int.dart:13:12: Error: A value of type 'List<int/*1*/>' can't be assigned to a variable of type 'List<int/*2*/>'.
- 'List' is from 'dart:core'.
- 'int/*1*/' is from 'pkg/front_end/testcases/general/type_parameter_type_named_int.dart'.
- 'int/*2*/' is from 'dart:core'.
list = value;
- ^" in value as{TypeError} core::List<core::int*>*;
+ ^" in value as{TypeError,ForNonNullableByDefault} core::List<core::int>;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart
index b089e04..465d0bf 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart
@@ -1,40 +1,60 @@
// Copyright (c) 2020, 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.
-// @dart=2.9
+
class Foo<U> {
- static U foo1() { return null; }
- static List<U> foo1Prime() { return null; }
- static void foo2(U x) { return null; }
- static void foo2Prime(List<U> x) { return null; }
+ static U foo1() {
+ return null;
+ }
+
+ static List<U> foo1Prime() {
+ throw '';
+ }
+
+ static void foo2(U x) {}
+ static void foo2Prime(List<U> x) {}
static void foo3() {
U foo4;
List<U> foo4Prime;
void foo5(U y) => print(y);
void foo5Prime(List<U> y) => print(y);
U foo6() => null;
- List<U> foo6Prime() => null;
- void Function (U y) foo7 = (U y) => y;
- void Function (List<U> y) foo7Prime = (List<U> y) => y;
+ List<U> foo6Prime() => throw '';
+ void Function(U y) foo7 = (U y) => y;
+ void Function(List<U> y) foo7Prime = (List<U> y) => y;
}
- static U Function() foo8() { return null; }
- static List<U> Function() foo8Prime() { return null; }
- static void Function(U) foo9() { return null; }
- static void Function(List<U>) foo9Prime() { return null; }
- static void foo10(U Function()) { return null; }
- static void foo10Prime(List<U> Function()) { return null; }
+
+ static U Function() foo8() {
+ throw '';
+ }
+
+ static List<U> Function() foo8Prime() {
+ throw '';
+ }
+
+ static void Function(U) foo9() {}
+ static void Function(List<U>) foo9Prime() {}
+ static void foo10(U Function()) {}
+
+ static void foo10Prime(List<U> Function()) {}
+
// old syntax: variable named "U" of a function called 'Function'.
- static void foo11(void Function(U)) { return null; }
- static void foo12(void Function(U) b) { return null; }
- static void foo12Prime(void Function(List<U>) b) { return null; }
+ static void foo11(void Function(U)) {}
+
+ static void foo12(void Function(U) b) {}
+
+ static void foo12Prime(void Function(List<U>) b) {}
+
// old syntax: variable named "b" of type "U" of a function called 'Function'.
- static void foo13(void Function(U b)) { return null; }
+ static void foo13(void Function(U b)) {}
+
// old syntax: variable named "b" of type "List<U>" of a function called 'Function'.
- static void foo13Prime(void Function(List<U> b)) { return null; }
- static U foo14 = null;
- static List<U> foo14Prime = null;
- static U Function(U) foo15 = null;
- static List<U> Function(List<U>) foo15Prime = null;
+ static void foo13Prime(void Function(List<U> b)) {}
+
+ static late U foo14;
+ static late List<U> foo14Prime;
+ static late U Function(U) foo15;
+ static late List<U> Function(List<U>) foo15Prime;
}
main() {}
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.textual_outline.expect b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.textual_outline.expect
index a03a987..2967ac1 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Foo<U> {
static U foo1() {}
static List<U> foo1Prime() {}
@@ -16,10 +15,13 @@
static void foo12Prime(void Function(List<U>) b) {}
static void foo13(void Function(U b)) {}
static void foo13Prime(void Function(List<U> b)) {}
- static U foo14 = null;
- static List<U> foo14Prime = null;
- static U Function(U) foo15 = null;
- static List<U> Function(List<U>) foo15Prime = null;
+ static late U ;
+ foo14;
+ static late List<U> (){}
+ foo14Prime;
+ static late U ;
+ Function(U) foo15;
+ static late List<U> (){}
+ Function(List<U>) foo15Prime;
}
-
main() {}
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.textual_outline_modelled.expect
index fdfccad..531ae41 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Foo<U> {
static List<U> Function() foo8Prime() {}
static List<U> Function(List<U>) foo15Prime = null;
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.weak.expect b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.weak.expect
index cb0d959..8f2941a 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.weak.expect
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.weak.expect
@@ -1,206 +1,174 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:6:10: Error: Type variables can't be used in static members.
-// static U foo1() { return null; }
+// static U foo1() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:7:15: Error: Type variables can't be used in static members.
-// static List<U> foo1Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:10:15: Error: Type variables can't be used in static members.
+// static List<U> foo1Prime() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:8:20: Error: Type variables can't be used in static members.
-// static void foo2(U x) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:14:20: Error: Type variables can't be used in static members.
+// static void foo2(U x) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:9:30: Error: Type variables can't be used in static members.
-// static void foo2Prime(List<U> x) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:15:30: Error: Type variables can't be used in static members.
+// static void foo2Prime(List<U> x) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:20:10: Error: Type variables can't be used in static members.
-// static U Function() foo8() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:27:10: Error: Type variables can't be used in static members.
+// static U Function() foo8() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:21:15: Error: Type variables can't be used in static members.
-// static List<U> Function() foo8Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:31:15: Error: Type variables can't be used in static members.
+// static List<U> Function() foo8Prime() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:22:24: Error: Type variables can't be used in static members.
-// static void Function(U) foo9() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:35:24: Error: Type variables can't be used in static members.
+// static void Function(U) foo9() {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:23:29: Error: Type variables can't be used in static members.
-// static void Function(List<U>) foo9Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:36:29: Error: Type variables can't be used in static members.
+// static void Function(List<U>) foo9Prime() {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:24:21: Error: Type variables can't be used in static members.
-// static void foo10(U Function()) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:37:21: Error: Type variables can't be used in static members.
+// static void foo10(U Function()) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:25:31: Error: Type variables can't be used in static members.
-// static void foo10Prime(List<U> Function()) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:39:31: Error: Type variables can't be used in static members.
+// static void foo10Prime(List<U> Function()) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:28:35: Error: Type variables can't be used in static members.
-// static void foo12(void Function(U) b) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:44:35: Error: Type variables can't be used in static members.
+// static void foo12(void Function(U) b) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:29:45: Error: Type variables can't be used in static members.
-// static void foo12Prime(void Function(List<U>) b) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:46:45: Error: Type variables can't be used in static members.
+// static void foo12Prime(void Function(List<U>) b) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:31:35: Error: Type variables can't be used in static members.
-// static void foo13(void Function(U b)) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:49:35: Error: Type variables can't be used in static members.
+// static void foo13(void Function(U b)) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:33:45: Error: Type variables can't be used in static members.
-// static void foo13Prime(void Function(List<U> b)) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:52:45: Error: Type variables can't be used in static members.
+// static void foo13Prime(void Function(List<U> b)) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:34:10: Error: Type variables can't be used in static members.
-// static U foo14 = null;
-// ^
-//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:35:15: Error: Type variables can't be used in static members.
-// static List<U> foo14Prime = null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:54:15: Error: Type variables can't be used in static members.
+// static late U foo14;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:36:10: Error: Type variables can't be used in static members.
-// static U Function(U) foo15 = null;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:55:20: Error: Type variables can't be used in static members.
+// static late List<U> foo14Prime;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:36:21: Error: Type variables can't be used in static members.
-// static U Function(U) foo15 = null;
-// ^
-//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:37:15: Error: Type variables can't be used in static members.
-// static List<U> Function(List<U>) foo15Prime = null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:56:15: Error: Type variables can't be used in static members.
+// static late U Function(U) foo15;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:37:32: Error: Type variables can't be used in static members.
-// static List<U> Function(List<U>) foo15Prime = null;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:56:26: Error: Type variables can't be used in static members.
+// static late U Function(U) foo15;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:11:5: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:57:20: Error: Type variables can't be used in static members.
+// static late List<U> Function(List<U>) foo15Prime;
+// ^
+//
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:57:37: Error: Type variables can't be used in static members.
+// static late List<U> Function(List<U>) foo15Prime;
+// ^
+//
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:17:5: Error: Type variables can't be used in static members.
// U foo4;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:12:10: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:18:10: Error: Type variables can't be used in static members.
// List<U> foo4Prime;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:13:15: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:19:15: Error: Type variables can't be used in static members.
// void foo5(U y) => print(y);
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:14:25: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:20:25: Error: Type variables can't be used in static members.
// void foo5Prime(List<U> y) => print(y);
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:15:5: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:21:5: Error: Type variables can't be used in static members.
// U foo6() => null;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:16:10: Error: Type variables can't be used in static members.
-// List<U> foo6Prime() => null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:22:10: Error: Type variables can't be used in static members.
+// List<U> foo6Prime() => throw '';
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:17:20: Error: Type variables can't be used in static members.
-// void Function (U y) foo7 = (U y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:23:19: Error: Type variables can't be used in static members.
+// void Function(U y) foo7 = (U y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:17:33: Error: Type variables can't be used in static members.
-// void Function (U y) foo7 = (U y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:23:32: Error: Type variables can't be used in static members.
+// void Function(U y) foo7 = (U y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:18:25: Error: Type variables can't be used in static members.
-// void Function (List<U> y) foo7Prime = (List<U> y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:24:24: Error: Type variables can't be used in static members.
+// void Function(List<U> y) foo7Prime = (List<U> y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:18:49: Error: Type variables can't be used in static members.
-// void Function (List<U> y) foo7Prime = (List<U> y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:24:48: Error: Type variables can't be used in static members.
+// void Function(List<U> y) foo7Prime = (List<U> y) => y;
+// ^
//
import self as self;
import "dart:core" as core;
-class Foo<U extends core::Object* = dynamic> extends core::Object {
- static field invalid-type foo14 = null;
- static field core::List<invalid-type>* foo14Prime = null;
- static field (invalid-type) →* invalid-type foo15 = null;
- static field (core::List<invalid-type>*) →* core::List<invalid-type>* foo15Prime = null;
- synthetic constructor •() → self::Foo<self::Foo::U*>*
+class Foo<U extends core::Object? = dynamic> extends core::Object {
+ late static field invalid-type foo14;
+ late static field core::List<invalid-type> foo14Prime;
+ late static field (invalid-type) → invalid-type foo15;
+ late static field (core::List<invalid-type>) → core::List<invalid-type> foo15Prime;
+ synthetic constructor •() → self::Foo<self::Foo::U%>
: super core::Object::•()
;
static method foo1() → invalid-type {
return null;
}
- static method foo1Prime() → core::List<invalid-type>* {
- return null;
+ static method foo1Prime() → core::List<invalid-type> {
+ throw "";
}
- static method foo2(invalid-type x) → void {
- return null;
- }
- static method foo2Prime(core::List<invalid-type>* x) → void {
- return null;
- }
+ static method foo2(invalid-type x) → void {}
+ static method foo2Prime(core::List<invalid-type> x) → void {}
static method foo3() → void {
invalid-type foo4;
- core::List<invalid-type>* foo4Prime;
+ core::List<invalid-type> foo4Prime;
function foo5(invalid-type y) → void
return core::print(y);
- function foo5Prime(core::List<invalid-type>* y) → void
+ function foo5Prime(core::List<invalid-type> y) → void
return core::print(y);
function foo6() → invalid-type
return null;
- function foo6Prime() → core::List<invalid-type>*
- return null;
- (invalid-type) →* void foo7 = (invalid-type y) → invalid-type => y;
- (core::List<invalid-type>*) →* void foo7Prime = (core::List<invalid-type>* y) → core::List<invalid-type>* => y;
+ function foo6Prime() → core::List<invalid-type>
+ return throw "";
+ (invalid-type) → void foo7 = (invalid-type y) → void => y;
+ (core::List<invalid-type>) → void foo7Prime = (core::List<invalid-type> y) → void => y;
}
- static method foo8() → () →* invalid-type {
- return null;
+ static method foo8() → () → invalid-type {
+ throw "";
}
- static method foo8Prime() → () →* core::List<invalid-type>* {
- return null;
+ static method foo8Prime() → () → core::List<invalid-type> {
+ throw "";
}
- static method foo9() → (invalid-type) →* void {
- return null;
- }
- static method foo9Prime() → (core::List<invalid-type>*) →* void {
- return null;
- }
- static method foo10(() →* invalid-type Function) → void {
- return null;
- }
- static method foo10Prime(() →* core::List<invalid-type>* Function) → void {
- return null;
- }
- static method foo11((dynamic) →* void Function) → void {
- return null;
- }
- static method foo12((invalid-type) →* void b) → void {
- return null;
- }
- static method foo12Prime((core::List<invalid-type>*) →* void b) → void {
- return null;
- }
- static method foo13((invalid-type) →* void Function) → void {
- return null;
- }
- static method foo13Prime((core::List<invalid-type>*) →* void Function) → void {
- return null;
- }
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static method foo9() → (invalid-type) → void {}
+ static method foo9Prime() → (core::List<invalid-type>) → void {}
+ static method foo10(() → invalid-type Function) → void {}
+ static method foo10Prime(() → core::List<invalid-type> Function) → void {}
+ static method foo11((dynamic) → void Function) → void {}
+ static method foo12((invalid-type) → void b) → void {}
+ static method foo12Prime((core::List<invalid-type>) → void b) → void {}
+ static method foo13((invalid-type) → void Function) → void {}
+ static method foo13Prime((core::List<invalid-type>) → void Function) → void {}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.weak.modular.expect b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.weak.modular.expect
index cb0d959..8f2941a 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.weak.modular.expect
@@ -1,206 +1,174 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:6:10: Error: Type variables can't be used in static members.
-// static U foo1() { return null; }
+// static U foo1() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:7:15: Error: Type variables can't be used in static members.
-// static List<U> foo1Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:10:15: Error: Type variables can't be used in static members.
+// static List<U> foo1Prime() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:8:20: Error: Type variables can't be used in static members.
-// static void foo2(U x) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:14:20: Error: Type variables can't be used in static members.
+// static void foo2(U x) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:9:30: Error: Type variables can't be used in static members.
-// static void foo2Prime(List<U> x) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:15:30: Error: Type variables can't be used in static members.
+// static void foo2Prime(List<U> x) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:20:10: Error: Type variables can't be used in static members.
-// static U Function() foo8() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:27:10: Error: Type variables can't be used in static members.
+// static U Function() foo8() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:21:15: Error: Type variables can't be used in static members.
-// static List<U> Function() foo8Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:31:15: Error: Type variables can't be used in static members.
+// static List<U> Function() foo8Prime() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:22:24: Error: Type variables can't be used in static members.
-// static void Function(U) foo9() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:35:24: Error: Type variables can't be used in static members.
+// static void Function(U) foo9() {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:23:29: Error: Type variables can't be used in static members.
-// static void Function(List<U>) foo9Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:36:29: Error: Type variables can't be used in static members.
+// static void Function(List<U>) foo9Prime() {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:24:21: Error: Type variables can't be used in static members.
-// static void foo10(U Function()) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:37:21: Error: Type variables can't be used in static members.
+// static void foo10(U Function()) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:25:31: Error: Type variables can't be used in static members.
-// static void foo10Prime(List<U> Function()) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:39:31: Error: Type variables can't be used in static members.
+// static void foo10Prime(List<U> Function()) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:28:35: Error: Type variables can't be used in static members.
-// static void foo12(void Function(U) b) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:44:35: Error: Type variables can't be used in static members.
+// static void foo12(void Function(U) b) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:29:45: Error: Type variables can't be used in static members.
-// static void foo12Prime(void Function(List<U>) b) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:46:45: Error: Type variables can't be used in static members.
+// static void foo12Prime(void Function(List<U>) b) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:31:35: Error: Type variables can't be used in static members.
-// static void foo13(void Function(U b)) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:49:35: Error: Type variables can't be used in static members.
+// static void foo13(void Function(U b)) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:33:45: Error: Type variables can't be used in static members.
-// static void foo13Prime(void Function(List<U> b)) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:52:45: Error: Type variables can't be used in static members.
+// static void foo13Prime(void Function(List<U> b)) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:34:10: Error: Type variables can't be used in static members.
-// static U foo14 = null;
-// ^
-//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:35:15: Error: Type variables can't be used in static members.
-// static List<U> foo14Prime = null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:54:15: Error: Type variables can't be used in static members.
+// static late U foo14;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:36:10: Error: Type variables can't be used in static members.
-// static U Function(U) foo15 = null;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:55:20: Error: Type variables can't be used in static members.
+// static late List<U> foo14Prime;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:36:21: Error: Type variables can't be used in static members.
-// static U Function(U) foo15 = null;
-// ^
-//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:37:15: Error: Type variables can't be used in static members.
-// static List<U> Function(List<U>) foo15Prime = null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:56:15: Error: Type variables can't be used in static members.
+// static late U Function(U) foo15;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:37:32: Error: Type variables can't be used in static members.
-// static List<U> Function(List<U>) foo15Prime = null;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:56:26: Error: Type variables can't be used in static members.
+// static late U Function(U) foo15;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:11:5: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:57:20: Error: Type variables can't be used in static members.
+// static late List<U> Function(List<U>) foo15Prime;
+// ^
+//
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:57:37: Error: Type variables can't be used in static members.
+// static late List<U> Function(List<U>) foo15Prime;
+// ^
+//
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:17:5: Error: Type variables can't be used in static members.
// U foo4;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:12:10: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:18:10: Error: Type variables can't be used in static members.
// List<U> foo4Prime;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:13:15: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:19:15: Error: Type variables can't be used in static members.
// void foo5(U y) => print(y);
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:14:25: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:20:25: Error: Type variables can't be used in static members.
// void foo5Prime(List<U> y) => print(y);
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:15:5: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:21:5: Error: Type variables can't be used in static members.
// U foo6() => null;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:16:10: Error: Type variables can't be used in static members.
-// List<U> foo6Prime() => null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:22:10: Error: Type variables can't be used in static members.
+// List<U> foo6Prime() => throw '';
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:17:20: Error: Type variables can't be used in static members.
-// void Function (U y) foo7 = (U y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:23:19: Error: Type variables can't be used in static members.
+// void Function(U y) foo7 = (U y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:17:33: Error: Type variables can't be used in static members.
-// void Function (U y) foo7 = (U y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:23:32: Error: Type variables can't be used in static members.
+// void Function(U y) foo7 = (U y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:18:25: Error: Type variables can't be used in static members.
-// void Function (List<U> y) foo7Prime = (List<U> y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:24:24: Error: Type variables can't be used in static members.
+// void Function(List<U> y) foo7Prime = (List<U> y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:18:49: Error: Type variables can't be used in static members.
-// void Function (List<U> y) foo7Prime = (List<U> y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:24:48: Error: Type variables can't be used in static members.
+// void Function(List<U> y) foo7Prime = (List<U> y) => y;
+// ^
//
import self as self;
import "dart:core" as core;
-class Foo<U extends core::Object* = dynamic> extends core::Object {
- static field invalid-type foo14 = null;
- static field core::List<invalid-type>* foo14Prime = null;
- static field (invalid-type) →* invalid-type foo15 = null;
- static field (core::List<invalid-type>*) →* core::List<invalid-type>* foo15Prime = null;
- synthetic constructor •() → self::Foo<self::Foo::U*>*
+class Foo<U extends core::Object? = dynamic> extends core::Object {
+ late static field invalid-type foo14;
+ late static field core::List<invalid-type> foo14Prime;
+ late static field (invalid-type) → invalid-type foo15;
+ late static field (core::List<invalid-type>) → core::List<invalid-type> foo15Prime;
+ synthetic constructor •() → self::Foo<self::Foo::U%>
: super core::Object::•()
;
static method foo1() → invalid-type {
return null;
}
- static method foo1Prime() → core::List<invalid-type>* {
- return null;
+ static method foo1Prime() → core::List<invalid-type> {
+ throw "";
}
- static method foo2(invalid-type x) → void {
- return null;
- }
- static method foo2Prime(core::List<invalid-type>* x) → void {
- return null;
- }
+ static method foo2(invalid-type x) → void {}
+ static method foo2Prime(core::List<invalid-type> x) → void {}
static method foo3() → void {
invalid-type foo4;
- core::List<invalid-type>* foo4Prime;
+ core::List<invalid-type> foo4Prime;
function foo5(invalid-type y) → void
return core::print(y);
- function foo5Prime(core::List<invalid-type>* y) → void
+ function foo5Prime(core::List<invalid-type> y) → void
return core::print(y);
function foo6() → invalid-type
return null;
- function foo6Prime() → core::List<invalid-type>*
- return null;
- (invalid-type) →* void foo7 = (invalid-type y) → invalid-type => y;
- (core::List<invalid-type>*) →* void foo7Prime = (core::List<invalid-type>* y) → core::List<invalid-type>* => y;
+ function foo6Prime() → core::List<invalid-type>
+ return throw "";
+ (invalid-type) → void foo7 = (invalid-type y) → void => y;
+ (core::List<invalid-type>) → void foo7Prime = (core::List<invalid-type> y) → void => y;
}
- static method foo8() → () →* invalid-type {
- return null;
+ static method foo8() → () → invalid-type {
+ throw "";
}
- static method foo8Prime() → () →* core::List<invalid-type>* {
- return null;
+ static method foo8Prime() → () → core::List<invalid-type> {
+ throw "";
}
- static method foo9() → (invalid-type) →* void {
- return null;
- }
- static method foo9Prime() → (core::List<invalid-type>*) →* void {
- return null;
- }
- static method foo10(() →* invalid-type Function) → void {
- return null;
- }
- static method foo10Prime(() →* core::List<invalid-type>* Function) → void {
- return null;
- }
- static method foo11((dynamic) →* void Function) → void {
- return null;
- }
- static method foo12((invalid-type) →* void b) → void {
- return null;
- }
- static method foo12Prime((core::List<invalid-type>*) →* void b) → void {
- return null;
- }
- static method foo13((invalid-type) →* void Function) → void {
- return null;
- }
- static method foo13Prime((core::List<invalid-type>*) →* void Function) → void {
- return null;
- }
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static method foo9() → (invalid-type) → void {}
+ static method foo9Prime() → (core::List<invalid-type>) → void {}
+ static method foo10(() → invalid-type Function) → void {}
+ static method foo10Prime(() → core::List<invalid-type> Function) → void {}
+ static method foo11((dynamic) → void Function) → void {}
+ static method foo12((invalid-type) → void b) → void {}
+ static method foo12Prime((core::List<invalid-type>) → void b) → void {}
+ static method foo13((invalid-type) → void Function) → void {}
+ static method foo13Prime((core::List<invalid-type>) → void Function) → void {}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.weak.outline.expect b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.weak.outline.expect
index 64cbbb3..94b0c97 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.weak.outline.expect
@@ -1,139 +1,129 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:6:10: Error: Type variables can't be used in static members.
-// static U foo1() { return null; }
+// static U foo1() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:7:15: Error: Type variables can't be used in static members.
-// static List<U> foo1Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:10:15: Error: Type variables can't be used in static members.
+// static List<U> foo1Prime() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:8:20: Error: Type variables can't be used in static members.
-// static void foo2(U x) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:14:20: Error: Type variables can't be used in static members.
+// static void foo2(U x) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:9:30: Error: Type variables can't be used in static members.
-// static void foo2Prime(List<U> x) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:15:30: Error: Type variables can't be used in static members.
+// static void foo2Prime(List<U> x) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:20:10: Error: Type variables can't be used in static members.
-// static U Function() foo8() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:27:10: Error: Type variables can't be used in static members.
+// static U Function() foo8() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:21:15: Error: Type variables can't be used in static members.
-// static List<U> Function() foo8Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:31:15: Error: Type variables can't be used in static members.
+// static List<U> Function() foo8Prime() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:22:24: Error: Type variables can't be used in static members.
-// static void Function(U) foo9() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:35:24: Error: Type variables can't be used in static members.
+// static void Function(U) foo9() {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:23:29: Error: Type variables can't be used in static members.
-// static void Function(List<U>) foo9Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:36:29: Error: Type variables can't be used in static members.
+// static void Function(List<U>) foo9Prime() {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:24:21: Error: Type variables can't be used in static members.
-// static void foo10(U Function()) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:37:21: Error: Type variables can't be used in static members.
+// static void foo10(U Function()) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:25:31: Error: Type variables can't be used in static members.
-// static void foo10Prime(List<U> Function()) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:39:31: Error: Type variables can't be used in static members.
+// static void foo10Prime(List<U> Function()) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:28:35: Error: Type variables can't be used in static members.
-// static void foo12(void Function(U) b) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:44:35: Error: Type variables can't be used in static members.
+// static void foo12(void Function(U) b) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:29:45: Error: Type variables can't be used in static members.
-// static void foo12Prime(void Function(List<U>) b) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:46:45: Error: Type variables can't be used in static members.
+// static void foo12Prime(void Function(List<U>) b) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:31:35: Error: Type variables can't be used in static members.
-// static void foo13(void Function(U b)) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:49:35: Error: Type variables can't be used in static members.
+// static void foo13(void Function(U b)) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:33:45: Error: Type variables can't be used in static members.
-// static void foo13Prime(void Function(List<U> b)) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:52:45: Error: Type variables can't be used in static members.
+// static void foo13Prime(void Function(List<U> b)) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:34:10: Error: Type variables can't be used in static members.
-// static U foo14 = null;
-// ^
-//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:35:15: Error: Type variables can't be used in static members.
-// static List<U> foo14Prime = null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:54:15: Error: Type variables can't be used in static members.
+// static late U foo14;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:36:10: Error: Type variables can't be used in static members.
-// static U Function(U) foo15 = null;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:55:20: Error: Type variables can't be used in static members.
+// static late List<U> foo14Prime;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:36:21: Error: Type variables can't be used in static members.
-// static U Function(U) foo15 = null;
-// ^
-//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:37:15: Error: Type variables can't be used in static members.
-// static List<U> Function(List<U>) foo15Prime = null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:56:15: Error: Type variables can't be used in static members.
+// static late U Function(U) foo15;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:37:32: Error: Type variables can't be used in static members.
-// static List<U> Function(List<U>) foo15Prime = null;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:56:26: Error: Type variables can't be used in static members.
+// static late U Function(U) foo15;
+// ^
+//
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:57:20: Error: Type variables can't be used in static members.
+// static late List<U> Function(List<U>) foo15Prime;
+// ^
+//
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:57:37: Error: Type variables can't be used in static members.
+// static late List<U> Function(List<U>) foo15Prime;
+// ^
//
import self as self;
import "dart:core" as core;
-class Foo<U extends core::Object* = dynamic> extends core::Object {
- static field invalid-type foo14;
- static field core::List<invalid-type>* foo14Prime;
- static field (invalid-type) →* invalid-type foo15;
- static field (core::List<invalid-type>*) →* core::List<invalid-type>* foo15Prime;
- synthetic constructor •() → self::Foo<self::Foo::U*>*
+class Foo<U extends core::Object? = dynamic> extends core::Object {
+ late static field invalid-type foo14;
+ late static field core::List<invalid-type> foo14Prime;
+ late static field (invalid-type) → invalid-type foo15;
+ late static field (core::List<invalid-type>) → core::List<invalid-type> foo15Prime;
+ synthetic constructor •() → self::Foo<self::Foo::U%>
;
static method foo1() → invalid-type
;
- static method foo1Prime() → core::List<invalid-type>*
+ static method foo1Prime() → core::List<invalid-type>
;
static method foo2(invalid-type x) → void
;
- static method foo2Prime(core::List<invalid-type>* x) → void
+ static method foo2Prime(core::List<invalid-type> x) → void
;
static method foo3() → void
;
- static method foo8() → () →* invalid-type
+ static method foo8() → () → invalid-type
;
- static method foo8Prime() → () →* core::List<invalid-type>*
+ static method foo8Prime() → () → core::List<invalid-type>
;
- static method foo9() → (invalid-type) →* void
+ static method foo9() → (invalid-type) → void
;
- static method foo9Prime() → (core::List<invalid-type>*) →* void
+ static method foo9Prime() → (core::List<invalid-type>) → void
;
- static method foo10(() →* invalid-type Function) → void
+ static method foo10(() → invalid-type Function) → void
;
- static method foo10Prime(() →* core::List<invalid-type>* Function) → void
+ static method foo10Prime(() → core::List<invalid-type> Function) → void
;
- static method foo11((dynamic) →* void Function) → void
+ static method foo11((dynamic) → void Function) → void
;
- static method foo12((invalid-type) →* void b) → void
+ static method foo12((invalid-type) → void b) → void
;
- static method foo12Prime((core::List<invalid-type>*) →* void b) → void
+ static method foo12Prime((core::List<invalid-type>) → void b) → void
;
- static method foo13((invalid-type) →* void Function) → void
+ static method foo13((invalid-type) → void Function) → void
;
- static method foo13Prime((core::List<invalid-type>*) →* void Function) → void
+ static method foo13Prime((core::List<invalid-type>) → void Function) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.weak.transformed.expect b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.weak.transformed.expect
index cb0d959..8f2941a 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart.weak.transformed.expect
@@ -1,206 +1,174 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:6:10: Error: Type variables can't be used in static members.
-// static U foo1() { return null; }
+// static U foo1() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:7:15: Error: Type variables can't be used in static members.
-// static List<U> foo1Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:10:15: Error: Type variables can't be used in static members.
+// static List<U> foo1Prime() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:8:20: Error: Type variables can't be used in static members.
-// static void foo2(U x) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:14:20: Error: Type variables can't be used in static members.
+// static void foo2(U x) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:9:30: Error: Type variables can't be used in static members.
-// static void foo2Prime(List<U> x) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:15:30: Error: Type variables can't be used in static members.
+// static void foo2Prime(List<U> x) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:20:10: Error: Type variables can't be used in static members.
-// static U Function() foo8() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:27:10: Error: Type variables can't be used in static members.
+// static U Function() foo8() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:21:15: Error: Type variables can't be used in static members.
-// static List<U> Function() foo8Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:31:15: Error: Type variables can't be used in static members.
+// static List<U> Function() foo8Prime() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:22:24: Error: Type variables can't be used in static members.
-// static void Function(U) foo9() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:35:24: Error: Type variables can't be used in static members.
+// static void Function(U) foo9() {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:23:29: Error: Type variables can't be used in static members.
-// static void Function(List<U>) foo9Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:36:29: Error: Type variables can't be used in static members.
+// static void Function(List<U>) foo9Prime() {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:24:21: Error: Type variables can't be used in static members.
-// static void foo10(U Function()) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:37:21: Error: Type variables can't be used in static members.
+// static void foo10(U Function()) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:25:31: Error: Type variables can't be used in static members.
-// static void foo10Prime(List<U> Function()) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:39:31: Error: Type variables can't be used in static members.
+// static void foo10Prime(List<U> Function()) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:28:35: Error: Type variables can't be used in static members.
-// static void foo12(void Function(U) b) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:44:35: Error: Type variables can't be used in static members.
+// static void foo12(void Function(U) b) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:29:45: Error: Type variables can't be used in static members.
-// static void foo12Prime(void Function(List<U>) b) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:46:45: Error: Type variables can't be used in static members.
+// static void foo12Prime(void Function(List<U>) b) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:31:35: Error: Type variables can't be used in static members.
-// static void foo13(void Function(U b)) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:49:35: Error: Type variables can't be used in static members.
+// static void foo13(void Function(U b)) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:33:45: Error: Type variables can't be used in static members.
-// static void foo13Prime(void Function(List<U> b)) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:52:45: Error: Type variables can't be used in static members.
+// static void foo13Prime(void Function(List<U> b)) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:34:10: Error: Type variables can't be used in static members.
-// static U foo14 = null;
-// ^
-//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:35:15: Error: Type variables can't be used in static members.
-// static List<U> foo14Prime = null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:54:15: Error: Type variables can't be used in static members.
+// static late U foo14;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:36:10: Error: Type variables can't be used in static members.
-// static U Function(U) foo15 = null;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:55:20: Error: Type variables can't be used in static members.
+// static late List<U> foo14Prime;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:36:21: Error: Type variables can't be used in static members.
-// static U Function(U) foo15 = null;
-// ^
-//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:37:15: Error: Type variables can't be used in static members.
-// static List<U> Function(List<U>) foo15Prime = null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:56:15: Error: Type variables can't be used in static members.
+// static late U Function(U) foo15;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:37:32: Error: Type variables can't be used in static members.
-// static List<U> Function(List<U>) foo15Prime = null;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:56:26: Error: Type variables can't be used in static members.
+// static late U Function(U) foo15;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:11:5: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:57:20: Error: Type variables can't be used in static members.
+// static late List<U> Function(List<U>) foo15Prime;
+// ^
+//
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:57:37: Error: Type variables can't be used in static members.
+// static late List<U> Function(List<U>) foo15Prime;
+// ^
+//
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:17:5: Error: Type variables can't be used in static members.
// U foo4;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:12:10: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:18:10: Error: Type variables can't be used in static members.
// List<U> foo4Prime;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:13:15: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:19:15: Error: Type variables can't be used in static members.
// void foo5(U y) => print(y);
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:14:25: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:20:25: Error: Type variables can't be used in static members.
// void foo5Prime(List<U> y) => print(y);
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:15:5: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:21:5: Error: Type variables can't be used in static members.
// U foo6() => null;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:16:10: Error: Type variables can't be used in static members.
-// List<U> foo6Prime() => null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:22:10: Error: Type variables can't be used in static members.
+// List<U> foo6Prime() => throw '';
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:17:20: Error: Type variables can't be used in static members.
-// void Function (U y) foo7 = (U y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:23:19: Error: Type variables can't be used in static members.
+// void Function(U y) foo7 = (U y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:17:33: Error: Type variables can't be used in static members.
-// void Function (U y) foo7 = (U y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:23:32: Error: Type variables can't be used in static members.
+// void Function(U y) foo7 = (U y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:18:25: Error: Type variables can't be used in static members.
-// void Function (List<U> y) foo7Prime = (List<U> y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:24:24: Error: Type variables can't be used in static members.
+// void Function(List<U> y) foo7Prime = (List<U> y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:18:49: Error: Type variables can't be used in static members.
-// void Function (List<U> y) foo7Prime = (List<U> y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_class.dart:24:48: Error: Type variables can't be used in static members.
+// void Function(List<U> y) foo7Prime = (List<U> y) => y;
+// ^
//
import self as self;
import "dart:core" as core;
-class Foo<U extends core::Object* = dynamic> extends core::Object {
- static field invalid-type foo14 = null;
- static field core::List<invalid-type>* foo14Prime = null;
- static field (invalid-type) →* invalid-type foo15 = null;
- static field (core::List<invalid-type>*) →* core::List<invalid-type>* foo15Prime = null;
- synthetic constructor •() → self::Foo<self::Foo::U*>*
+class Foo<U extends core::Object? = dynamic> extends core::Object {
+ late static field invalid-type foo14;
+ late static field core::List<invalid-type> foo14Prime;
+ late static field (invalid-type) → invalid-type foo15;
+ late static field (core::List<invalid-type>) → core::List<invalid-type> foo15Prime;
+ synthetic constructor •() → self::Foo<self::Foo::U%>
: super core::Object::•()
;
static method foo1() → invalid-type {
return null;
}
- static method foo1Prime() → core::List<invalid-type>* {
- return null;
+ static method foo1Prime() → core::List<invalid-type> {
+ throw "";
}
- static method foo2(invalid-type x) → void {
- return null;
- }
- static method foo2Prime(core::List<invalid-type>* x) → void {
- return null;
- }
+ static method foo2(invalid-type x) → void {}
+ static method foo2Prime(core::List<invalid-type> x) → void {}
static method foo3() → void {
invalid-type foo4;
- core::List<invalid-type>* foo4Prime;
+ core::List<invalid-type> foo4Prime;
function foo5(invalid-type y) → void
return core::print(y);
- function foo5Prime(core::List<invalid-type>* y) → void
+ function foo5Prime(core::List<invalid-type> y) → void
return core::print(y);
function foo6() → invalid-type
return null;
- function foo6Prime() → core::List<invalid-type>*
- return null;
- (invalid-type) →* void foo7 = (invalid-type y) → invalid-type => y;
- (core::List<invalid-type>*) →* void foo7Prime = (core::List<invalid-type>* y) → core::List<invalid-type>* => y;
+ function foo6Prime() → core::List<invalid-type>
+ return throw "";
+ (invalid-type) → void foo7 = (invalid-type y) → void => y;
+ (core::List<invalid-type>) → void foo7Prime = (core::List<invalid-type> y) → void => y;
}
- static method foo8() → () →* invalid-type {
- return null;
+ static method foo8() → () → invalid-type {
+ throw "";
}
- static method foo8Prime() → () →* core::List<invalid-type>* {
- return null;
+ static method foo8Prime() → () → core::List<invalid-type> {
+ throw "";
}
- static method foo9() → (invalid-type) →* void {
- return null;
- }
- static method foo9Prime() → (core::List<invalid-type>*) →* void {
- return null;
- }
- static method foo10(() →* invalid-type Function) → void {
- return null;
- }
- static method foo10Prime(() →* core::List<invalid-type>* Function) → void {
- return null;
- }
- static method foo11((dynamic) →* void Function) → void {
- return null;
- }
- static method foo12((invalid-type) →* void b) → void {
- return null;
- }
- static method foo12Prime((core::List<invalid-type>*) →* void b) → void {
- return null;
- }
- static method foo13((invalid-type) →* void Function) → void {
- return null;
- }
- static method foo13Prime((core::List<invalid-type>*) →* void Function) → void {
- return null;
- }
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static method foo9() → (invalid-type) → void {}
+ static method foo9Prime() → (core::List<invalid-type>) → void {}
+ static method foo10(() → invalid-type Function) → void {}
+ static method foo10Prime(() → core::List<invalid-type> Function) → void {}
+ static method foo11((dynamic) → void Function) → void {}
+ static method foo12((invalid-type) → void b) → void {}
+ static method foo12Prime((core::List<invalid-type>) → void b) → void {}
+ static method foo13((invalid-type) → void Function) → void {}
+ static method foo13Prime((core::List<invalid-type>) → void Function) → void {}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart
index eaa9410..a3710ed 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart
@@ -1,40 +1,64 @@
// Copyright (c) 2020, 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.
-// @dart=2.9
+
extension Foo<U> on List {
- static U foo1() { return null; }
- static List<U> foo1Prime() { return null; }
- static void foo2(U x) { return null; }
- static void foo2Prime(List<U> x) { return null; }
+ static U foo1() {
+ throw '';
+ }
+
+ static List<U> foo1Prime() {
+ throw '';
+ }
+
+ static void foo2(U x) {}
+
+ static void foo2Prime(List<U> x) {}
+
static void foo3() {
U foo4;
List<U> foo4Prime;
void foo5(U y) => print(y);
void foo5Prime(List<U> y) => print(y);
- U foo6() => null;
- List<U> foo6Prime() => null;
- void Function (U y) foo7 = (U y) => y;
- void Function (List<U> y) foo7Prime = (List<U> y) => y;
+ U foo6() => throw '';
+ List<U> foo6Prime() => throw '';
+ void Function(U y) foo7 = (U y) => y;
+ void Function(List<U> y) foo7Prime = (List<U> y) => y;
}
- static U Function() foo8() { return null; }
- static List<U> Function() foo8Prime() { return null; }
- static void Function(U) foo9() { return null; }
- static void Function(List<U>) foo9Prime() { return null; }
- static void foo10(U Function()) { return null; }
- static void foo10Prime(List<U> Function()) { return null; }
+
+ static U Function() foo8() {
+ throw '';
+ }
+
+ static List<U> Function() foo8Prime() {
+ throw '';
+ }
+
+ static void Function(U) foo9() {}
+
+ static void Function(List<U>) foo9Prime() {}
+
+ static void foo10(U Function()) {}
+
+ static void foo10Prime(List<U> Function()) {}
+
// old syntax: variable named "U" of a function called 'Function'.
- static void foo11(void Function(U)) { return null; }
- static void foo12(void Function(U) b) { return null; }
- static void foo12Prime(void Function(List<U>) b) { return null; }
+ static void foo11(void Function(U)) {}
+
+ static void foo12(void Function(U) b) {}
+
+ static void foo12Prime(void Function(List<U>) b) {}
+
// old syntax: variable named "b" of type "U" of a function called 'Function'.
- static void foo13(void Function(U b)) { return null; }
+ static void foo13(void Function(U b)) {}
+
// old syntax: variable named "b" of type "List<U>" of a function called 'Function'.
- static void foo13Prime(void Function(List<U> b)) { return null; }
- static U foo14 = null;
- static List<U> foo14Prime = null;
- static U Function(U) foo15 = null;
- static List<U> Function(List<U>) foo15Prime = null;
+ static void foo13Prime(void Function(List<U> b)) {}
+
+ static late U foo14;
+ static late List<U> foo14Prime;
+ static late U Function(U) foo15;
+ static late List<U> Function(List<U>) foo15Prime;
}
main() {}
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.textual_outline.expect b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.textual_outline.expect
index 1fd65fd..650cef8 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
extension Foo<U> on List {
static U foo1() {}
static List<U> foo1Prime() {}
@@ -16,10 +15,13 @@
static void foo12Prime(void Function(List<U>) b) {}
static void foo13(void Function(U b)) {}
static void foo13Prime(void Function(List<U> b)) {}
- static U foo14 = null;
- static List<U> foo14Prime = null;
- static U Function(U) foo15 = null;
- static List<U> Function(List<U>) foo15Prime = null;
+ static late U ;
+ foo14;
+ static late List<U> (){}
+ foo14Prime;
+ static late U ;
+ Function(U) foo15;
+ static late List<U> (){}
+ Function(List<U>) foo15Prime;
}
-
main() {}
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.textual_outline_modelled.expect
index c76c6e7..72cd4cf 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
extension Foo<U> on List {
static List<U> Function() foo8Prime() {}
static List<U> Function(List<U>) foo15Prime = null;
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.weak.expect b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.weak.expect
index d4e95b2..5a2f4c6 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.weak.expect
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.weak.expect
@@ -1,131 +1,131 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:6:10: Error: Type variables can't be used in static members.
-// static U foo1() { return null; }
+// static U foo1() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:7:15: Error: Type variables can't be used in static members.
-// static List<U> foo1Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:10:15: Error: Type variables can't be used in static members.
+// static List<U> foo1Prime() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:8:20: Error: Type variables can't be used in static members.
-// static void foo2(U x) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:14:20: Error: Type variables can't be used in static members.
+// static void foo2(U x) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:9:30: Error: Type variables can't be used in static members.
-// static void foo2Prime(List<U> x) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:16:30: Error: Type variables can't be used in static members.
+// static void foo2Prime(List<U> x) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:20:10: Error: Type variables can't be used in static members.
-// static U Function() foo8() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:29:10: Error: Type variables can't be used in static members.
+// static U Function() foo8() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:21:15: Error: Type variables can't be used in static members.
-// static List<U> Function() foo8Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:33:15: Error: Type variables can't be used in static members.
+// static List<U> Function() foo8Prime() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:22:24: Error: Type variables can't be used in static members.
-// static void Function(U) foo9() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:37:24: Error: Type variables can't be used in static members.
+// static void Function(U) foo9() {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:23:29: Error: Type variables can't be used in static members.
-// static void Function(List<U>) foo9Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:39:29: Error: Type variables can't be used in static members.
+// static void Function(List<U>) foo9Prime() {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:24:21: Error: Type variables can't be used in static members.
-// static void foo10(U Function()) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:41:21: Error: Type variables can't be used in static members.
+// static void foo10(U Function()) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:25:31: Error: Type variables can't be used in static members.
-// static void foo10Prime(List<U> Function()) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:43:31: Error: Type variables can't be used in static members.
+// static void foo10Prime(List<U> Function()) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:28:35: Error: Type variables can't be used in static members.
-// static void foo12(void Function(U) b) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:48:35: Error: Type variables can't be used in static members.
+// static void foo12(void Function(U) b) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:29:45: Error: Type variables can't be used in static members.
-// static void foo12Prime(void Function(List<U>) b) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:50:45: Error: Type variables can't be used in static members.
+// static void foo12Prime(void Function(List<U>) b) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:31:35: Error: Type variables can't be used in static members.
-// static void foo13(void Function(U b)) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:53:35: Error: Type variables can't be used in static members.
+// static void foo13(void Function(U b)) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:33:45: Error: Type variables can't be used in static members.
-// static void foo13Prime(void Function(List<U> b)) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:56:45: Error: Type variables can't be used in static members.
+// static void foo13Prime(void Function(List<U> b)) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:34:10: Error: Type variables can't be used in static members.
-// static U foo14 = null;
-// ^
-//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:35:15: Error: Type variables can't be used in static members.
-// static List<U> foo14Prime = null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:58:15: Error: Type variables can't be used in static members.
+// static late U foo14;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:36:10: Error: Type variables can't be used in static members.
-// static U Function(U) foo15 = null;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:59:20: Error: Type variables can't be used in static members.
+// static late List<U> foo14Prime;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:36:21: Error: Type variables can't be used in static members.
-// static U Function(U) foo15 = null;
-// ^
-//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:37:15: Error: Type variables can't be used in static members.
-// static List<U> Function(List<U>) foo15Prime = null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:60:15: Error: Type variables can't be used in static members.
+// static late U Function(U) foo15;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:37:32: Error: Type variables can't be used in static members.
-// static List<U> Function(List<U>) foo15Prime = null;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:60:26: Error: Type variables can't be used in static members.
+// static late U Function(U) foo15;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:11:5: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:61:20: Error: Type variables can't be used in static members.
+// static late List<U> Function(List<U>) foo15Prime;
+// ^
+//
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:61:37: Error: Type variables can't be used in static members.
+// static late List<U> Function(List<U>) foo15Prime;
+// ^
+//
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:19:5: Error: Type variables can't be used in static members.
// U foo4;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:12:10: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:20:10: Error: Type variables can't be used in static members.
// List<U> foo4Prime;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:13:15: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:21:15: Error: Type variables can't be used in static members.
// void foo5(U y) => print(y);
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:14:25: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:22:25: Error: Type variables can't be used in static members.
// void foo5Prime(List<U> y) => print(y);
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:15:5: Error: Type variables can't be used in static members.
-// U foo6() => null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:23:5: Error: Type variables can't be used in static members.
+// U foo6() => throw '';
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:16:10: Error: Type variables can't be used in static members.
-// List<U> foo6Prime() => null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:24:10: Error: Type variables can't be used in static members.
+// List<U> foo6Prime() => throw '';
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:17:20: Error: Type variables can't be used in static members.
-// void Function (U y) foo7 = (U y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:25:19: Error: Type variables can't be used in static members.
+// void Function(U y) foo7 = (U y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:17:33: Error: Type variables can't be used in static members.
-// void Function (U y) foo7 = (U y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:25:32: Error: Type variables can't be used in static members.
+// void Function(U y) foo7 = (U y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:18:25: Error: Type variables can't be used in static members.
-// void Function (List<U> y) foo7Prime = (List<U> y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:26:24: Error: Type variables can't be used in static members.
+// void Function(List<U> y) foo7Prime = (List<U> y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:18:49: Error: Type variables can't be used in static members.
-// void Function (List<U> y) foo7Prime = (List<U> y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:26:48: Error: Type variables can't be used in static members.
+// void Function(List<U> y) foo7Prime = (List<U> y) => y;
+// ^
//
import self as self;
import "dart:core" as core;
-extension Foo<U extends core::Object* = dynamic> on core::List<dynamic>* {
+extension Foo<U extends core::Object? = dynamic> on core::List<dynamic> {
static method foo1 = self::Foo|foo1;
static method foo1Prime = self::Foo|foo1Prime;
static method foo2 = self::Foo|foo2;
@@ -147,67 +147,45 @@
static field foo15 = self::Foo|foo15;
static field foo15Prime = self::Foo|foo15Prime;
}
-static field invalid-type Foo|foo14 = null;
-static field core::List<invalid-type>* Foo|foo14Prime = null;
-static field (invalid-type) →* invalid-type Foo|foo15 = null;
-static field (core::List<invalid-type>*) →* core::List<invalid-type>* Foo|foo15Prime = null;
+late static field invalid-type Foo|foo14;
+late static field core::List<invalid-type> Foo|foo14Prime;
+late static field (invalid-type) → invalid-type Foo|foo15;
+late static field (core::List<invalid-type>) → core::List<invalid-type> Foo|foo15Prime;
static method Foo|foo1() → invalid-type {
- return null;
+ throw "";
}
-static method Foo|foo1Prime() → core::List<invalid-type>* {
- return null;
+static method Foo|foo1Prime() → core::List<invalid-type> {
+ throw "";
}
-static method Foo|foo2(invalid-type x) → void {
- return null;
-}
-static method Foo|foo2Prime(core::List<invalid-type>* x) → void {
- return null;
-}
+static method Foo|foo2(invalid-type x) → void {}
+static method Foo|foo2Prime(core::List<invalid-type> x) → void {}
static method Foo|foo3() → void {
invalid-type foo4;
- core::List<invalid-type>* foo4Prime;
+ core::List<invalid-type> foo4Prime;
function foo5(invalid-type y) → void
return core::print(y);
- function foo5Prime(core::List<invalid-type>* y) → void
+ function foo5Prime(core::List<invalid-type> y) → void
return core::print(y);
function foo6() → invalid-type
- return null;
- function foo6Prime() → core::List<invalid-type>*
- return null;
- (invalid-type) →* void foo7 = (invalid-type y) → invalid-type => y;
- (core::List<invalid-type>*) →* void foo7Prime = (core::List<invalid-type>* y) → core::List<invalid-type>* => y;
+ return throw "";
+ function foo6Prime() → core::List<invalid-type>
+ return throw "";
+ (invalid-type) → void foo7 = (invalid-type y) → void => y;
+ (core::List<invalid-type>) → void foo7Prime = (core::List<invalid-type> y) → void => y;
}
-static method Foo|foo8() → () →* invalid-type {
- return null;
+static method Foo|foo8() → () → invalid-type {
+ throw "";
}
-static method Foo|foo8Prime() → () →* core::List<invalid-type>* {
- return null;
+static method Foo|foo8Prime() → () → core::List<invalid-type> {
+ throw "";
}
-static method Foo|foo9() → (invalid-type) →* void {
- return null;
-}
-static method Foo|foo9Prime() → (core::List<invalid-type>*) →* void {
- return null;
-}
-static method Foo|foo10(() →* invalid-type Function) → void {
- return null;
-}
-static method Foo|foo10Prime(() →* core::List<invalid-type>* Function) → void {
- return null;
-}
-static method Foo|foo11((dynamic) →* void Function) → void {
- return null;
-}
-static method Foo|foo12((invalid-type) →* void b) → void {
- return null;
-}
-static method Foo|foo12Prime((core::List<invalid-type>*) →* void b) → void {
- return null;
-}
-static method Foo|foo13((invalid-type) →* void Function) → void {
- return null;
-}
-static method Foo|foo13Prime((core::List<invalid-type>*) →* void Function) → void {
- return null;
-}
+static method Foo|foo9() → (invalid-type) → void {}
+static method Foo|foo9Prime() → (core::List<invalid-type>) → void {}
+static method Foo|foo10(() → invalid-type Function) → void {}
+static method Foo|foo10Prime(() → core::List<invalid-type> Function) → void {}
+static method Foo|foo11((dynamic) → void Function) → void {}
+static method Foo|foo12((invalid-type) → void b) → void {}
+static method Foo|foo12Prime((core::List<invalid-type>) → void b) → void {}
+static method Foo|foo13((invalid-type) → void Function) → void {}
+static method Foo|foo13Prime((core::List<invalid-type>) → void Function) → void {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.weak.modular.expect b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.weak.modular.expect
index d4e95b2..5a2f4c6 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.weak.modular.expect
@@ -1,131 +1,131 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:6:10: Error: Type variables can't be used in static members.
-// static U foo1() { return null; }
+// static U foo1() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:7:15: Error: Type variables can't be used in static members.
-// static List<U> foo1Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:10:15: Error: Type variables can't be used in static members.
+// static List<U> foo1Prime() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:8:20: Error: Type variables can't be used in static members.
-// static void foo2(U x) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:14:20: Error: Type variables can't be used in static members.
+// static void foo2(U x) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:9:30: Error: Type variables can't be used in static members.
-// static void foo2Prime(List<U> x) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:16:30: Error: Type variables can't be used in static members.
+// static void foo2Prime(List<U> x) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:20:10: Error: Type variables can't be used in static members.
-// static U Function() foo8() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:29:10: Error: Type variables can't be used in static members.
+// static U Function() foo8() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:21:15: Error: Type variables can't be used in static members.
-// static List<U> Function() foo8Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:33:15: Error: Type variables can't be used in static members.
+// static List<U> Function() foo8Prime() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:22:24: Error: Type variables can't be used in static members.
-// static void Function(U) foo9() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:37:24: Error: Type variables can't be used in static members.
+// static void Function(U) foo9() {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:23:29: Error: Type variables can't be used in static members.
-// static void Function(List<U>) foo9Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:39:29: Error: Type variables can't be used in static members.
+// static void Function(List<U>) foo9Prime() {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:24:21: Error: Type variables can't be used in static members.
-// static void foo10(U Function()) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:41:21: Error: Type variables can't be used in static members.
+// static void foo10(U Function()) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:25:31: Error: Type variables can't be used in static members.
-// static void foo10Prime(List<U> Function()) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:43:31: Error: Type variables can't be used in static members.
+// static void foo10Prime(List<U> Function()) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:28:35: Error: Type variables can't be used in static members.
-// static void foo12(void Function(U) b) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:48:35: Error: Type variables can't be used in static members.
+// static void foo12(void Function(U) b) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:29:45: Error: Type variables can't be used in static members.
-// static void foo12Prime(void Function(List<U>) b) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:50:45: Error: Type variables can't be used in static members.
+// static void foo12Prime(void Function(List<U>) b) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:31:35: Error: Type variables can't be used in static members.
-// static void foo13(void Function(U b)) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:53:35: Error: Type variables can't be used in static members.
+// static void foo13(void Function(U b)) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:33:45: Error: Type variables can't be used in static members.
-// static void foo13Prime(void Function(List<U> b)) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:56:45: Error: Type variables can't be used in static members.
+// static void foo13Prime(void Function(List<U> b)) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:34:10: Error: Type variables can't be used in static members.
-// static U foo14 = null;
-// ^
-//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:35:15: Error: Type variables can't be used in static members.
-// static List<U> foo14Prime = null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:58:15: Error: Type variables can't be used in static members.
+// static late U foo14;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:36:10: Error: Type variables can't be used in static members.
-// static U Function(U) foo15 = null;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:59:20: Error: Type variables can't be used in static members.
+// static late List<U> foo14Prime;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:36:21: Error: Type variables can't be used in static members.
-// static U Function(U) foo15 = null;
-// ^
-//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:37:15: Error: Type variables can't be used in static members.
-// static List<U> Function(List<U>) foo15Prime = null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:60:15: Error: Type variables can't be used in static members.
+// static late U Function(U) foo15;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:37:32: Error: Type variables can't be used in static members.
-// static List<U> Function(List<U>) foo15Prime = null;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:60:26: Error: Type variables can't be used in static members.
+// static late U Function(U) foo15;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:11:5: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:61:20: Error: Type variables can't be used in static members.
+// static late List<U> Function(List<U>) foo15Prime;
+// ^
+//
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:61:37: Error: Type variables can't be used in static members.
+// static late List<U> Function(List<U>) foo15Prime;
+// ^
+//
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:19:5: Error: Type variables can't be used in static members.
// U foo4;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:12:10: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:20:10: Error: Type variables can't be used in static members.
// List<U> foo4Prime;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:13:15: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:21:15: Error: Type variables can't be used in static members.
// void foo5(U y) => print(y);
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:14:25: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:22:25: Error: Type variables can't be used in static members.
// void foo5Prime(List<U> y) => print(y);
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:15:5: Error: Type variables can't be used in static members.
-// U foo6() => null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:23:5: Error: Type variables can't be used in static members.
+// U foo6() => throw '';
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:16:10: Error: Type variables can't be used in static members.
-// List<U> foo6Prime() => null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:24:10: Error: Type variables can't be used in static members.
+// List<U> foo6Prime() => throw '';
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:17:20: Error: Type variables can't be used in static members.
-// void Function (U y) foo7 = (U y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:25:19: Error: Type variables can't be used in static members.
+// void Function(U y) foo7 = (U y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:17:33: Error: Type variables can't be used in static members.
-// void Function (U y) foo7 = (U y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:25:32: Error: Type variables can't be used in static members.
+// void Function(U y) foo7 = (U y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:18:25: Error: Type variables can't be used in static members.
-// void Function (List<U> y) foo7Prime = (List<U> y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:26:24: Error: Type variables can't be used in static members.
+// void Function(List<U> y) foo7Prime = (List<U> y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:18:49: Error: Type variables can't be used in static members.
-// void Function (List<U> y) foo7Prime = (List<U> y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:26:48: Error: Type variables can't be used in static members.
+// void Function(List<U> y) foo7Prime = (List<U> y) => y;
+// ^
//
import self as self;
import "dart:core" as core;
-extension Foo<U extends core::Object* = dynamic> on core::List<dynamic>* {
+extension Foo<U extends core::Object? = dynamic> on core::List<dynamic> {
static method foo1 = self::Foo|foo1;
static method foo1Prime = self::Foo|foo1Prime;
static method foo2 = self::Foo|foo2;
@@ -147,67 +147,45 @@
static field foo15 = self::Foo|foo15;
static field foo15Prime = self::Foo|foo15Prime;
}
-static field invalid-type Foo|foo14 = null;
-static field core::List<invalid-type>* Foo|foo14Prime = null;
-static field (invalid-type) →* invalid-type Foo|foo15 = null;
-static field (core::List<invalid-type>*) →* core::List<invalid-type>* Foo|foo15Prime = null;
+late static field invalid-type Foo|foo14;
+late static field core::List<invalid-type> Foo|foo14Prime;
+late static field (invalid-type) → invalid-type Foo|foo15;
+late static field (core::List<invalid-type>) → core::List<invalid-type> Foo|foo15Prime;
static method Foo|foo1() → invalid-type {
- return null;
+ throw "";
}
-static method Foo|foo1Prime() → core::List<invalid-type>* {
- return null;
+static method Foo|foo1Prime() → core::List<invalid-type> {
+ throw "";
}
-static method Foo|foo2(invalid-type x) → void {
- return null;
-}
-static method Foo|foo2Prime(core::List<invalid-type>* x) → void {
- return null;
-}
+static method Foo|foo2(invalid-type x) → void {}
+static method Foo|foo2Prime(core::List<invalid-type> x) → void {}
static method Foo|foo3() → void {
invalid-type foo4;
- core::List<invalid-type>* foo4Prime;
+ core::List<invalid-type> foo4Prime;
function foo5(invalid-type y) → void
return core::print(y);
- function foo5Prime(core::List<invalid-type>* y) → void
+ function foo5Prime(core::List<invalid-type> y) → void
return core::print(y);
function foo6() → invalid-type
- return null;
- function foo6Prime() → core::List<invalid-type>*
- return null;
- (invalid-type) →* void foo7 = (invalid-type y) → invalid-type => y;
- (core::List<invalid-type>*) →* void foo7Prime = (core::List<invalid-type>* y) → core::List<invalid-type>* => y;
+ return throw "";
+ function foo6Prime() → core::List<invalid-type>
+ return throw "";
+ (invalid-type) → void foo7 = (invalid-type y) → void => y;
+ (core::List<invalid-type>) → void foo7Prime = (core::List<invalid-type> y) → void => y;
}
-static method Foo|foo8() → () →* invalid-type {
- return null;
+static method Foo|foo8() → () → invalid-type {
+ throw "";
}
-static method Foo|foo8Prime() → () →* core::List<invalid-type>* {
- return null;
+static method Foo|foo8Prime() → () → core::List<invalid-type> {
+ throw "";
}
-static method Foo|foo9() → (invalid-type) →* void {
- return null;
-}
-static method Foo|foo9Prime() → (core::List<invalid-type>*) →* void {
- return null;
-}
-static method Foo|foo10(() →* invalid-type Function) → void {
- return null;
-}
-static method Foo|foo10Prime(() →* core::List<invalid-type>* Function) → void {
- return null;
-}
-static method Foo|foo11((dynamic) →* void Function) → void {
- return null;
-}
-static method Foo|foo12((invalid-type) →* void b) → void {
- return null;
-}
-static method Foo|foo12Prime((core::List<invalid-type>*) →* void b) → void {
- return null;
-}
-static method Foo|foo13((invalid-type) →* void Function) → void {
- return null;
-}
-static method Foo|foo13Prime((core::List<invalid-type>*) →* void Function) → void {
- return null;
-}
+static method Foo|foo9() → (invalid-type) → void {}
+static method Foo|foo9Prime() → (core::List<invalid-type>) → void {}
+static method Foo|foo10(() → invalid-type Function) → void {}
+static method Foo|foo10Prime(() → core::List<invalid-type> Function) → void {}
+static method Foo|foo11((dynamic) → void Function) → void {}
+static method Foo|foo12((invalid-type) → void b) → void {}
+static method Foo|foo12Prime((core::List<invalid-type>) → void b) → void {}
+static method Foo|foo13((invalid-type) → void Function) → void {}
+static method Foo|foo13Prime((core::List<invalid-type>) → void Function) → void {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.weak.outline.expect b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.weak.outline.expect
index 03ea969..fad69a5 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.weak.outline.expect
@@ -1,91 +1,91 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:6:10: Error: Type variables can't be used in static members.
-// static U foo1() { return null; }
+// static U foo1() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:7:15: Error: Type variables can't be used in static members.
-// static List<U> foo1Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:10:15: Error: Type variables can't be used in static members.
+// static List<U> foo1Prime() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:8:20: Error: Type variables can't be used in static members.
-// static void foo2(U x) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:14:20: Error: Type variables can't be used in static members.
+// static void foo2(U x) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:9:30: Error: Type variables can't be used in static members.
-// static void foo2Prime(List<U> x) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:16:30: Error: Type variables can't be used in static members.
+// static void foo2Prime(List<U> x) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:20:10: Error: Type variables can't be used in static members.
-// static U Function() foo8() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:29:10: Error: Type variables can't be used in static members.
+// static U Function() foo8() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:21:15: Error: Type variables can't be used in static members.
-// static List<U> Function() foo8Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:33:15: Error: Type variables can't be used in static members.
+// static List<U> Function() foo8Prime() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:22:24: Error: Type variables can't be used in static members.
-// static void Function(U) foo9() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:37:24: Error: Type variables can't be used in static members.
+// static void Function(U) foo9() {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:23:29: Error: Type variables can't be used in static members.
-// static void Function(List<U>) foo9Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:39:29: Error: Type variables can't be used in static members.
+// static void Function(List<U>) foo9Prime() {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:24:21: Error: Type variables can't be used in static members.
-// static void foo10(U Function()) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:41:21: Error: Type variables can't be used in static members.
+// static void foo10(U Function()) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:25:31: Error: Type variables can't be used in static members.
-// static void foo10Prime(List<U> Function()) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:43:31: Error: Type variables can't be used in static members.
+// static void foo10Prime(List<U> Function()) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:28:35: Error: Type variables can't be used in static members.
-// static void foo12(void Function(U) b) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:48:35: Error: Type variables can't be used in static members.
+// static void foo12(void Function(U) b) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:29:45: Error: Type variables can't be used in static members.
-// static void foo12Prime(void Function(List<U>) b) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:50:45: Error: Type variables can't be used in static members.
+// static void foo12Prime(void Function(List<U>) b) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:31:35: Error: Type variables can't be used in static members.
-// static void foo13(void Function(U b)) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:53:35: Error: Type variables can't be used in static members.
+// static void foo13(void Function(U b)) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:33:45: Error: Type variables can't be used in static members.
-// static void foo13Prime(void Function(List<U> b)) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:56:45: Error: Type variables can't be used in static members.
+// static void foo13Prime(void Function(List<U> b)) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:34:10: Error: Type variables can't be used in static members.
-// static U foo14 = null;
-// ^
-//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:35:15: Error: Type variables can't be used in static members.
-// static List<U> foo14Prime = null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:58:15: Error: Type variables can't be used in static members.
+// static late U foo14;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:36:10: Error: Type variables can't be used in static members.
-// static U Function(U) foo15 = null;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:59:20: Error: Type variables can't be used in static members.
+// static late List<U> foo14Prime;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:36:21: Error: Type variables can't be used in static members.
-// static U Function(U) foo15 = null;
-// ^
-//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:37:15: Error: Type variables can't be used in static members.
-// static List<U> Function(List<U>) foo15Prime = null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:60:15: Error: Type variables can't be used in static members.
+// static late U Function(U) foo15;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:37:32: Error: Type variables can't be used in static members.
-// static List<U> Function(List<U>) foo15Prime = null;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:60:26: Error: Type variables can't be used in static members.
+// static late U Function(U) foo15;
+// ^
+//
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:61:20: Error: Type variables can't be used in static members.
+// static late List<U> Function(List<U>) foo15Prime;
+// ^
+//
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:61:37: Error: Type variables can't be used in static members.
+// static late List<U> Function(List<U>) foo15Prime;
+// ^
//
import self as self;
import "dart:core" as core;
-extension Foo<U extends core::Object* = dynamic> on core::List<dynamic>* {
+extension Foo<U extends core::Object? = dynamic> on core::List<dynamic> {
static method foo1 = self::Foo|foo1;
static method foo1Prime = self::Foo|foo1Prime;
static method foo2 = self::Foo|foo2;
@@ -107,41 +107,41 @@
static field foo15 = self::Foo|foo15;
static field foo15Prime = self::Foo|foo15Prime;
}
-static field invalid-type Foo|foo14;
-static field core::List<invalid-type>* Foo|foo14Prime;
-static field (invalid-type) →* invalid-type Foo|foo15;
-static field (core::List<invalid-type>*) →* core::List<invalid-type>* Foo|foo15Prime;
+late static field invalid-type Foo|foo14;
+late static field core::List<invalid-type> Foo|foo14Prime;
+late static field (invalid-type) → invalid-type Foo|foo15;
+late static field (core::List<invalid-type>) → core::List<invalid-type> Foo|foo15Prime;
static method Foo|foo1() → invalid-type
;
-static method Foo|foo1Prime() → core::List<invalid-type>*
+static method Foo|foo1Prime() → core::List<invalid-type>
;
static method Foo|foo2(invalid-type x) → void
;
-static method Foo|foo2Prime(core::List<invalid-type>* x) → void
+static method Foo|foo2Prime(core::List<invalid-type> x) → void
;
static method Foo|foo3() → void
;
-static method Foo|foo8() → () →* invalid-type
+static method Foo|foo8() → () → invalid-type
;
-static method Foo|foo8Prime() → () →* core::List<invalid-type>*
+static method Foo|foo8Prime() → () → core::List<invalid-type>
;
-static method Foo|foo9() → (invalid-type) →* void
+static method Foo|foo9() → (invalid-type) → void
;
-static method Foo|foo9Prime() → (core::List<invalid-type>*) →* void
+static method Foo|foo9Prime() → (core::List<invalid-type>) → void
;
-static method Foo|foo10(() →* invalid-type Function) → void
+static method Foo|foo10(() → invalid-type Function) → void
;
-static method Foo|foo10Prime(() →* core::List<invalid-type>* Function) → void
+static method Foo|foo10Prime(() → core::List<invalid-type> Function) → void
;
-static method Foo|foo11((dynamic) →* void Function) → void
+static method Foo|foo11((dynamic) → void Function) → void
;
-static method Foo|foo12((invalid-type) →* void b) → void
+static method Foo|foo12((invalid-type) → void b) → void
;
-static method Foo|foo12Prime((core::List<invalid-type>*) →* void b) → void
+static method Foo|foo12Prime((core::List<invalid-type>) → void b) → void
;
-static method Foo|foo13((invalid-type) →* void Function) → void
+static method Foo|foo13((invalid-type) → void Function) → void
;
-static method Foo|foo13Prime((core::List<invalid-type>*) →* void Function) → void
+static method Foo|foo13Prime((core::List<invalid-type>) → void Function) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.weak.transformed.expect b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.weak.transformed.expect
index d4e95b2..5a2f4c6 100644
--- a/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart.weak.transformed.expect
@@ -1,131 +1,131 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:6:10: Error: Type variables can't be used in static members.
-// static U foo1() { return null; }
+// static U foo1() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:7:15: Error: Type variables can't be used in static members.
-// static List<U> foo1Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:10:15: Error: Type variables can't be used in static members.
+// static List<U> foo1Prime() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:8:20: Error: Type variables can't be used in static members.
-// static void foo2(U x) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:14:20: Error: Type variables can't be used in static members.
+// static void foo2(U x) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:9:30: Error: Type variables can't be used in static members.
-// static void foo2Prime(List<U> x) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:16:30: Error: Type variables can't be used in static members.
+// static void foo2Prime(List<U> x) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:20:10: Error: Type variables can't be used in static members.
-// static U Function() foo8() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:29:10: Error: Type variables can't be used in static members.
+// static U Function() foo8() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:21:15: Error: Type variables can't be used in static members.
-// static List<U> Function() foo8Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:33:15: Error: Type variables can't be used in static members.
+// static List<U> Function() foo8Prime() {
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:22:24: Error: Type variables can't be used in static members.
-// static void Function(U) foo9() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:37:24: Error: Type variables can't be used in static members.
+// static void Function(U) foo9() {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:23:29: Error: Type variables can't be used in static members.
-// static void Function(List<U>) foo9Prime() { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:39:29: Error: Type variables can't be used in static members.
+// static void Function(List<U>) foo9Prime() {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:24:21: Error: Type variables can't be used in static members.
-// static void foo10(U Function()) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:41:21: Error: Type variables can't be used in static members.
+// static void foo10(U Function()) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:25:31: Error: Type variables can't be used in static members.
-// static void foo10Prime(List<U> Function()) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:43:31: Error: Type variables can't be used in static members.
+// static void foo10Prime(List<U> Function()) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:28:35: Error: Type variables can't be used in static members.
-// static void foo12(void Function(U) b) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:48:35: Error: Type variables can't be used in static members.
+// static void foo12(void Function(U) b) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:29:45: Error: Type variables can't be used in static members.
-// static void foo12Prime(void Function(List<U>) b) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:50:45: Error: Type variables can't be used in static members.
+// static void foo12Prime(void Function(List<U>) b) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:31:35: Error: Type variables can't be used in static members.
-// static void foo13(void Function(U b)) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:53:35: Error: Type variables can't be used in static members.
+// static void foo13(void Function(U b)) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:33:45: Error: Type variables can't be used in static members.
-// static void foo13Prime(void Function(List<U> b)) { return null; }
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:56:45: Error: Type variables can't be used in static members.
+// static void foo13Prime(void Function(List<U> b)) {}
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:34:10: Error: Type variables can't be used in static members.
-// static U foo14 = null;
-// ^
-//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:35:15: Error: Type variables can't be used in static members.
-// static List<U> foo14Prime = null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:58:15: Error: Type variables can't be used in static members.
+// static late U foo14;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:36:10: Error: Type variables can't be used in static members.
-// static U Function(U) foo15 = null;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:59:20: Error: Type variables can't be used in static members.
+// static late List<U> foo14Prime;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:36:21: Error: Type variables can't be used in static members.
-// static U Function(U) foo15 = null;
-// ^
-//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:37:15: Error: Type variables can't be used in static members.
-// static List<U> Function(List<U>) foo15Prime = null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:60:15: Error: Type variables can't be used in static members.
+// static late U Function(U) foo15;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:37:32: Error: Type variables can't be used in static members.
-// static List<U> Function(List<U>) foo15Prime = null;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:60:26: Error: Type variables can't be used in static members.
+// static late U Function(U) foo15;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:11:5: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:61:20: Error: Type variables can't be used in static members.
+// static late List<U> Function(List<U>) foo15Prime;
+// ^
+//
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:61:37: Error: Type variables can't be used in static members.
+// static late List<U> Function(List<U>) foo15Prime;
+// ^
+//
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:19:5: Error: Type variables can't be used in static members.
// U foo4;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:12:10: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:20:10: Error: Type variables can't be used in static members.
// List<U> foo4Prime;
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:13:15: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:21:15: Error: Type variables can't be used in static members.
// void foo5(U y) => print(y);
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:14:25: Error: Type variables can't be used in static members.
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:22:25: Error: Type variables can't be used in static members.
// void foo5Prime(List<U> y) => print(y);
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:15:5: Error: Type variables can't be used in static members.
-// U foo6() => null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:23:5: Error: Type variables can't be used in static members.
+// U foo6() => throw '';
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:16:10: Error: Type variables can't be used in static members.
-// List<U> foo6Prime() => null;
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:24:10: Error: Type variables can't be used in static members.
+// List<U> foo6Prime() => throw '';
// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:17:20: Error: Type variables can't be used in static members.
-// void Function (U y) foo7 = (U y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:25:19: Error: Type variables can't be used in static members.
+// void Function(U y) foo7 = (U y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:17:33: Error: Type variables can't be used in static members.
-// void Function (U y) foo7 = (U y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:25:32: Error: Type variables can't be used in static members.
+// void Function(U y) foo7 = (U y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:18:25: Error: Type variables can't be used in static members.
-// void Function (List<U> y) foo7Prime = (List<U> y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:26:24: Error: Type variables can't be used in static members.
+// void Function(List<U> y) foo7Prime = (List<U> y) => y;
+// ^
//
-// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:18:49: Error: Type variables can't be used in static members.
-// void Function (List<U> y) foo7Prime = (List<U> y) => y;
-// ^
+// pkg/front_end/testcases/general/type_parameter_usage_in_static_method_in_extension.dart:26:48: Error: Type variables can't be used in static members.
+// void Function(List<U> y) foo7Prime = (List<U> y) => y;
+// ^
//
import self as self;
import "dart:core" as core;
-extension Foo<U extends core::Object* = dynamic> on core::List<dynamic>* {
+extension Foo<U extends core::Object? = dynamic> on core::List<dynamic> {
static method foo1 = self::Foo|foo1;
static method foo1Prime = self::Foo|foo1Prime;
static method foo2 = self::Foo|foo2;
@@ -147,67 +147,45 @@
static field foo15 = self::Foo|foo15;
static field foo15Prime = self::Foo|foo15Prime;
}
-static field invalid-type Foo|foo14 = null;
-static field core::List<invalid-type>* Foo|foo14Prime = null;
-static field (invalid-type) →* invalid-type Foo|foo15 = null;
-static field (core::List<invalid-type>*) →* core::List<invalid-type>* Foo|foo15Prime = null;
+late static field invalid-type Foo|foo14;
+late static field core::List<invalid-type> Foo|foo14Prime;
+late static field (invalid-type) → invalid-type Foo|foo15;
+late static field (core::List<invalid-type>) → core::List<invalid-type> Foo|foo15Prime;
static method Foo|foo1() → invalid-type {
- return null;
+ throw "";
}
-static method Foo|foo1Prime() → core::List<invalid-type>* {
- return null;
+static method Foo|foo1Prime() → core::List<invalid-type> {
+ throw "";
}
-static method Foo|foo2(invalid-type x) → void {
- return null;
-}
-static method Foo|foo2Prime(core::List<invalid-type>* x) → void {
- return null;
-}
+static method Foo|foo2(invalid-type x) → void {}
+static method Foo|foo2Prime(core::List<invalid-type> x) → void {}
static method Foo|foo3() → void {
invalid-type foo4;
- core::List<invalid-type>* foo4Prime;
+ core::List<invalid-type> foo4Prime;
function foo5(invalid-type y) → void
return core::print(y);
- function foo5Prime(core::List<invalid-type>* y) → void
+ function foo5Prime(core::List<invalid-type> y) → void
return core::print(y);
function foo6() → invalid-type
- return null;
- function foo6Prime() → core::List<invalid-type>*
- return null;
- (invalid-type) →* void foo7 = (invalid-type y) → invalid-type => y;
- (core::List<invalid-type>*) →* void foo7Prime = (core::List<invalid-type>* y) → core::List<invalid-type>* => y;
+ return throw "";
+ function foo6Prime() → core::List<invalid-type>
+ return throw "";
+ (invalid-type) → void foo7 = (invalid-type y) → void => y;
+ (core::List<invalid-type>) → void foo7Prime = (core::List<invalid-type> y) → void => y;
}
-static method Foo|foo8() → () →* invalid-type {
- return null;
+static method Foo|foo8() → () → invalid-type {
+ throw "";
}
-static method Foo|foo8Prime() → () →* core::List<invalid-type>* {
- return null;
+static method Foo|foo8Prime() → () → core::List<invalid-type> {
+ throw "";
}
-static method Foo|foo9() → (invalid-type) →* void {
- return null;
-}
-static method Foo|foo9Prime() → (core::List<invalid-type>*) →* void {
- return null;
-}
-static method Foo|foo10(() →* invalid-type Function) → void {
- return null;
-}
-static method Foo|foo10Prime(() →* core::List<invalid-type>* Function) → void {
- return null;
-}
-static method Foo|foo11((dynamic) →* void Function) → void {
- return null;
-}
-static method Foo|foo12((invalid-type) →* void b) → void {
- return null;
-}
-static method Foo|foo12Prime((core::List<invalid-type>*) →* void b) → void {
- return null;
-}
-static method Foo|foo13((invalid-type) →* void Function) → void {
- return null;
-}
-static method Foo|foo13Prime((core::List<invalid-type>*) →* void Function) → void {
- return null;
-}
+static method Foo|foo9() → (invalid-type) → void {}
+static method Foo|foo9Prime() → (core::List<invalid-type>) → void {}
+static method Foo|foo10(() → invalid-type Function) → void {}
+static method Foo|foo10Prime(() → core::List<invalid-type> Function) → void {}
+static method Foo|foo11((dynamic) → void Function) → void {}
+static method Foo|foo12((invalid-type) → void b) → void {}
+static method Foo|foo12Prime((core::List<invalid-type>) → void b) → void {}
+static method Foo|foo13((invalid-type) → void Function) → void {}
+static method Foo|foo13Prime((core::List<invalid-type>) → void Function) → void {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart b/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart
index 1dbc620..c056d2b 100644
--- a/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart
+++ b/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart
@@ -1,4 +1,3 @@
-// @dart=2.9
dynamic<int> f() {}
main() {
f();
diff --git a/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.textual_outline.expect b/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.textual_outline.expect
index 769bfb1..e628591 100644
--- a/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
dynamic<int> f() {}
main() {}
diff --git a/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.textual_outline_modelled.expect
index 769bfb1..e628591 100644
--- a/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
dynamic<int> f() {}
main() {}
diff --git a/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.weak.expect b/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.weak.expect
index bdb4a9f..45cdf4b 100644
--- a/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.weak.expect
+++ b/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.weak.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/general/type_parameters_on_dynamic.dart:2:1: Error: Expected 0 type arguments.
+// pkg/front_end/testcases/general/type_parameters_on_dynamic.dart:1:1: Error: Expected 0 type arguments.
// dynamic<int> f() {}
// ^
//
diff --git a/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.weak.modular.expect b/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.weak.modular.expect
index bdb4a9f..45cdf4b 100644
--- a/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/general/type_parameters_on_dynamic.dart:2:1: Error: Expected 0 type arguments.
+// pkg/front_end/testcases/general/type_parameters_on_dynamic.dart:1:1: Error: Expected 0 type arguments.
// dynamic<int> f() {}
// ^
//
diff --git a/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.weak.outline.expect b/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.weak.outline.expect
index 2d32896..092d23a 100644
--- a/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/general/type_parameters_on_dynamic.dart:2:1: Error: Expected 0 type arguments.
+// pkg/front_end/testcases/general/type_parameters_on_dynamic.dart:1:1: Error: Expected 0 type arguments.
// dynamic<int> f() {}
// ^
//
diff --git a/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.weak.transformed.expect b/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.weak.transformed.expect
index bdb4a9f..45cdf4b 100644
--- a/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/type_parameters_on_dynamic.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/general/type_parameters_on_dynamic.dart:2:1: Error: Expected 0 type arguments.
+// pkg/front_end/testcases/general/type_parameters_on_dynamic.dart:1:1: Error: Expected 0 type arguments.
// dynamic<int> f() {}
// ^
//
diff --git a/pkg/front_end/testcases/general/type_parameters_on_void.dart b/pkg/front_end/testcases/general/type_parameters_on_void.dart
index 49f9028..a6f1ff0 100644
--- a/pkg/front_end/testcases/general/type_parameters_on_void.dart
+++ b/pkg/front_end/testcases/general/type_parameters_on_void.dart
@@ -1,5 +1,4 @@
void<int> f() {}
-// @dart=2.9
main() {
f();
}
\ No newline at end of file
diff --git a/pkg/front_end/testcases/general/type_variable_as_super.dart b/pkg/front_end/testcases/general/type_variable_as_super.dart
index 032fcc4..dbcfaaa 100644
--- a/pkg/front_end/testcases/general/type_variable_as_super.dart
+++ b/pkg/front_end/testcases/general/type_variable_as_super.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
abstract class A<T> extends T {}
abstract class B<T> extends T {
diff --git a/pkg/front_end/testcases/general/type_variable_as_super.dart.textual_outline.expect b/pkg/front_end/testcases/general/type_variable_as_super.dart.textual_outline.expect
index 896bc60..1fb7f08 100644
--- a/pkg/front_end/testcases/general/type_variable_as_super.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/type_variable_as_super.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
abstract class A<T> extends T {}
abstract class B<T> extends T {
diff --git a/pkg/front_end/testcases/general/type_variable_as_super.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/type_variable_as_super.dart.textual_outline_modelled.expect
index 896bc60..1fb7f08 100644
--- a/pkg/front_end/testcases/general/type_variable_as_super.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/type_variable_as_super.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
abstract class A<T> extends T {}
abstract class B<T> extends T {
diff --git a/pkg/front_end/testcases/general/type_variable_as_super.dart.weak.expect b/pkg/front_end/testcases/general/type_variable_as_super.dart.weak.expect
index aac4117..598ef86 100644
--- a/pkg/front_end/testcases/general/type_variable_as_super.dart.weak.expect
+++ b/pkg/front_end/testcases/general/type_variable_as_super.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -25,50 +25,20 @@
import self as self;
import "dart:core" as core;
-abstract class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+abstract class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class B<T extends core::Object* = dynamic> extends core::Object {
- constructor •() → self::B<self::B::T*>*
+abstract class B<T extends core::Object? = dynamic> extends core::Object {
+ constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
throw new core::AbstractClassInstantiationError::•("A");
diff --git a/pkg/front_end/testcases/general/type_variable_as_super.dart.weak.modular.expect b/pkg/front_end/testcases/general/type_variable_as_super.dart.weak.modular.expect
index aac4117..598ef86 100644
--- a/pkg/front_end/testcases/general/type_variable_as_super.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/type_variable_as_super.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -25,50 +25,20 @@
import self as self;
import "dart:core" as core;
-abstract class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+abstract class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class B<T extends core::Object* = dynamic> extends core::Object {
- constructor •() → self::B<self::B::T*>*
+abstract class B<T extends core::Object? = dynamic> extends core::Object {
+ constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
throw new core::AbstractClassInstantiationError::•("A");
diff --git a/pkg/front_end/testcases/general/type_variable_as_super.dart.weak.outline.expect b/pkg/front_end/testcases/general/type_variable_as_super.dart.weak.outline.expect
index 2d14c5b..66c885f 100644
--- a/pkg/front_end/testcases/general/type_variable_as_super.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/type_variable_as_super.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -17,47 +17,17 @@
import self as self;
import "dart:core" as core;
-abstract class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+abstract class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class B<T extends core::Object* = dynamic> extends core::Object {
- constructor •() → self::B<self::B::T*>*
+abstract class B<T extends core::Object? = dynamic> extends core::Object {
+ constructor •() → self::B<self::B::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/type_variable_as_super.dart.weak.transformed.expect b/pkg/front_end/testcases/general/type_variable_as_super.dart.weak.transformed.expect
index aac4117..598ef86 100644
--- a/pkg/front_end/testcases/general/type_variable_as_super.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/type_variable_as_super.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -25,50 +25,20 @@
import self as self;
import "dart:core" as core;
-abstract class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+abstract class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class B<T extends core::Object* = dynamic> extends core::Object {
- constructor •() → self::B<self::B::T*>*
+abstract class B<T extends core::Object? = dynamic> extends core::Object {
+ constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
throw new core::AbstractClassInstantiationError::•("A");
diff --git a/pkg/front_end/testcases/general/type_variable_bound_access.dart b/pkg/front_end/testcases/general/type_variable_bound_access.dart
index b98b8d5..7eb2d87 100644
--- a/pkg/front_end/testcases/general/type_variable_bound_access.dart
+++ b/pkg/front_end/testcases/general/type_variable_bound_access.dart
@@ -1,7 +1,7 @@
// 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.
-// @dart=2.9
+
class DynamicClass<T extends dynamic, S extends T> {
T field1;
T field2;
@@ -31,6 +31,9 @@
X4 field4;
X5 field5;
+ Class(this.field0, this.field1, this.field2, this.field3, this.field4,
+ this.field5);
+
method() {
field0.isEven;
field1.isEven;
diff --git a/pkg/front_end/testcases/general/type_variable_bound_access.dart.textual_outline.expect b/pkg/front_end/testcases/general/type_variable_bound_access.dart.textual_outline.expect
index ff1f9ff..35263ba 100644
--- a/pkg/front_end/testcases/general/type_variable_bound_access.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/type_variable_bound_access.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class DynamicClass<T extends dynamic, S extends T> {
T field1;
T field2;
@@ -22,6 +21,8 @@
X3 field3;
X4 field4;
X5 field5;
+ Class(this.field0, this.field1, this.field2, this.field3, this.field4,
+ this.field5);
method() {}
}
diff --git a/pkg/front_end/testcases/general/type_variable_bound_access.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/type_variable_bound_access.dart.textual_outline_modelled.expect
index 3eb942a..4c4a9d8 100644
--- a/pkg/front_end/testcases/general/type_variable_bound_access.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/type_variable_bound_access.dart.textual_outline_modelled.expect
@@ -1,6 +1,7 @@
-// @dart = 2.9
class Class<X5 extends X4, X4 extends X3, X3 extends X2, X2 extends X1,
X1 extends X0, X0 extends int> {
+ Class(this.field0, this.field1, this.field2, this.field3, this.field4,
+ this.field5);
X0 field0;
X1 field1;
X2 field2;
diff --git a/pkg/front_end/testcases/general/type_variable_bound_access.dart.weak.expect b/pkg/front_end/testcases/general/type_variable_bound_access.dart.weak.expect
index c281ff0..9190815 100644
--- a/pkg/front_end/testcases/general/type_variable_bound_access.dart.weak.expect
+++ b/pkg/front_end/testcases/general/type_variable_bound_access.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,79 +10,49 @@
import self as self;
import "dart:core" as core;
-class DynamicClass<T extends dynamic, S extends self::DynamicClass::T* = dynamic> extends core::Object {
- covariant-by-class field self::DynamicClass::T* field1;
- covariant-by-class field self::DynamicClass::T* field2;
- constructor •(self::DynamicClass::T* field1, self::DynamicClass::T* field2) → self::DynamicClass<self::DynamicClass::T*, self::DynamicClass::S*>*
+class DynamicClass<T extends dynamic, S extends self::DynamicClass::T% = dynamic> extends core::Object {
+ covariant-by-class field self::DynamicClass::T% field1;
+ covariant-by-class field self::DynamicClass::T% field2;
+ constructor •(self::DynamicClass::T% field1, self::DynamicClass::T% field2) → self::DynamicClass<self::DynamicClass::T%, self::DynamicClass::S%>
: self::DynamicClass::field1 = field1, self::DynamicClass::field2 = field2, super core::Object::•()
;
method method() → dynamic
- return this.{self::DynamicClass::field1}{self::DynamicClass::T*}{dynamic}.*(this.{self::DynamicClass::field2}{self::DynamicClass::T*});
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ return this.{self::DynamicClass::field1}{self::DynamicClass::T%}{dynamic}.*(this.{self::DynamicClass::field2}{self::DynamicClass::T%});
}
-class NumClass<T extends core::num*, S extends self::NumClass::T* = core::num*> extends core::Object {
- covariant-by-class field self::NumClass::T* field1;
- covariant-by-class field self::NumClass::S* field2;
- constructor •(self::NumClass::T* field1, self::NumClass::S* field2) → self::NumClass<self::NumClass::T*, self::NumClass::S*>*
+class NumClass<T extends core::num, S extends self::NumClass::T = core::num> extends core::Object {
+ covariant-by-class field self::NumClass::T field1;
+ covariant-by-class field self::NumClass::S field2;
+ constructor •(self::NumClass::T field1, self::NumClass::S field2) → self::NumClass<self::NumClass::T, self::NumClass::S>
: self::NumClass::field1 = field1, self::NumClass::field2 = field2, super core::Object::•()
;
- method method1() → core::num*
- return this.{self::NumClass::field1}{self::NumClass::T*}.{core::num::*}(this.{self::NumClass::field2}{self::NumClass::S*}){(core::num*) →* core::num*};
- method method2() → core::num*
- return this.{self::NumClass::field1}{self::NumClass::T*}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/type_variable_bound_access.dart:22:36: Error: The getter 'length' isn't defined for the class 'num'.
+ method method1() → core::num
+ return this.{self::NumClass::field1}{self::NumClass::T}.{core::num::*}(this.{self::NumClass::field2}{self::NumClass::S}){(core::num) → core::num};
+ method method2() → core::num
+ return this.{self::NumClass::field1}{self::NumClass::T}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/type_variable_bound_access.dart:22:36: Error: The getter 'length' isn't defined for the class 'num'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'length'.
num method2() => field1 + field2.length;
- ^^^^^^" in this.{self::NumClass::field2}{self::NumClass::S*}{<unresolved>}.length as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ ^^^^^^" in this.{self::NumClass::field2}{self::NumClass::S}{<unresolved>}.length as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
}
-class Class<X5 extends self::Class::X4* = core::int*, X4 extends self::Class::X3* = core::int*, X3 extends self::Class::X2* = core::int*, X2 extends self::Class::X1* = core::int*, X1 extends self::Class::X0* = core::int*, X0 extends core::int*> extends core::Object {
- covariant-by-class field self::Class::X0* field0 = null;
- covariant-by-class field self::Class::X1* field1 = null;
- covariant-by-class field self::Class::X2* field2 = null;
- covariant-by-class field self::Class::X3* field3 = null;
- covariant-by-class field self::Class::X4* field4 = null;
- covariant-by-class field self::Class::X5* field5 = null;
- synthetic constructor •() → self::Class<self::Class::X5*, self::Class::X4*, self::Class::X3*, self::Class::X2*, self::Class::X1*, self::Class::X0*>*
- : super core::Object::•()
+class Class<X5 extends self::Class::X4 = core::int, X4 extends self::Class::X3 = core::int, X3 extends self::Class::X2 = core::int, X2 extends self::Class::X1 = core::int, X1 extends self::Class::X0 = core::int, X0 extends core::int> extends core::Object {
+ covariant-by-class field self::Class::X0 field0;
+ covariant-by-class field self::Class::X1 field1;
+ covariant-by-class field self::Class::X2 field2;
+ covariant-by-class field self::Class::X3 field3;
+ covariant-by-class field self::Class::X4 field4;
+ covariant-by-class field self::Class::X5 field5;
+ constructor •(self::Class::X0 field0, self::Class::X1 field1, self::Class::X2 field2, self::Class::X3 field3, self::Class::X4 field4, self::Class::X5 field5) → self::Class<self::Class::X5, self::Class::X4, self::Class::X3, self::Class::X2, self::Class::X1, self::Class::X0>
+ : self::Class::field0 = field0, self::Class::field1 = field1, self::Class::field2 = field2, self::Class::field3 = field3, self::Class::field4 = field4, self::Class::field5 = field5, super core::Object::•()
;
method method() → dynamic {
- this.{self::Class::field0}{self::Class::X0*}.{core::int::isEven}{core::bool*};
- this.{self::Class::field1}{self::Class::X1*}.{core::int::isEven}{core::bool*};
- this.{self::Class::field2}{self::Class::X2*}.{core::int::isEven}{core::bool*};
- this.{self::Class::field3}{self::Class::X3*}.{core::int::isEven}{core::bool*};
- this.{self::Class::field4}{self::Class::X4*}.{core::int::isEven}{core::bool*};
- this.{self::Class::field5}{self::Class::X5*}.{core::int::isEven}{core::bool*};
+ this.{self::Class::field0}{self::Class::X0}.{core::int::isEven}{core::bool};
+ this.{self::Class::field1}{self::Class::X1}.{core::int::isEven}{core::bool};
+ this.{self::Class::field2}{self::Class::X2}.{core::int::isEven}{core::bool};
+ this.{self::Class::field3}{self::Class::X3}.{core::int::isEven}{core::bool};
+ this.{self::Class::field4}{self::Class::X4}.{core::int::isEven}{core::bool};
+ this.{self::Class::field5}{self::Class::X5}.{core::int::isEven}{core::bool};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- new self::DynamicClass::•<core::num*, core::int*>(0.5, 2).{self::DynamicClass::method}(){() →* dynamic};
- new self::NumClass::•<core::num*, core::double*>(2, 0.5).{self::NumClass::method1}(){() →* core::num*};
+ new self::DynamicClass::•<core::num, core::int>(0.5, 2).{self::DynamicClass::method}(){() → dynamic};
+ new self::NumClass::•<core::num, core::double>(2, 0.5).{self::NumClass::method1}(){() → core::num};
}
diff --git a/pkg/front_end/testcases/general/type_variable_bound_access.dart.weak.modular.expect b/pkg/front_end/testcases/general/type_variable_bound_access.dart.weak.modular.expect
index c281ff0..9190815 100644
--- a/pkg/front_end/testcases/general/type_variable_bound_access.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/type_variable_bound_access.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,79 +10,49 @@
import self as self;
import "dart:core" as core;
-class DynamicClass<T extends dynamic, S extends self::DynamicClass::T* = dynamic> extends core::Object {
- covariant-by-class field self::DynamicClass::T* field1;
- covariant-by-class field self::DynamicClass::T* field2;
- constructor •(self::DynamicClass::T* field1, self::DynamicClass::T* field2) → self::DynamicClass<self::DynamicClass::T*, self::DynamicClass::S*>*
+class DynamicClass<T extends dynamic, S extends self::DynamicClass::T% = dynamic> extends core::Object {
+ covariant-by-class field self::DynamicClass::T% field1;
+ covariant-by-class field self::DynamicClass::T% field2;
+ constructor •(self::DynamicClass::T% field1, self::DynamicClass::T% field2) → self::DynamicClass<self::DynamicClass::T%, self::DynamicClass::S%>
: self::DynamicClass::field1 = field1, self::DynamicClass::field2 = field2, super core::Object::•()
;
method method() → dynamic
- return this.{self::DynamicClass::field1}{self::DynamicClass::T*}{dynamic}.*(this.{self::DynamicClass::field2}{self::DynamicClass::T*});
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ return this.{self::DynamicClass::field1}{self::DynamicClass::T%}{dynamic}.*(this.{self::DynamicClass::field2}{self::DynamicClass::T%});
}
-class NumClass<T extends core::num*, S extends self::NumClass::T* = core::num*> extends core::Object {
- covariant-by-class field self::NumClass::T* field1;
- covariant-by-class field self::NumClass::S* field2;
- constructor •(self::NumClass::T* field1, self::NumClass::S* field2) → self::NumClass<self::NumClass::T*, self::NumClass::S*>*
+class NumClass<T extends core::num, S extends self::NumClass::T = core::num> extends core::Object {
+ covariant-by-class field self::NumClass::T field1;
+ covariant-by-class field self::NumClass::S field2;
+ constructor •(self::NumClass::T field1, self::NumClass::S field2) → self::NumClass<self::NumClass::T, self::NumClass::S>
: self::NumClass::field1 = field1, self::NumClass::field2 = field2, super core::Object::•()
;
- method method1() → core::num*
- return this.{self::NumClass::field1}{self::NumClass::T*}.{core::num::*}(this.{self::NumClass::field2}{self::NumClass::S*}){(core::num*) →* core::num*};
- method method2() → core::num*
- return this.{self::NumClass::field1}{self::NumClass::T*}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/type_variable_bound_access.dart:22:36: Error: The getter 'length' isn't defined for the class 'num'.
+ method method1() → core::num
+ return this.{self::NumClass::field1}{self::NumClass::T}.{core::num::*}(this.{self::NumClass::field2}{self::NumClass::S}){(core::num) → core::num};
+ method method2() → core::num
+ return this.{self::NumClass::field1}{self::NumClass::T}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/type_variable_bound_access.dart:22:36: Error: The getter 'length' isn't defined for the class 'num'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'length'.
num method2() => field1 + field2.length;
- ^^^^^^" in this.{self::NumClass::field2}{self::NumClass::S*}{<unresolved>}.length as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ ^^^^^^" in this.{self::NumClass::field2}{self::NumClass::S}{<unresolved>}.length as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
}
-class Class<X5 extends self::Class::X4* = core::int*, X4 extends self::Class::X3* = core::int*, X3 extends self::Class::X2* = core::int*, X2 extends self::Class::X1* = core::int*, X1 extends self::Class::X0* = core::int*, X0 extends core::int*> extends core::Object {
- covariant-by-class field self::Class::X0* field0 = null;
- covariant-by-class field self::Class::X1* field1 = null;
- covariant-by-class field self::Class::X2* field2 = null;
- covariant-by-class field self::Class::X3* field3 = null;
- covariant-by-class field self::Class::X4* field4 = null;
- covariant-by-class field self::Class::X5* field5 = null;
- synthetic constructor •() → self::Class<self::Class::X5*, self::Class::X4*, self::Class::X3*, self::Class::X2*, self::Class::X1*, self::Class::X0*>*
- : super core::Object::•()
+class Class<X5 extends self::Class::X4 = core::int, X4 extends self::Class::X3 = core::int, X3 extends self::Class::X2 = core::int, X2 extends self::Class::X1 = core::int, X1 extends self::Class::X0 = core::int, X0 extends core::int> extends core::Object {
+ covariant-by-class field self::Class::X0 field0;
+ covariant-by-class field self::Class::X1 field1;
+ covariant-by-class field self::Class::X2 field2;
+ covariant-by-class field self::Class::X3 field3;
+ covariant-by-class field self::Class::X4 field4;
+ covariant-by-class field self::Class::X5 field5;
+ constructor •(self::Class::X0 field0, self::Class::X1 field1, self::Class::X2 field2, self::Class::X3 field3, self::Class::X4 field4, self::Class::X5 field5) → self::Class<self::Class::X5, self::Class::X4, self::Class::X3, self::Class::X2, self::Class::X1, self::Class::X0>
+ : self::Class::field0 = field0, self::Class::field1 = field1, self::Class::field2 = field2, self::Class::field3 = field3, self::Class::field4 = field4, self::Class::field5 = field5, super core::Object::•()
;
method method() → dynamic {
- this.{self::Class::field0}{self::Class::X0*}.{core::int::isEven}{core::bool*};
- this.{self::Class::field1}{self::Class::X1*}.{core::int::isEven}{core::bool*};
- this.{self::Class::field2}{self::Class::X2*}.{core::int::isEven}{core::bool*};
- this.{self::Class::field3}{self::Class::X3*}.{core::int::isEven}{core::bool*};
- this.{self::Class::field4}{self::Class::X4*}.{core::int::isEven}{core::bool*};
- this.{self::Class::field5}{self::Class::X5*}.{core::int::isEven}{core::bool*};
+ this.{self::Class::field0}{self::Class::X0}.{core::int::isEven}{core::bool};
+ this.{self::Class::field1}{self::Class::X1}.{core::int::isEven}{core::bool};
+ this.{self::Class::field2}{self::Class::X2}.{core::int::isEven}{core::bool};
+ this.{self::Class::field3}{self::Class::X3}.{core::int::isEven}{core::bool};
+ this.{self::Class::field4}{self::Class::X4}.{core::int::isEven}{core::bool};
+ this.{self::Class::field5}{self::Class::X5}.{core::int::isEven}{core::bool};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- new self::DynamicClass::•<core::num*, core::int*>(0.5, 2).{self::DynamicClass::method}(){() →* dynamic};
- new self::NumClass::•<core::num*, core::double*>(2, 0.5).{self::NumClass::method1}(){() →* core::num*};
+ new self::DynamicClass::•<core::num, core::int>(0.5, 2).{self::DynamicClass::method}(){() → dynamic};
+ new self::NumClass::•<core::num, core::double>(2, 0.5).{self::NumClass::method1}(){() → core::num};
}
diff --git a/pkg/front_end/testcases/general/type_variable_bound_access.dart.weak.outline.expect b/pkg/front_end/testcases/general/type_variable_bound_access.dart.weak.outline.expect
index adae324..e2accc2 100644
--- a/pkg/front_end/testcases/general/type_variable_bound_access.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/type_variable_bound_access.dart.weak.outline.expect
@@ -1,66 +1,36 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class DynamicClass<T extends dynamic, S extends self::DynamicClass::T* = dynamic> extends core::Object {
- covariant-by-class field self::DynamicClass::T* field1;
- covariant-by-class field self::DynamicClass::T* field2;
- constructor •(self::DynamicClass::T* field1, self::DynamicClass::T* field2) → self::DynamicClass<self::DynamicClass::T*, self::DynamicClass::S*>*
+class DynamicClass<T extends dynamic, S extends self::DynamicClass::T% = dynamic> extends core::Object {
+ covariant-by-class field self::DynamicClass::T% field1;
+ covariant-by-class field self::DynamicClass::T% field2;
+ constructor •(self::DynamicClass::T% field1, self::DynamicClass::T% field2) → self::DynamicClass<self::DynamicClass::T%, self::DynamicClass::S%>
;
method method() → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class NumClass<T extends core::num*, S extends self::NumClass::T* = core::num*> extends core::Object {
- covariant-by-class field self::NumClass::T* field1;
- covariant-by-class field self::NumClass::S* field2;
- constructor •(self::NumClass::T* field1, self::NumClass::S* field2) → self::NumClass<self::NumClass::T*, self::NumClass::S*>*
+class NumClass<T extends core::num, S extends self::NumClass::T = core::num> extends core::Object {
+ covariant-by-class field self::NumClass::T field1;
+ covariant-by-class field self::NumClass::S field2;
+ constructor •(self::NumClass::T field1, self::NumClass::S field2) → self::NumClass<self::NumClass::T, self::NumClass::S>
;
- method method1() → core::num*
+ method method1() → core::num
;
- method method2() → core::num*
+ method method2() → core::num
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Class<X5 extends self::Class::X4* = core::int*, X4 extends self::Class::X3* = core::int*, X3 extends self::Class::X2* = core::int*, X2 extends self::Class::X1* = core::int*, X1 extends self::Class::X0* = core::int*, X0 extends core::int*> extends core::Object {
- covariant-by-class field self::Class::X0* field0;
- covariant-by-class field self::Class::X1* field1;
- covariant-by-class field self::Class::X2* field2;
- covariant-by-class field self::Class::X3* field3;
- covariant-by-class field self::Class::X4* field4;
- covariant-by-class field self::Class::X5* field5;
- synthetic constructor •() → self::Class<self::Class::X5*, self::Class::X4*, self::Class::X3*, self::Class::X2*, self::Class::X1*, self::Class::X0*>*
+class Class<X5 extends self::Class::X4 = core::int, X4 extends self::Class::X3 = core::int, X3 extends self::Class::X2 = core::int, X2 extends self::Class::X1 = core::int, X1 extends self::Class::X0 = core::int, X0 extends core::int> extends core::Object {
+ covariant-by-class field self::Class::X0 field0;
+ covariant-by-class field self::Class::X1 field1;
+ covariant-by-class field self::Class::X2 field2;
+ covariant-by-class field self::Class::X3 field3;
+ covariant-by-class field self::Class::X4 field4;
+ covariant-by-class field self::Class::X5 field5;
+ constructor •(self::Class::X0 field0, self::Class::X1 field1, self::Class::X2 field2, self::Class::X3 field3, self::Class::X4 field4, self::Class::X5 field5) → self::Class<self::Class::X5, self::Class::X4, self::Class::X3, self::Class::X2, self::Class::X1, self::Class::X0>
;
method method() → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/type_variable_bound_access.dart.weak.transformed.expect b/pkg/front_end/testcases/general/type_variable_bound_access.dart.weak.transformed.expect
index 05cc13b..2af94e2 100644
--- a/pkg/front_end/testcases/general/type_variable_bound_access.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/type_variable_bound_access.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,79 +10,49 @@
import self as self;
import "dart:core" as core;
-class DynamicClass<T extends dynamic, S extends self::DynamicClass::T* = dynamic> extends core::Object {
- covariant-by-class field self::DynamicClass::T* field1;
- covariant-by-class field self::DynamicClass::T* field2;
- constructor •(self::DynamicClass::T* field1, self::DynamicClass::T* field2) → self::DynamicClass<self::DynamicClass::T*, self::DynamicClass::S*>*
+class DynamicClass<T extends dynamic, S extends self::DynamicClass::T% = dynamic> extends core::Object {
+ covariant-by-class field self::DynamicClass::T% field1;
+ covariant-by-class field self::DynamicClass::T% field2;
+ constructor •(self::DynamicClass::T% field1, self::DynamicClass::T% field2) → self::DynamicClass<self::DynamicClass::T%, self::DynamicClass::S%>
: self::DynamicClass::field1 = field1, self::DynamicClass::field2 = field2, super core::Object::•()
;
method method() → dynamic
- return this.{self::DynamicClass::field1}{self::DynamicClass::T*}{dynamic}.*(this.{self::DynamicClass::field2}{self::DynamicClass::T*});
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ return this.{self::DynamicClass::field1}{self::DynamicClass::T%}{dynamic}.*(this.{self::DynamicClass::field2}{self::DynamicClass::T%});
}
-class NumClass<T extends core::num*, S extends self::NumClass::T* = core::num*> extends core::Object {
- covariant-by-class field self::NumClass::T* field1;
- covariant-by-class field self::NumClass::S* field2;
- constructor •(self::NumClass::T* field1, self::NumClass::S* field2) → self::NumClass<self::NumClass::T*, self::NumClass::S*>*
+class NumClass<T extends core::num, S extends self::NumClass::T = core::num> extends core::Object {
+ covariant-by-class field self::NumClass::T field1;
+ covariant-by-class field self::NumClass::S field2;
+ constructor •(self::NumClass::T field1, self::NumClass::S field2) → self::NumClass<self::NumClass::T, self::NumClass::S>
: self::NumClass::field1 = field1, self::NumClass::field2 = field2, super core::Object::•()
;
- method method1() → core::num*
- return this.{self::NumClass::field1}{self::NumClass::T*}.{core::num::*}(this.{self::NumClass::field2}{self::NumClass::S*}){(core::num*) →* core::num*};
- method method2() → core::num*
- return this.{self::NumClass::field1}{self::NumClass::T*}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/type_variable_bound_access.dart:22:36: Error: The getter 'length' isn't defined for the class 'num'.
+ method method1() → core::num
+ return this.{self::NumClass::field1}{self::NumClass::T}.{core::num::*}(this.{self::NumClass::field2}{self::NumClass::S}){(core::num) → core::num};
+ method method2() → core::num
+ return this.{self::NumClass::field1}{self::NumClass::T}.{core::num::+}(invalid-expression "pkg/front_end/testcases/general/type_variable_bound_access.dart:22:36: Error: The getter 'length' isn't defined for the class 'num'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'length'.
num method2() => field1 + field2.length;
- ^^^^^^" in this.{self::NumClass::field2}{self::NumClass::S*}{<unresolved>}.length){(core::num*) →* core::num*};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ ^^^^^^" in this.{self::NumClass::field2}{self::NumClass::S}{<unresolved>}.length){(core::num) → core::num};
}
-class Class<X5 extends self::Class::X4* = core::int*, X4 extends self::Class::X3* = core::int*, X3 extends self::Class::X2* = core::int*, X2 extends self::Class::X1* = core::int*, X1 extends self::Class::X0* = core::int*, X0 extends core::int*> extends core::Object {
- covariant-by-class field self::Class::X0* field0 = null;
- covariant-by-class field self::Class::X1* field1 = null;
- covariant-by-class field self::Class::X2* field2 = null;
- covariant-by-class field self::Class::X3* field3 = null;
- covariant-by-class field self::Class::X4* field4 = null;
- covariant-by-class field self::Class::X5* field5 = null;
- synthetic constructor •() → self::Class<self::Class::X5*, self::Class::X4*, self::Class::X3*, self::Class::X2*, self::Class::X1*, self::Class::X0*>*
- : super core::Object::•()
+class Class<X5 extends self::Class::X4 = core::int, X4 extends self::Class::X3 = core::int, X3 extends self::Class::X2 = core::int, X2 extends self::Class::X1 = core::int, X1 extends self::Class::X0 = core::int, X0 extends core::int> extends core::Object {
+ covariant-by-class field self::Class::X0 field0;
+ covariant-by-class field self::Class::X1 field1;
+ covariant-by-class field self::Class::X2 field2;
+ covariant-by-class field self::Class::X3 field3;
+ covariant-by-class field self::Class::X4 field4;
+ covariant-by-class field self::Class::X5 field5;
+ constructor •(self::Class::X0 field0, self::Class::X1 field1, self::Class::X2 field2, self::Class::X3 field3, self::Class::X4 field4, self::Class::X5 field5) → self::Class<self::Class::X5, self::Class::X4, self::Class::X3, self::Class::X2, self::Class::X1, self::Class::X0>
+ : self::Class::field0 = field0, self::Class::field1 = field1, self::Class::field2 = field2, self::Class::field3 = field3, self::Class::field4 = field4, self::Class::field5 = field5, super core::Object::•()
;
method method() → dynamic {
- this.{self::Class::field0}{self::Class::X0*}.{core::int::isEven}{core::bool*};
- this.{self::Class::field1}{self::Class::X1*}.{core::int::isEven}{core::bool*};
- this.{self::Class::field2}{self::Class::X2*}.{core::int::isEven}{core::bool*};
- this.{self::Class::field3}{self::Class::X3*}.{core::int::isEven}{core::bool*};
- this.{self::Class::field4}{self::Class::X4*}.{core::int::isEven}{core::bool*};
- this.{self::Class::field5}{self::Class::X5*}.{core::int::isEven}{core::bool*};
+ this.{self::Class::field0}{self::Class::X0}.{core::int::isEven}{core::bool};
+ this.{self::Class::field1}{self::Class::X1}.{core::int::isEven}{core::bool};
+ this.{self::Class::field2}{self::Class::X2}.{core::int::isEven}{core::bool};
+ this.{self::Class::field3}{self::Class::X3}.{core::int::isEven}{core::bool};
+ this.{self::Class::field4}{self::Class::X4}.{core::int::isEven}{core::bool};
+ this.{self::Class::field5}{self::Class::X5}.{core::int::isEven}{core::bool};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- new self::DynamicClass::•<core::num*, core::int*>(0.5, 2).{self::DynamicClass::method}(){() →* dynamic};
- new self::NumClass::•<core::num*, core::double*>(2, 0.5).{self::NumClass::method1}(){() →* core::num*};
+ new self::DynamicClass::•<core::num, core::int>(0.5, 2).{self::DynamicClass::method}(){() → dynamic};
+ new self::NumClass::•<core::num, core::double>(2, 0.5).{self::NumClass::method1}(){() → core::num};
}
diff --git a/pkg/front_end/testcases/general/type_variable_prefix.dart b/pkg/front_end/testcases/general/type_variable_prefix.dart
index 9e32d32..3e5d27d5 100644
--- a/pkg/front_end/testcases/general/type_variable_prefix.dart
+++ b/pkg/front_end/testcases/general/type_variable_prefix.dart
@@ -2,8 +2,6 @@
// 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.
-// @dart=2.9
-
import "dart:core" as T;
class C<T> {
diff --git a/pkg/front_end/testcases/general/type_variable_prefix.dart.textual_outline.expect b/pkg/front_end/testcases/general/type_variable_prefix.dart.textual_outline.expect
index ee21503..17664d53 100644
--- a/pkg/front_end/testcases/general/type_variable_prefix.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/type_variable_prefix.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import "dart:core" as T;
class C<T> {
diff --git a/pkg/front_end/testcases/general/type_variable_prefix.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/type_variable_prefix.dart.textual_outline_modelled.expect
index ee21503..17664d53 100644
--- a/pkg/front_end/testcases/general/type_variable_prefix.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/type_variable_prefix.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import "dart:core" as T;
class C<T> {
diff --git a/pkg/front_end/testcases/general/type_variable_prefix.dart.weak.expect b/pkg/front_end/testcases/general/type_variable_prefix.dart.weak.expect
index 20eabce..20a0ee4 100644
--- a/pkg/front_end/testcases/general/type_variable_prefix.dart.weak.expect
+++ b/pkg/front_end/testcases/general/type_variable_prefix.dart.weak.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/general/type_variable_prefix.dart:10:3: Error: 'T.String' can't be used as a type because 'T' doesn't refer to an import prefix.
+// pkg/front_end/testcases/general/type_variable_prefix.dart:8:3: Error: 'T.String' can't be used as a type because 'T' doesn't refer to an import prefix.
// T.String method() => "Hello, World!";
// ^^^^^^^^
//
@@ -11,24 +11,14 @@
import "dart:core" as T;
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
method method() → invalid-type
return "Hello, World!";
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::String* s = new self::C::•<dynamic>().{self::C::method}(){() →* invalid-type};
+ core::String s = new self::C::•<dynamic>().{self::C::method}(){() → invalid-type};
core::print(s);
}
diff --git a/pkg/front_end/testcases/general/type_variable_prefix.dart.weak.modular.expect b/pkg/front_end/testcases/general/type_variable_prefix.dart.weak.modular.expect
index 20eabce..20a0ee4 100644
--- a/pkg/front_end/testcases/general/type_variable_prefix.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/type_variable_prefix.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/general/type_variable_prefix.dart:10:3: Error: 'T.String' can't be used as a type because 'T' doesn't refer to an import prefix.
+// pkg/front_end/testcases/general/type_variable_prefix.dart:8:3: Error: 'T.String' can't be used as a type because 'T' doesn't refer to an import prefix.
// T.String method() => "Hello, World!";
// ^^^^^^^^
//
@@ -11,24 +11,14 @@
import "dart:core" as T;
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
method method() → invalid-type
return "Hello, World!";
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::String* s = new self::C::•<dynamic>().{self::C::method}(){() →* invalid-type};
+ core::String s = new self::C::•<dynamic>().{self::C::method}(){() → invalid-type};
core::print(s);
}
diff --git a/pkg/front_end/testcases/general/type_variable_prefix.dart.weak.outline.expect b/pkg/front_end/testcases/general/type_variable_prefix.dart.weak.outline.expect
index 17c7da5..6fbcab0 100644
--- a/pkg/front_end/testcases/general/type_variable_prefix.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/type_variable_prefix.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/general/type_variable_prefix.dart:10:3: Error: 'T.String' can't be used as a type because 'T' doesn't refer to an import prefix.
+// pkg/front_end/testcases/general/type_variable_prefix.dart:8:3: Error: 'T.String' can't be used as a type because 'T' doesn't refer to an import prefix.
// T.String method() => "Hello, World!";
// ^^^^^^^^
//
@@ -11,21 +11,11 @@
import "dart:core" as T;
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
;
method method() → invalid-type
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/type_variable_prefix.dart.weak.transformed.expect b/pkg/front_end/testcases/general/type_variable_prefix.dart.weak.transformed.expect
index 20eabce..20a0ee4 100644
--- a/pkg/front_end/testcases/general/type_variable_prefix.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/type_variable_prefix.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/general/type_variable_prefix.dart:10:3: Error: 'T.String' can't be used as a type because 'T' doesn't refer to an import prefix.
+// pkg/front_end/testcases/general/type_variable_prefix.dart:8:3: Error: 'T.String' can't be used as a type because 'T' doesn't refer to an import prefix.
// T.String method() => "Hello, World!";
// ^^^^^^^^
//
@@ -11,24 +11,14 @@
import "dart:core" as T;
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
method method() → invalid-type
return "Hello, World!";
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::String* s = new self::C::•<dynamic>().{self::C::method}(){() →* invalid-type};
+ core::String s = new self::C::•<dynamic>().{self::C::method}(){() → invalid-type};
core::print(s);
}
diff --git a/pkg/front_end/testcases/general/type_variable_uses.dart b/pkg/front_end/testcases/general/type_variable_uses.dart
index 2c70dea..2bdaa6d 100644
--- a/pkg/front_end/testcases/general/type_variable_uses.dart
+++ b/pkg/front_end/testcases/general/type_variable_uses.dart
@@ -1,7 +1,7 @@
// 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.
-// @dart=2.9
+
class C<T> {
const C();
static C<T> staticMethod() {
@@ -14,6 +14,7 @@
const <C<T>>[];
const <Object>[T];
const <Object>[const C<T>()];
+ throw '';
}
C<T> instanceMethod() {
@@ -26,6 +27,7 @@
const <C<T>>[];
const <Object>[T];
const <Object>[const C<T>()];
+ throw '';
}
}
diff --git a/pkg/front_end/testcases/general/type_variable_uses.dart.textual_outline.expect b/pkg/front_end/testcases/general/type_variable_uses.dart.textual_outline.expect
index 7c69cd1..4ea252b 100644
--- a/pkg/front_end/testcases/general/type_variable_uses.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/type_variable_uses.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class C<T> {
const C();
static C<T> staticMethod() {}
diff --git a/pkg/front_end/testcases/general/type_variable_uses.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/type_variable_uses.dart.textual_outline_modelled.expect
index 701ccee..d8414ce 100644
--- a/pkg/front_end/testcases/general/type_variable_uses.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/type_variable_uses.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class C<T> {
C<T> instanceMethod() {}
const C();
diff --git a/pkg/front_end/testcases/general/type_variable_uses.dart.weak.expect b/pkg/front_end/testcases/general/type_variable_uses.dart.weak.expect
index 4fbbbaa..62ddb4f 100644
--- a/pkg/front_end/testcases/general/type_variable_uses.dart.weak.expect
+++ b/pkg/front_end/testcases/general/type_variable_uses.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -42,65 +42,57 @@
// const <Object>[const C<T>()];
// ^
//
-// pkg/front_end/testcases/general/type_variable_uses.dart:24:13: Error: Type variables can't be used as constants.
+// pkg/front_end/testcases/general/type_variable_uses.dart:25:13: Error: Type variables can't be used as constants.
// const C<T>();
// ^
//
-// pkg/front_end/testcases/general/type_variable_uses.dart:25:12: Error: Type variables can't be used as constants.
+// pkg/front_end/testcases/general/type_variable_uses.dart:26:12: Error: Type variables can't be used as constants.
// const <T>[];
// ^
//
-// pkg/front_end/testcases/general/type_variable_uses.dart:26:14: Error: Type variables can't be used as constants.
+// pkg/front_end/testcases/general/type_variable_uses.dart:27:14: Error: Type variables can't be used as constants.
// const <C<T>>[];
// ^
//
-// pkg/front_end/testcases/general/type_variable_uses.dart:27:20: Error: Type variables can't be used as constants.
+// pkg/front_end/testcases/general/type_variable_uses.dart:28:20: Error: Type variables can't be used as constants.
// const <Object>[T];
// ^
//
-// pkg/front_end/testcases/general/type_variable_uses.dart:28:28: Error: Type variables can't be used as constants.
+// pkg/front_end/testcases/general/type_variable_uses.dart:29:28: Error: Type variables can't be used as constants.
// const <Object>[const C<T>()];
// ^
//
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- static method staticMethod() → self::C<invalid-type>* {
+ static method staticMethod() → self::C<invalid-type> {
core::print(#C1);
invalid-type t;
- self::C<invalid-type>* l;
- self::C<self::C<invalid-type>*>* ll;
+ self::C<invalid-type> l;
+ self::C<self::C<invalid-type>> ll;
#C2;
#C3;
#C4;
#C5;
#C6;
+ throw "";
}
- method instanceMethod() → self::C<self::C::T*>* {
- core::print(self::C::T*);
- self::C::T* t;
- self::C<self::C::T*>* l;
- self::C<self::C<self::C::T*>*>* ll;
+ method instanceMethod() → self::C<self::C::T%> {
+ core::print(self::C::T%);
+ self::C::T% t;
+ self::C<self::C::T%> l;
+ self::C<self::C<self::C::T%>> ll;
#C2;
#C3;
#C4;
#C5;
#C6;
+ throw "";
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/type_variable_uses.dart.weak.modular.expect b/pkg/front_end/testcases/general/type_variable_uses.dart.weak.modular.expect
index 4fbbbaa..62ddb4f 100644
--- a/pkg/front_end/testcases/general/type_variable_uses.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/type_variable_uses.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -42,65 +42,57 @@
// const <Object>[const C<T>()];
// ^
//
-// pkg/front_end/testcases/general/type_variable_uses.dart:24:13: Error: Type variables can't be used as constants.
+// pkg/front_end/testcases/general/type_variable_uses.dart:25:13: Error: Type variables can't be used as constants.
// const C<T>();
// ^
//
-// pkg/front_end/testcases/general/type_variable_uses.dart:25:12: Error: Type variables can't be used as constants.
+// pkg/front_end/testcases/general/type_variable_uses.dart:26:12: Error: Type variables can't be used as constants.
// const <T>[];
// ^
//
-// pkg/front_end/testcases/general/type_variable_uses.dart:26:14: Error: Type variables can't be used as constants.
+// pkg/front_end/testcases/general/type_variable_uses.dart:27:14: Error: Type variables can't be used as constants.
// const <C<T>>[];
// ^
//
-// pkg/front_end/testcases/general/type_variable_uses.dart:27:20: Error: Type variables can't be used as constants.
+// pkg/front_end/testcases/general/type_variable_uses.dart:28:20: Error: Type variables can't be used as constants.
// const <Object>[T];
// ^
//
-// pkg/front_end/testcases/general/type_variable_uses.dart:28:28: Error: Type variables can't be used as constants.
+// pkg/front_end/testcases/general/type_variable_uses.dart:29:28: Error: Type variables can't be used as constants.
// const <Object>[const C<T>()];
// ^
//
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- static method staticMethod() → self::C<invalid-type>* {
+ static method staticMethod() → self::C<invalid-type> {
core::print(#C1);
invalid-type t;
- self::C<invalid-type>* l;
- self::C<self::C<invalid-type>*>* ll;
+ self::C<invalid-type> l;
+ self::C<self::C<invalid-type>> ll;
#C2;
#C3;
#C4;
#C5;
#C6;
+ throw "";
}
- method instanceMethod() → self::C<self::C::T*>* {
- core::print(self::C::T*);
- self::C::T* t;
- self::C<self::C::T*>* l;
- self::C<self::C<self::C::T*>*>* ll;
+ method instanceMethod() → self::C<self::C::T%> {
+ core::print(self::C::T%);
+ self::C::T% t;
+ self::C<self::C::T%> l;
+ self::C<self::C<self::C::T%>> ll;
#C2;
#C3;
#C4;
#C5;
#C6;
+ throw "";
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/type_variable_uses.dart.weak.outline.expect b/pkg/front_end/testcases/general/type_variable_uses.dart.weak.outline.expect
index 6825fba..3bab67d 100644
--- a/pkg/front_end/testcases/general/type_variable_uses.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/type_variable_uses.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -9,24 +9,14 @@
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- static method staticMethod() → self::C<invalid-type>*
+ static method staticMethod() → self::C<invalid-type>
;
- method instanceMethod() → self::C<self::C::T*>*
+ method instanceMethod() → self::C<self::C::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/type_variable_uses.dart.weak.transformed.expect b/pkg/front_end/testcases/general/type_variable_uses.dart.weak.transformed.expect
index 4fbbbaa..62ddb4f 100644
--- a/pkg/front_end/testcases/general/type_variable_uses.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/type_variable_uses.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -42,65 +42,57 @@
// const <Object>[const C<T>()];
// ^
//
-// pkg/front_end/testcases/general/type_variable_uses.dart:24:13: Error: Type variables can't be used as constants.
+// pkg/front_end/testcases/general/type_variable_uses.dart:25:13: Error: Type variables can't be used as constants.
// const C<T>();
// ^
//
-// pkg/front_end/testcases/general/type_variable_uses.dart:25:12: Error: Type variables can't be used as constants.
+// pkg/front_end/testcases/general/type_variable_uses.dart:26:12: Error: Type variables can't be used as constants.
// const <T>[];
// ^
//
-// pkg/front_end/testcases/general/type_variable_uses.dart:26:14: Error: Type variables can't be used as constants.
+// pkg/front_end/testcases/general/type_variable_uses.dart:27:14: Error: Type variables can't be used as constants.
// const <C<T>>[];
// ^
//
-// pkg/front_end/testcases/general/type_variable_uses.dart:27:20: Error: Type variables can't be used as constants.
+// pkg/front_end/testcases/general/type_variable_uses.dart:28:20: Error: Type variables can't be used as constants.
// const <Object>[T];
// ^
//
-// pkg/front_end/testcases/general/type_variable_uses.dart:28:28: Error: Type variables can't be used as constants.
+// pkg/front_end/testcases/general/type_variable_uses.dart:29:28: Error: Type variables can't be used as constants.
// const <Object>[const C<T>()];
// ^
//
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- static method staticMethod() → self::C<invalid-type>* {
+ static method staticMethod() → self::C<invalid-type> {
core::print(#C1);
invalid-type t;
- self::C<invalid-type>* l;
- self::C<self::C<invalid-type>*>* ll;
+ self::C<invalid-type> l;
+ self::C<self::C<invalid-type>> ll;
#C2;
#C3;
#C4;
#C5;
#C6;
+ throw "";
}
- method instanceMethod() → self::C<self::C::T*>* {
- core::print(self::C::T*);
- self::C::T* t;
- self::C<self::C::T*>* l;
- self::C<self::C<self::C::T*>*>* ll;
+ method instanceMethod() → self::C<self::C::T%> {
+ core::print(self::C::T%);
+ self::C::T% t;
+ self::C<self::C::T%> l;
+ self::C<self::C<self::C::T%>> ll;
#C2;
#C3;
#C4;
#C5;
#C6;
+ throw "";
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/typedef.dart b/pkg/front_end/testcases/general/typedef.dart
index 6f0832c..44de722 100644
--- a/pkg/front_end/testcases/general/typedef.dart
+++ b/pkg/front_end/testcases/general/typedef.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
typedef _NullaryFunction();
typedef _UnaryFunction(args);
typedef _BinaryFunction(args, message);
diff --git a/pkg/front_end/testcases/general/typedef.dart.textual_outline.expect b/pkg/front_end/testcases/general/typedef.dart.textual_outline.expect
index 065fb43..f652ebb 100644
--- a/pkg/front_end/testcases/general/typedef.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/typedef.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
typedef _NullaryFunction();
typedef _UnaryFunction(args);
typedef _BinaryFunction(args, message);
diff --git a/pkg/front_end/testcases/general/typedef.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/typedef.dart.textual_outline_modelled.expect
index c349c47..7714b6b 100644
--- a/pkg/front_end/testcases/general/typedef.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/typedef.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
main() {}
typedef _BinaryFunction(args, message);
typedef _NullaryFunction();
diff --git a/pkg/front_end/testcases/general/typedef.dart.weak.expect b/pkg/front_end/testcases/general/typedef.dart.weak.expect
index 2b36abf..bca1c7e 100644
--- a/pkg/front_end/testcases/general/typedef.dart.weak.expect
+++ b/pkg/front_end/testcases/general/typedef.dart.weak.expect
@@ -1,14 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef _NullaryFunction = () →* dynamic;
-typedef _UnaryFunction = (dynamic) →* dynamic;
-typedef _BinaryFunction = (dynamic, dynamic) →* dynamic;
+typedef _NullaryFunction = () → dynamic;
+typedef _UnaryFunction = (dynamic) → dynamic;
+typedef _BinaryFunction = (dynamic, dynamic) → dynamic;
static method main() → dynamic {
- core::print(#C1 is () →* dynamic);
- core::print(#C1 is (dynamic) →* dynamic);
- core::print(#C1 is (dynamic, dynamic) →* dynamic);
+ core::print(#C1 is{ForNonNullableByDefault} () → dynamic);
+ core::print(#C1 is{ForNonNullableByDefault} (dynamic) → dynamic);
+ core::print(#C1 is{ForNonNullableByDefault} (dynamic, dynamic) → dynamic);
}
constants {
diff --git a/pkg/front_end/testcases/general/typedef.dart.weak.modular.expect b/pkg/front_end/testcases/general/typedef.dart.weak.modular.expect
index 2b36abf..bca1c7e 100644
--- a/pkg/front_end/testcases/general/typedef.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/typedef.dart.weak.modular.expect
@@ -1,14 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef _NullaryFunction = () →* dynamic;
-typedef _UnaryFunction = (dynamic) →* dynamic;
-typedef _BinaryFunction = (dynamic, dynamic) →* dynamic;
+typedef _NullaryFunction = () → dynamic;
+typedef _UnaryFunction = (dynamic) → dynamic;
+typedef _BinaryFunction = (dynamic, dynamic) → dynamic;
static method main() → dynamic {
- core::print(#C1 is () →* dynamic);
- core::print(#C1 is (dynamic) →* dynamic);
- core::print(#C1 is (dynamic, dynamic) →* dynamic);
+ core::print(#C1 is{ForNonNullableByDefault} () → dynamic);
+ core::print(#C1 is{ForNonNullableByDefault} (dynamic) → dynamic);
+ core::print(#C1 is{ForNonNullableByDefault} (dynamic, dynamic) → dynamic);
}
constants {
diff --git a/pkg/front_end/testcases/general/typedef.dart.weak.outline.expect b/pkg/front_end/testcases/general/typedef.dart.weak.outline.expect
index b50eefb..96cf42b 100644
--- a/pkg/front_end/testcases/general/typedef.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/typedef.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
-typedef _NullaryFunction = () →* dynamic;
-typedef _UnaryFunction = (dynamic) →* dynamic;
-typedef _BinaryFunction = (dynamic, dynamic) →* dynamic;
+typedef _NullaryFunction = () → dynamic;
+typedef _UnaryFunction = (dynamic) → dynamic;
+typedef _BinaryFunction = (dynamic, dynamic) → dynamic;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/typedef.dart.weak.transformed.expect b/pkg/front_end/testcases/general/typedef.dart.weak.transformed.expect
index 9f48e47..8eb05b0 100644
--- a/pkg/front_end/testcases/general/typedef.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/typedef.dart.weak.transformed.expect
@@ -1,14 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef _NullaryFunction = () →* dynamic;
-typedef _UnaryFunction = (dynamic) →* dynamic;
-typedef _BinaryFunction = (dynamic, dynamic) →* dynamic;
+typedef _NullaryFunction = () → dynamic;
+typedef _UnaryFunction = (dynamic) → dynamic;
+typedef _BinaryFunction = (dynamic, dynamic) → dynamic;
static method main() → dynamic {
- core::print(#C1 is () →* dynamic);
- core::print(#C1 is (dynamic) →* dynamic);
- core::print(#C1 is (dynamic, dynamic) →* dynamic);
+ core::print(#C1 is{ForNonNullableByDefault} () → dynamic);
+ core::print(#C1 is{ForNonNullableByDefault} (dynamic) → dynamic);
+ core::print(#C1 is{ForNonNullableByDefault} (dynamic, dynamic) → dynamic);
}
constants {
diff --git a/pkg/front_end/testcases/general/undefined.dart b/pkg/front_end/testcases/general/undefined.dart
index bbecb3d..6e2fc23 100644
--- a/pkg/front_end/testcases/general/undefined.dart
+++ b/pkg/front_end/testcases/general/undefined.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
class C {
var x;
void f() {}
diff --git a/pkg/front_end/testcases/general/undefined.dart.textual_outline.expect b/pkg/front_end/testcases/general/undefined.dart.textual_outline.expect
index a50bbc9..7c1f7be 100644
--- a/pkg/front_end/testcases/general/undefined.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/undefined.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class C {
var x;
void f() {}
diff --git a/pkg/front_end/testcases/general/undefined.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/undefined.dart.textual_outline_modelled.expect
index a67bda8..6775e59 100644
--- a/pkg/front_end/testcases/general/undefined.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/undefined.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class C {
var x;
void f() {}
diff --git a/pkg/front_end/testcases/general/undefined.dart.weak.expect b/pkg/front_end/testcases/general/undefined.dart.weak.expect
index 0c68639..85934aa 100644
--- a/pkg/front_end/testcases/general/undefined.dart.weak.expect
+++ b/pkg/front_end/testcases/general/undefined.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -25,29 +25,19 @@
class C extends core::Object {
field dynamic x = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method f() → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(self::C* c) → void {
+static method test(self::C c) → void {
c.{self::C::x}{dynamic};
invalid-expression "pkg/front_end/testcases/general/undefined.dart:12:5: Error: The getter 'y' isn't defined for the class 'C'.
- 'C' is from 'pkg/front_end/testcases/general/undefined.dart'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'y'.
c.y;
^" in c{<unresolved>}.y;
- c.{self::C::f}(){() →* void};
+ c.{self::C::f}(){() → void};
invalid-expression "pkg/front_end/testcases/general/undefined.dart:14:5: Error: The method 'g' isn't defined for the class 'C'.
- 'C' is from 'pkg/front_end/testcases/general/undefined.dart'.
Try correcting the name to the name of an existing method, or defining a method named 'g'.
diff --git a/pkg/front_end/testcases/general/undefined.dart.weak.modular.expect b/pkg/front_end/testcases/general/undefined.dart.weak.modular.expect
index 0c68639..85934aa 100644
--- a/pkg/front_end/testcases/general/undefined.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/undefined.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -25,29 +25,19 @@
class C extends core::Object {
field dynamic x = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method f() → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(self::C* c) → void {
+static method test(self::C c) → void {
c.{self::C::x}{dynamic};
invalid-expression "pkg/front_end/testcases/general/undefined.dart:12:5: Error: The getter 'y' isn't defined for the class 'C'.
- 'C' is from 'pkg/front_end/testcases/general/undefined.dart'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'y'.
c.y;
^" in c{<unresolved>}.y;
- c.{self::C::f}(){() →* void};
+ c.{self::C::f}(){() → void};
invalid-expression "pkg/front_end/testcases/general/undefined.dart:14:5: Error: The method 'g' isn't defined for the class 'C'.
- 'C' is from 'pkg/front_end/testcases/general/undefined.dart'.
Try correcting the name to the name of an existing method, or defining a method named 'g'.
diff --git a/pkg/front_end/testcases/general/undefined.dart.weak.outline.expect b/pkg/front_end/testcases/general/undefined.dart.weak.outline.expect
index 83a27aa..4bf3b58 100644
--- a/pkg/front_end/testcases/general/undefined.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/undefined.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
field dynamic x;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
method f() → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(self::C* c) → void
+static method test(self::C c) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/undefined.dart.weak.transformed.expect b/pkg/front_end/testcases/general/undefined.dart.weak.transformed.expect
index 0c68639..85934aa 100644
--- a/pkg/front_end/testcases/general/undefined.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/undefined.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -25,29 +25,19 @@
class C extends core::Object {
field dynamic x = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method f() → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(self::C* c) → void {
+static method test(self::C c) → void {
c.{self::C::x}{dynamic};
invalid-expression "pkg/front_end/testcases/general/undefined.dart:12:5: Error: The getter 'y' isn't defined for the class 'C'.
- 'C' is from 'pkg/front_end/testcases/general/undefined.dart'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'y'.
c.y;
^" in c{<unresolved>}.y;
- c.{self::C::f}(){() →* void};
+ c.{self::C::f}(){() → void};
invalid-expression "pkg/front_end/testcases/general/undefined.dart:14:5: Error: The method 'g' isn't defined for the class 'C'.
- 'C' is from 'pkg/front_end/testcases/general/undefined.dart'.
Try correcting the name to the name of an existing method, or defining a method named 'g'.
diff --git a/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart b/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart
index 5f79f34..c6b5b4d 100644
--- a/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart
+++ b/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
class C {
void set x(value) {}
}
diff --git a/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.textual_outline.expect b/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.textual_outline.expect
index f484bf2..627bd18 100644
--- a/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class C {
void set x(value) {}
}
diff --git a/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.textual_outline_modelled.expect
index 88ced95..b1044c0 100644
--- a/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class C {
void set x(value) {}
}
diff --git a/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.weak.expect b/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.weak.expect
index fdcdf1e..c17f0b6 100644
--- a/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.weak.expect
+++ b/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -18,29 +18,19 @@
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
set x(dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(self::C* c) → void {
+static method test(self::C c) → void {
c.{self::C::x} = 1;
- let final self::C* #t1 = c in #t1.{self::C::x} = invalid-expression "pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart:11:5: Error: The getter 'x' isn't defined for the class 'C'.
+ let final self::C #t1 = c in #t1.{self::C::x} = invalid-expression "pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart:11:5: Error: The getter 'x' isn't defined for the class 'C'.
- 'C' is from 'pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'x'.
c.x += 1;
^" in #t1{<unresolved>}.x{dynamic}.+(1);
- let final self::C* #t2 = c in invalid-expression "pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart:12:5: Error: The getter 'x' isn't defined for the class 'C'.
+ let final self::C #t2 = c in invalid-expression "pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart:12:5: Error: The getter 'x' isn't defined for the class 'C'.
- 'C' is from 'pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'x'.
c.x ??= 1;
diff --git a/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.weak.modular.expect b/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.weak.modular.expect
index fdcdf1e..c17f0b6 100644
--- a/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -18,29 +18,19 @@
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
set x(dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(self::C* c) → void {
+static method test(self::C c) → void {
c.{self::C::x} = 1;
- let final self::C* #t1 = c in #t1.{self::C::x} = invalid-expression "pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart:11:5: Error: The getter 'x' isn't defined for the class 'C'.
+ let final self::C #t1 = c in #t1.{self::C::x} = invalid-expression "pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart:11:5: Error: The getter 'x' isn't defined for the class 'C'.
- 'C' is from 'pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'x'.
c.x += 1;
^" in #t1{<unresolved>}.x{dynamic}.+(1);
- let final self::C* #t2 = c in invalid-expression "pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart:12:5: Error: The getter 'x' isn't defined for the class 'C'.
+ let final self::C #t2 = c in invalid-expression "pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart:12:5: Error: The getter 'x' isn't defined for the class 'C'.
- 'C' is from 'pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'x'.
c.x ??= 1;
diff --git a/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.weak.outline.expect b/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.weak.outline.expect
index 93a68f8..5fe30f0 100644
--- a/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
set x(dynamic value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(self::C* c) → void
+static method test(self::C c) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.weak.transformed.expect b/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.weak.transformed.expect
index fdcdf1e..c17f0b6 100644
--- a/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -18,29 +18,19 @@
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
set x(dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(self::C* c) → void {
+static method test(self::C c) → void {
c.{self::C::x} = 1;
- let final self::C* #t1 = c in #t1.{self::C::x} = invalid-expression "pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart:11:5: Error: The getter 'x' isn't defined for the class 'C'.
+ let final self::C #t1 = c in #t1.{self::C::x} = invalid-expression "pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart:11:5: Error: The getter 'x' isn't defined for the class 'C'.
- 'C' is from 'pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'x'.
c.x += 1;
^" in #t1{<unresolved>}.x{dynamic}.+(1);
- let final self::C* #t2 = c in invalid-expression "pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart:12:5: Error: The getter 'x' isn't defined for the class 'C'.
+ let final self::C #t2 = c in invalid-expression "pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart:12:5: Error: The getter 'x' isn't defined for the class 'C'.
- 'C' is from 'pkg/front_end/testcases/general/undefined_getter_in_compound_assignment.dart'.
Try correcting the name to the name of an existing getter, or defining a getter or field named 'x'.
c.x ??= 1;
diff --git a/pkg/front_end/testcases/general/uninitialized_fields.dart b/pkg/front_end/testcases/general/uninitialized_fields.dart
index 01f5986..126f6a3 100644
--- a/pkg/front_end/testcases/general/uninitialized_fields.dart
+++ b/pkg/front_end/testcases/general/uninitialized_fields.dart
@@ -2,30 +2,28 @@
// 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.
-// @dart=2.9
-
class Uninitialized {
- int x;
+ int? x;
}
class PartiallyInitialized {
- int x;
+ int? x;
PartiallyInitialized(this.x);
PartiallyInitialized.noInitializer();
}
class Initialized {
- int x;
+ int? x;
Initialized(this.x);
}
class Forwarding {
- int x;
+ int? x;
Forwarding.initialize(this.x);
- Forwarding(int arg) : this.initialize(arg);
+ Forwarding(int? arg) : this.initialize(arg);
}
-int uninitializedTopLevel;
-int initializedTopLevel = 4;
+int? uninitializedTopLevel;
+int? initializedTopLevel = 4;
main() {}
diff --git a/pkg/front_end/testcases/general/uninitialized_fields.dart.textual_outline.expect b/pkg/front_end/testcases/general/uninitialized_fields.dart.textual_outline.expect
index cab3882..7cdf9cb 100644
--- a/pkg/front_end/testcases/general/uninitialized_fields.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/uninitialized_fields.dart.textual_outline.expect
@@ -1,25 +1,24 @@
-// @dart = 2.9
class Uninitialized {
- int x;
+ int? x;
}
class PartiallyInitialized {
- int x;
+ int? x;
PartiallyInitialized(this.x);
PartiallyInitialized.noInitializer();
}
class Initialized {
- int x;
+ int? x;
Initialized(this.x);
}
class Forwarding {
- int x;
+ int? x;
Forwarding.initialize(this.x);
- Forwarding(int arg) : this.initialize(arg);
+ Forwarding(int? arg) : this.initialize(arg);
}
-int uninitializedTopLevel;
-int initializedTopLevel = 4;
+int? uninitializedTopLevel;
+int? initializedTopLevel = 4;
main() {}
diff --git a/pkg/front_end/testcases/general/uninitialized_fields.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/uninitialized_fields.dart.textual_outline_modelled.expect
index 5d156f2..b147ef4 100644
--- a/pkg/front_end/testcases/general/uninitialized_fields.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/uninitialized_fields.dart.textual_outline_modelled.expect
@@ -1,25 +1,24 @@
-// @dart = 2.9
class Forwarding {
- Forwarding(int arg) : this.initialize(arg);
+ Forwarding(int? arg) : this.initialize(arg);
Forwarding.initialize(this.x);
- int x;
+ int? x;
}
class Initialized {
Initialized(this.x);
- int x;
+ int? x;
}
class PartiallyInitialized {
PartiallyInitialized(this.x);
PartiallyInitialized.noInitializer();
- int x;
+ int? x;
}
class Uninitialized {
- int x;
+ int? x;
}
-int initializedTopLevel = 4;
-int uninitializedTopLevel;
+int? initializedTopLevel = 4;
+int? uninitializedTopLevel;
main() {}
diff --git a/pkg/front_end/testcases/general/uninitialized_fields.dart.weak.expect b/pkg/front_end/testcases/general/uninitialized_fields.dart.weak.expect
index 66c109b..d8926dc 100644
--- a/pkg/front_end/testcases/general/uninitialized_fields.dart.weak.expect
+++ b/pkg/front_end/testcases/general/uninitialized_fields.dart.weak.expect
@@ -1,77 +1,37 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Uninitialized extends core::Object {
- field core::int* x = null;
- synthetic constructor •() → self::Uninitialized*
+ field core::int? x = null;
+ synthetic constructor •() → self::Uninitialized
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class PartiallyInitialized extends core::Object {
- field core::int* x;
- constructor •(core::int* x) → self::PartiallyInitialized*
+ field core::int? x;
+ constructor •(core::int? x) → self::PartiallyInitialized
: self::PartiallyInitialized::x = x, super core::Object::•()
;
- constructor noInitializer() → self::PartiallyInitialized*
+ constructor noInitializer() → self::PartiallyInitialized
: self::PartiallyInitialized::x = null, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Initialized extends core::Object {
- field core::int* x;
- constructor •(core::int* x) → self::Initialized*
+ field core::int? x;
+ constructor •(core::int? x) → self::Initialized
: self::Initialized::x = x, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Forwarding extends core::Object {
- field core::int* x;
- constructor initialize(core::int* x) → self::Forwarding*
+ field core::int? x;
+ constructor initialize(core::int? x) → self::Forwarding
: self::Forwarding::x = x, super core::Object::•()
;
- constructor •(core::int* arg) → self::Forwarding*
+ constructor •(core::int? arg) → self::Forwarding
: this self::Forwarding::initialize(arg)
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* uninitializedTopLevel;
-static field core::int* initializedTopLevel = 4;
+static field core::int? uninitializedTopLevel;
+static field core::int? initializedTopLevel = 4;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/uninitialized_fields.dart.weak.modular.expect b/pkg/front_end/testcases/general/uninitialized_fields.dart.weak.modular.expect
index 66c109b..d8926dc 100644
--- a/pkg/front_end/testcases/general/uninitialized_fields.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/uninitialized_fields.dart.weak.modular.expect
@@ -1,77 +1,37 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Uninitialized extends core::Object {
- field core::int* x = null;
- synthetic constructor •() → self::Uninitialized*
+ field core::int? x = null;
+ synthetic constructor •() → self::Uninitialized
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class PartiallyInitialized extends core::Object {
- field core::int* x;
- constructor •(core::int* x) → self::PartiallyInitialized*
+ field core::int? x;
+ constructor •(core::int? x) → self::PartiallyInitialized
: self::PartiallyInitialized::x = x, super core::Object::•()
;
- constructor noInitializer() → self::PartiallyInitialized*
+ constructor noInitializer() → self::PartiallyInitialized
: self::PartiallyInitialized::x = null, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Initialized extends core::Object {
- field core::int* x;
- constructor •(core::int* x) → self::Initialized*
+ field core::int? x;
+ constructor •(core::int? x) → self::Initialized
: self::Initialized::x = x, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Forwarding extends core::Object {
- field core::int* x;
- constructor initialize(core::int* x) → self::Forwarding*
+ field core::int? x;
+ constructor initialize(core::int? x) → self::Forwarding
: self::Forwarding::x = x, super core::Object::•()
;
- constructor •(core::int* arg) → self::Forwarding*
+ constructor •(core::int? arg) → self::Forwarding
: this self::Forwarding::initialize(arg)
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* uninitializedTopLevel;
-static field core::int* initializedTopLevel = 4;
+static field core::int? uninitializedTopLevel;
+static field core::int? initializedTopLevel = 4;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/uninitialized_fields.dart.weak.outline.expect b/pkg/front_end/testcases/general/uninitialized_fields.dart.weak.outline.expect
index 0c30a7d..e34e8bb 100644
--- a/pkg/front_end/testcases/general/uninitialized_fields.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/uninitialized_fields.dart.weak.outline.expect
@@ -1,72 +1,32 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Uninitialized extends core::Object {
- field core::int* x;
- synthetic constructor •() → self::Uninitialized*
+ field core::int? x;
+ synthetic constructor •() → self::Uninitialized
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class PartiallyInitialized extends core::Object {
- field core::int* x;
- constructor •(core::int* x) → self::PartiallyInitialized*
+ field core::int? x;
+ constructor •(core::int? x) → self::PartiallyInitialized
;
- constructor noInitializer() → self::PartiallyInitialized*
+ constructor noInitializer() → self::PartiallyInitialized
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Initialized extends core::Object {
- field core::int* x;
- constructor •(core::int* x) → self::Initialized*
+ field core::int? x;
+ constructor •(core::int? x) → self::Initialized
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Forwarding extends core::Object {
- field core::int* x;
- constructor initialize(core::int* x) → self::Forwarding*
+ field core::int? x;
+ constructor initialize(core::int? x) → self::Forwarding
;
- constructor •(core::int* arg) → self::Forwarding*
+ constructor •(core::int? arg) → self::Forwarding
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* uninitializedTopLevel;
-static field core::int* initializedTopLevel;
+static field core::int? uninitializedTopLevel;
+static field core::int? initializedTopLevel;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/uninitialized_fields.dart.weak.transformed.expect b/pkg/front_end/testcases/general/uninitialized_fields.dart.weak.transformed.expect
index 66c109b..d8926dc 100644
--- a/pkg/front_end/testcases/general/uninitialized_fields.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/uninitialized_fields.dart.weak.transformed.expect
@@ -1,77 +1,37 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Uninitialized extends core::Object {
- field core::int* x = null;
- synthetic constructor •() → self::Uninitialized*
+ field core::int? x = null;
+ synthetic constructor •() → self::Uninitialized
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class PartiallyInitialized extends core::Object {
- field core::int* x;
- constructor •(core::int* x) → self::PartiallyInitialized*
+ field core::int? x;
+ constructor •(core::int? x) → self::PartiallyInitialized
: self::PartiallyInitialized::x = x, super core::Object::•()
;
- constructor noInitializer() → self::PartiallyInitialized*
+ constructor noInitializer() → self::PartiallyInitialized
: self::PartiallyInitialized::x = null, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Initialized extends core::Object {
- field core::int* x;
- constructor •(core::int* x) → self::Initialized*
+ field core::int? x;
+ constructor •(core::int? x) → self::Initialized
: self::Initialized::x = x, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Forwarding extends core::Object {
- field core::int* x;
- constructor initialize(core::int* x) → self::Forwarding*
+ field core::int? x;
+ constructor initialize(core::int? x) → self::Forwarding
: self::Forwarding::x = x, super core::Object::•()
;
- constructor •(core::int* arg) → self::Forwarding*
+ constructor •(core::int? arg) → self::Forwarding
: this self::Forwarding::initialize(arg)
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* uninitializedTopLevel;
-static field core::int* initializedTopLevel = 4;
+static field core::int? uninitializedTopLevel;
+static field core::int? initializedTopLevel = 4;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/unsound_promotion.dart b/pkg/front_end/testcases/general/unsound_promotion.dart
index ac9a1e3..4cdbeab 100644
--- a/pkg/front_end/testcases/general/unsound_promotion.dart
+++ b/pkg/front_end/testcases/general/unsound_promotion.dart
@@ -1,7 +1,9 @@
// 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.
+
// @dart=2.9
+
class A {}
class B {}
diff --git a/pkg/front_end/testcases/general/unsound_promotion.dart.weak.expect b/pkg/front_end/testcases/general/unsound_promotion.dart.weak.expect
index e5a07f2..15dae9c 100644
--- a/pkg/front_end/testcases/general/unsound_promotion.dart.weak.expect
+++ b/pkg/front_end/testcases/general/unsound_promotion.dart.weak.expect
@@ -2,12 +2,12 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/general/unsound_promotion.dart:21:16: Error: Inferred type argument 'S' doesn't conform to the bound 'A' of the type variable 'T' on 'g'.
+// pkg/front_end/testcases/general/unsound_promotion.dart:23:16: Error: Inferred type argument 'S' doesn't conform to the bound 'A' of the type variable 'T' on 'g'.
// - 'A' is from 'pkg/front_end/testcases/general/unsound_promotion.dart'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// var list = g(s);
// ^
-// pkg/front_end/testcases/general/unsound_promotion.dart:13:11: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/unsound_promotion.dart:15:11: Context: This is the type variable whose bound isn't conformed to.
// List<T> g<T extends A>(T t) {
// ^
//
diff --git a/pkg/front_end/testcases/general/unsound_promotion.dart.weak.modular.expect b/pkg/front_end/testcases/general/unsound_promotion.dart.weak.modular.expect
index e5a07f2..15dae9c 100644
--- a/pkg/front_end/testcases/general/unsound_promotion.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/unsound_promotion.dart.weak.modular.expect
@@ -2,12 +2,12 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/general/unsound_promotion.dart:21:16: Error: Inferred type argument 'S' doesn't conform to the bound 'A' of the type variable 'T' on 'g'.
+// pkg/front_end/testcases/general/unsound_promotion.dart:23:16: Error: Inferred type argument 'S' doesn't conform to the bound 'A' of the type variable 'T' on 'g'.
// - 'A' is from 'pkg/front_end/testcases/general/unsound_promotion.dart'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// var list = g(s);
// ^
-// pkg/front_end/testcases/general/unsound_promotion.dart:13:11: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/unsound_promotion.dart:15:11: Context: This is the type variable whose bound isn't conformed to.
// List<T> g<T extends A>(T t) {
// ^
//
diff --git a/pkg/front_end/testcases/general/unused_methods.dart b/pkg/front_end/testcases/general/unused_methods.dart
index a70db6e..5d2c38c 100644
--- a/pkg/front_end/testcases/general/unused_methods.dart
+++ b/pkg/front_end/testcases/general/unused_methods.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
class UnusedClass {
UnusedClass() {
print('Unused');
diff --git a/pkg/front_end/testcases/general/unused_methods.dart.textual_outline.expect b/pkg/front_end/testcases/general/unused_methods.dart.textual_outline.expect
index 443ea22..d30480d 100644
--- a/pkg/front_end/testcases/general/unused_methods.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/unused_methods.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class UnusedClass {
UnusedClass() {}
}
diff --git a/pkg/front_end/testcases/general/unused_methods.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/unused_methods.dart.textual_outline_modelled.expect
index 4a09745..fe88e83 100644
--- a/pkg/front_end/testcases/general/unused_methods.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/unused_methods.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
abstract class UsedAsBaseClass {
void calledFromB() {}
void calledFromSubclass() {}
diff --git a/pkg/front_end/testcases/general/unused_methods.dart.weak.expect b/pkg/front_end/testcases/general/unused_methods.dart.weak.expect
index 060120a..30afbfa 100644
--- a/pkg/front_end/testcases/general/unused_methods.dart.weak.expect
+++ b/pkg/front_end/testcases/general/unused_methods.dart.weak.expect
@@ -1,85 +1,45 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class UnusedClass extends core::Object {
- constructor •() → self::UnusedClass*
+ constructor •() → self::UnusedClass
: super core::Object::•() {
core::print("Unused");
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class UsedAsBaseClass extends core::Object {
- synthetic constructor •() → self::UsedAsBaseClass*
+ synthetic constructor •() → self::UsedAsBaseClass
: super core::Object::•()
;
method usedInSubclass() → void {
core::print("Unused");
}
method calledFromB() → void {
- this.{self::UsedAsBaseClass::calledFromSubclass}(){() →* void};
+ this.{self::UsedAsBaseClass::calledFromSubclass}(){() → void};
}
method calledFromSubclass() → void {
core::print("Unused");
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class UsedAsInterface extends core::Object {
- synthetic constructor •() → self::UsedAsInterface*
+ synthetic constructor •() → self::UsedAsInterface
: super core::Object::•()
;
method usedInSubclass() → void {
core::print("Unused");
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class InstantiatedButMethodsUnused extends core::Object {
- synthetic constructor •() → self::InstantiatedButMethodsUnused*
+ synthetic constructor •() → self::InstantiatedButMethodsUnused
: super core::Object::•()
;
method usedInSubclass() → void {
core::print("Unused");
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class ClassA extends self::UsedAsBaseClass implements self::UsedAsInterface, self::InstantiatedButMethodsUnused {
- synthetic constructor •() → self::ClassA*
+ synthetic constructor •() → self::ClassA
: super self::UsedAsBaseClass::•()
;
method usedInSubclass() → void {
@@ -87,26 +47,26 @@
}
}
class ClassB extends self::UsedAsBaseClass implements self::UsedAsInterface, self::InstantiatedButMethodsUnused {
- synthetic constructor •() → self::ClassB*
+ synthetic constructor •() → self::ClassB
: super self::UsedAsBaseClass::•()
;
method usedInSubclass() → void {
core::print("B");
- this.{self::UsedAsBaseClass::calledFromB}(){() →* void};
+ this.{self::UsedAsBaseClass::calledFromB}(){() → void};
}
method calledFromSubclass() → void {}
}
-static method baseClassCall(self::UsedAsBaseClass* object) → void {
- object.{self::UsedAsBaseClass::usedInSubclass}(){() →* void};
+static method baseClassCall(self::UsedAsBaseClass object) → void {
+ object.{self::UsedAsBaseClass::usedInSubclass}(){() → void};
}
-static method interfaceCall(self::UsedAsInterface* object) → void {
- object.{self::UsedAsInterface::usedInSubclass}(){() →* void};
+static method interfaceCall(self::UsedAsInterface object) → void {
+ object.{self::UsedAsInterface::usedInSubclass}(){() → void};
}
-static method exactCallA(self::ClassA* object) → void {
- object.{self::ClassA::usedInSubclass}(){() →* void};
+static method exactCallA(self::ClassA object) → void {
+ object.{self::ClassA::usedInSubclass}(){() → void};
}
-static method exactCallB(self::ClassB* object) → void {
- object.{self::ClassB::usedInSubclass}(){() →* void};
+static method exactCallB(self::ClassB object) → void {
+ object.{self::ClassB::usedInSubclass}(){() → void};
}
static method unusedTopLevel() → dynamic {
core::print("Unused");
@@ -114,11 +74,11 @@
static method usedTopLevel() → dynamic {}
static method main() → dynamic {
self::usedTopLevel();
- self::ClassA* a = new self::ClassA::•();
+ self::ClassA a = new self::ClassA::•();
self::exactCallA(a);
self::baseClassCall(a);
self::interfaceCall(a);
- self::ClassB* b = new self::ClassB::•();
+ self::ClassB b = new self::ClassB::•();
self::exactCallB(b);
self::baseClassCall(b);
self::interfaceCall(b);
diff --git a/pkg/front_end/testcases/general/unused_methods.dart.weak.modular.expect b/pkg/front_end/testcases/general/unused_methods.dart.weak.modular.expect
index 060120a..30afbfa 100644
--- a/pkg/front_end/testcases/general/unused_methods.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/unused_methods.dart.weak.modular.expect
@@ -1,85 +1,45 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class UnusedClass extends core::Object {
- constructor •() → self::UnusedClass*
+ constructor •() → self::UnusedClass
: super core::Object::•() {
core::print("Unused");
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class UsedAsBaseClass extends core::Object {
- synthetic constructor •() → self::UsedAsBaseClass*
+ synthetic constructor •() → self::UsedAsBaseClass
: super core::Object::•()
;
method usedInSubclass() → void {
core::print("Unused");
}
method calledFromB() → void {
- this.{self::UsedAsBaseClass::calledFromSubclass}(){() →* void};
+ this.{self::UsedAsBaseClass::calledFromSubclass}(){() → void};
}
method calledFromSubclass() → void {
core::print("Unused");
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class UsedAsInterface extends core::Object {
- synthetic constructor •() → self::UsedAsInterface*
+ synthetic constructor •() → self::UsedAsInterface
: super core::Object::•()
;
method usedInSubclass() → void {
core::print("Unused");
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class InstantiatedButMethodsUnused extends core::Object {
- synthetic constructor •() → self::InstantiatedButMethodsUnused*
+ synthetic constructor •() → self::InstantiatedButMethodsUnused
: super core::Object::•()
;
method usedInSubclass() → void {
core::print("Unused");
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class ClassA extends self::UsedAsBaseClass implements self::UsedAsInterface, self::InstantiatedButMethodsUnused {
- synthetic constructor •() → self::ClassA*
+ synthetic constructor •() → self::ClassA
: super self::UsedAsBaseClass::•()
;
method usedInSubclass() → void {
@@ -87,26 +47,26 @@
}
}
class ClassB extends self::UsedAsBaseClass implements self::UsedAsInterface, self::InstantiatedButMethodsUnused {
- synthetic constructor •() → self::ClassB*
+ synthetic constructor •() → self::ClassB
: super self::UsedAsBaseClass::•()
;
method usedInSubclass() → void {
core::print("B");
- this.{self::UsedAsBaseClass::calledFromB}(){() →* void};
+ this.{self::UsedAsBaseClass::calledFromB}(){() → void};
}
method calledFromSubclass() → void {}
}
-static method baseClassCall(self::UsedAsBaseClass* object) → void {
- object.{self::UsedAsBaseClass::usedInSubclass}(){() →* void};
+static method baseClassCall(self::UsedAsBaseClass object) → void {
+ object.{self::UsedAsBaseClass::usedInSubclass}(){() → void};
}
-static method interfaceCall(self::UsedAsInterface* object) → void {
- object.{self::UsedAsInterface::usedInSubclass}(){() →* void};
+static method interfaceCall(self::UsedAsInterface object) → void {
+ object.{self::UsedAsInterface::usedInSubclass}(){() → void};
}
-static method exactCallA(self::ClassA* object) → void {
- object.{self::ClassA::usedInSubclass}(){() →* void};
+static method exactCallA(self::ClassA object) → void {
+ object.{self::ClassA::usedInSubclass}(){() → void};
}
-static method exactCallB(self::ClassB* object) → void {
- object.{self::ClassB::usedInSubclass}(){() →* void};
+static method exactCallB(self::ClassB object) → void {
+ object.{self::ClassB::usedInSubclass}(){() → void};
}
static method unusedTopLevel() → dynamic {
core::print("Unused");
@@ -114,11 +74,11 @@
static method usedTopLevel() → dynamic {}
static method main() → dynamic {
self::usedTopLevel();
- self::ClassA* a = new self::ClassA::•();
+ self::ClassA a = new self::ClassA::•();
self::exactCallA(a);
self::baseClassCall(a);
self::interfaceCall(a);
- self::ClassB* b = new self::ClassB::•();
+ self::ClassB b = new self::ClassB::•();
self::exactCallB(b);
self::baseClassCall(b);
self::interfaceCall(b);
diff --git a/pkg/front_end/testcases/general/unused_methods.dart.weak.outline.expect b/pkg/front_end/testcases/general/unused_methods.dart.weak.outline.expect
index 1ddee56..7014eb3 100644
--- a/pkg/front_end/testcases/general/unused_methods.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/unused_methods.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class UnusedClass extends core::Object {
- constructor •() → self::UnusedClass*
+ constructor •() → self::UnusedClass
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class UsedAsBaseClass extends core::Object {
- synthetic constructor •() → self::UsedAsBaseClass*
+ synthetic constructor •() → self::UsedAsBaseClass
;
method usedInSubclass() → void
;
@@ -25,70 +15,40 @@
;
method calledFromSubclass() → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class UsedAsInterface extends core::Object {
- synthetic constructor •() → self::UsedAsInterface*
+ synthetic constructor •() → self::UsedAsInterface
;
method usedInSubclass() → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class InstantiatedButMethodsUnused extends core::Object {
- synthetic constructor •() → self::InstantiatedButMethodsUnused*
+ synthetic constructor •() → self::InstantiatedButMethodsUnused
;
method usedInSubclass() → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class ClassA extends self::UsedAsBaseClass implements self::UsedAsInterface, self::InstantiatedButMethodsUnused {
- synthetic constructor •() → self::ClassA*
+ synthetic constructor •() → self::ClassA
;
method usedInSubclass() → void
;
}
class ClassB extends self::UsedAsBaseClass implements self::UsedAsInterface, self::InstantiatedButMethodsUnused {
- synthetic constructor •() → self::ClassB*
+ synthetic constructor •() → self::ClassB
;
method usedInSubclass() → void
;
method calledFromSubclass() → void
;
}
-static method baseClassCall(self::UsedAsBaseClass* object) → void
+static method baseClassCall(self::UsedAsBaseClass object) → void
;
-static method interfaceCall(self::UsedAsInterface* object) → void
+static method interfaceCall(self::UsedAsInterface object) → void
;
-static method exactCallA(self::ClassA* object) → void
+static method exactCallA(self::ClassA object) → void
;
-static method exactCallB(self::ClassB* object) → void
+static method exactCallB(self::ClassB object) → void
;
static method unusedTopLevel() → dynamic
;
diff --git a/pkg/front_end/testcases/general/unused_methods.dart.weak.transformed.expect b/pkg/front_end/testcases/general/unused_methods.dart.weak.transformed.expect
index 060120a..30afbfa 100644
--- a/pkg/front_end/testcases/general/unused_methods.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/unused_methods.dart.weak.transformed.expect
@@ -1,85 +1,45 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class UnusedClass extends core::Object {
- constructor •() → self::UnusedClass*
+ constructor •() → self::UnusedClass
: super core::Object::•() {
core::print("Unused");
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class UsedAsBaseClass extends core::Object {
- synthetic constructor •() → self::UsedAsBaseClass*
+ synthetic constructor •() → self::UsedAsBaseClass
: super core::Object::•()
;
method usedInSubclass() → void {
core::print("Unused");
}
method calledFromB() → void {
- this.{self::UsedAsBaseClass::calledFromSubclass}(){() →* void};
+ this.{self::UsedAsBaseClass::calledFromSubclass}(){() → void};
}
method calledFromSubclass() → void {
core::print("Unused");
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class UsedAsInterface extends core::Object {
- synthetic constructor •() → self::UsedAsInterface*
+ synthetic constructor •() → self::UsedAsInterface
: super core::Object::•()
;
method usedInSubclass() → void {
core::print("Unused");
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class InstantiatedButMethodsUnused extends core::Object {
- synthetic constructor •() → self::InstantiatedButMethodsUnused*
+ synthetic constructor •() → self::InstantiatedButMethodsUnused
: super core::Object::•()
;
method usedInSubclass() → void {
core::print("Unused");
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class ClassA extends self::UsedAsBaseClass implements self::UsedAsInterface, self::InstantiatedButMethodsUnused {
- synthetic constructor •() → self::ClassA*
+ synthetic constructor •() → self::ClassA
: super self::UsedAsBaseClass::•()
;
method usedInSubclass() → void {
@@ -87,26 +47,26 @@
}
}
class ClassB extends self::UsedAsBaseClass implements self::UsedAsInterface, self::InstantiatedButMethodsUnused {
- synthetic constructor •() → self::ClassB*
+ synthetic constructor •() → self::ClassB
: super self::UsedAsBaseClass::•()
;
method usedInSubclass() → void {
core::print("B");
- this.{self::UsedAsBaseClass::calledFromB}(){() →* void};
+ this.{self::UsedAsBaseClass::calledFromB}(){() → void};
}
method calledFromSubclass() → void {}
}
-static method baseClassCall(self::UsedAsBaseClass* object) → void {
- object.{self::UsedAsBaseClass::usedInSubclass}(){() →* void};
+static method baseClassCall(self::UsedAsBaseClass object) → void {
+ object.{self::UsedAsBaseClass::usedInSubclass}(){() → void};
}
-static method interfaceCall(self::UsedAsInterface* object) → void {
- object.{self::UsedAsInterface::usedInSubclass}(){() →* void};
+static method interfaceCall(self::UsedAsInterface object) → void {
+ object.{self::UsedAsInterface::usedInSubclass}(){() → void};
}
-static method exactCallA(self::ClassA* object) → void {
- object.{self::ClassA::usedInSubclass}(){() →* void};
+static method exactCallA(self::ClassA object) → void {
+ object.{self::ClassA::usedInSubclass}(){() → void};
}
-static method exactCallB(self::ClassB* object) → void {
- object.{self::ClassB::usedInSubclass}(){() →* void};
+static method exactCallB(self::ClassB object) → void {
+ object.{self::ClassB::usedInSubclass}(){() → void};
}
static method unusedTopLevel() → dynamic {
core::print("Unused");
@@ -114,11 +74,11 @@
static method usedTopLevel() → dynamic {}
static method main() → dynamic {
self::usedTopLevel();
- self::ClassA* a = new self::ClassA::•();
+ self::ClassA a = new self::ClassA::•();
self::exactCallA(a);
self::baseClassCall(a);
self::interfaceCall(a);
- self::ClassB* b = new self::ClassB::•();
+ self::ClassB b = new self::ClassB::•();
self::exactCallB(b);
self::baseClassCall(b);
self::interfaceCall(b);
diff --git a/pkg/front_end/testcases/general/var_as_type_name.dart b/pkg/front_end/testcases/general/var_as_type_name.dart
index dc79310..21030cd 100644
--- a/pkg/front_end/testcases/general/var_as_type_name.dart
+++ b/pkg/front_end/testcases/general/var_as_type_name.dart
@@ -1,9 +1,9 @@
// 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.
-// @dart=2.9
+
class A {
- Map<String, var> m;
+ Map<String, var>? m;
}
main() {
diff --git a/pkg/front_end/testcases/general/var_as_type_name.dart.textual_outline.expect b/pkg/front_end/testcases/general/var_as_type_name.dart.textual_outline.expect
index d013230..97f695e 100644
--- a/pkg/front_end/testcases/general/var_as_type_name.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/var_as_type_name.dart.textual_outline.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
class A {
- Map<String, var> m;
+ Map<String, var>? m;
}
main() {}
diff --git a/pkg/front_end/testcases/general/var_as_type_name.dart.weak.expect b/pkg/front_end/testcases/general/var_as_type_name.dart.weak.expect
index 4673e3d..d7d3382 100644
--- a/pkg/front_end/testcases/general/var_as_type_name.dart.weak.expect
+++ b/pkg/front_end/testcases/general/var_as_type_name.dart.weak.expect
@@ -1,39 +1,29 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/var_as_type_name.dart:6:15: Error: The keyword 'var' can't be used as a type name.
-// Map<String, var> m;
+// Map<String, var>? m;
// ^^^
//
// pkg/front_end/testcases/general/var_as_type_name.dart:6:15: Error: Type 'var' not found.
-// Map<String, var> m;
+// Map<String, var>? m;
// ^^^
//
// pkg/front_end/testcases/general/var_as_type_name.dart:6:15: Error: 'var' isn't a type.
-// Map<String, var> m;
+// Map<String, var>? m;
// ^^^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::Map<core::String*, invalid-type>* m = null;
- synthetic constructor •() → self::A*
+ field core::Map<core::String, invalid-type>? m = null;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A* a = new self::A::•();
+ self::A a = new self::A::•();
a.{self::A::m} = null;
}
diff --git a/pkg/front_end/testcases/general/var_as_type_name.dart.weak.modular.expect b/pkg/front_end/testcases/general/var_as_type_name.dart.weak.modular.expect
index 4673e3d..d7d3382 100644
--- a/pkg/front_end/testcases/general/var_as_type_name.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/var_as_type_name.dart.weak.modular.expect
@@ -1,39 +1,29 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/var_as_type_name.dart:6:15: Error: The keyword 'var' can't be used as a type name.
-// Map<String, var> m;
+// Map<String, var>? m;
// ^^^
//
// pkg/front_end/testcases/general/var_as_type_name.dart:6:15: Error: Type 'var' not found.
-// Map<String, var> m;
+// Map<String, var>? m;
// ^^^
//
// pkg/front_end/testcases/general/var_as_type_name.dart:6:15: Error: 'var' isn't a type.
-// Map<String, var> m;
+// Map<String, var>? m;
// ^^^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::Map<core::String*, invalid-type>* m = null;
- synthetic constructor •() → self::A*
+ field core::Map<core::String, invalid-type>? m = null;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A* a = new self::A::•();
+ self::A a = new self::A::•();
a.{self::A::m} = null;
}
diff --git a/pkg/front_end/testcases/general/var_as_type_name.dart.weak.outline.expect b/pkg/front_end/testcases/general/var_as_type_name.dart.weak.outline.expect
index 4d3b219..926d61d 100644
--- a/pkg/front_end/testcases/general/var_as_type_name.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/var_as_type_name.dart.weak.outline.expect
@@ -1,32 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/var_as_type_name.dart:6:15: Error: The keyword 'var' can't be used as a type name.
-// Map<String, var> m;
+// Map<String, var>? m;
// ^^^
//
// pkg/front_end/testcases/general/var_as_type_name.dart:6:15: Error: Type 'var' not found.
-// Map<String, var> m;
+// Map<String, var>? m;
// ^^^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::Map<core::String*, invalid-type>* m;
- synthetic constructor •() → self::A*
+ field core::Map<core::String, invalid-type>? m;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/var_as_type_name.dart.weak.transformed.expect b/pkg/front_end/testcases/general/var_as_type_name.dart.weak.transformed.expect
index 4673e3d..d7d3382 100644
--- a/pkg/front_end/testcases/general/var_as_type_name.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/var_as_type_name.dart.weak.transformed.expect
@@ -1,39 +1,29 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/general/var_as_type_name.dart:6:15: Error: The keyword 'var' can't be used as a type name.
-// Map<String, var> m;
+// Map<String, var>? m;
// ^^^
//
// pkg/front_end/testcases/general/var_as_type_name.dart:6:15: Error: Type 'var' not found.
-// Map<String, var> m;
+// Map<String, var>? m;
// ^^^
//
// pkg/front_end/testcases/general/var_as_type_name.dart:6:15: Error: 'var' isn't a type.
-// Map<String, var> m;
+// Map<String, var>? m;
// ^^^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::Map<core::String*, invalid-type>* m = null;
- synthetic constructor •() → self::A*
+ field core::Map<core::String, invalid-type>? m = null;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A* a = new self::A::•();
+ self::A a = new self::A::•();
a.{self::A::m} = null;
}
diff --git a/pkg/front_end/testcases/general/vm_type_ops.dart b/pkg/front_end/testcases/general/vm_type_ops.dart
index dea0537..04f3785 100644
--- a/pkg/front_end/testcases/general/vm_type_ops.dart
+++ b/pkg/front_end/testcases/general/vm_type_ops.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2020, 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.
-// @dart=2.9
+
// Copied from pkg/vm/testcases/bytecode/type_ops.dart
class A<T> {}
@@ -51,14 +51,14 @@
}
}
-List<Iterable> globalVar;
+late List<Iterable> globalVar;
void foo5(x) {
globalVar = x;
}
class E<P extends String> {
- factory E() => null;
+ factory E() => throw '';
void foo6<T extends P, U extends List<T>>(Map<T, U> map) {}
}
diff --git a/pkg/front_end/testcases/general/vm_type_ops.dart.textual_outline.expect b/pkg/front_end/testcases/general/vm_type_ops.dart.textual_outline.expect
index ab65d0d..89d2735 100644
--- a/pkg/front_end/testcases/general/vm_type_ops.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/vm_type_ops.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T> {}
class B extends A<String> {}
@@ -15,11 +14,11 @@
Map<P, Q> foo4(w) {}
}
-List<Iterable> globalVar;
+late List<Iterable> globalVar;
void foo5(x) {}
class E<P extends String> {
- factory E() => null;
+ factory E() => throw '';
void foo6<T extends P, U extends List<T>>(Map<T, U> map) {}
}
diff --git a/pkg/front_end/testcases/general/vm_type_ops.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/vm_type_ops.dart.textual_outline_modelled.expect
index fbadedf..7720cab 100644
--- a/pkg/front_end/testcases/general/vm_type_ops.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/vm_type_ops.dart.textual_outline_modelled.expect
@@ -1,17 +1,6 @@
-// @dart = 2.9
-List<Iterable> globalVar;
-
-abstract class F<T> {
- void foo7<Q extends T>(Q a, covariant num b, T c);
- void foo8<Q extends T>(Q a, covariant num b, T c);
-}
-
class A<T> {}
-
class B extends A<String> {}
-
class C<T1, T2, T3> extends B {}
-
class D<P, Q> extends C<int, Q, P> {
D(tt) : foo = tt;
Map<P, Q> foo;
@@ -19,20 +8,24 @@
foo2(y) {}
foo3<T1, T2>(z) {}
}
-
+foo1(x) {}
+---- unknown chunk starts ----
+late
+---- unknown chunk ends ----
+List<Iterable> globalVar;
+abstract class F<T> {
+ void foo7<Q extends T>(Q a, covariant num b, T c);
+ void foo8<Q extends T>(Q a, covariant num b, T c);
+}
class E<P extends String> {
- factory E() => null;
+ factory E() => throw '';
void foo6<T extends P, U extends List<T>>(Map<T, U> map) {}
}
-
class G<T> {
void foo7<Q extends T>(Q a, int b, T c) {}
}
-
class H<T> extends G<T> implements F<T> {
void foo8<Q extends T>(Q a, int b, T c) {}
}
-
-foo1(x) {}
main() {}
void foo5(x) {}
diff --git a/pkg/front_end/testcases/general/vm_type_ops.dart.weak.expect b/pkg/front_end/testcases/general/vm_type_ops.dart.weak.expect
index 47d6412f..17dd908 100644
--- a/pkg/front_end/testcases/general/vm_type_ops.dart.weak.expect
+++ b/pkg/front_end/testcases/general/vm_type_ops.dart.weak.expect
@@ -1,127 +1,87 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B extends self::A<core::String*> {
- synthetic constructor •() → self::B*
+class B extends self::A<core::String> {
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
-class C<T1 extends core::Object* = dynamic, T2 extends core::Object* = dynamic, T3 extends core::Object* = dynamic> extends self::B {
- synthetic constructor •() → self::C<self::C::T1*, self::C::T2*, self::C::T3*>*
+class C<T1 extends core::Object? = dynamic, T2 extends core::Object? = dynamic, T3 extends core::Object? = dynamic> extends self::B {
+ synthetic constructor •() → self::C<self::C::T1%, self::C::T2%, self::C::T3%>
: super self::B::•()
;
}
-class D<P extends core::Object* = dynamic, Q extends core::Object* = dynamic> extends self::C<core::int*, self::D::Q*, self::D::P*> {
- covariant-by-class field core::Map<self::D::P*, self::D::Q*>* foo;
- constructor •(dynamic tt) → self::D<self::D::P*, self::D::Q*>*
- : self::D::foo = tt as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*, super self::C::•()
+class D<P extends core::Object? = dynamic, Q extends core::Object? = dynamic> extends self::C<core::int, self::D::Q%, self::D::P%> {
+ covariant-by-class field core::Map<self::D::P%, self::D::Q%> foo;
+ constructor •(dynamic tt) → self::D<self::D::P%, self::D::Q%>
+ : self::D::foo = tt as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<self::D::P%, self::D::Q%>, super self::C::•()
;
method foo2(dynamic y) → dynamic {
- if(y is self::A<self::D::P*>*) {
+ if(y is{ForNonNullableByDefault} self::A<self::D::P%>) {
core::print("21");
}
- if(y is self::C<dynamic, self::D::Q*, core::List<self::D::P*>*>*) {
+ if(y is{ForNonNullableByDefault} self::C<dynamic, self::D::Q%, core::List<self::D::P%>>) {
core::print("22");
}
- this.{self::D::foo} = y as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*;
+ this.{self::D::foo} = y as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<self::D::P%, self::D::Q%>;
}
- method foo3<T1 extends core::Object* = dynamic, T2 extends core::Object* = dynamic>(dynamic z) → dynamic {
- if(z is self::A<self::D::foo3::T1*>*) {
+ method foo3<T1 extends core::Object? = dynamic, T2 extends core::Object? = dynamic>(dynamic z) → dynamic {
+ if(z is{ForNonNullableByDefault} self::A<self::D::foo3::T1%>) {
core::print("31");
}
- if(z is self::C<core::Map<self::D::foo3::T1*, self::D::P*>*, core::List<self::D::foo3::T2*>*, self::D::Q*>*) {
+ if(z is{ForNonNullableByDefault} self::C<core::Map<self::D::foo3::T1%, self::D::P%>, core::List<self::D::foo3::T2%>, self::D::Q%>) {
core::print("32");
}
- return (z as core::Map<self::D::foo3::T2*, self::D::Q*>*).{core::Map::values}{core::Iterable<self::D::Q*>*};
+ return (z as{ForNonNullableByDefault} core::Map<self::D::foo3::T2%, self::D::Q%>).{core::Map::values}{core::Iterable<self::D::Q%>};
}
- method foo4(dynamic w) → core::Map<self::D::P*, self::D::Q*>* {
- core::List<core::Map<self::D::P*, self::D::Q*>*>* list = <core::Map<self::D::P*, self::D::Q*>*>[w as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*];
- return w as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*;
+ method foo4(dynamic w) → core::Map<self::D::P%, self::D::Q%> {
+ core::List<core::Map<self::D::P%, self::D::Q%>> list = <core::Map<self::D::P%, self::D::Q%>>[w as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<self::D::P%, self::D::Q%>];
+ return w as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<self::D::P%, self::D::Q%>;
}
}
-class E<P extends core::String*> extends core::Object {
- static factory •<P extends core::String*>() → self::E<self::E::•::P*>*
- return null;
- method foo6<covariant-by-class T extends self::E::P*, U extends core::List<self::E::foo6::T*>* = core::List<self::E::P*>*>(core::Map<self::E::foo6::T*, self::E::foo6::U*>* map) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class E<P extends core::String> extends core::Object {
+ static factory •<P extends core::String>() → self::E<self::E::•::P>
+ return throw "";
+ method foo6<covariant-by-class T extends self::E::P, U extends core::List<self::E::foo6::T> = core::List<self::E::P>>(core::Map<self::E::foo6::T, self::E::foo6::U> map) → void {}
}
-abstract class F<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::F<self::F::T*>*
+abstract class F<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::F<self::F::T%>
: super core::Object::•()
;
- abstract method foo7<covariant-by-class Q extends self::F::T*>(self::F::foo7::Q* a, covariant-by-declaration core::num* b, covariant-by-class self::F::T* c) → void;
- abstract method foo8<covariant-by-class Q extends self::F::T*>(self::F::foo8::Q* a, covariant-by-declaration core::num* b, covariant-by-class self::F::T* c) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo7<covariant-by-class Q extends self::F::T%>(self::F::foo7::Q% a, covariant-by-declaration core::num b, covariant-by-class self::F::T% c) → void;
+ abstract method foo8<covariant-by-class Q extends self::F::T%>(self::F::foo8::Q% a, covariant-by-declaration core::num b, covariant-by-class self::F::T% c) → void;
}
-class G<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::G<self::G::T*>*
+class G<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::G<self::G::T%>
: super core::Object::•()
;
- method foo7<covariant-by-class Q extends self::G::T*>(self::G::foo7::Q* a, core::int* b, covariant-by-class self::G::T* c) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo7<covariant-by-class Q extends self::G::T%>(self::G::foo7::Q% a, core::int b, covariant-by-class self::G::T% c) → void {}
}
-class H<T extends core::Object* = dynamic> extends self::G<self::H::T*> implements self::F<self::H::T*> {
- synthetic constructor •() → self::H<self::H::T*>*
+class H<T extends core::Object? = dynamic> extends self::G<self::H::T%> implements self::F<self::H::T%> {
+ synthetic constructor •() → self::H<self::H::T%>
: super self::G::•()
;
- method foo8<covariant-by-class Q extends self::H::T*>(self::H::foo8::Q* a, covariant-by-declaration core::int* b, covariant-by-class self::H::T* c) → void {}
- forwarding-stub method foo7<covariant-by-class Q extends self::H::T*>(self::H::foo7::Q* a, covariant-by-declaration core::num* b, covariant-by-class self::H::T* c) → void
- return super.{self::G::foo7}<self::H::foo7::Q*>(a, b as core::int*, c);
+ method foo8<covariant-by-class Q extends self::H::T%>(self::H::foo8::Q% a, covariant-by-declaration core::int b, covariant-by-class self::H::T% c) → void {}
+ forwarding-stub method foo7<covariant-by-class Q extends self::H::T%>(self::H::foo7::Q% a, covariant-by-declaration core::num b, covariant-by-class self::H::T% c) → void
+ return super.{self::G::foo7}<self::H::foo7::Q%>(a, b as core::int, c);
}
-static field core::List<core::Iterable<dynamic>*>* globalVar;
+late static field core::List<core::Iterable<dynamic>> globalVar;
static method foo1(dynamic x) → dynamic {
- if(x is self::B*) {
+ if(x is{ForNonNullableByDefault} self::B) {
core::print("11");
}
- if(x is self::C<core::int*, core::Object*, dynamic>*) {
+ if(x is{ForNonNullableByDefault} self::C<core::int, core::Object, dynamic>) {
core::print("12");
}
- return x as self::A<core::int*>*;
+ return x as{ForNonNullableByDefault} self::A<core::int>;
}
static method foo5(dynamic x) → void {
- self::globalVar = x as{TypeError,ForDynamic} core::List<core::Iterable<dynamic>*>*;
+ self::globalVar = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::List<core::Iterable<dynamic>>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/vm_type_ops.dart.weak.modular.expect b/pkg/front_end/testcases/general/vm_type_ops.dart.weak.modular.expect
index 47d6412f..17dd908 100644
--- a/pkg/front_end/testcases/general/vm_type_ops.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/vm_type_ops.dart.weak.modular.expect
@@ -1,127 +1,87 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B extends self::A<core::String*> {
- synthetic constructor •() → self::B*
+class B extends self::A<core::String> {
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
-class C<T1 extends core::Object* = dynamic, T2 extends core::Object* = dynamic, T3 extends core::Object* = dynamic> extends self::B {
- synthetic constructor •() → self::C<self::C::T1*, self::C::T2*, self::C::T3*>*
+class C<T1 extends core::Object? = dynamic, T2 extends core::Object? = dynamic, T3 extends core::Object? = dynamic> extends self::B {
+ synthetic constructor •() → self::C<self::C::T1%, self::C::T2%, self::C::T3%>
: super self::B::•()
;
}
-class D<P extends core::Object* = dynamic, Q extends core::Object* = dynamic> extends self::C<core::int*, self::D::Q*, self::D::P*> {
- covariant-by-class field core::Map<self::D::P*, self::D::Q*>* foo;
- constructor •(dynamic tt) → self::D<self::D::P*, self::D::Q*>*
- : self::D::foo = tt as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*, super self::C::•()
+class D<P extends core::Object? = dynamic, Q extends core::Object? = dynamic> extends self::C<core::int, self::D::Q%, self::D::P%> {
+ covariant-by-class field core::Map<self::D::P%, self::D::Q%> foo;
+ constructor •(dynamic tt) → self::D<self::D::P%, self::D::Q%>
+ : self::D::foo = tt as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<self::D::P%, self::D::Q%>, super self::C::•()
;
method foo2(dynamic y) → dynamic {
- if(y is self::A<self::D::P*>*) {
+ if(y is{ForNonNullableByDefault} self::A<self::D::P%>) {
core::print("21");
}
- if(y is self::C<dynamic, self::D::Q*, core::List<self::D::P*>*>*) {
+ if(y is{ForNonNullableByDefault} self::C<dynamic, self::D::Q%, core::List<self::D::P%>>) {
core::print("22");
}
- this.{self::D::foo} = y as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*;
+ this.{self::D::foo} = y as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<self::D::P%, self::D::Q%>;
}
- method foo3<T1 extends core::Object* = dynamic, T2 extends core::Object* = dynamic>(dynamic z) → dynamic {
- if(z is self::A<self::D::foo3::T1*>*) {
+ method foo3<T1 extends core::Object? = dynamic, T2 extends core::Object? = dynamic>(dynamic z) → dynamic {
+ if(z is{ForNonNullableByDefault} self::A<self::D::foo3::T1%>) {
core::print("31");
}
- if(z is self::C<core::Map<self::D::foo3::T1*, self::D::P*>*, core::List<self::D::foo3::T2*>*, self::D::Q*>*) {
+ if(z is{ForNonNullableByDefault} self::C<core::Map<self::D::foo3::T1%, self::D::P%>, core::List<self::D::foo3::T2%>, self::D::Q%>) {
core::print("32");
}
- return (z as core::Map<self::D::foo3::T2*, self::D::Q*>*).{core::Map::values}{core::Iterable<self::D::Q*>*};
+ return (z as{ForNonNullableByDefault} core::Map<self::D::foo3::T2%, self::D::Q%>).{core::Map::values}{core::Iterable<self::D::Q%>};
}
- method foo4(dynamic w) → core::Map<self::D::P*, self::D::Q*>* {
- core::List<core::Map<self::D::P*, self::D::Q*>*>* list = <core::Map<self::D::P*, self::D::Q*>*>[w as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*];
- return w as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*;
+ method foo4(dynamic w) → core::Map<self::D::P%, self::D::Q%> {
+ core::List<core::Map<self::D::P%, self::D::Q%>> list = <core::Map<self::D::P%, self::D::Q%>>[w as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<self::D::P%, self::D::Q%>];
+ return w as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<self::D::P%, self::D::Q%>;
}
}
-class E<P extends core::String*> extends core::Object {
- static factory •<P extends core::String*>() → self::E<self::E::•::P*>*
- return null;
- method foo6<covariant-by-class T extends self::E::P*, U extends core::List<self::E::foo6::T*>* = core::List<self::E::P*>*>(core::Map<self::E::foo6::T*, self::E::foo6::U*>* map) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class E<P extends core::String> extends core::Object {
+ static factory •<P extends core::String>() → self::E<self::E::•::P>
+ return throw "";
+ method foo6<covariant-by-class T extends self::E::P, U extends core::List<self::E::foo6::T> = core::List<self::E::P>>(core::Map<self::E::foo6::T, self::E::foo6::U> map) → void {}
}
-abstract class F<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::F<self::F::T*>*
+abstract class F<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::F<self::F::T%>
: super core::Object::•()
;
- abstract method foo7<covariant-by-class Q extends self::F::T*>(self::F::foo7::Q* a, covariant-by-declaration core::num* b, covariant-by-class self::F::T* c) → void;
- abstract method foo8<covariant-by-class Q extends self::F::T*>(self::F::foo8::Q* a, covariant-by-declaration core::num* b, covariant-by-class self::F::T* c) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo7<covariant-by-class Q extends self::F::T%>(self::F::foo7::Q% a, covariant-by-declaration core::num b, covariant-by-class self::F::T% c) → void;
+ abstract method foo8<covariant-by-class Q extends self::F::T%>(self::F::foo8::Q% a, covariant-by-declaration core::num b, covariant-by-class self::F::T% c) → void;
}
-class G<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::G<self::G::T*>*
+class G<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::G<self::G::T%>
: super core::Object::•()
;
- method foo7<covariant-by-class Q extends self::G::T*>(self::G::foo7::Q* a, core::int* b, covariant-by-class self::G::T* c) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo7<covariant-by-class Q extends self::G::T%>(self::G::foo7::Q% a, core::int b, covariant-by-class self::G::T% c) → void {}
}
-class H<T extends core::Object* = dynamic> extends self::G<self::H::T*> implements self::F<self::H::T*> {
- synthetic constructor •() → self::H<self::H::T*>*
+class H<T extends core::Object? = dynamic> extends self::G<self::H::T%> implements self::F<self::H::T%> {
+ synthetic constructor •() → self::H<self::H::T%>
: super self::G::•()
;
- method foo8<covariant-by-class Q extends self::H::T*>(self::H::foo8::Q* a, covariant-by-declaration core::int* b, covariant-by-class self::H::T* c) → void {}
- forwarding-stub method foo7<covariant-by-class Q extends self::H::T*>(self::H::foo7::Q* a, covariant-by-declaration core::num* b, covariant-by-class self::H::T* c) → void
- return super.{self::G::foo7}<self::H::foo7::Q*>(a, b as core::int*, c);
+ method foo8<covariant-by-class Q extends self::H::T%>(self::H::foo8::Q% a, covariant-by-declaration core::int b, covariant-by-class self::H::T% c) → void {}
+ forwarding-stub method foo7<covariant-by-class Q extends self::H::T%>(self::H::foo7::Q% a, covariant-by-declaration core::num b, covariant-by-class self::H::T% c) → void
+ return super.{self::G::foo7}<self::H::foo7::Q%>(a, b as core::int, c);
}
-static field core::List<core::Iterable<dynamic>*>* globalVar;
+late static field core::List<core::Iterable<dynamic>> globalVar;
static method foo1(dynamic x) → dynamic {
- if(x is self::B*) {
+ if(x is{ForNonNullableByDefault} self::B) {
core::print("11");
}
- if(x is self::C<core::int*, core::Object*, dynamic>*) {
+ if(x is{ForNonNullableByDefault} self::C<core::int, core::Object, dynamic>) {
core::print("12");
}
- return x as self::A<core::int*>*;
+ return x as{ForNonNullableByDefault} self::A<core::int>;
}
static method foo5(dynamic x) → void {
- self::globalVar = x as{TypeError,ForDynamic} core::List<core::Iterable<dynamic>*>*;
+ self::globalVar = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::List<core::Iterable<dynamic>>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/vm_type_ops.dart.weak.outline.expect b/pkg/front_end/testcases/general/vm_type_ops.dart.weak.outline.expect
index 1f5d785..a5cbf1b 100644
--- a/pkg/front_end/testcases/general/vm_type_ops.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/vm_type_ops.dart.weak.outline.expect
@@ -1,97 +1,57 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
- ;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-class B extends self::A<core::String*> {
- synthetic constructor •() → self::B*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
;
}
-class C<T1 extends core::Object* = dynamic, T2 extends core::Object* = dynamic, T3 extends core::Object* = dynamic> extends self::B {
- synthetic constructor •() → self::C<self::C::T1*, self::C::T2*, self::C::T3*>*
+class B extends self::A<core::String> {
+ synthetic constructor •() → self::B
;
}
-class D<P extends core::Object* = dynamic, Q extends core::Object* = dynamic> extends self::C<core::int*, self::D::Q*, self::D::P*> {
- covariant-by-class field core::Map<self::D::P*, self::D::Q*>* foo;
- constructor •(dynamic tt) → self::D<self::D::P*, self::D::Q*>*
+class C<T1 extends core::Object? = dynamic, T2 extends core::Object? = dynamic, T3 extends core::Object? = dynamic> extends self::B {
+ synthetic constructor •() → self::C<self::C::T1%, self::C::T2%, self::C::T3%>
+ ;
+}
+class D<P extends core::Object? = dynamic, Q extends core::Object? = dynamic> extends self::C<core::int, self::D::Q%, self::D::P%> {
+ covariant-by-class field core::Map<self::D::P%, self::D::Q%> foo;
+ constructor •(dynamic tt) → self::D<self::D::P%, self::D::Q%>
;
method foo2(dynamic y) → dynamic
;
- method foo3<T1 extends core::Object* = dynamic, T2 extends core::Object* = dynamic>(dynamic z) → dynamic
+ method foo3<T1 extends core::Object? = dynamic, T2 extends core::Object? = dynamic>(dynamic z) → dynamic
;
- method foo4(dynamic w) → core::Map<self::D::P*, self::D::Q*>*
+ method foo4(dynamic w) → core::Map<self::D::P%, self::D::Q%>
;
}
-class E<P extends core::String*> extends core::Object {
- static factory •<P extends core::String*>() → self::E<self::E::•::P*>*
+class E<P extends core::String> extends core::Object {
+ static factory •<P extends core::String>() → self::E<self::E::•::P>
;
- method foo6<covariant-by-class T extends self::E::P*, U extends core::List<self::E::foo6::T*>* = core::List<self::E::P*>*>(core::Map<self::E::foo6::T*, self::E::foo6::U*>* map) → void
+ method foo6<covariant-by-class T extends self::E::P, U extends core::List<self::E::foo6::T> = core::List<self::E::P>>(core::Map<self::E::foo6::T, self::E::foo6::U> map) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class F<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::F<self::F::T*>*
+abstract class F<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::F<self::F::T%>
;
- abstract method foo7<covariant-by-class Q extends self::F::T*>(self::F::foo7::Q* a, covariant-by-declaration core::num* b, covariant-by-class self::F::T* c) → void;
- abstract method foo8<covariant-by-class Q extends self::F::T*>(self::F::foo8::Q* a, covariant-by-declaration core::num* b, covariant-by-class self::F::T* c) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo7<covariant-by-class Q extends self::F::T%>(self::F::foo7::Q% a, covariant-by-declaration core::num b, covariant-by-class self::F::T% c) → void;
+ abstract method foo8<covariant-by-class Q extends self::F::T%>(self::F::foo8::Q% a, covariant-by-declaration core::num b, covariant-by-class self::F::T% c) → void;
}
-class G<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::G<self::G::T*>*
+class G<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::G<self::G::T%>
;
- method foo7<covariant-by-class Q extends self::G::T*>(self::G::foo7::Q* a, core::int* b, covariant-by-class self::G::T* c) → void
+ method foo7<covariant-by-class Q extends self::G::T%>(self::G::foo7::Q% a, core::int b, covariant-by-class self::G::T% c) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class H<T extends core::Object* = dynamic> extends self::G<self::H::T*> implements self::F<self::H::T*> {
- synthetic constructor •() → self::H<self::H::T*>*
+class H<T extends core::Object? = dynamic> extends self::G<self::H::T%> implements self::F<self::H::T%> {
+ synthetic constructor •() → self::H<self::H::T%>
;
- method foo8<covariant-by-class Q extends self::H::T*>(self::H::foo8::Q* a, covariant-by-declaration core::int* b, covariant-by-class self::H::T* c) → void
+ method foo8<covariant-by-class Q extends self::H::T%>(self::H::foo8::Q% a, covariant-by-declaration core::int b, covariant-by-class self::H::T% c) → void
;
- forwarding-stub method foo7<covariant-by-class Q extends self::H::T*>(self::H::foo7::Q* a, covariant-by-declaration core::num* b, covariant-by-class self::H::T* c) → void
- return super.{self::G::foo7}<self::H::foo7::Q*>(a, b as core::int*, c);
+ forwarding-stub method foo7<covariant-by-class Q extends self::H::T%>(self::H::foo7::Q% a, covariant-by-declaration core::num b, covariant-by-class self::H::T% c) → void
+ return super.{self::G::foo7}<self::H::foo7::Q%>(a, b as core::int, c);
}
-static field core::List<core::Iterable<dynamic>*>* globalVar;
+late static field core::List<core::Iterable<dynamic>> globalVar;
static method foo1(dynamic x) → dynamic
;
static method foo5(dynamic x) → void
diff --git a/pkg/front_end/testcases/general/vm_type_ops.dart.weak.transformed.expect b/pkg/front_end/testcases/general/vm_type_ops.dart.weak.transformed.expect
index 96a4931..4df369e 100644
--- a/pkg/front_end/testcases/general/vm_type_ops.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/vm_type_ops.dart.weak.transformed.expect
@@ -1,127 +1,87 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B extends self::A<core::String*> {
- synthetic constructor •() → self::B*
+class B extends self::A<core::String> {
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
-class C<T1 extends core::Object* = dynamic, T2 extends core::Object* = dynamic, T3 extends core::Object* = dynamic> extends self::B {
- synthetic constructor •() → self::C<self::C::T1*, self::C::T2*, self::C::T3*>*
+class C<T1 extends core::Object? = dynamic, T2 extends core::Object? = dynamic, T3 extends core::Object? = dynamic> extends self::B {
+ synthetic constructor •() → self::C<self::C::T1%, self::C::T2%, self::C::T3%>
: super self::B::•()
;
}
-class D<P extends core::Object* = dynamic, Q extends core::Object* = dynamic> extends self::C<core::int*, self::D::Q*, self::D::P*> {
- covariant-by-class field core::Map<self::D::P*, self::D::Q*>* foo;
- constructor •(dynamic tt) → self::D<self::D::P*, self::D::Q*>*
- : self::D::foo = tt as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*, super self::C::•()
+class D<P extends core::Object? = dynamic, Q extends core::Object? = dynamic> extends self::C<core::int, self::D::Q%, self::D::P%> {
+ covariant-by-class field core::Map<self::D::P%, self::D::Q%> foo;
+ constructor •(dynamic tt) → self::D<self::D::P%, self::D::Q%>
+ : self::D::foo = tt as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<self::D::P%, self::D::Q%>, super self::C::•()
;
method foo2(dynamic y) → dynamic {
- if(y is self::A<self::D::P*>*) {
+ if(y is{ForNonNullableByDefault} self::A<self::D::P%>) {
core::print("21");
}
- if(y is self::C<dynamic, self::D::Q*, core::List<self::D::P*>*>*) {
+ if(y is{ForNonNullableByDefault} self::C<dynamic, self::D::Q%, core::List<self::D::P%>>) {
core::print("22");
}
- this.{self::D::foo} = y as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*;
+ this.{self::D::foo} = y as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<self::D::P%, self::D::Q%>;
}
- method foo3<T1 extends core::Object* = dynamic, T2 extends core::Object* = dynamic>(dynamic z) → dynamic {
- if(z is self::A<self::D::foo3::T1*>*) {
+ method foo3<T1 extends core::Object? = dynamic, T2 extends core::Object? = dynamic>(dynamic z) → dynamic {
+ if(z is{ForNonNullableByDefault} self::A<self::D::foo3::T1%>) {
core::print("31");
}
- if(z is self::C<core::Map<self::D::foo3::T1*, self::D::P*>*, core::List<self::D::foo3::T2*>*, self::D::Q*>*) {
+ if(z is{ForNonNullableByDefault} self::C<core::Map<self::D::foo3::T1%, self::D::P%>, core::List<self::D::foo3::T2%>, self::D::Q%>) {
core::print("32");
}
- return (z as core::Map<self::D::foo3::T2*, self::D::Q*>*).{core::Map::values}{core::Iterable<self::D::Q*>*};
+ return (z as{ForNonNullableByDefault} core::Map<self::D::foo3::T2%, self::D::Q%>).{core::Map::values}{core::Iterable<self::D::Q%>};
}
- method foo4(dynamic w) → core::Map<self::D::P*, self::D::Q*>* {
- core::List<core::Map<self::D::P*, self::D::Q*>*>* list = core::_GrowableList::_literal1<core::Map<self::D::P*, self::D::Q*>*>(w as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*);
- return w as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*;
+ method foo4(dynamic w) → core::Map<self::D::P%, self::D::Q%> {
+ core::List<core::Map<self::D::P%, self::D::Q%>> list = core::_GrowableList::_literal1<core::Map<self::D::P%, self::D::Q%>>(w as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<self::D::P%, self::D::Q%>);
+ return w as{TypeError,ForDynamic,ForNonNullableByDefault} core::Map<self::D::P%, self::D::Q%>;
}
}
-class E<P extends core::String*> extends core::Object {
- static factory •<P extends core::String*>() → self::E<self::E::•::P*>*
- return null;
- method foo6<covariant-by-class T extends self::E::P*, U extends core::List<self::E::foo6::T*>* = core::List<self::E::P*>*>(core::Map<self::E::foo6::T*, self::E::foo6::U*>* map) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+class E<P extends core::String> extends core::Object {
+ static factory •<P extends core::String>() → self::E<self::E::•::P>
+ return throw "";
+ method foo6<covariant-by-class T extends self::E::P, U extends core::List<self::E::foo6::T> = core::List<self::E::P>>(core::Map<self::E::foo6::T, self::E::foo6::U> map) → void {}
}
-abstract class F<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::F<self::F::T*>*
+abstract class F<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::F<self::F::T%>
: super core::Object::•()
;
- abstract method foo7<covariant-by-class Q extends self::F::T*>(self::F::foo7::Q* a, covariant-by-declaration core::num* b, covariant-by-class self::F::T* c) → void;
- abstract method foo8<covariant-by-class Q extends self::F::T*>(self::F::foo8::Q* a, covariant-by-declaration core::num* b, covariant-by-class self::F::T* c) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo7<covariant-by-class Q extends self::F::T%>(self::F::foo7::Q% a, covariant-by-declaration core::num b, covariant-by-class self::F::T% c) → void;
+ abstract method foo8<covariant-by-class Q extends self::F::T%>(self::F::foo8::Q% a, covariant-by-declaration core::num b, covariant-by-class self::F::T% c) → void;
}
-class G<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::G<self::G::T*>*
+class G<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::G<self::G::T%>
: super core::Object::•()
;
- method foo7<covariant-by-class Q extends self::G::T*>(self::G::foo7::Q* a, core::int* b, covariant-by-class self::G::T* c) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo7<covariant-by-class Q extends self::G::T%>(self::G::foo7::Q% a, core::int b, covariant-by-class self::G::T% c) → void {}
}
-class H<T extends core::Object* = dynamic> extends self::G<self::H::T*> implements self::F<self::H::T*> {
- synthetic constructor •() → self::H<self::H::T*>*
+class H<T extends core::Object? = dynamic> extends self::G<self::H::T%> implements self::F<self::H::T%> {
+ synthetic constructor •() → self::H<self::H::T%>
: super self::G::•()
;
- method foo8<covariant-by-class Q extends self::H::T*>(self::H::foo8::Q* a, covariant-by-declaration core::int* b, covariant-by-class self::H::T* c) → void {}
- forwarding-stub method foo7<covariant-by-class Q extends self::H::T*>(self::H::foo7::Q* a, covariant-by-declaration core::num* b, covariant-by-class self::H::T* c) → void
- return super.{self::G::foo7}<self::H::foo7::Q*>(a, b as core::int*, c);
+ method foo8<covariant-by-class Q extends self::H::T%>(self::H::foo8::Q% a, covariant-by-declaration core::int b, covariant-by-class self::H::T% c) → void {}
+ forwarding-stub method foo7<covariant-by-class Q extends self::H::T%>(self::H::foo7::Q% a, covariant-by-declaration core::num b, covariant-by-class self::H::T% c) → void
+ return super.{self::G::foo7}<self::H::foo7::Q%>(a, b as core::int, c);
}
-static field core::List<core::Iterable<dynamic>*>* globalVar;
+late static field core::List<core::Iterable<dynamic>> globalVar;
static method foo1(dynamic x) → dynamic {
- if(x is self::B*) {
+ if(x is{ForNonNullableByDefault} self::B) {
core::print("11");
}
- if(x is self::C<core::int*, core::Object*, dynamic>*) {
+ if(x is{ForNonNullableByDefault} self::C<core::int, core::Object, dynamic>) {
core::print("12");
}
- return x as self::A<core::int*>*;
+ return x as{ForNonNullableByDefault} self::A<core::int>;
}
static method foo5(dynamic x) → void {
- self::globalVar = x as{TypeError,ForDynamic} core::List<core::Iterable<dynamic>*>*;
+ self::globalVar = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::List<core::Iterable<dynamic>>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/void_methods.dart b/pkg/front_end/testcases/general/void_methods.dart
index a313fb6..5e8d6f7 100644
--- a/pkg/front_end/testcases/general/void_methods.dart
+++ b/pkg/front_end/testcases/general/void_methods.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
class Foo {
List list = [1, 2, 3];
set first(x) => list[0] = x;
diff --git a/pkg/front_end/testcases/general/void_methods.dart.textual_outline.expect b/pkg/front_end/testcases/general/void_methods.dart.textual_outline.expect
index bf49b71..a23d97f 100644
--- a/pkg/front_end/testcases/general/void_methods.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/void_methods.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Foo {
List list = [1, 2, 3];
set first(x) => list[0] = x;
diff --git a/pkg/front_end/testcases/general/void_methods.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/void_methods.dart.textual_outline_modelled.expect
index 4637b10..f5f0084 100644
--- a/pkg/front_end/testcases/general/void_methods.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/void_methods.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Foo {
List list = [1, 2, 3];
operator []=(x, y) => list[x] = y;
diff --git a/pkg/front_end/testcases/general/void_methods.dart.weak.expect b/pkg/front_end/testcases/general/void_methods.dart.weak.expect
index dff46ae..7442dc4 100644
--- a/pkg/front_end/testcases/general/void_methods.dart.weak.expect
+++ b/pkg/front_end/testcases/general/void_methods.dart.weak.expect
@@ -1,31 +1,21 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object {
- field core::List<dynamic>* list = <dynamic>[1, 2, 3];
- synthetic constructor •() → self::Foo*
+ field core::List<dynamic> list = <dynamic>[1, 2, 3];
+ synthetic constructor •() → self::Foo
: super core::Object::•()
;
set first(dynamic x) → void
- return let final core::List<dynamic>* #t1 = this.{self::Foo::list}{core::List<dynamic>*} in let final core::int* #t2 = 0 in let final dynamic #t3 = x in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int*, dynamic) →* void} in #t3;
+ return let final core::List<dynamic> #t1 = this.{self::Foo::list}{core::List<dynamic>} in let final core::int #t2 = 0 in let final dynamic #t3 = x in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int, dynamic) → void} in #t3;
operator []=(dynamic x, dynamic y) → void
- return let final core::List<dynamic>* #t5 = this.{self::Foo::list}{core::List<dynamic>*} in let final dynamic #t6 = x as{TypeError,ForDynamic} core::int* in let final dynamic #t7 = y in let final void #t8 = #t5.{core::List::[]=}(#t6, #t7){(core::int*, dynamic) →* void} in #t7;
+ return let final core::List<dynamic> #t5 = this.{self::Foo::list}{core::List<dynamic>} in let final dynamic #t6 = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::int in let final dynamic #t7 = y in let final void #t8 = #t5.{core::List::[]=}(#t6, #t7){(core::int, dynamic) → void} in #t7;
method clear() → void
- return this.{self::Foo::list}{core::List<dynamic>*}.{core::List::clear}(){() →* void};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ return this.{self::Foo::list}{core::List<dynamic>}.{core::List::clear}(){() → void};
}
static method main() → dynamic {
new self::Foo::•().{self::Foo::first} = 4;
- new self::Foo::•().{self::Foo::[]=}(3, 4){(dynamic, dynamic) →* void};
- new self::Foo::•().{self::Foo::clear}(){() →* void};
+ new self::Foo::•().{self::Foo::[]=}(3, 4){(dynamic, dynamic) → void};
+ new self::Foo::•().{self::Foo::clear}(){() → void};
}
diff --git a/pkg/front_end/testcases/general/void_methods.dart.weak.modular.expect b/pkg/front_end/testcases/general/void_methods.dart.weak.modular.expect
index dff46ae..7442dc4 100644
--- a/pkg/front_end/testcases/general/void_methods.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/void_methods.dart.weak.modular.expect
@@ -1,31 +1,21 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object {
- field core::List<dynamic>* list = <dynamic>[1, 2, 3];
- synthetic constructor •() → self::Foo*
+ field core::List<dynamic> list = <dynamic>[1, 2, 3];
+ synthetic constructor •() → self::Foo
: super core::Object::•()
;
set first(dynamic x) → void
- return let final core::List<dynamic>* #t1 = this.{self::Foo::list}{core::List<dynamic>*} in let final core::int* #t2 = 0 in let final dynamic #t3 = x in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int*, dynamic) →* void} in #t3;
+ return let final core::List<dynamic> #t1 = this.{self::Foo::list}{core::List<dynamic>} in let final core::int #t2 = 0 in let final dynamic #t3 = x in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int, dynamic) → void} in #t3;
operator []=(dynamic x, dynamic y) → void
- return let final core::List<dynamic>* #t5 = this.{self::Foo::list}{core::List<dynamic>*} in let final dynamic #t6 = x as{TypeError,ForDynamic} core::int* in let final dynamic #t7 = y in let final void #t8 = #t5.{core::List::[]=}(#t6, #t7){(core::int*, dynamic) →* void} in #t7;
+ return let final core::List<dynamic> #t5 = this.{self::Foo::list}{core::List<dynamic>} in let final dynamic #t6 = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::int in let final dynamic #t7 = y in let final void #t8 = #t5.{core::List::[]=}(#t6, #t7){(core::int, dynamic) → void} in #t7;
method clear() → void
- return this.{self::Foo::list}{core::List<dynamic>*}.{core::List::clear}(){() →* void};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ return this.{self::Foo::list}{core::List<dynamic>}.{core::List::clear}(){() → void};
}
static method main() → dynamic {
new self::Foo::•().{self::Foo::first} = 4;
- new self::Foo::•().{self::Foo::[]=}(3, 4){(dynamic, dynamic) →* void};
- new self::Foo::•().{self::Foo::clear}(){() →* void};
+ new self::Foo::•().{self::Foo::[]=}(3, 4){(dynamic, dynamic) → void};
+ new self::Foo::•().{self::Foo::clear}(){() → void};
}
diff --git a/pkg/front_end/testcases/general/void_methods.dart.weak.outline.expect b/pkg/front_end/testcases/general/void_methods.dart.weak.outline.expect
index af66f5b..7fdf48c 100644
--- a/pkg/front_end/testcases/general/void_methods.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/void_methods.dart.weak.outline.expect
@@ -1,10 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object {
- field core::List<dynamic>* list;
- synthetic constructor •() → self::Foo*
+ field core::List<dynamic> list;
+ synthetic constructor •() → self::Foo
;
set first(dynamic x) → void
;
@@ -12,16 +12,6 @@
;
method clear() → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/general/void_methods.dart.weak.transformed.expect b/pkg/front_end/testcases/general/void_methods.dart.weak.transformed.expect
index a6dfbf8..cb19514 100644
--- a/pkg/front_end/testcases/general/void_methods.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/void_methods.dart.weak.transformed.expect
@@ -1,33 +1,23 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object {
- field core::List<dynamic>* list = core::_GrowableList::_literal3<dynamic>(1, 2, 3);
- synthetic constructor •() → self::Foo*
+ field core::List<dynamic> list = core::_GrowableList::_literal3<dynamic>(1, 2, 3);
+ synthetic constructor •() → self::Foo
: super core::Object::•()
;
set first(dynamic x) → void
- return let final core::List<dynamic>* #t1 = this.{self::Foo::list}{core::List<dynamic>*} in let final core::int* #t2 = 0 in let final dynamic #t3 = x in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int*, dynamic) →* void} in #t3;
+ return let final core::List<dynamic> #t1 = this.{self::Foo::list}{core::List<dynamic>} in let final core::int #t2 = 0 in let final dynamic #t3 = x in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int, dynamic) → void} in #t3;
operator []=(dynamic x, dynamic y) → void
- return let final core::List<dynamic>* #t5 = this.{self::Foo::list}{core::List<dynamic>*} in let final core::int* #t6 = x as{TypeError,ForDynamic} core::int* in let final dynamic #t7 = y in let final void #t8 = #t5.{core::List::[]=}(#t6, #t7){(core::int*, dynamic) →* void} in #t7;
+ return let final core::List<dynamic> #t5 = this.{self::Foo::list}{core::List<dynamic>} in let final core::int #t6 = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::int in let final dynamic #t7 = y in let final void #t8 = #t5.{core::List::[]=}(#t6, #t7){(core::int, dynamic) → void} in #t7;
method clear() → void
- return this.{self::Foo::list}{core::List<dynamic>*}.{core::List::clear}(){() →* void};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ return this.{self::Foo::list}{core::List<dynamic>}.{core::List::clear}(){() → void};
}
static method main() → dynamic {
new self::Foo::•().{self::Foo::first} = 4;
- new self::Foo::•().{self::Foo::[]=}(3, 4){(dynamic, dynamic) →* void};
- new self::Foo::•().{self::Foo::clear}(){() →* void};
+ new self::Foo::•().{self::Foo::[]=}(3, 4){(dynamic, dynamic) → void};
+ new self::Foo::•().{self::Foo::clear}(){() → void};
}
diff --git a/pkg/front_end/testcases/general/warn_unresolved_sends.dart b/pkg/front_end/testcases/general/warn_unresolved_sends.dart
index 92e87a5..ba78add 100644
--- a/pkg/front_end/testcases/general/warn_unresolved_sends.dart
+++ b/pkg/front_end/testcases/general/warn_unresolved_sends.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
class C {
var superField;
superMethod() {}
diff --git a/pkg/front_end/testcases/general/warn_unresolved_sends.dart.textual_outline.expect b/pkg/front_end/testcases/general/warn_unresolved_sends.dart.textual_outline.expect
index 55d70d6..9862754 100644
--- a/pkg/front_end/testcases/general/warn_unresolved_sends.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/general/warn_unresolved_sends.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class C {
var superField;
superMethod() {}
diff --git a/pkg/front_end/testcases/general/warn_unresolved_sends.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/warn_unresolved_sends.dart.textual_outline_modelled.expect
index 0d861b4..73c7281 100644
--- a/pkg/front_end/testcases/general/warn_unresolved_sends.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/general/warn_unresolved_sends.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class C {
get getterOnly => null;
get setterOnly => null;
diff --git a/pkg/front_end/testcases/general/warn_unresolved_sends.dart.weak.expect b/pkg/front_end/testcases/general/warn_unresolved_sends.dart.weak.expect
index 300333f2..3ea613a 100644
--- a/pkg/front_end/testcases/general/warn_unresolved_sends.dart.weak.expect
+++ b/pkg/front_end/testcases/general/warn_unresolved_sends.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -43,7 +43,7 @@
class C extends core::Object {
field dynamic superField = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method superMethod() → dynamic {}
@@ -53,20 +53,10 @@
get getterOnly() → dynamic
return null;
set getterOnly(dynamic _) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
field dynamic field = null;
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
set setterOnly(dynamic _) → void {}
@@ -78,8 +68,8 @@
this.{self::C::superField}{dynamic};
this.{self::D::field} = 0;
this.{self::C::superField} = 0;
- this.{self::D::method}(){() →* dynamic};
- this.{self::C::superMethod}(){() →* dynamic};
+ this.{self::D::method}(){() → dynamic};
+ this.{self::C::superMethod}(){() → dynamic};
this.{self::C::setterOnly}{dynamic};
this.{self::D::setterOnly} = 0;
this.{self::D::getterOnly}{dynamic};
@@ -88,8 +78,8 @@
this.{self::C::superField}{dynamic};
this.{self::D::field} = 0;
this.{self::C::superField} = 0;
- this.{self::D::method}(){() →* dynamic};
- this.{self::C::superMethod}(){() →* dynamic};
+ this.{self::D::method}(){() → dynamic};
+ this.{self::C::superMethod}(){() → dynamic};
this.{self::C::setterOnly}{dynamic};
this.{self::D::setterOnly} = 0;
this.{self::D::getterOnly}{dynamic};
@@ -128,7 +118,7 @@
}
class E extends self::D {
field dynamic missingField = null;
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super self::D::•()
;
method missingMethod() → void {}
diff --git a/pkg/front_end/testcases/general/warn_unresolved_sends.dart.weak.modular.expect b/pkg/front_end/testcases/general/warn_unresolved_sends.dart.weak.modular.expect
index 300333f2..3ea613a 100644
--- a/pkg/front_end/testcases/general/warn_unresolved_sends.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/warn_unresolved_sends.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -43,7 +43,7 @@
class C extends core::Object {
field dynamic superField = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method superMethod() → dynamic {}
@@ -53,20 +53,10 @@
get getterOnly() → dynamic
return null;
set getterOnly(dynamic _) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
field dynamic field = null;
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
set setterOnly(dynamic _) → void {}
@@ -78,8 +68,8 @@
this.{self::C::superField}{dynamic};
this.{self::D::field} = 0;
this.{self::C::superField} = 0;
- this.{self::D::method}(){() →* dynamic};
- this.{self::C::superMethod}(){() →* dynamic};
+ this.{self::D::method}(){() → dynamic};
+ this.{self::C::superMethod}(){() → dynamic};
this.{self::C::setterOnly}{dynamic};
this.{self::D::setterOnly} = 0;
this.{self::D::getterOnly}{dynamic};
@@ -88,8 +78,8 @@
this.{self::C::superField}{dynamic};
this.{self::D::field} = 0;
this.{self::C::superField} = 0;
- this.{self::D::method}(){() →* dynamic};
- this.{self::C::superMethod}(){() →* dynamic};
+ this.{self::D::method}(){() → dynamic};
+ this.{self::C::superMethod}(){() → dynamic};
this.{self::C::setterOnly}{dynamic};
this.{self::D::setterOnly} = 0;
this.{self::D::getterOnly}{dynamic};
@@ -128,7 +118,7 @@
}
class E extends self::D {
field dynamic missingField = null;
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super self::D::•()
;
method missingMethod() → void {}
diff --git a/pkg/front_end/testcases/general/warn_unresolved_sends.dart.weak.outline.expect b/pkg/front_end/testcases/general/warn_unresolved_sends.dart.weak.outline.expect
index ef5e55a..7b5f46b 100644
--- a/pkg/front_end/testcases/general/warn_unresolved_sends.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/warn_unresolved_sends.dart.weak.outline.expect
@@ -1,10 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
field dynamic superField;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
method superMethod() → dynamic
;
@@ -16,20 +16,10 @@
;
set getterOnly(dynamic _) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
field dynamic field;
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
set setterOnly(dynamic _) → void
;
@@ -42,7 +32,7 @@
}
class E extends self::D {
field dynamic missingField;
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
;
method missingMethod() → void
;
diff --git a/pkg/front_end/testcases/general/warn_unresolved_sends.dart.weak.transformed.expect b/pkg/front_end/testcases/general/warn_unresolved_sends.dart.weak.transformed.expect
index 300333f2..3ea613a 100644
--- a/pkg/front_end/testcases/general/warn_unresolved_sends.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/warn_unresolved_sends.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -43,7 +43,7 @@
class C extends core::Object {
field dynamic superField = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method superMethod() → dynamic {}
@@ -53,20 +53,10 @@
get getterOnly() → dynamic
return null;
set getterOnly(dynamic _) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
field dynamic field = null;
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
set setterOnly(dynamic _) → void {}
@@ -78,8 +68,8 @@
this.{self::C::superField}{dynamic};
this.{self::D::field} = 0;
this.{self::C::superField} = 0;
- this.{self::D::method}(){() →* dynamic};
- this.{self::C::superMethod}(){() →* dynamic};
+ this.{self::D::method}(){() → dynamic};
+ this.{self::C::superMethod}(){() → dynamic};
this.{self::C::setterOnly}{dynamic};
this.{self::D::setterOnly} = 0;
this.{self::D::getterOnly}{dynamic};
@@ -88,8 +78,8 @@
this.{self::C::superField}{dynamic};
this.{self::D::field} = 0;
this.{self::C::superField} = 0;
- this.{self::D::method}(){() →* dynamic};
- this.{self::C::superMethod}(){() →* dynamic};
+ this.{self::D::method}(){() → dynamic};
+ this.{self::C::superMethod}(){() → dynamic};
this.{self::C::setterOnly}{dynamic};
this.{self::D::setterOnly} = 0;
this.{self::D::getterOnly}{dynamic};
@@ -128,7 +118,7 @@
}
class E extends self::D {
field dynamic missingField = null;
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super self::D::•()
;
method missingMethod() → void {}
diff --git a/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart
index fd3815d..dd3af5d9 100644
--- a/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart
+++ b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2020, 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.
+
// @dart=2.9
+
class A<X extends int> {}
class B {
diff --git a/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.expect b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.expect
index a688b79..145ed00 100644
--- a/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.expect
+++ b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.expect
@@ -2,59 +2,59 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:8:10: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:10:10: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// A<num> fieldOfA; // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:9:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:11:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// static A<num> staticFieldOfA; // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:12:13: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:14:13: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// extension E<X extends A<num>> // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:14:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:16:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// static A<num> fieldOfE; // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:15:16: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A' in the return type.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:17:16: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A' in the return type.
// Try changing type arguments so that they conform to the bounds.
// A<num> fooOfE() => null; // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:16:22: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:18:22: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// void barOfE(A<num> a) {} // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:17:15: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:19:15: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// void bazOfE<Y extends A<num>>() {} // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
diff --git a/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.modular.expect b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.modular.expect
index a688b79..145ed00 100644
--- a/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.modular.expect
@@ -2,59 +2,59 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:8:10: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:10:10: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// A<num> fieldOfA; // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:9:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:11:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// static A<num> staticFieldOfA; // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:12:13: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:14:13: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// extension E<X extends A<num>> // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:14:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:16:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// static A<num> fieldOfE; // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:15:16: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A' in the return type.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:17:16: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A' in the return type.
// Try changing type arguments so that they conform to the bounds.
// A<num> fooOfE() => null; // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:16:22: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:18:22: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// void barOfE(A<num> a) {} // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:17:15: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:19:15: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// void bazOfE<Y extends A<num>>() {} // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
diff --git a/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.outline.expect b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.outline.expect
index f1bac31..401ed4e 100644
--- a/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.outline.expect
@@ -2,59 +2,59 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:8:10: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:10:10: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// A<num> fieldOfA; // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:9:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:11:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// static A<num> staticFieldOfA; // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:12:13: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:14:13: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// extension E<X extends A<num>> // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:14:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:16:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// static A<num> fieldOfE; // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:15:16: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A' in the return type.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:17:16: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A' in the return type.
// Try changing type arguments so that they conform to the bounds.
// A<num> fooOfE() => null; // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:16:22: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:18:22: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// void barOfE(A<num> a) {} // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:17:15: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:19:15: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// void bazOfE<Y extends A<num>>() {} // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
diff --git a/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.transformed.expect b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.transformed.expect
index a688b79..145ed00 100644
--- a/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.transformed.expect
@@ -2,59 +2,59 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:8:10: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:10:10: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// A<num> fieldOfA; // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:9:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:11:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// static A<num> staticFieldOfA; // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:12:13: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:14:13: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// extension E<X extends A<num>> // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:14:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:16:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// static A<num> fieldOfE; // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:15:16: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A' in the return type.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:17:16: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A' in the return type.
// Try changing type arguments so that they conform to the bounds.
// A<num> fooOfE() => null; // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:16:22: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:18:22: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// void barOfE(A<num> a) {} // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:17:15: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:19:15: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
// Try changing type arguments so that they conform to the bounds.
// void bazOfE<Y extends A<num>>() {} // Error.
// ^
-// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart:7:9: Context: This is the type variable whose bound isn't conformed to.
// class A<X extends int> {}
// ^
//
diff --git a/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart b/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart
new file mode 100644
index 0000000..3eca954
--- /dev/null
+++ b/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart
@@ -0,0 +1,20 @@
+// Copyright (c) 2020, 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 A<X extends int> {}
+
+class B {
+ A<num>? fieldOfA; // Error.
+ static A<num>? staticFieldOfA; // Error.
+}
+
+extension E<X extends A<num>> // Error.
+ on A {
+ static A<num>? fieldOfE; // Error.
+ A<num>? fooOfE() => null; // Error.
+ void barOfE(A<num> a) {} // Error.
+ void bazOfE<Y extends A<num>>() {} // Error.
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.textual_outline.expect b/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.textual_outline.expect
new file mode 100644
index 0000000..84ddb17
--- /dev/null
+++ b/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.textual_outline.expect
@@ -0,0 +1,15 @@
+class A<X extends int> {}
+
+class B {
+ A<num>? fieldOfA;
+ static A<num>? staticFieldOfA;
+}
+
+extension E<X extends A<num>> on A {
+ static A<num>? fieldOfE;
+ A<num>? fooOfE() => null;
+ void barOfE(A<num> a) {}
+ void bazOfE<Y extends A<num>>() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..8a06cad
--- /dev/null
+++ b/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.textual_outline_modelled.expect
@@ -0,0 +1,15 @@
+class A<X extends int> {}
+
+class B {
+ A<num>? fieldOfA;
+ static A<num>? staticFieldOfA;
+}
+
+extension E<X extends A<num>> on A {
+ A<num>? fooOfE() => null;
+ static A<num>? fieldOfE;
+ void barOfE(A<num> a) {}
+ void bazOfE<Y extends A<num>>() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.weak.expect b/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.weak.expect
new file mode 100644
index 0000000..c19f798
--- /dev/null
+++ b/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.weak.expect
@@ -0,0 +1,96 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:8:11: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// A<num>? fieldOfA; // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:9:18: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// static A<num>? staticFieldOfA; // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:12:13: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// extension E<X extends A<num>> // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:14:18: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// static A<num>? fieldOfE; // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:15:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A' in the return type.
+// Try changing type arguments so that they conform to the bounds.
+// A<num>? fooOfE() => null; // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:16:22: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// void barOfE(A<num> a) {} // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:17:15: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// void bazOfE<Y extends A<num>>() {} // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A<X extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X>
+ : super core::Object::•()
+ ;
+}
+class B extends core::Object {
+ field self::A<core::num>? fieldOfA = null;
+ static field self::A<core::num>? staticFieldOfA = null;
+ synthetic constructor •() → self::B
+ : super core::Object::•()
+ ;
+}
+extension E<X extends self::A<core::num>> on self::A<core::int> {
+ static field fieldOfE = self::E|fieldOfE;
+ method fooOfE = self::E|fooOfE;
+ tearoff fooOfE = self::E|get#fooOfE;
+ method barOfE = self::E|barOfE;
+ tearoff barOfE = self::E|get#barOfE;
+ method bazOfE = self::E|bazOfE;
+ tearoff bazOfE = self::E|get#bazOfE;
+}
+static field self::A<core::num>? E|fieldOfE;
+static method E|fooOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → self::A<core::num>?
+ return null;
+static method E|get#fooOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → () → self::A<core::num>?
+ return () → self::A<core::num>? => self::E|fooOfE<self::E|get#fooOfE::X>(#this);
+static method E|barOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this, self::A<core::num> a) → void {}
+static method E|get#barOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → (self::A<core::num>) → void
+ return (self::A<core::num> a) → void => self::E|barOfE<self::E|get#barOfE::X>(#this, a);
+static method E|bazOfE<X extends self::A<core::num>, Y extends self::A<core::num>>(lowered final self::A<core::int> #this) → void {}
+static method E|get#bazOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → <Y extends self::A<core::num>>() → void
+ return <Y extends self::A<core::num>>() → void => self::E|bazOfE<self::E|get#bazOfE::X, Y>(#this);
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.weak.modular.expect b/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.weak.modular.expect
new file mode 100644
index 0000000..c19f798
--- /dev/null
+++ b/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.weak.modular.expect
@@ -0,0 +1,96 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:8:11: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// A<num>? fieldOfA; // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:9:18: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// static A<num>? staticFieldOfA; // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:12:13: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// extension E<X extends A<num>> // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:14:18: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// static A<num>? fieldOfE; // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:15:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A' in the return type.
+// Try changing type arguments so that they conform to the bounds.
+// A<num>? fooOfE() => null; // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:16:22: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// void barOfE(A<num> a) {} // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:17:15: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// void bazOfE<Y extends A<num>>() {} // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A<X extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X>
+ : super core::Object::•()
+ ;
+}
+class B extends core::Object {
+ field self::A<core::num>? fieldOfA = null;
+ static field self::A<core::num>? staticFieldOfA = null;
+ synthetic constructor •() → self::B
+ : super core::Object::•()
+ ;
+}
+extension E<X extends self::A<core::num>> on self::A<core::int> {
+ static field fieldOfE = self::E|fieldOfE;
+ method fooOfE = self::E|fooOfE;
+ tearoff fooOfE = self::E|get#fooOfE;
+ method barOfE = self::E|barOfE;
+ tearoff barOfE = self::E|get#barOfE;
+ method bazOfE = self::E|bazOfE;
+ tearoff bazOfE = self::E|get#bazOfE;
+}
+static field self::A<core::num>? E|fieldOfE;
+static method E|fooOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → self::A<core::num>?
+ return null;
+static method E|get#fooOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → () → self::A<core::num>?
+ return () → self::A<core::num>? => self::E|fooOfE<self::E|get#fooOfE::X>(#this);
+static method E|barOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this, self::A<core::num> a) → void {}
+static method E|get#barOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → (self::A<core::num>) → void
+ return (self::A<core::num> a) → void => self::E|barOfE<self::E|get#barOfE::X>(#this, a);
+static method E|bazOfE<X extends self::A<core::num>, Y extends self::A<core::num>>(lowered final self::A<core::int> #this) → void {}
+static method E|get#bazOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → <Y extends self::A<core::num>>() → void
+ return <Y extends self::A<core::num>>() → void => self::E|bazOfE<self::E|get#bazOfE::X, Y>(#this);
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.weak.outline.expect b/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.weak.outline.expect
new file mode 100644
index 0000000..ed99e3a
--- /dev/null
+++ b/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.weak.outline.expect
@@ -0,0 +1,97 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:8:11: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// A<num>? fieldOfA; // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:9:18: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// static A<num>? staticFieldOfA; // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:12:13: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// extension E<X extends A<num>> // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:14:18: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// static A<num>? fieldOfE; // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:15:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A' in the return type.
+// Try changing type arguments so that they conform to the bounds.
+// A<num>? fooOfE() => null; // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:16:22: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// void barOfE(A<num> a) {} // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:17:15: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// void bazOfE<Y extends A<num>>() {} // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A<X extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X>
+ ;
+}
+class B extends core::Object {
+ field self::A<core::num>? fieldOfA;
+ static field self::A<core::num>? staticFieldOfA;
+ synthetic constructor •() → self::B
+ ;
+}
+extension E<X extends self::A<core::num>> on self::A<core::int> {
+ static field fieldOfE = self::E|fieldOfE;
+ method fooOfE = self::E|fooOfE;
+ tearoff fooOfE = self::E|get#fooOfE;
+ method barOfE = self::E|barOfE;
+ tearoff barOfE = self::E|get#barOfE;
+ method bazOfE = self::E|bazOfE;
+ tearoff bazOfE = self::E|get#bazOfE;
+}
+static field self::A<core::num>? E|fieldOfE;
+static method E|fooOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → self::A<core::num>?
+ ;
+static method E|get#fooOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → () → self::A<core::num>?
+ return () → self::A<core::num>? => self::E|fooOfE<self::E|get#fooOfE::X>(#this);
+static method E|barOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this, self::A<core::num> a) → void
+ ;
+static method E|get#barOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → (self::A<core::num>) → void
+ return (self::A<core::num> a) → void => self::E|barOfE<self::E|get#barOfE::X>(#this, a);
+static method E|bazOfE<X extends self::A<core::num>, Y extends self::A<core::num>>(lowered final self::A<core::int> #this) → void
+ ;
+static method E|get#bazOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → <Y extends self::A<core::num>>() → void
+ return <Y extends self::A<core::num>>() → void => self::E|bazOfE<self::E|get#bazOfE::X, Y>(#this);
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.weak.transformed.expect b/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.weak.transformed.expect
new file mode 100644
index 0000000..c19f798
--- /dev/null
+++ b/pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart.weak.transformed.expect
@@ -0,0 +1,96 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:8:11: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// A<num>? fieldOfA; // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:9:18: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// static A<num>? staticFieldOfA; // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:12:13: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// extension E<X extends A<num>> // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:14:18: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// static A<num>? fieldOfE; // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:15:17: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A' in the return type.
+// Try changing type arguments so that they conform to the bounds.
+// A<num>? fooOfE() => null; // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:16:22: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// void barOfE(A<num> a) {} // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:17:15: Error: Type argument 'num' doesn't conform to the bound 'int' of the type variable 'X' on 'A'.
+// Try changing type arguments so that they conform to the bounds.
+// void bazOfE<Y extends A<num>>() {} // Error.
+// ^
+// pkg/front_end/testcases/general/well_boundness_checks_in_outline2.dart:5:9: Context: This is the type variable whose bound isn't conformed to.
+// class A<X extends int> {}
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class A<X extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X>
+ : super core::Object::•()
+ ;
+}
+class B extends core::Object {
+ field self::A<core::num>? fieldOfA = null;
+ static field self::A<core::num>? staticFieldOfA = null;
+ synthetic constructor •() → self::B
+ : super core::Object::•()
+ ;
+}
+extension E<X extends self::A<core::num>> on self::A<core::int> {
+ static field fieldOfE = self::E|fieldOfE;
+ method fooOfE = self::E|fooOfE;
+ tearoff fooOfE = self::E|get#fooOfE;
+ method barOfE = self::E|barOfE;
+ tearoff barOfE = self::E|get#barOfE;
+ method bazOfE = self::E|bazOfE;
+ tearoff bazOfE = self::E|get#bazOfE;
+}
+static field self::A<core::num>? E|fieldOfE;
+static method E|fooOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → self::A<core::num>?
+ return null;
+static method E|get#fooOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → () → self::A<core::num>?
+ return () → self::A<core::num>? => self::E|fooOfE<self::E|get#fooOfE::X>(#this);
+static method E|barOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this, self::A<core::num> a) → void {}
+static method E|get#barOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → (self::A<core::num>) → void
+ return (self::A<core::num> a) → void => self::E|barOfE<self::E|get#barOfE::X>(#this, a);
+static method E|bazOfE<X extends self::A<core::num>, Y extends self::A<core::num>>(lowered final self::A<core::int> #this) → void {}
+static method E|get#bazOfE<X extends self::A<core::num>>(lowered final self::A<core::int> #this) → <Y extends self::A<core::num>>() → void
+ return <Y extends self::A<core::num>>() → void => self::E|bazOfE<self::E|get#bazOfE::X, Y>(#this);
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/textual_outline.status b/pkg/front_end/testcases/textual_outline.status
index 33aebe0..0bca12b 100644
--- a/pkg/front_end/testcases/textual_outline.status
+++ b/pkg/front_end/testcases/textual_outline.status
@@ -106,6 +106,9 @@
general/null_aware_super: FormatterCrash
general/null_safety_invalid_experiment: FormatterCrash
general/null_safety_invalid_experiment_and_language_version: FormatterCrash
+general/type_parameter_type_named_int: FormatterCrash
+general/type_parameter_usage_in_static_method_in_class: FormatterCrash
+general/type_parameter_usage_in_static_method_in_extension: FormatterCrash
general/type_parameters_on_void: FormatterCrash
general/type_variable_in_static_context: FormatterCrash
general/var_as_type_name: FormatterCrash
diff --git a/runtime/observatory_2/tests/service_2/service_2.status b/runtime/observatory_2/tests/service_2/service_2.status
index 54c0328..d56e17c 100644
--- a/runtime/observatory_2/tests/service_2/service_2.status
+++ b/runtime/observatory_2/tests/service_2/service_2.status
@@ -41,6 +41,9 @@
dev_fs_weird_char_test: Skip # Windows disallows question mark in paths
uri_mappings_lookup_test: SkipByDesign # Relies on file paths in the SDK.
+[ $arch == ia32 && $mode == debug ]
+break_on_function_many_child_isolates_test: Skip # Times out anyway, so skipping to reduce chance of shard timeout.
+
[ $compiler == none && $runtime == vm ]
evaluate_activation_test/instance: RuntimeError # http://dartbug.com/20047
evaluate_activation_test/scope: RuntimeError # http://dartbug.com/20047
diff --git a/tools/VERSION b/tools/VERSION
index 6533fe6..5d4cdea 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 17
PATCH 0
-PRERELEASE 191
+PRERELEASE 192
PRERELEASE_PATCH 0
\ No newline at end of file