Version 2.14.0-25.0.dev
Merge commit 'a65ab5e09ca0f95fb2150eb8377cd18c863c7446' into 'dev'
diff --git a/pkg/_fe_analyzer_shared/lib/src/flow_analysis/flow_analysis.dart b/pkg/_fe_analyzer_shared/lib/src/flow_analysis/flow_analysis.dart
index a8af89d..b050ba3 100644
--- a/pkg/_fe_analyzer_shared/lib/src/flow_analysis/flow_analysis.dart
+++ b/pkg/_fe_analyzer_shared/lib/src/flow_analysis/flow_analysis.dart
@@ -4794,10 +4794,6 @@
@override
void write(Node node, Variable variable, Type writtenType,
Expression? writtenExpression) {
- assert(
- _assignedVariables._anywhere._written.contains(variable),
- "Variable is written to, but was not included in "
- "_variablesWrittenAnywhere: $variable");
_writeStackForAnd.last.add(variable);
}
diff --git a/pkg/_fe_analyzer_shared/test/flow_analysis/why_not_promoted/data/argument_type_not_assignable_nullability_error.dart b/pkg/_fe_analyzer_shared/test/flow_analysis/why_not_promoted/data/argument_type_not_assignable_nullability_error.dart
index d7c28eb..af0f56b 100644
--- a/pkg/_fe_analyzer_shared/test/flow_analysis/why_not_promoted/data/argument_type_not_assignable_nullability_error.dart
+++ b/pkg/_fe_analyzer_shared/test/flow_analysis/why_not_promoted/data/argument_type_not_assignable_nullability_error.dart
@@ -452,3 +452,26 @@
/*notPromoted(propertyNotPromoted(target: member:C33.bad, type: int?))*/ bad)
.f();
}
+
+class C34 {
+ int? bad;
+ C34(int value);
+}
+
+class D34 extends C34 {
+ int other;
+ D34(C34 c)
+ : other = c.bad!,
+ super(c.
+ /*notPromoted(propertyNotPromoted(target: member:C34.bad, type: int?))*/ bad);
+}
+
+class C35 {
+ int? bad;
+}
+
+indexSetRhs(C35 c, List<int> x) {
+ if (c.bad == null) return;
+ x[0] = c.
+ /*notPromoted(propertyNotPromoted(target: member:C35.bad, type: int?))*/ bad;
+}
diff --git a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
index 399bc43..e85f8b7 100644
--- a/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
+++ b/pkg/analyzer/lib/src/dart/analysis/library_analyzer.dart
@@ -684,13 +684,10 @@
// Nothing for RESOLVED_UNIT9?
// Nothing for RESOLVED_UNIT10?
- FlowAnalysisHelper? flowAnalysisHelper;
- if (unit.featureSet.isEnabled(Feature.non_nullable)) {
- flowAnalysisHelper =
- FlowAnalysisHelper(_typeSystem, _testingData != null);
- _testingData?.recordFlowAnalysisDataForTesting(
- file.uri, flowAnalysisHelper.dataForTesting!);
- }
+ FlowAnalysisHelper flowAnalysisHelper = FlowAnalysisHelper(_typeSystem,
+ _testingData != null, unit.featureSet.isEnabled(Feature.non_nullable));
+ _testingData?.recordFlowAnalysisDataForTesting(
+ file.uri, flowAnalysisHelper.dataForTesting!);
unit.accept(ResolverVisitor(
_inheritance, _libraryElement, source, _typeProvider, errorListener,
diff --git a/pkg/analyzer/lib/src/dart/micro/library_analyzer.dart b/pkg/analyzer/lib/src/dart/micro/library_analyzer.dart
index c394437..2d5a144 100644
--- a/pkg/analyzer/lib/src/dart/micro/library_analyzer.dart
+++ b/pkg/analyzer/lib/src/dart/micro/library_analyzer.dart
@@ -703,10 +703,8 @@
// Nothing for RESOLVED_UNIT9?
// Nothing for RESOLVED_UNIT10?
- FlowAnalysisHelper? flowAnalysisHelper;
- if (unit.featureSet.isEnabled(Feature.non_nullable)) {
- flowAnalysisHelper = FlowAnalysisHelper(_typeSystem, false);
- }
+ FlowAnalysisHelper flowAnalysisHelper = FlowAnalysisHelper(
+ _typeSystem, false, unit.featureSet.isEnabled(Feature.non_nullable));
var resolverVisitor = ResolverVisitor(
_inheritance, _libraryElement, source, _typeProvider, errorListener,
diff --git a/pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart
index 3b63d6c..b975efd 100644
--- a/pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/assignment_expression_resolver.dart
@@ -74,7 +74,7 @@
var leftType = node.writeType;
if (writeElement is VariableElement) {
leftType = _resolver.localVariableTypeProvider
- .getType(left as SimpleIdentifier);
+ .getType(left as SimpleIdentifier, isRead: false);
}
_setRhsContext(node, leftType!, operator, right);
}
diff --git a/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
index e4b016a..4e6836f 100644
--- a/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/binary_expression_resolver.dart
@@ -18,20 +18,16 @@
import 'package:analyzer/src/dart/resolver/type_property_resolver.dart';
import 'package:analyzer/src/error/codes.dart';
import 'package:analyzer/src/generated/resolver.dart';
-import 'package:analyzer/src/generated/type_promotion_manager.dart';
/// Helper for resolving [BinaryExpression]s.
class BinaryExpressionResolver {
final ResolverVisitor _resolver;
- final TypePromotionManager _promoteManager;
final TypePropertyResolver _typePropertyResolver;
final InvocationInferenceHelper _inferenceHelper;
BinaryExpressionResolver({
required ResolverVisitor resolver,
- required TypePromotionManager promoteManager,
}) : _resolver = resolver,
- _promoteManager = promoteManager,
_typePropertyResolver = resolver.typePropertyResolver,
_inferenceHelper = resolver.inferenceHelper;
@@ -176,27 +172,16 @@
left = node.leftOperand;
var leftWhyNotPromoted = _resolver.flowAnalysis?.flow?.whyNotPromoted(left);
- Map<DartType, NonPromotionReason> Function()? rightWhyNotPromoted;
- if (_resolver.flowAnalysis != null) {
- flow?.logicalBinaryOp_rightBegin(left, node, isAnd: true);
- _resolver.checkUnreachableNode(right);
+ flow?.logicalBinaryOp_rightBegin(left, node, isAnd: true);
+ _resolver.checkUnreachableNode(right);
- right.accept(_resolver);
- right = node.rightOperand;
- rightWhyNotPromoted = _resolver.flowAnalysis!.flow?.whyNotPromoted(right);
+ right.accept(_resolver);
+ right = node.rightOperand;
+ var rightWhyNotPromoted =
+ _resolver.flowAnalysis!.flow?.whyNotPromoted(right);
- _resolver.nullSafetyDeadCodeVerifier.flowEnd(right);
- flow?.logicalBinaryOp_end(node, right, isAnd: true);
- } else {
- _promoteManager.visitBinaryExpression_and_rhs(
- left,
- right,
- () {
- right.accept(_resolver);
- right = node.rightOperand;
- },
- );
- }
+ _resolver.nullSafetyDeadCodeVerifier.flowEnd(right);
+ flow?.logicalBinaryOp_end(node, right, isAnd: true);
_checkNonBoolOperand(left, '&&', whyNotPromoted: leftWhyNotPromoted);
_checkNonBoolOperand(right, '&&', whyNotPromoted: rightWhyNotPromoted);
diff --git a/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart b/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart
index 2478a00..b78323d 100644
--- a/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/flow_analysis_visitor.dart
@@ -39,8 +39,7 @@
/// For each top level or class level declaration, the assigned variables
/// information that was computed for it.
- final Map<Declaration,
- AssignedVariablesForTesting<AstNode, PromotableElement>>
+ final Map<AstNode, AssignedVariablesForTesting<AstNode, PromotableElement>>
assignedVariables = {};
/// For each expression that led to an error because it was not promoted, a
@@ -67,15 +66,21 @@
/// The result for post-resolution stages of analysis, for testing only.
final FlowAnalysisDataForTesting? dataForTesting;
+ final bool isNonNullableByDefault;
+
/// The current flow, when resolving a function body, or `null` otherwise.
FlowAnalysis<AstNode, Statement, Expression, PromotableElement, DartType>?
flow;
- FlowAnalysisHelper(TypeSystemImpl typeSystem, bool retainDataForTesting)
- : this._(TypeSystemTypeOperations(typeSystem),
- retainDataForTesting ? FlowAnalysisDataForTesting() : null);
+ FlowAnalysisHelper(TypeSystemImpl typeSystem, bool retainDataForTesting,
+ bool isNonNullableByDefault)
+ : this._(
+ TypeSystemTypeOperations(typeSystem),
+ retainDataForTesting ? FlowAnalysisDataForTesting() : null,
+ isNonNullableByDefault);
- FlowAnalysisHelper._(this._typeOperations, this.dataForTesting);
+ FlowAnalysisHelper._(
+ this._typeOperations, this.dataForTesting, this.isNonNullableByDefault);
LocalVariableTypeProvider get localVariableTypeProvider {
return _LocalVariableTypeProvider(this);
@@ -154,11 +159,11 @@
}
void for_bodyBegin(AstNode node, Expression? condition) {
- flow!.for_bodyBegin(node is Statement ? node : null, condition);
+ flow?.for_bodyBegin(node is Statement ? node : null, condition);
}
void for_conditionBegin(AstNode node) {
- flow!.for_conditionBegin(node);
+ flow?.for_conditionBegin(node);
}
bool isDefinitelyAssigned(
@@ -218,7 +223,7 @@
}
void topLevelDeclaration_enter(
- Declaration node, FormalParameterList? parameters, FunctionBody? body) {
+ AstNode node, FormalParameterList? parameters, FunctionBody? body) {
assert(flow == null);
assignedVariables = computeAssignedVariables(node, parameters,
retainDataForTesting: dataForTesting != null);
@@ -226,8 +231,11 @@
dataForTesting!.assignedVariables[node] = assignedVariables
as AssignedVariablesForTesting<AstNode, PromotableElement>;
}
- flow = FlowAnalysis<AstNode, Statement, Expression, PromotableElement,
- DartType>(_typeOperations, assignedVariables!);
+ flow = isNonNullableByDefault
+ ? FlowAnalysis<AstNode, Statement, Expression, PromotableElement,
+ DartType>(_typeOperations, assignedVariables!)
+ : FlowAnalysis<AstNode, Statement, Expression, PromotableElement,
+ DartType>.legacy(_typeOperations, assignedVariables!);
}
void topLevelDeclaration_exit() {
@@ -267,7 +275,7 @@
/// Computes the [AssignedVariables] map for the given [node].
static AssignedVariables<AstNode, PromotableElement> computeAssignedVariables(
- Declaration node, FormalParameterList? parameters,
+ AstNode node, FormalParameterList? parameters,
{bool retainDataForTesting = false}) {
AssignedVariables<AstNode, PromotableElement> assignedVariables =
retainDataForTesting
@@ -331,13 +339,13 @@
class FlowAnalysisHelperForMigration extends FlowAnalysisHelper {
final MigrationResolutionHooks migrationResolutionHooks;
- FlowAnalysisHelperForMigration(
- TypeSystemImpl typeSystem, this.migrationResolutionHooks)
- : super(typeSystem, false);
+ FlowAnalysisHelperForMigration(TypeSystemImpl typeSystem,
+ this.migrationResolutionHooks, bool isNonNullableByDefault)
+ : super(typeSystem, false, isNonNullableByDefault);
@override
void topLevelDeclaration_enter(
- Declaration node, FormalParameterList? parameters, FunctionBody? body) {
+ AstNode node, FormalParameterList? parameters, FunctionBody? body) {
super.topLevelDeclaration_enter(node, parameters, body);
migrationResolutionHooks.setFlowAnalysis(flow);
}
@@ -672,10 +680,12 @@
_LocalVariableTypeProvider(this._manager);
@override
- DartType getType(SimpleIdentifier node) {
+ DartType getType(SimpleIdentifier node, {required bool isRead}) {
var variable = node.staticElement as VariableElement;
if (variable is PromotableElement) {
- var promotedType = _manager.flow?.variableRead(node, variable);
+ var promotedType = isRead
+ ? _manager.flow?.variableRead(node, variable)
+ : _manager.flow?.promotedType(variable);
if (promotedType != null) return promotedType;
}
return variable.type;
diff --git a/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart
index 1797cfc..1c4f15f 100644
--- a/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/for_resolver.dart
@@ -95,7 +95,8 @@
if (identifier != null) {
identifierElement = identifier.staticElement;
if (identifierElement is VariableElement) {
- valueType = _resolver.localVariableTypeProvider.getType(identifier);
+ valueType = _resolver.localVariableTypeProvider
+ .getType(identifier, isRead: false);
} else if (identifierElement is PropertyAccessorElement) {
var parameters = identifierElement.parameters;
if (parameters.isNotEmpty) {
diff --git a/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart
index abb6f0a..ed02e6a 100644
--- a/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/function_expression_resolver.dart
@@ -13,23 +13,19 @@
import 'package:analyzer/src/dart/resolver/invocation_inference_helper.dart';
import 'package:analyzer/src/generated/migration.dart';
import 'package:analyzer/src/generated/resolver.dart';
-import 'package:analyzer/src/generated/type_promotion_manager.dart';
import 'package:collection/collection.dart';
class FunctionExpressionResolver {
final ResolverVisitor _resolver;
final MigrationResolutionHooks? _migrationResolutionHooks;
final InvocationInferenceHelper _inferenceHelper;
- final TypePromotionManager _promoteManager;
FunctionExpressionResolver({
required ResolverVisitor resolver,
required MigrationResolutionHooks? migrationResolutionHooks,
- required TypePromotionManager promoteManager,
}) : _resolver = resolver,
_migrationResolutionHooks = migrationResolutionHooks,
- _inferenceHelper = resolver.inferenceHelper,
- _promoteManager = promoteManager;
+ _inferenceHelper = resolver.inferenceHelper;
bool get _isNonNullableByDefault => _typeSystem.isNonNullableByDefault;
@@ -39,13 +35,9 @@
var isFunctionDeclaration = node.parent is FunctionDeclaration;
var body = node.body;
- if (_resolver.flowAnalysis != null) {
- if (_resolver.flowAnalysis!.flow != null && !isFunctionDeclaration) {
- _resolver.flowAnalysis!
- .executableDeclaration_enter(node, node.parameters, true);
- }
- } else {
- _promoteManager.enterFunctionBody(body);
+ if (_resolver.flowAnalysis!.flow != null && !isFunctionDeclaration) {
+ _resolver.flowAnalysis!
+ .executableDeclaration_enter(node, node.parameters, true);
}
var contextType = InferenceContext.getContext(node);
@@ -63,19 +55,15 @@
node.visitChildren(_resolver);
_resolve2(node);
- if (_resolver.flowAnalysis != null) {
- if (_resolver.flowAnalysis!.flow != null && !isFunctionDeclaration) {
- var bodyContext = BodyInferenceContext.of(node.body);
- _resolver.checkForBodyMayCompleteNormally(
- returnType: bodyContext?.contextType,
- body: body,
- errorNode: body,
- );
- _resolver.flowAnalysis!.flow?.functionExpression_end();
- _resolver.nullSafetyDeadCodeVerifier.flowEnd(node);
- }
- } else {
- _promoteManager.exitFunctionBody();
+ if (_resolver.flowAnalysis!.flow != null && !isFunctionDeclaration) {
+ var bodyContext = BodyInferenceContext.of(node.body);
+ _resolver.checkForBodyMayCompleteNormally(
+ returnType: bodyContext?.contextType,
+ body: body,
+ errorNode: body,
+ );
+ _resolver.flowAnalysis!.flow?.functionExpression_end();
+ _resolver.nullSafetyDeadCodeVerifier.flowEnd(node);
}
}
diff --git a/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
index a6ab6e7..ad2fd4f 100644
--- a/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/method_invocation_resolver.dart
@@ -544,7 +544,8 @@
}
if (element is VariableElement) {
_resolver.checkReadOfNotAssignedLocalVariable(nameNode, element);
- var targetType = _localVariableTypeProvider.getType(nameNode);
+ var targetType =
+ _localVariableTypeProvider.getType(nameNode, isRead: true);
return _rewriteAsFunctionExpressionInvocation(node, targetType);
}
// TODO(scheglov) This is a questionable distinction.
diff --git a/pkg/analyzer/lib/src/dart/resolver/simple_identifier_resolver.dart b/pkg/analyzer/lib/src/dart/resolver/simple_identifier_resolver.dart
index fb7dbb0..f1b1859 100644
--- a/pkg/analyzer/lib/src/dart/resolver/simple_identifier_resolver.dart
+++ b/pkg/analyzer/lib/src/dart/resolver/simple_identifier_resolver.dart
@@ -243,7 +243,8 @@
} else if (element is TypeParameterElement) {
staticType = _typeProvider.typeType;
} else if (element is VariableElement) {
- staticType = _resolver.localVariableTypeProvider.getType(node);
+ staticType = _resolver.localVariableTypeProvider
+ .getType(node, isRead: node.inGetterContext());
} else if (element is PrefixElement) {
var parent = node.parent;
if (parent is PrefixedIdentifier && parent.prefix == node ||
diff --git a/pkg/analyzer/lib/src/generated/resolver.dart b/pkg/analyzer/lib/src/generated/resolver.dart
index a6f3800..71ca8bb 100644
--- a/pkg/analyzer/lib/src/generated/resolver.dart
+++ b/pkg/analyzer/lib/src/generated/resolver.dart
@@ -64,7 +64,6 @@
import 'package:analyzer/src/generated/source.dart';
import 'package:analyzer/src/generated/static_type_analyzer.dart';
import 'package:analyzer/src/generated/this_access_tracker.dart';
-import 'package:analyzer/src/generated/type_promotion_manager.dart';
import 'package:analyzer/src/generated/variable_type_provider.dart';
import 'package:analyzer/src/util/ast_data_extractor.dart';
import 'package:meta/meta.dart';
@@ -233,9 +232,6 @@
/// Otherwise `null`.
DartType? _thisType;
- /// The object keeping track of which elements have had their types promoted.
- late final TypePromotionManager _promoteManager;
-
final FlowAnalysisHelper? flowAnalysis;
/// A comment before a function should be resolved in the context of the
@@ -314,8 +310,6 @@
super(definingLibrary, source, typeProvider as TypeProviderImpl,
errorListener,
nameScope: nameScope) {
- _promoteManager = TypePromotionManager(typeSystem);
-
var analysisOptions =
definingLibrary.context.analysisOptions as AnalysisOptionsImpl;
@@ -345,7 +339,6 @@
);
_binaryExpressionResolver = BinaryExpressionResolver(
resolver: this,
- promoteManager: _promoteManager,
);
_functionExpressionInvocationResolver =
FunctionExpressionInvocationResolver(
@@ -354,7 +347,6 @@
_functionExpressionResolver = FunctionExpressionResolver(
resolver: this,
migrationResolutionHooks: migrationResolutionHooks,
- promoteManager: _promoteManager,
);
_forResolver = ForResolver(
resolver: this,
@@ -396,7 +388,7 @@
if (flowAnalysis != null) {
return flowAnalysis!.localVariableTypeProvider;
} else {
- return _promoteManager.localVariableTypeProvider;
+ return const NonPromotingLocalVariableTypeProvider();
}
}
@@ -442,6 +434,7 @@
required FunctionBody body,
required AstNode errorNode,
}) {
+ if (!_isNonNullableByDefault) return;
if (!flowAnalysis!.flow!.isReachable) {
return;
}
@@ -630,11 +623,6 @@
// TODO(brianwilkerson) Remove this method.
}
- /// Set the enclosing function body when partial AST is resolved.
- void prepareCurrentFunctionBody(FunctionBody body) {
- _promoteManager.enterFunctionBody(body);
- }
-
/// Set information about enclosing declarations.
void prepareEnclosingDeclarations({
ClassElement? enclosingClassElement,
@@ -775,7 +763,8 @@
if (element is PropertyAccessorElement && element.isGetter) {
readType = element.returnType;
} else if (element is VariableElement) {
- readType = localVariableTypeProvider.getType(node as SimpleIdentifier);
+ readType = localVariableTypeProvider.getType(node as SimpleIdentifier,
+ isRead: true);
}
}
@@ -1199,22 +1188,12 @@
Expression thenExpression = node.thenExpression;
InferenceContext.setTypeFromNode(thenExpression, node);
- if (flowAnalysis != null) {
- if (flow != null) {
- flow.conditional_thenBegin(condition, node);
- checkUnreachableNode(thenExpression);
- }
- thenExpression.accept(this);
- nullSafetyDeadCodeVerifier.flowEnd(thenExpression);
- } else {
- _promoteManager.visitConditionalExpression_then(
- condition,
- thenExpression,
- () {
- thenExpression.accept(this);
- },
- );
+ if (flow != null) {
+ flow.conditional_thenBegin(condition, node);
+ checkUnreachableNode(thenExpression);
}
+ thenExpression.accept(this);
+ nullSafetyDeadCodeVerifier.flowEnd(thenExpression);
Expression elseExpression = node.elseExpression;
InferenceContext.setTypeFromNode(elseExpression, node);
@@ -1244,33 +1223,25 @@
var outerFunction = _enclosingFunction;
_enclosingFunction = node.declaredElement!;
- if (flowAnalysis != null) {
- flowAnalysis!.topLevelDeclaration_enter(node, node.parameters, node.body);
- flowAnalysis!.executableDeclaration_enter(node, node.parameters, false);
- } else {
- _promoteManager.enterFunctionBody(node.body);
- }
+ flowAnalysis!.topLevelDeclaration_enter(node, node.parameters, node.body);
+ flowAnalysis!.executableDeclaration_enter(node, node.parameters, false);
var returnType = _enclosingFunction!.type.returnType;
InferenceContext.setType(node.body, returnType);
super.visitConstructorDeclaration(node);
- if (flowAnalysis != null) {
- if (node.factoryKeyword != null) {
- var bodyContext = BodyInferenceContext.of(node.body);
- checkForBodyMayCompleteNormally(
- returnType: bodyContext?.contextType,
- body: node.body,
- errorNode: node,
- );
- }
- flowAnalysis!.executableDeclaration_exit(node.body, false);
- flowAnalysis!.topLevelDeclaration_exit();
- nullSafetyDeadCodeVerifier.flowEnd(node);
- } else {
- _promoteManager.exitFunctionBody();
+ if (node.factoryKeyword != null) {
+ var bodyContext = BodyInferenceContext.of(node.body);
+ checkForBodyMayCompleteNormally(
+ returnType: bodyContext?.contextType,
+ body: node.body,
+ errorNode: node,
+ );
}
+ flowAnalysis!.executableDeclaration_exit(node.body, false);
+ flowAnalysis!.topLevelDeclaration_exit();
+ nullSafetyDeadCodeVerifier.flowEnd(node);
var constructor = node.declaredElement as ConstructorElementImpl;
constructor.constantInitializers =
@@ -1487,53 +1458,45 @@
bool isLocal = node.parent is FunctionDeclarationStatement;
- if (flowAnalysis != null) {
- if (isLocal) {
- flowAnalysis!.flow!.functionExpression_begin(node);
- } else {
- flowAnalysis!.topLevelDeclaration_enter(
- node,
- node.functionExpression.parameters,
- node.functionExpression.body,
- );
- }
- flowAnalysis!.executableDeclaration_enter(
+ if (isLocal) {
+ flowAnalysis!.flow!.functionExpression_begin(node);
+ } else {
+ flowAnalysis!.topLevelDeclaration_enter(
node,
node.functionExpression.parameters,
- isLocal,
+ node.functionExpression.body,
);
- } else {
- _promoteManager.enterFunctionBody(node.functionExpression.body);
}
+ flowAnalysis!.executableDeclaration_enter(
+ node,
+ node.functionExpression.parameters,
+ isLocal,
+ );
var functionType = _enclosingFunction!.type;
InferenceContext.setType(node.functionExpression, functionType);
super.visitFunctionDeclaration(node);
- if (flowAnalysis != null) {
- // TODO(scheglov) encapsulate
- var bodyContext = BodyInferenceContext.of(
- node.functionExpression.body,
- );
- checkForBodyMayCompleteNormally(
- returnType: bodyContext?.contextType,
- body: node.functionExpression.body,
- errorNode: node.name,
- );
- flowAnalysis!.executableDeclaration_exit(
- node.functionExpression.body,
- isLocal,
- );
- if (isLocal) {
- flowAnalysis!.flow!.functionExpression_end();
- } else {
- flowAnalysis!.topLevelDeclaration_exit();
- }
- nullSafetyDeadCodeVerifier.flowEnd(node);
+ // TODO(scheglov) encapsulate
+ var bodyContext = BodyInferenceContext.of(
+ node.functionExpression.body,
+ );
+ checkForBodyMayCompleteNormally(
+ returnType: bodyContext?.contextType,
+ body: node.functionExpression.body,
+ errorNode: node.name,
+ );
+ flowAnalysis!.executableDeclaration_exit(
+ node.functionExpression.body,
+ isLocal,
+ );
+ if (isLocal) {
+ flowAnalysis!.flow!.functionExpression_end();
} else {
- _promoteManager.exitFunctionBody();
+ flowAnalysis!.topLevelDeclaration_exit();
}
+ nullSafetyDeadCodeVerifier.flowEnd(node);
_enclosingFunction = outerFunction;
}
@@ -1620,18 +1583,8 @@
whyNotPromoted: whyNotPromoted);
CollectionElement thenElement = node.thenElement;
- if (flowAnalysis != null) {
- flowAnalysis!.flow?.ifStatement_thenBegin(condition, node);
- thenElement.accept(this);
- } else {
- _promoteManager.visitIfElement_thenElement(
- condition,
- thenElement,
- () {
- thenElement.accept(this);
- },
- );
- }
+ flowAnalysis!.flow?.ifStatement_thenBegin(condition, node);
+ thenElement.accept(this);
var elseElement = node.elseElement;
if (elseElement != null) {
@@ -1661,19 +1614,9 @@
whyNotPromoted: whyNotPromoted);
Statement thenStatement = node.thenStatement;
- if (flowAnalysis != null) {
- flowAnalysis!.flow?.ifStatement_thenBegin(condition, node);
- visitStatementInScope(thenStatement);
- nullSafetyDeadCodeVerifier.flowEnd(thenStatement);
- } else {
- _promoteManager.visitIfStatement_thenStatement(
- condition,
- thenStatement,
- () {
- visitStatementInScope(thenStatement);
- },
- );
- }
+ flowAnalysis!.flow?.ifStatement_thenBegin(condition, node);
+ visitStatementInScope(thenStatement);
+ nullSafetyDeadCodeVerifier.flowEnd(thenStatement);
var elseStatement = node.elseStatement;
if (elseStatement != null) {
@@ -1770,32 +1713,24 @@
var outerFunction = _enclosingFunction;
_enclosingFunction = node.declaredElement!;
- if (flowAnalysis != null) {
- flowAnalysis!.topLevelDeclaration_enter(node, node.parameters, node.body);
- flowAnalysis!.executableDeclaration_enter(node, node.parameters, false);
- } else {
- _promoteManager.enterFunctionBody(node.body);
- }
+ flowAnalysis!.topLevelDeclaration_enter(node, node.parameters, node.body);
+ flowAnalysis!.executableDeclaration_enter(node, node.parameters, false);
DartType returnType = _enclosingFunction!.returnType;
InferenceContext.setType(node.body, returnType);
super.visitMethodDeclaration(node);
- if (flowAnalysis != null) {
- // TODO(scheglov) encapsulate
- var bodyContext = BodyInferenceContext.of(node.body);
- checkForBodyMayCompleteNormally(
- returnType: bodyContext?.contextType,
- body: node.body,
- errorNode: node.name,
- );
- flowAnalysis!.executableDeclaration_exit(node.body, false);
- flowAnalysis!.topLevelDeclaration_exit();
- nullSafetyDeadCodeVerifier.flowEnd(node);
- } else {
- _promoteManager.exitFunctionBody();
- }
+ // TODO(scheglov) encapsulate
+ var bodyContext = BodyInferenceContext.of(node.body);
+ checkForBodyMayCompleteNormally(
+ returnType: bodyContext?.contextType,
+ body: node.body,
+ errorNode: node.name,
+ );
+ flowAnalysis!.executableDeclaration_exit(node.body, false);
+ flowAnalysis!.topLevelDeclaration_exit();
+ nullSafetyDeadCodeVerifier.flowEnd(node);
_enclosingFunction = outerFunction;
}
@@ -2030,7 +1965,7 @@
super.visitSwitchCase(node);
var flow = flowAnalysis?.flow;
- if (flow != null && flow.isReachable) {
+ if (flow != null && flow.isReachable && _isNonNullableByDefault) {
var switchStatement = node.parent as SwitchStatement;
if (switchStatement.members.last != node && node.statements.isNotEmpty) {
errorReporter.reportErrorForToken(
@@ -2162,7 +2097,8 @@
if (initializer != null) {
var initializerStaticType = initializer.typeOrThrow;
if (declaredType == null) {
- if (initializerStaticType is TypeParameterType) {
+ if (_isNonNullableByDefault &&
+ initializerStaticType is TypeParameterType) {
flowAnalysis?.flow?.promote(
declaredElement as PromotableElement, initializerStaticType);
}
@@ -2482,7 +2418,7 @@
null,
true,
FlowAnalysisHelperForMigration(
- typeSystem, migrationResolutionHooks),
+ typeSystem, migrationResolutionHooks, true),
migrationResolutionHooks,
migrationResolutionHooks);
diff --git a/pkg/analyzer/lib/src/generated/type_promotion_manager.dart b/pkg/analyzer/lib/src/generated/type_promotion_manager.dart
deleted file mode 100644
index 965b30f..0000000
--- a/pkg/analyzer/lib/src/generated/type_promotion_manager.dart
+++ /dev/null
@@ -1,388 +0,0 @@
-// 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.
-
-import 'package:analyzer/dart/ast/ast.dart';
-import 'package:analyzer/dart/ast/token.dart';
-import 'package:analyzer/dart/ast/visitor.dart';
-import 'package:analyzer/dart/element/element.dart';
-import 'package:analyzer/dart/element/type.dart';
-import 'package:analyzer/src/dart/ast/extensions.dart';
-import 'package:analyzer/src/dart/element/type_system.dart';
-import 'package:analyzer/src/generated/variable_type_provider.dart';
-
-/// Instances of the class `TypePromotionManager` manage the ability to promote
-/// types of local variables and formal parameters from their declared types
-/// based on control flow.
-class TypePromotionManager {
- final TypeSystemImpl _typeSystem;
-
- /// The current promotion scope.
- _TypePromoteScope _currentScope = _TypePromoteScope(null);
-
- final List<FunctionBody?> _functionBodyStack = [];
-
- /// Body of the function currently being analyzed, if any.
- FunctionBody? _currentFunctionBody;
-
- TypePromotionManager(this._typeSystem);
-
- LocalVariableTypeProvider get localVariableTypeProvider {
- return _LegacyLocalVariableTypeProvider(this);
- }
-
- /// Returns the elements with promoted types.
- Iterable<Element> get _promotedElements {
- return _currentScope.promotedElements;
- }
-
- void enterFunctionBody(FunctionBody body) {
- _functionBodyStack.add(_currentFunctionBody);
- _currentFunctionBody = body;
- }
-
- void exitFunctionBody() {
- if (_functionBodyStack.isEmpty) {
- assert(false, 'exitFunctionBody without a matching enterFunctionBody');
- } else {
- _currentFunctionBody = _functionBodyStack.removeLast();
- }
- }
-
- void visitBinaryExpression_and_rhs(
- Expression leftOperand, Expression rightOperand, void Function() f) {
- _enterScope();
- try {
- // Type promotion.
- _promoteTypes(leftOperand);
- _clearTypePromotionsIfPotentiallyMutatedIn(leftOperand);
- _clearTypePromotionsIfPotentiallyMutatedIn(rightOperand);
- _clearTypePromotionsIfAccessedInClosureAndPotentiallyMutated(
- rightOperand);
- // Visit right operand.
- f();
- } finally {
- _exitScope();
- }
- }
-
- void visitConditionalExpression_then(
- Expression condition, Expression thenExpression, void Function() f) {
- _enterScope();
- try {
- // Type promotion.
- _promoteTypes(condition);
- _clearTypePromotionsIfPotentiallyMutatedIn(thenExpression);
- _clearTypePromotionsIfAccessedInClosureAndPotentiallyMutated(
- thenExpression,
- );
- // Visit "then" expression.
- f();
- } finally {
- _exitScope();
- }
- }
-
- void visitIfElement_thenElement(
- Expression condition, CollectionElement thenElement, void Function() f) {
- _enterScope();
- try {
- // Type promotion.
- _promoteTypes(condition);
- _clearTypePromotionsIfPotentiallyMutatedIn(thenElement);
- _clearTypePromotionsIfAccessedInClosureAndPotentiallyMutated(thenElement);
- // Visit "then".
- f();
- } finally {
- _exitScope();
- }
- }
-
- void visitIfStatement_thenStatement(
- Expression condition, Statement thenStatement, void Function() f) {
- _enterScope();
- try {
- // Type promotion.
- _promoteTypes(condition);
- _clearTypePromotionsIfPotentiallyMutatedIn(thenStatement);
- _clearTypePromotionsIfAccessedInClosureAndPotentiallyMutated(
- thenStatement);
- // Visit "then".
- f();
- } finally {
- _exitScope();
- }
- }
-
- /// Checks each promoted variable in the current scope for compliance with the
- /// following specification statement:
- ///
- /// If the variable <i>v</i> is accessed by a closure in <i>s<sub>1</sub></i>
- /// then the variable <i>v</i> is not potentially mutated anywhere in the
- /// scope of <i>v</i>.
- void _clearTypePromotionsIfAccessedInClosureAndPotentiallyMutated(
- AstNode target) {
- for (Element element in _promotedElements) {
- if (_currentFunctionBody!
- .isPotentiallyMutatedInScope(element as VariableElement)) {
- if (_isVariableAccessedInClosure(element, target)) {
- _setType(element, null);
- }
- }
- }
- }
-
- /// Checks each promoted variable in the current scope for compliance with the
- /// following specification statement:
- ///
- /// <i>v</i> is not potentially mutated in <i>s<sub>1</sub></i> or within a
- /// closure.
- void _clearTypePromotionsIfPotentiallyMutatedIn(AstNode target) {
- for (Element element in _promotedElements) {
- if (_isVariablePotentiallyMutatedIn(element, target)) {
- _setType(element, null);
- }
- }
- }
-
- /// Enter a new promotions scope.
- void _enterScope() {
- _currentScope = _TypePromoteScope(_currentScope);
- }
-
- /// Exit the current promotion scope.
- void _exitScope() {
- var outerScope = _currentScope._outerScope;
- if (outerScope == null) {
- throw StateError("No scope to exit");
- }
- _currentScope = outerScope;
- }
-
- /// Return the promoted type of the given [element], or `null` if the type of
- /// the element has not been promoted.
- DartType? _getPromotedType(Element element) {
- return _currentScope.getType(element);
- }
-
- /// Return the static element associated with the given expression whose type
- /// can be promoted, or `null` if there is no element whose type can be
- /// promoted.
- VariableElement? _getPromotionStaticElement(Expression expression) {
- expression = expression.unParenthesized;
- if (expression is SimpleIdentifier) {
- var element = expression.staticElement;
- if (element is VariableElement) {
- ElementKind kind = element.kind;
- if (kind == ElementKind.LOCAL_VARIABLE ||
- kind == ElementKind.PARAMETER) {
- return element;
- }
- }
- }
- return null;
- }
-
- /// Given that the [node] is a reference to a [VariableElement], return the
- /// static type of the variable at this node - declared or promoted.
- DartType _getType(SimpleIdentifier node) {
- var variable = node.staticElement as VariableElement;
- return _getPromotedType(variable) ?? variable.type;
- }
-
- /// Return `true` if the given variable is accessed within a closure in the
- /// given [AstNode] and also mutated somewhere in variable scope. This
- /// information is only available for local variables (including parameters).
- ///
- /// @param variable the variable to check
- /// @param target the [AstNode] to check within
- /// @return `true` if this variable is potentially mutated somewhere in the
- /// given ASTNode
- bool _isVariableAccessedInClosure(Element variable, AstNode target) {
- _ResolverVisitor_isVariableAccessedInClosure visitor =
- _ResolverVisitor_isVariableAccessedInClosure(variable);
- target.accept(visitor);
- return visitor.result;
- }
-
- /// Return `true` if the given variable is potentially mutated somewhere in
- /// the given [AstNode]. This information is only available for local
- /// variables (including parameters).
- ///
- /// @param variable the variable to check
- /// @param target the [AstNode] to check within
- /// @return `true` if this variable is potentially mutated somewhere in the
- /// given ASTNode
- bool _isVariablePotentiallyMutatedIn(Element variable, AstNode target) {
- _ResolverVisitor_isVariablePotentiallyMutatedIn visitor =
- _ResolverVisitor_isVariablePotentiallyMutatedIn(variable);
- target.accept(visitor);
- return visitor.result;
- }
-
- /// If it is appropriate to do so, promotes the current type of the static
- /// element associated with the given expression with the given type.
- /// Generally speaking, it is appropriate if the given type is more specific
- /// than the current type.
- ///
- /// @param expression the expression used to access the static element whose
- /// types might be promoted
- /// @param potentialType the potential type of the elements
- void _promote(Expression expression, DartType potentialType) {
- var element = _getPromotionStaticElement(expression);
- if (element != null) {
- // may be mutated somewhere in closure
- if (_currentFunctionBody!.isPotentiallyMutatedInClosure(element)) {
- return;
- }
- // prepare current variable type
- DartType type = _getPromotedType(element) ?? expression.typeOrThrow;
-
- // Check if we can promote to potentialType from type.
- var promoteType = _typeSystem.tryPromoteToType(potentialType, type);
- if (promoteType != null) {
- // Do promote type of variable.
- _setType(element, promoteType);
- }
- }
- }
-
- /// Promotes type information using given condition.
- void _promoteTypes(Expression condition) {
- if (condition is BinaryExpression) {
- if (condition.operator.type == TokenType.AMPERSAND_AMPERSAND) {
- Expression left = condition.leftOperand;
- Expression right = condition.rightOperand;
- _promoteTypes(left);
- _promoteTypes(right);
- _clearTypePromotionsIfPotentiallyMutatedIn(right);
- }
- } else if (condition is IsExpression) {
- if (condition.notOperator == null) {
- _promote(condition.expression, condition.type.typeOrThrow);
- }
- } else if (condition is ParenthesizedExpression) {
- _promoteTypes(condition.expression);
- }
- }
-
- /// Set the promoted type of the given element to the given type.
- ///
- /// @param element the element whose type might have been promoted
- /// @param type the promoted type of the given element
- void _setType(Element element, DartType? type) {
- if (_currentScope._outerScope == null) {
- throw StateError("Cannot promote without a scope");
- }
- _currentScope.setType(element, type);
- }
-}
-
-/// The legacy, pre-NNBD implementation of [LocalVariableTypeProvider].
-class _LegacyLocalVariableTypeProvider implements LocalVariableTypeProvider {
- final TypePromotionManager _manager;
-
- _LegacyLocalVariableTypeProvider(this._manager);
-
- @override
- DartType getType(SimpleIdentifier node) {
- return _manager._getType(node);
- }
-}
-
-class _ResolverVisitor_isVariableAccessedInClosure
- extends RecursiveAstVisitor<void> {
- final Element variable;
-
- bool result = false;
-
- bool _inClosure = false;
-
- _ResolverVisitor_isVariableAccessedInClosure(this.variable);
-
- @override
- void visitFunctionExpression(FunctionExpression node) {
- bool inClosure = _inClosure;
- try {
- _inClosure = true;
- super.visitFunctionExpression(node);
- } finally {
- _inClosure = inClosure;
- }
- }
-
- @override
- void visitSimpleIdentifier(SimpleIdentifier node) {
- if (result) {
- return;
- }
- if (_inClosure && identical(node.staticElement, variable)) {
- result = true;
- }
- }
-}
-
-class _ResolverVisitor_isVariablePotentiallyMutatedIn
- extends RecursiveAstVisitor<void> {
- final Element variable;
-
- bool result = false;
-
- _ResolverVisitor_isVariablePotentiallyMutatedIn(this.variable);
-
- @override
- void visitSimpleIdentifier(SimpleIdentifier node) {
- if (result) {
- return;
- }
- if (identical(node.staticElement, variable)) {
- if (node.inSetterContext()) {
- result = true;
- }
- }
- }
-}
-
-/// Instances of the class `TypePromoteScope` represent a scope in which the
-/// types of elements can be promoted.
-class _TypePromoteScope {
- /// The outer scope in which types might be promoted.
- final _TypePromoteScope? _outerScope;
-
- /// A table mapping elements to the promoted type of that element.
- final Map<Element, DartType?> _promotedTypes = {};
-
- /// Initialize a newly created scope to be an empty child of the given scope.
- ///
- /// @param outerScope the outer scope in which types might be promoted
- _TypePromoteScope(this._outerScope);
-
- /// Returns the elements with promoted types.
- Iterable<Element> get promotedElements => _promotedTypes.keys.toSet();
-
- /// Return the promoted type of the given element, or `null` if the type of
- /// the element has not been promoted.
- ///
- /// @param element the element whose type might have been promoted
- /// @return the promoted type of the given element
- DartType? getType(Element element) {
- var type = _promotedTypes[element];
- if (type == null && element is PropertyAccessorElement) {
- type = _promotedTypes[element.variable];
- }
- if (type != null) {
- return type;
- } else if (_outerScope != null) {
- return _outerScope!.getType(element);
- }
- return null;
- }
-
- /// Set the promoted type of the given element to the given type.
- ///
- /// @param element the element whose type might have been promoted
- /// @param type the promoted type of the given element
- void setType(Element element, DartType? type) {
- _promotedTypes[element] = type;
- }
-}
diff --git a/pkg/analyzer/lib/src/generated/variable_type_provider.dart b/pkg/analyzer/lib/src/generated/variable_type_provider.dart
index 376d102..4258443 100644
--- a/pkg/analyzer/lib/src/generated/variable_type_provider.dart
+++ b/pkg/analyzer/lib/src/generated/variable_type_provider.dart
@@ -3,11 +3,24 @@
// BSD-style license that can be found in the LICENSE file.
import 'package:analyzer/dart/ast/ast.dart';
+import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/type.dart';
/// Provider of types for local variables and formal parameters.
abstract class LocalVariableTypeProvider {
/// Given that the [node] is a reference to a local variable, or a parameter,
/// return the type of the variable at the node - declared or promoted.
- DartType getType(SimpleIdentifier node);
+ DartType getType(SimpleIdentifier node, {required bool isRead});
+}
+
+/// Implementation of [LocalVariableTypeProvider] that does not promote, for use
+/// in situations where no flow analysis is being done. This happens in some
+/// analyzer internal unit tests.
+class NonPromotingLocalVariableTypeProvider
+ implements LocalVariableTypeProvider {
+ const NonPromotingLocalVariableTypeProvider();
+
+ @override
+ DartType getType(SimpleIdentifier node, {required bool isRead}) =>
+ (node.staticElement as VariableElement).type;
}
diff --git a/pkg/analyzer/lib/src/summary2/ast_resolver.dart b/pkg/analyzer/lib/src/summary2/ast_resolver.dart
index 85a2151..3be65c2 100644
--- a/pkg/analyzer/lib/src/summary2/ast_resolver.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_resolver.dart
@@ -53,16 +53,12 @@
node.accept(variableResolverVisitor);
}
- FlowAnalysisHelper? flowAnalysis;
+ FlowAnalysisHelper flowAnalysis = FlowAnalysisHelper(
+ _unitElement.library.typeSystem,
+ false,
+ _unitElement.library.isNonNullableByDefault);
if (isTopLevelVariableInitializer) {
- if (_unitElement.library.isNonNullableByDefault) {
- flowAnalysis = FlowAnalysisHelper(
- _unitElement.library.typeSystem,
- false,
- );
- flowAnalysis.topLevelDeclaration_enter(
- node.parent as Declaration, null, null);
- }
+ flowAnalysis.topLevelDeclaration_enter(node.parent!, null, null);
}
var resolverVisitor = ResolverVisitor(
@@ -80,14 +76,11 @@
enclosingClassElement: enclosingClassElement,
enclosingExecutableElement: enclosingExecutableElement,
);
- if (enclosingFunctionBody != null) {
- resolverVisitor.prepareCurrentFunctionBody(enclosingFunctionBody);
- }
node.accept(resolverVisitor);
if (isTopLevelVariableInitializer) {
- flowAnalysis?.topLevelDeclaration_exit();
+ flowAnalysis.topLevelDeclaration_exit();
}
}
}
diff --git a/pkg/analyzer/lib/src/summary2/default_value_resolver.dart b/pkg/analyzer/lib/src/summary2/default_value_resolver.dart
index 9566af2..f5d81ef 100644
--- a/pkg/analyzer/lib/src/summary2/default_value_resolver.dart
+++ b/pkg/analyzer/lib/src/summary2/default_value_resolver.dart
@@ -119,6 +119,7 @@
},
enclosingClassElement: _classElement,
enclosingExecutableElement: _executableElement,
+ isTopLevelVariableInitializer: true,
);
}
diff --git a/pkg/front_end/lib/src/fasta/builder/procedure_builder.dart b/pkg/front_end/lib/src/fasta/builder/procedure_builder.dart
index 4b2720b..a7659a2 100644
--- a/pkg/front_end/lib/src/fasta/builder/procedure_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/procedure_builder.dart
@@ -799,23 +799,15 @@
for (VariableDeclaration parameter
in member.function.positionalParameters) {
inferrer.flowAnalysis?.declare(parameter, true);
- positionalArguments.add(new VariableGetImpl(
- parameter,
- inferrer.typePromoter.getFactForAccess(parameter, 0),
- inferrer.typePromoter.currentScope,
- forNullGuardedAccess: false));
+ positionalArguments.add(
+ new VariableGetImpl(parameter, forNullGuardedAccess: false));
}
List<NamedExpression> namedArguments = <NamedExpression>[];
for (VariableDeclaration parameter
in member.function.namedParameters) {
inferrer.flowAnalysis?.declare(parameter, true);
- namedArguments.add(new NamedExpression(
- parameter.name,
- new VariableGetImpl(
- parameter,
- inferrer.typePromoter.getFactForAccess(parameter, 0),
- inferrer.typePromoter.currentScope,
- forNullGuardedAccess: false)));
+ namedArguments.add(new NamedExpression(parameter.name,
+ new VariableGetImpl(parameter, forNullGuardedAccess: false)));
}
// If arguments are created using [Forest.createArguments], and the
// type arguments are omitted, they are to be inferred.
diff --git a/pkg/front_end/lib/src/fasta/builder/type_variable_builder.dart b/pkg/front_end/lib/src/fasta/builder/type_variable_builder.dart
index 93ee6da..db9c9ed 100644
--- a/pkg/front_end/lib/src/fasta/builder/type_variable_builder.dart
+++ b/pkg/front_end/lib/src/fasta/builder/type_variable_builder.dart
@@ -161,10 +161,13 @@
// explicitly specified as Object, in which case defaultType should also be
// Object. This makes sure instantiation of generic function types with an
// explicit Object bound results in Object as the instantiated type.
- parameter.defaultType ??= defaultType?.build(library) ??
- (bound != null && parameter.bound == objectType
- ? objectType
- : dynamicType.build(library));
+ if (identical(
+ parameter.defaultType, TypeParameter.unsetDefaultTypeSentinel)) {
+ parameter.defaultType = defaultType?.build(library) ??
+ (bound != null && parameter.bound == objectType
+ ? objectType
+ : dynamicType.build(library));
+ }
}
void applyPatch(covariant TypeVariableBuilder patch) {
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
index 8fc537e..3f3cf82 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -110,9 +110,6 @@
import '../type_inference/type_inferrer.dart'
show TypeInferrer, InferredFunctionBody;
-import '../type_inference/type_promotion.dart'
- show TypePromoter, TypePromotionFact, TypePromotionScope;
-
import '../type_inference/type_schema.dart' show UnknownType;
import '../util/helpers.dart' show DelayedActionPerformer;
@@ -202,8 +199,6 @@
final TypeInferrer typeInferrer;
- final TypePromoter typePromoter;
-
/// Only used when [member] is a constructor. It tracks if an implicit super
/// initializer is needed.
///
@@ -375,7 +370,6 @@
libraryBuilder.importUri.path == "ui"),
needsImplicitSuperInitializer = declarationBuilder is ClassBuilder &&
coreTypes?.objectClass != declarationBuilder.cls,
- typePromoter = typeInferrer?.typePromoter,
super(enclosingScope) {
formalParameterScope?.forEach((String name, Builder builder) {
if (builder is VariableBuilder) {
@@ -463,7 +457,6 @@
@override
void registerVariableAssignment(VariableDeclaration variable) {
- typePromoter?.mutateVariable(variable, functionNestingLevel);
typeInferrer?.assignedVariables?.write(variable);
}
@@ -948,7 +941,6 @@
void finishFunction(
FormalParameters formals, AsyncMarker asyncModifier, Statement body) {
debugEvent("finishFunction");
- typePromoter?.finished();
typeInferrer?.assignedVariables?.finish();
FunctionBuilder builder = member;
@@ -1791,7 +1783,6 @@
bool isAnd = optional("&&", token);
if (isAnd || optional("||", token)) {
Expression lhs = popForValue();
- typePromoter?.enterLogicalExpression(lhs, token.stringValue);
// This is matched by the call to [endNode] in
// [doLogicalExpression].
if (isAnd) {
@@ -1879,7 +1870,6 @@
Expression receiver = pop();
Expression logicalExpression = forest.createLogicalExpression(
offsetForToken(token), receiver, token.stringValue, argument);
- typePromoter?.exitLogicalExpression(argument, logicalExpression);
push(logicalExpression);
if (optional("&&", token)) {
// This is matched by the call to [beginNode] in
@@ -2105,10 +2095,7 @@
if (!(variable as VariableDeclarationImpl).isLocalFunction) {
typeInferrer?.assignedVariables?.read(variable);
}
- Object fact =
- typePromoter?.getFactForAccess(variable, functionNestingLevel);
- Object scope = typePromoter?.currentScope;
- return new VariableGetImpl(variable, fact, scope,
+ return new VariableGetImpl(variable,
forNullGuardedAccess: forNullGuardedAccess)
..fileOffset = charOffset;
}
@@ -2472,7 +2459,6 @@
@override
void beginThenStatement(Token token) {
Expression condition = popForValue();
- enterThenForTypePromotion(condition);
// This is matched by the call to [deferNode] in
// [endThenStatement].
typeInferrer?.assignedVariables?.beginNode();
@@ -2482,7 +2468,6 @@
@override
void endThenStatement(Token token) {
- typePromoter?.enterElse();
super.endThenStatement(token);
// This is matched by the call to [beginNode] in
// [beginThenStatement] and by the call to [storeInfo] in
@@ -2497,7 +2482,6 @@
pop();
Statement thenPart = popStatement();
Expression condition = pop();
- typePromoter?.exitConditional();
Statement node = forest.createIfStatement(
offsetForToken(ifToken), condition, thenPart, elsePart);
// This is matched by the call to [deferNode] in
@@ -3535,24 +3519,18 @@
DartType type = buildDartType(pop(),
allowPotentiallyConstantType: libraryBuilder.isNonNullableByDefault);
Expression operand = popForValue();
- bool isInverted = not != null;
Expression isExpression = forest.createIsExpression(
offsetForToken(isOperator), operand, type,
forNonNullableByDefault: libraryBuilder.isNonNullableByDefault,
notFileOffset: not != null ? offsetForToken(not) : null);
libraryBuilder.checkBoundsInType(
type, typeEnvironment, uri, isOperator.charOffset);
- if (operand is VariableGet) {
- typePromoter?.handleIsCheck(isExpression, isInverted, operand.variable,
- type, functionNestingLevel);
- }
push(isExpression);
}
@override
void beginConditionalExpression(Token question) {
Expression condition = popForValue();
- typePromoter?.enterThen(condition);
// This is matched by the call to [deferNode] in
// [handleConditionalExpressionColon].
typeInferrer?.assignedVariables?.beginNode();
@@ -3563,7 +3541,6 @@
@override
void handleConditionalExpressionColon() {
Expression then = popForValue();
- typePromoter?.enterElse();
// This is matched by the call to [beginNode] in
// [beginConditionalExpression] and by the call to [storeInfo] in
// [endConditionalExpression].
@@ -3580,7 +3557,6 @@
AssignedVariablesNodeInfo<VariableDeclaration> assignedVariablesInfo =
pop();
Expression condition = pop();
- typePromoter?.exitConditional();
Expression node = forest.createConditionalExpression(
offsetForToken(question), condition, thenExpression, elseExpression);
push(node);
@@ -4791,7 +4767,6 @@
@override
void handleThenControlFlow(Token token) {
Expression condition = popForValue();
- enterThenForTypePromotion(condition);
// This is matched by the call to [deferNode] in
// [handleElseControlFlow] and by the call to [endNode] in
// [endIfControlFlow].
@@ -4811,7 +4786,6 @@
// [endIfElseControlFlow].
push(typeInferrer?.assignedVariables?.deferNode());
push(node);
- typePromoter?.enterElse();
}
@override
@@ -4831,8 +4805,6 @@
offsetForToken(ifToken), toValue(condition), toValue(entry));
}
push(node);
- typePromoter?.enterElse();
- typePromoter?.exitConditional();
// This is matched by the call to [beginNode] in
// [handleThenControlFlow].
typeInferrer?.assignedVariables?.endNode(node);
@@ -4847,7 +4819,6 @@
pop();
Object condition = pop(); // parenthesized expression
Token ifToken = pop();
- typePromoter?.exitConditional();
transformCollections = true;
TreeNode node;
@@ -5343,12 +5314,8 @@
/// lvalue = #t;
/// body;
/// }
- TypePromotionFact fact =
- typePromoter?.getFactForAccess(variable, functionNestingLevel);
- TypePromotionScope scope = typePromoter?.currentScope;
elements.syntheticAssignment = lvalue.buildAssignment(
- new VariableGetImpl(variable, fact, scope,
- forNullGuardedAccess: false)
+ new VariableGetImpl(variable, forNullGuardedAccess: false)
..fileOffset = inToken.offset,
voidContext: true);
} else {
@@ -6560,12 +6527,6 @@
return new DeferredCheck(check, expression)..fileOffset = charOffset;
}
- /// TODO(ahe): This method is temporarily implemented. Once type promotion is
- /// independent of shadow nodes, remove this method.
- void enterThenForTypePromotion(Expression condition) {
- typePromoter?.enterThen(condition);
- }
-
bool isErroneousNode(TreeNode node) {
return libraryBuilder.loader.handledErrors.isNotEmpty &&
forest.isErroneousNode(node);
diff --git a/pkg/front_end/lib/src/fasta/kernel/collections.dart b/pkg/front_end/lib/src/fasta/kernel/collections.dart
index e2fb85b..b29d126 100644
--- a/pkg/front_end/lib/src/fasta/kernel/collections.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/collections.dart
@@ -48,10 +48,11 @@
/// Returns this control flow element as a [MapEntry], or `null` if this
/// control flow element cannot be converted into a [MapEntry].
///
- /// [onConvertForElement] is called when a [ForElement] or [ForInElement] is
- /// converted to a [ForMapEntry] or [ForInMapEntry], respectively.
+ /// [onConvertElement] is called when a [ForElement], [ForInElement], or
+ /// [IfElement] is converted to a [ForMapEntry], [ForInMapEntry], or
+ /// [IfMapEntry], respectively.
// TODO(johnniwinther): Merge this with [convertToMapEntry].
- MapEntry toMapEntry(void onConvertForElement(TreeNode from, TreeNode to));
+ MapEntry toMapEntry(void onConvertElement(TreeNode from, TreeNode to));
}
/// A spread element in a list or set literal.
@@ -91,8 +92,7 @@
}
@override
- SpreadMapEntry toMapEntry(
- void onConvertForElement(TreeNode from, TreeNode to)) {
+ SpreadMapEntry toMapEntry(void onConvertElement(TreeNode from, TreeNode to)) {
return new SpreadMapEntry(expression, isNullAware)..fileOffset = fileOffset;
}
@@ -163,23 +163,25 @@
}
@override
- MapEntry toMapEntry(void onConvertForElement(TreeNode from, TreeNode to)) {
+ MapEntry toMapEntry(void onConvertElement(TreeNode from, TreeNode to)) {
MapEntry thenEntry;
if (then is ControlFlowElement) {
ControlFlowElement thenElement = then;
- thenEntry = thenElement.toMapEntry(onConvertForElement);
+ thenEntry = thenElement.toMapEntry(onConvertElement);
}
if (thenEntry == null) return null;
MapEntry otherwiseEntry;
if (otherwise != null) {
if (otherwise is ControlFlowElement) {
ControlFlowElement otherwiseElement = otherwise;
- otherwiseEntry = otherwiseElement.toMapEntry(onConvertForElement);
+ otherwiseEntry = otherwiseElement.toMapEntry(onConvertElement);
}
if (otherwiseEntry == null) return null;
}
- return new IfMapEntry(condition, thenEntry, otherwiseEntry)
+ IfMapEntry result = new IfMapEntry(condition, thenEntry, otherwiseEntry)
..fileOffset = fileOffset;
+ onConvertElement(this, result);
+ return result;
}
@override
@@ -251,17 +253,17 @@
}
@override
- MapEntry toMapEntry(void onConvertForElement(TreeNode from, TreeNode to)) {
+ MapEntry toMapEntry(void onConvertElement(TreeNode from, TreeNode to)) {
MapEntry bodyEntry;
if (body is ControlFlowElement) {
ControlFlowElement bodyElement = body;
- bodyEntry = bodyElement.toMapEntry(onConvertForElement);
+ bodyEntry = bodyElement.toMapEntry(onConvertElement);
}
if (bodyEntry == null) return null;
ForMapEntry result =
new ForMapEntry(variables, condition, updates, bodyEntry)
..fileOffset = fileOffset;
- onConvertForElement(this, result);
+ onConvertElement(this, result);
return result;
}
@@ -367,18 +369,18 @@
}
@override
- MapEntry toMapEntry(void onConvertForElement(TreeNode from, TreeNode to)) {
+ MapEntry toMapEntry(void onConvertElement(TreeNode from, TreeNode to)) {
MapEntry bodyEntry;
if (body is ControlFlowElement) {
ControlFlowElement bodyElement = body;
- bodyEntry = bodyElement.toMapEntry(onConvertForElement);
+ bodyEntry = bodyElement.toMapEntry(onConvertElement);
}
if (bodyEntry == null) return null;
ForInMapEntry result = new ForInMapEntry(variable, iterable,
syntheticAssignment, expressionEffects, bodyEntry, problem,
isAsync: isAsync)
..fileOffset = fileOffset;
- onConvertForElement(this, result);
+ onConvertElement(this, result);
return result;
}
@@ -707,31 +709,31 @@
/// converted an error reported through [helper] and an invalid expression is
/// returned.
///
-/// [onConvertForMapEntry] is called when a [ForMapEntry] or [ForInMapEntry] is
-/// converted to a [ForElement] or [ForInElement], respectively.
+/// [onConvertMapEntry] is called when a [ForMapEntry], [ForInMapEntry], or
+/// [IfMapEntry] is converted to a [ForElement], [ForInElement], or [IfElement],
+/// respectively.
Expression convertToElement(MapEntry entry, InferenceHelper helper,
- void onConvertForMapEntry(TreeNode from, TreeNode to)) {
+ void onConvertMapEntry(TreeNode from, TreeNode to)) {
if (entry is SpreadMapEntry) {
return new SpreadElement(entry.expression, entry.isNullAware)
..fileOffset = entry.expression.fileOffset;
}
if (entry is IfMapEntry) {
- return new IfElement(
+ IfElement result = new IfElement(
entry.condition,
- convertToElement(entry.then, helper, onConvertForMapEntry),
+ convertToElement(entry.then, helper, onConvertMapEntry),
entry.otherwise == null
? null
- : convertToElement(entry.otherwise, helper, onConvertForMapEntry))
+ : convertToElement(entry.otherwise, helper, onConvertMapEntry))
..fileOffset = entry.fileOffset;
+ onConvertMapEntry(entry, result);
+ return result;
}
if (entry is ForMapEntry) {
- ForElement result = new ForElement(
- entry.variables,
- entry.condition,
- entry.updates,
- convertToElement(entry.body, helper, onConvertForMapEntry))
+ ForElement result = new ForElement(entry.variables, entry.condition,
+ entry.updates, convertToElement(entry.body, helper, onConvertMapEntry))
..fileOffset = entry.fileOffset;
- onConvertForMapEntry(entry, result);
+ onConvertMapEntry(entry, result);
return result;
}
if (entry is ForInMapEntry) {
@@ -740,11 +742,11 @@
entry.iterable,
entry.syntheticAssignment,
entry.expressionEffects,
- convertToElement(entry.body, helper, onConvertForMapEntry),
+ convertToElement(entry.body, helper, onConvertMapEntry),
entry.problem,
isAsync: entry.isAsync)
..fileOffset = entry.fileOffset;
- onConvertForMapEntry(entry, result);
+ onConvertMapEntry(entry, result);
return result;
}
Expression key = entry.key;
@@ -782,31 +784,34 @@
/// converted an error reported through [helper] and a map entry holding an
/// invalid expression is returned.
///
-/// [onConvertForElement] is called when a [ForElement] or [ForInElement] is
-/// converted to a [ForMapEntry] or [ForInMapEntry], respectively.
+/// [onConvertElement] is called when a [ForElement], [ForInElement], or
+/// [IfElement] is converted to a [ForMapEntry], [ForInMapEntry], or
+/// [IfMapEntry], respectively.
MapEntry convertToMapEntry(Expression element, InferenceHelper helper,
- void onConvertForElement(TreeNode from, TreeNode to)) {
+ void onConvertElement(TreeNode from, TreeNode to)) {
if (element is SpreadElement) {
return new SpreadMapEntry(element.expression, element.isNullAware)
..fileOffset = element.expression.fileOffset;
}
if (element is IfElement) {
- return new IfMapEntry(
+ IfMapEntry result = new IfMapEntry(
element.condition,
- convertToMapEntry(element.then, helper, onConvertForElement),
+ convertToMapEntry(element.then, helper, onConvertElement),
element.otherwise == null
? null
- : convertToMapEntry(element.otherwise, helper, onConvertForElement))
+ : convertToMapEntry(element.otherwise, helper, onConvertElement))
..fileOffset = element.fileOffset;
+ onConvertElement(element, result);
+ return result;
}
if (element is ForElement) {
ForMapEntry result = new ForMapEntry(
element.variables,
element.condition,
element.updates,
- convertToMapEntry(element.body, helper, onConvertForElement))
+ convertToMapEntry(element.body, helper, onConvertElement))
..fileOffset = element.fileOffset;
- onConvertForElement(element, result);
+ onConvertElement(element, result);
return result;
}
if (element is ForInElement) {
@@ -815,11 +820,11 @@
element.iterable,
element.syntheticAssignment,
element.expressionEffects,
- convertToMapEntry(element.body, helper, onConvertForElement),
+ convertToMapEntry(element.body, helper, onConvertElement),
element.problem,
isAsync: element.isAsync)
..fileOffset = element.fileOffset;
- onConvertForElement(element, result);
+ onConvertElement(element, result);
return result;
}
return new MapEntry(
diff --git a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
index 3e36973..20a67a7 100644
--- a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
@@ -6545,7 +6545,8 @@
if (initializerResult != null) {
DartType initializerType = initializerResult.inferredType;
if (node.isImplicitlyTyped) {
- if (initializerType is TypeParameterType) {
+ if (inferrer.isNonNullableByDefault &&
+ initializerType is TypeParameterType) {
inferrer.flowAnalysis.promote(node, initializerType);
}
} else {
@@ -6735,20 +6736,14 @@
DartType declaredOrInferredType = variable.lateType ?? variable.type;
if (isExtensionThis(variable)) {
inferrer.flowAnalysis.thisOrSuper(node, variable.type);
- } else if (inferrer.isNonNullableByDefault) {
- if (node.forNullGuardedAccess) {
- DartType nonNullableType = variable.type.toNonNull();
- if (nonNullableType != variable.type) {
- promotedType = nonNullableType;
- }
- } else if (!variable.isLocalFunction) {
- // Don't promote local functions.
- promotedType = inferrer.flowAnalysis.variableRead(node, variable);
+ } else if (inferrer.isNonNullableByDefault && node.forNullGuardedAccess) {
+ DartType nonNullableType = variable.type.toNonNull();
+ if (nonNullableType != variable.type) {
+ promotedType = nonNullableType;
}
- } else {
- bool mutatedInClosure = variable.mutatedInClosure;
- promotedType = inferrer.typePromoter
- .computePromotedType(node.fact, node.scope, mutatedInClosure);
+ } else if (!variable.isLocalFunction) {
+ // Don't promote local functions.
+ promotedType = inferrer.flowAnalysis.variableRead(node, variable);
}
if (promotedType != null) {
inferrer.instrumentation?.record(
diff --git a/pkg/front_end/lib/src/fasta/kernel/internal_ast.dart b/pkg/front_end/lib/src/fasta/kernel/internal_ast.dart
index 35da3d2..46afae9 100644
--- a/pkg/front_end/lib/src/fasta/kernel/internal_ast.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/internal_ast.dart
@@ -40,14 +40,8 @@
import '../type_inference/type_inference_engine.dart';
import '../type_inference/type_inferrer.dart';
-import '../type_inference/type_promotion.dart'
- show TypePromoter, TypePromoterImpl, TypePromotionFact, TypePromotionScope;
-
import '../type_inference/type_schema.dart' show UnknownType;
-import '../type_inference/type_schema_environment.dart'
- show TypeSchemaEnvironment;
-
import 'inference_visitor.dart';
/// Computes the return type of a (possibly factory) constructor.
@@ -1449,50 +1443,6 @@
}
}
-/// Concrete implementation of [TypePromoter] specialized to work with kernel
-/// objects.
-class ShadowTypePromoter extends TypePromoterImpl {
- ShadowTypePromoter.private(TypeSchemaEnvironment typeSchemaEnvironment)
- : super.private(typeSchemaEnvironment);
-
- @override
- int getVariableFunctionNestingLevel(VariableDeclaration variable) {
- if (variable is VariableDeclarationImpl) {
- return variable.functionNestingLevel;
- } else {
- // Hack to deal with the fact that BodyBuilder still creates raw
- // VariableDeclaration objects sometimes.
- // TODO(paulberry): get rid of this once the type parameter is
- // KernelVariableDeclaration.
- return 0;
- }
- }
-
- @override
- bool isPromotionCandidate(VariableDeclaration variable) {
- assert(variable is VariableDeclarationImpl);
- VariableDeclarationImpl kernelVariableDeclaration = variable;
- return !kernelVariableDeclaration.isLocalFunction;
- }
-
- @override
- bool sameExpressions(Expression a, Expression b) {
- return identical(a, b);
- }
-
- @override
- void setVariableMutatedInClosure(VariableDeclaration variable) {
- if (variable is VariableDeclarationImpl) {
- variable.mutatedInClosure = true;
- } else {
- // Hack to deal with the fact that BodyBuilder still creates raw
- // VariableDeclaration objects sometimes.
- // TODO(paulberry): get rid of this once the type parameter is
- // KernelVariableDeclaration.
- }
- }
-}
-
/// Front end specific implementation of [VariableDeclaration].
class VariableDeclarationImpl extends VariableDeclaration {
final bool forSyntheticToken;
@@ -1635,16 +1585,11 @@
/// Front end specific implementation of [VariableGet].
class VariableGetImpl extends VariableGet {
- final TypePromotionFact fact;
-
- final TypePromotionScope scope;
-
// TODO(johnniwinther): Remove the need for this by encoding all null aware
// expressions explicitly.
final bool forNullGuardedAccess;
- VariableGetImpl(VariableDeclaration variable, this.fact, this.scope,
- {this.forNullGuardedAccess})
+ VariableGetImpl(VariableDeclaration variable, {this.forNullGuardedAccess})
: assert(forNullGuardedAccess != null),
super(variable);
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
index eafc3e4..aa896d9 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_inferrer.dart
@@ -59,8 +59,6 @@
import 'type_inference_engine.dart';
-import 'type_promotion.dart' show TypePromoter;
-
import 'type_schema.dart' show isKnown, UnknownType;
import 'type_schema_elimination.dart' show greatestClosure;
@@ -123,10 +121,6 @@
abstract class TypeInferrer {
SourceLibraryBuilder get library;
- /// Gets the [TypePromoter] that can be used to perform type promotion within
- /// this method body or initializer.
- TypePromoter get typePromoter;
-
/// Gets the [TypeSchemaEnvironment] being used for type inference.
TypeSchemaEnvironment get typeSchemaEnvironment;
@@ -183,9 +177,6 @@
final TypeInferenceEngine engine;
- @override
- final TypePromoter typePromoter;
-
final FlowAnalysis<TreeNode, Statement, Expression, VariableDeclaration,
DartType> flowAnalysis;
@@ -227,10 +218,13 @@
instrumentation = topLevel ? null : engine.instrumentation,
typeSchemaEnvironment = engine.typeSchemaEnvironment,
isTopLevel = topLevel,
- typePromoter = new TypePromoter(engine.typeSchemaEnvironment),
- flowAnalysis = new FlowAnalysis(
- new TypeOperationsCfe(engine.typeSchemaEnvironment),
- assignedVariables);
+ flowAnalysis = library.isNonNullableByDefault
+ ? new FlowAnalysis(
+ new TypeOperationsCfe(engine.typeSchemaEnvironment),
+ assignedVariables)
+ : new FlowAnalysis.legacy(
+ new TypeOperationsCfe(engine.typeSchemaEnvironment),
+ assignedVariables);
CoreTypes get coreTypes => engine.coreTypes;
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_promotion.dart b/pkg/front_end/lib/src/fasta/type_inference/type_promotion.dart
deleted file mode 100644
index f94934e..0000000
--- a/pkg/front_end/lib/src/fasta/type_inference/type_promotion.dart
+++ /dev/null
@@ -1,704 +0,0 @@
-// 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.md file.
-
-// @dart = 2.9
-
-import 'package:kernel/ast.dart'
- show DartType, Expression, TypeParameterType, VariableDeclaration;
-
-import 'package:kernel/type_environment.dart' show SubtypeCheckMode;
-
-import '../fasta_codes.dart' show templateInternalProblemStackNotEmpty;
-
-import '../problems.dart' show internalProblem;
-
-import '../kernel/internal_ast.dart' show ShadowTypePromoter;
-
-import 'type_schema_environment.dart' show TypeSchemaEnvironment;
-
-/// Keeps track of the state necessary to perform type promotion.
-///
-/// Theory of operation: during parsing, the BodyBuilder calls methods in this
-/// class to inform it of syntactic constructs that are encountered. Those
-/// methods maintain a linked list of [TypePromotionFact] objects tracking what
-/// is known about the state of each variable at the current point in the code,
-/// as well as a linked list of [TypePromotionScope] objects tracking the
-/// component's nesting structure. Whenever a variable is read, the current
-/// [TypePromotionFact] and [TypePromotionScope] are recorded for later use.
-///
-/// During type inference, the [TypeInferrer] calls back into this class to ask
-/// whether each variable read is a promoted read. This is determined by
-/// examining the [TypePromotionScope] and [TypePromotionFact] objects that were
-/// recorded at the time the variable read was parsed, as well as other state
-/// that may have been updated later during the parsing process.
-///
-/// This class abstracts away the representation of the underlying AST using
-/// generic parameters. Derived classes should set E and V to the class they
-/// use to represent expressions and variable declarations, respectively.
-abstract class TypePromoter {
- TypePromoter.private();
-
- factory TypePromoter(TypeSchemaEnvironment typeSchemaEnvironment) =
- ShadowTypePromoter.private;
-
- factory TypePromoter.disabled() = TypePromoterDisabled.private;
-
- /// Returns the current type promotion scope.
- TypePromotionScope get currentScope;
-
- /// Computes the promoted type of a variable read having the given [fact] and
- /// [scope]. Returns `null` if there is no promotion.
- ///
- /// [mutatedInClosure] indicates whether the variable was mutated in a closure
- /// somewhere in the method.
- DartType computePromotedType(
- TypePromotionFact fact, TypePromotionScope scope, bool mutatedInClosure);
-
- /// Updates the state to reflect the fact that we are entering an "else"
- /// branch.
- void enterElse();
-
- /// Updates the state to reflect the fact that the LHS of an "&&" or "||"
- /// expression has just been parsed, and we are entering the RHS.
- void enterLogicalExpression(Expression lhs, String operator);
-
- /// Updates the state to reflect the fact that the "condition" part of an "if"
- /// statement or conditional expression has just been parsed, and we are
- /// entering the "then" branch.
- void enterThen(Expression condition);
-
- /// Updates the state to reflect the fact that we have exited the "else"
- /// branch of an "if" statement or conditional expression.
- void exitConditional();
-
- /// Updates the state to reflect the fact that we have exited the RHS of an
- /// "&&" or "||" expression.
- void exitLogicalExpression(Expression rhs, Expression logicalExpression);
-
- /// Verifies that enter/exit calls were properly nested.
- void finished();
-
- /// Records that the given [variable] was accessed for reading, and returns a
- /// [TypePromotionFact] describing the variable's current type promotion
- /// state.
- ///
- /// [functionNestingLevel] should be the current nesting level of closures.
- /// This is used to determine if the variable was accessed in a closure.
- TypePromotionFact getFactForAccess(
- VariableDeclaration variable, int functionNestingLevel);
-
- /// Updates the state to reflect the fact that an "is" check of a local
- /// variable was just parsed.
- void handleIsCheck(Expression isExpression, bool isInverted,
- VariableDeclaration variable, DartType type, int functionNestingLevel);
-
- /// Updates the state to reflect the fact that the given [variable] was
- /// mutated.
- void mutateVariable(VariableDeclaration variable, int functionNestingLevel);
-}
-
-/// Implementation of [TypePromoter] which doesn't do any type promotion.
-///
-/// This is intended for profiling, to ensure that type inference and type
-/// promotion do not slow down compilation too much.
-class TypePromoterDisabled extends TypePromoter {
- TypePromoterDisabled.private() : super.private();
-
- @override
- TypePromotionScope get currentScope => null;
-
- @override
- DartType computePromotedType(TypePromotionFact fact, TypePromotionScope scope,
- bool mutatedInClosure) =>
- null;
-
- @override
- void enterElse() {}
-
- @override
- void enterLogicalExpression(Expression lhs, String operator) {}
-
- @override
- void enterThen(Expression condition) {}
-
- @override
- void exitConditional() {}
-
- @override
- void exitLogicalExpression(Expression rhs, Expression logicalExpression) {}
-
- @override
- void finished() {}
-
- @override
- TypePromotionFact getFactForAccess(
- VariableDeclaration variable, int functionNestingLevel) =>
- null;
-
- @override
- void handleIsCheck(Expression isExpression, bool isInverted,
- VariableDeclaration variable, DartType type, int functionNestingLevel) {}
-
- @override
- void mutateVariable(VariableDeclaration variable, int functionNestingLevel) {}
-}
-
-/// Derived class containing generic implementations of [TypePromoter].
-///
-/// This class contains as much of the implementation of type promotion as
-/// possible without needing access to private members of shadow objects. It
-/// defers to abstract methods for everything else.
-abstract class TypePromoterImpl extends TypePromoter {
- final TypeSchemaEnvironment typeSchemaEnvironment;
-
- /// [TypePromotionFact] representing the initial state (no facts have been
- /// determined yet).
- ///
- /// All linked lists of facts terminate in this object.
- final _NullFact _nullFacts;
-
- /// Map from variable declaration to the most recent [TypePromotionFact]
- /// associated with the variable.
- ///
- /// [TypePromotionFact]s that are not associated with any variable show up in
- /// this map under the key `null`.
- final _factCache = <VariableDeclaration, TypePromotionFact>{};
-
- /// Linked list of [TypePromotionFact]s that was current at the time the
- /// [_factCache] was last updated.
- TypePromotionFact _factCacheState;
-
- /// Linked list of [TypePromotionFact]s describing what is known to be true
- /// after execution of the expression or statement that was most recently
- /// parsed.
- TypePromotionFact _currentFacts;
-
- /// The most recently parsed expression whose outcome potentially affects what
- /// is known to be true (e.g. an "is" check or a logical expression). May be
- /// `null` if no such expression has been encountered yet.
- Expression _promotionExpression;
-
- /// Linked list of [TypePromotionFact]s describing what is known to be true
- /// after execution of [_promotionExpression], assuming that
- /// [_promotionExpression] evaluates to `true`.
- TypePromotionFact _trueFactsForPromotionExpression;
-
- /// Linked list of [TypePromotionScope]s describing the nesting structure that
- /// contains the expression or statement that was most recently parsed.
- TypePromotionScope _currentScope = const _TopLevelScope();
-
- /// The sequence number of the [TypePromotionFact] that was most recently
- /// created.
- int _lastFactSequenceNumber = 0;
-
- /// Map from variables to the set of scopes in which the variable is mutated.
- /// If a variable is missing from the map, it is not mutated anywhere.
- Map<VariableDeclaration, Set<TypePromotionScope>> _variableMutationScopes =
- new Map<VariableDeclaration, Set<TypePromotionScope>>.identity();
-
- TypePromoterImpl.private(TypeSchemaEnvironment typeSchemaEnvironment)
- : this._(typeSchemaEnvironment, new _NullFact());
-
- TypePromoterImpl._(this.typeSchemaEnvironment, _NullFact this._nullFacts)
- : _factCacheState = _nullFacts,
- _currentFacts = _nullFacts,
- super.private() {
- _factCache[null] = _nullFacts;
- }
-
- @override
- TypePromotionScope get currentScope => _currentScope;
-
- @override
- DartType computePromotedType(
- TypePromotionFact fact, TypePromotionScope scope, bool mutatedInClosure) {
- if (mutatedInClosure) return null;
- return fact?._computePromotedType(
- this, scope, _variableMutationScopes[fact.variable]);
- }
-
- /// For internal debugging use, optionally prints the current state followed
- /// by the event name. Uncomment the call to [_printEvent] to see the
- /// sequence of calls into the type promoter and the corresponding states.
- void debugEvent(String name) {
- // _printEvent(name);
- }
-
- @override
- void enterElse() {
- debugEvent('enterElse');
- // Pop the scope and restore the facts to the state they were in before we
- // entered the conditional. No promotion happens in the "else" branch.
- _ConditionalScope scope = _currentScope;
- _currentScope = _currentScope._enclosing;
- _currentFacts = scope.beforeElse;
- }
-
- @override
- void enterLogicalExpression(Expression lhs, String operator) {
- debugEvent('enterLogicalExpression');
- if (!identical(operator, '&&')) {
- // We don't promote for `||`.
- _currentScope = new _LogicalScope(_currentScope, false, _currentFacts);
- } else {
- // Figure out what the facts are based on possible LHS outcomes.
- TypePromotionFact trueFacts = _factsWhenTrue(lhs);
- // Record the fact that we are entering a new scope, and save the
- // appropriate facts for the case where the expression gets short-cut.
- _currentScope = new _LogicalScope(_currentScope, true, _currentFacts);
- // While processing the RHS, assume the condition was true.
- _currentFacts = _addBlockingScopeToFacts(trueFacts);
- }
- }
-
- @override
- void enterThen(Expression condition) {
- debugEvent('enterThen');
- // Figure out what the facts are based on possible condition outcomes.
- TypePromotionFact trueFacts = _factsWhenTrue(condition);
- // Record the fact that we are entering a new scope, and save the current
- // facts for when we enter the "else" branch.
- _currentScope = new _ConditionalScope(_currentScope, _currentFacts);
- // While processing the "then" block, assume the condition was true.
- _currentFacts = _addBlockingScopeToFacts(trueFacts);
- }
-
- @override
- void exitConditional() {
- debugEvent('exitConditional');
- }
-
- @override
- void exitLogicalExpression(Expression rhs, Expression logicalExpression) {
- debugEvent('exitLogicalExpression');
- _LogicalScope scope = _currentScope;
- if (scope.isAnd) {
- TypePromotionFact factsWhenTrue = _factsWhenTrue(rhs);
- _currentFacts = scope.shortcutFacts;
- _recordPromotionExpression(
- logicalExpression, _addBlockingScopeToFacts(factsWhenTrue));
- }
- _currentScope = _currentScope._enclosing;
- }
-
- @override
- void finished() {
- debugEvent('finished');
- if (_currentScope is! _TopLevelScope) {
- internalProblem(
- templateInternalProblemStackNotEmpty.withArguments(
- "$runtimeType", "$_currentScope"),
- -1,
- null);
- }
- }
-
- @override
- TypePromotionFact getFactForAccess(
- VariableDeclaration variable, int functionNestingLevel) {
- debugEvent('getFactForAccess');
- TypePromotionFact fact = _computeCurrentFactMap()[variable];
- TypePromotionFact._recordAccessedInScope(
- fact, _currentScope, functionNestingLevel);
- return fact;
- }
-
- /// Returns the nesting level that was in effect when [variable] was declared.
- int getVariableFunctionNestingLevel(VariableDeclaration variable);
-
- @override
- void handleIsCheck(Expression isExpression, bool isInverted,
- VariableDeclaration variable, DartType type, int functionNestingLevel) {
- debugEvent('handleIsCheck');
- if (!isPromotionCandidate(variable)) return;
- _IsCheck isCheck = new _IsCheck(
- ++_lastFactSequenceNumber,
- variable,
- _currentFacts,
- _computeCurrentFactMap()[variable],
- functionNestingLevel,
- type, []);
- if (!isInverted) {
- _recordPromotionExpression(isExpression, isCheck);
- }
- }
-
- /// Determines whether the given variable should be considered for promotion
- /// at all.
- ///
- /// This is needed because in kernel, [VariableDeclaration] objects are
- /// sometimes used to represent local functions, which are not subject to
- /// promotion.
- bool isPromotionCandidate(VariableDeclaration variable);
-
- /// Updates the state to reflect the fact that the given [variable] was
- /// mutated.
- void mutateVariable(VariableDeclaration variable, int functionNestingLevel) {
- debugEvent('mutateVariable');
- (_variableMutationScopes[variable] ??=
- new Set<TypePromotionScope>.identity())
- .add(_currentScope);
- if (getVariableFunctionNestingLevel(variable) < functionNestingLevel) {
- setVariableMutatedInClosure(variable);
- }
- }
-
- /// Determines whether [a] and [b] represent the same expression, after
- /// dropping redundant enclosing parentheses.
- bool sameExpressions(Expression a, Expression b);
-
- /// Records that the given variable was mutated inside a closure.
- void setVariableMutatedInClosure(VariableDeclaration variable);
-
- /// Updates any facts that are present in [facts] but not in [_currentFacts]
- /// so that they include [_currentScope] in their list of blocking scopes, and
- /// returns the resulting new linked list of facts.
- ///
- /// This is used when entering the body of a conditional, or the RHS of a
- /// logical "and", to ensure that promotions are blocked if the construct
- /// being entered contains any modifications of the corresponding variables.
- /// It is also used when leaving the RHS of a logical "and", to ensure that
- /// any promotions induced by the RHS of the "and" are blocked if the RHS of
- /// the "and" contains any modifications of the corresponding variables.
- TypePromotionFact _addBlockingScopeToFacts(TypePromotionFact facts) {
- List<TypePromotionFact> factsToUpdate = [];
- while (facts != _currentFacts) {
- factsToUpdate.add(facts);
- facts = facts.previous;
- }
- Map<VariableDeclaration, TypePromotionFact> factMap =
- _computeCurrentFactMap();
- for (TypePromotionFact fact in factsToUpdate.reversed) {
- _IsCheck isCheck = fact as _IsCheck;
- VariableDeclaration variable = isCheck.variable;
- facts = new _IsCheck(
- ++_lastFactSequenceNumber,
- variable,
- facts,
- factMap[variable],
- isCheck.functionNestingLevel,
- isCheck.checkedType,
- [...isCheck._blockingScopes, _currentScope]);
- factMap[variable] = facts;
- _factCacheState = facts;
- }
- return facts;
- }
-
- /// Returns a map from variable declaration to the most recent
- /// [TypePromotionFact] associated with the variable.
- Map<VariableDeclaration, TypePromotionFact> _computeCurrentFactMap() {
- // Roll back any map entries associated with facts that are no longer in
- // effect, and set [commonAncestor] to the fact that is an ancestor of
- // the current state and the previously cached state. To do this, we set a
- // variable pointing to [_currentFacts], and then walk both it and
- // [_factCacheState] back to their common ancestor, updating [_factCache] as
- // we go.
- TypePromotionFact commonAncestor = _currentFacts;
- while (commonAncestor.sequenceNumber != _factCacheState.sequenceNumber) {
- if (commonAncestor.sequenceNumber > _factCacheState.sequenceNumber) {
- // The currently cached state is older than the common ancestor guess,
- // so the common ancestor guess needs to be walked back.
- commonAncestor = commonAncestor.previous;
- } else {
- // The common ancestor guess is older than the currently cached state,
- // so we need to roll back the map entry associated with the currently
- // cached state.
- _factCache[_factCacheState.variable] =
- _factCacheState.previousForVariable;
- _factCacheState = _factCacheState.previous;
- }
- }
- assert(identical(commonAncestor, _factCacheState));
- // Roll forward any map entries associated with facts that are newly in
- // effect. Since newer facts link to older ones, it is easiest to do roll
- // forward the most recent facts first.
- for (TypePromotionFact newState = _currentFacts;
- !identical(newState, commonAncestor);
- newState = newState.previous) {
- TypePromotionFact currentlyCached = _factCache[newState.variable];
- // Note: Since we roll forward the most recent facts first, we need to be
- // careful not write an older fact over a newer one.
- if (currentlyCached == null ||
- newState.sequenceNumber > currentlyCached.sequenceNumber) {
- _factCache[newState.variable] = newState;
- }
- }
- _factCacheState = _currentFacts;
- return _factCache;
- }
-
- /// Returns the set of facts known to be true after the execution of [e]
- /// assuming it evaluates to `true`.
- ///
- /// [e] must be the most recently parsed expression or statement.
- TypePromotionFact _factsWhenTrue(Expression e) =>
- sameExpressions(_promotionExpression, e)
- ? _trueFactsForPromotionExpression
- : _currentFacts;
-
- /// For internal debugging use, prints the current state followed by the event
- /// name.
- // ignore: unused_element
- void _printEvent(String name) {
- Iterable<TypePromotionFact> factChain(TypePromotionFact fact) sync* {
- while (fact != null) {
- yield fact;
- fact = fact.previousForVariable;
- }
- }
-
- _computeCurrentFactMap().forEach((variable, fact) {
- if (fact == null) return;
- print(' ${variable ?? '(null)'}: ${factChain(fact).join(' -> ')}');
- });
- if (_promotionExpression != null) {
- print(' _promotionExpression: $_promotionExpression');
- if (!identical(_trueFactsForPromotionExpression, _currentFacts)) {
- print(' if true: '
- '${factChain(_trueFactsForPromotionExpression).join(' -> ')}');
- }
- }
- print(name);
- }
-
- /// Records that after the evaluation of [expression], the facts will be
- /// [ifTrue] on a branch where the expression evaluated to `true`.
- void _recordPromotionExpression(
- Expression expression, TypePromotionFact ifTrue) {
- _promotionExpression = expression;
- _trueFactsForPromotionExpression = ifTrue;
- }
-}
-
-/// A single fact which is known to the type promotion engine about the state of
-/// a variable (or about the flow control of the component).
-///
-/// The type argument V represents is the class which represents local variable
-/// declarations.
-///
-/// Facts are linked together into linked lists via the [previous] pointer into
-/// a data structure called a "fact chain" (or sometimes a "fact state"), which
-/// represents all facts that are known to hold at a certain point in the
-/// component.
-///
-/// The fact is said to "apply" to a given point in the execution of the
-/// component if the fact is part of the current fact state at the point the
-/// parser reaches that point in the component.
-///
-/// Note: just because a fact "applies" to a given point in the execution of
-/// the component doesn't mean a type will be promoted--it simply means that
-/// the fact was deduced at a previous point in the straight line execution of
-/// the code. It's possible that the fact will be overshadowed by a later
-/// fact, or its effect will be cancelled by a later assignment. The final
-/// determination of whether promotion occurs is left to [_computePromotedType].
-abstract class TypePromotionFact {
- /// The variable this fact records information about, or `null` if this fact
- /// records information about general flow control.
- final VariableDeclaration variable;
-
- /// The fact chain that was in effect prior to execution of the statement or
- /// expression that caused this fact to be true.
- final TypePromotionFact previous;
-
- /// Integer associated with this fact. Each time a fact is created it is
- /// given a sequence number one greater than the previously generated fact.
- /// This simplifies the algorithm for finding the common ancestor of two
- /// facts; we repeatedly walk backward the fact with the larger sequence
- /// number until the sequence numbers are the same.
- final int sequenceNumber;
-
- /// The most recent fact appearing in the fact chain [previous] whose
- /// [variable] matches this one, or `null` if there is no such fact.
- final TypePromotionFact previousForVariable;
-
- /// The function nesting level of the expression that led to this fact.
- final int functionNestingLevel;
-
- /// Indicates whether this fact's variable was accessed inside a closure
- /// within the scope the fact applies to.
- bool _accessedInClosureInScope = false;
-
- TypePromotionFact(this.sequenceNumber, this.variable, this.previous,
- this.previousForVariable, this.functionNestingLevel);
-
- /// Computes the promoted type for [variable] at a location in the code where
- /// this fact applies.
- ///
- /// [scope] is the scope containing the read that might be promoted, and
- /// [mutationScopes] is the set of scopes in which the variable is mutated, or
- /// `null` if the variable isn't mutated anywhere.
- ///
- /// Should not be called until after parsing of the entire method is complete.
- DartType _computePromotedType(TypePromoterImpl promoter,
- TypePromotionScope scope, Iterable<TypePromotionScope> mutationScopes);
-
- /// Records the fact that the variable referenced by [fact] was accessed
- /// within the given scope, at the given function nesting level.
- ///
- /// If `null` is passed in for [fact], there is no effect.
- static void _recordAccessedInScope(TypePromotionFact fact,
- TypePromotionScope scope, int functionNestingLevel) {
- // TODO(paulberry): make some integration test cases that exercise the
- // behaviors of this function. In particular verify that it's correct to
- // test functionNestingLevel against fact.functionNestingLevel (as opposed
- // to testing it against getVariableFunctionNestingLevel(variable)).
- while (fact != null) {
- if (functionNestingLevel > fact.functionNestingLevel) {
- if (fact._accessedInClosureInScope) {
- // The variable has already been accessed in a closure in the scope of
- // the current promotion (and this, any enclosing promotions), so
- // no further information needs to be updated.
- return;
- }
- fact._accessedInClosureInScope = true;
- }
- fact = fact.previousForVariable;
- }
- }
-}
-
-/// Represents a contiguous block of program text in which variables may or may
-/// not be promoted. Also used as a stack to keep track of state while the
-/// method is being parsed.
-class TypePromotionScope {
- /// The nesting depth of this scope. The outermost scope (representing the
- /// whole method body) has a depth of 0.
- final int _depth;
-
- /// The [TypePromotionScope] representing the scope enclosing this one.
- final TypePromotionScope _enclosing;
-
- TypePromotionScope(this._enclosing) : _depth = _enclosing._depth + 1;
-
- const TypePromotionScope._topLevel()
- : _enclosing = null,
- _depth = 0;
-
- /// Determines whether this scope completely encloses (or is the same as)
- /// [other].
- bool containsScope(TypePromotionScope other) {
- if (this._depth > other._depth) {
- // We can't possibly contain a scope if we are at greater nesting depth
- // than it is.
- return false;
- }
- while (this._depth < other._depth) {
- other = other._enclosing;
- }
- return identical(this, other);
- }
-}
-
-/// [TypePromotionScope] representing the "then" and "else" bodies of an "if"
-/// statement or conditional expression.
-class _ConditionalScope extends TypePromotionScope {
- /// The fact state in effect at the top of the "else" block.
- final TypePromotionFact beforeElse;
-
- _ConditionalScope(TypePromotionScope enclosing, this.beforeElse)
- : super(enclosing);
-}
-
-/// [TypePromotionFact] representing an "is" check which succeeded.
-class _IsCheck extends TypePromotionFact {
- /// The type appearing on the right hand side of "is".
- final DartType checkedType;
-
- /// List of the scopes in which a mutation to the variable would block
- /// promotion.
- final List<TypePromotionScope> _blockingScopes;
-
- _IsCheck(
- int sequenceNumber,
- VariableDeclaration variable,
- TypePromotionFact previous,
- TypePromotionFact previousForVariable,
- int functionNestingLevel,
- this.checkedType,
- this._blockingScopes)
- : super(sequenceNumber, variable, previous, previousForVariable,
- functionNestingLevel);
-
- @override
- String toString() => 'isCheck($checkedType)';
-
- @override
- DartType _computePromotedType(TypePromoterImpl promoter,
- TypePromotionScope scope, Iterable<TypePromotionScope> mutationScopes) {
- DartType previousPromotedType = previousForVariable?._computePromotedType(
- promoter, scope, mutationScopes);
-
- if (mutationScopes != null) {
- // If the variable was mutated somewhere in a that blocks the promotion,
- // promotion does not occur.
- for (TypePromotionScope blockingScope in _blockingScopes) {
- for (TypePromotionScope mutationScope in mutationScopes) {
- if (blockingScope.containsScope(mutationScope)) {
- return previousPromotedType;
- }
- }
- }
-
- // If the variable was mutated anywhere, and it was accessed inside a
- // closure somewhere in the scope of the potential promotion, promotion
- // does not occur.
- if (_accessedInClosureInScope) {
- return previousPromotedType;
- }
- }
-
- // What we do now depends on the relationship between the previous type of
- // the variable and the type we are checking against.
- DartType previousType = previousPromotedType ?? variable.type;
- if (promoter.typeSchemaEnvironment.isSubtypeOf(
- checkedType, previousType, SubtypeCheckMode.withNullabilities)) {
- // The type we are checking against is a subtype of the previous type of
- // the variable, so this is a refinement; we can promote.
- return checkedType;
- } else if (previousType is TypeParameterType &&
- promoter.typeSchemaEnvironment.isSubtypeOf(checkedType,
- previousType.bound, SubtypeCheckMode.withNullabilities)) {
- // The type we are checking against is a subtype of the bound of the
- // previous type of the variable; we can promote the bound.
- return new TypeParameterType.intersection(
- previousType.parameter, previousType.nullability, checkedType);
- } else {
- // The types aren't sufficiently related; we can't promote.
- return previousPromotedType;
- }
- }
-}
-
-/// [TypePromotionScope] representing the RHS of a logical expression.
-class _LogicalScope extends TypePromotionScope {
- /// Indicates whether the logical operation is an `&&` or an `||`.
- final bool isAnd;
-
- /// The fact state in effect if the logical expression gets short-cut.
- final TypePromotionFact shortcutFacts;
-
- _LogicalScope(TypePromotionScope enclosing, this.isAnd, this.shortcutFacts)
- : super(enclosing);
-}
-
-/// Instance of [TypePromotionFact] representing the facts which are known on
-/// entry to the method (i.e. nothing).
-class _NullFact extends TypePromotionFact {
- _NullFact() : super(0, null, null, null, 0);
-
- @override
- String toString() => 'null';
-
- @override
- DartType _computePromotedType(TypePromoter promoter, TypePromotionScope scope,
- Iterable<TypePromotionScope> mutationScopes) {
- throw new StateError('Tried to create promoted type for no variable');
- }
-}
-
-/// Instance of [TypePromotionScope] representing the entire method body.
-class _TopLevelScope extends TypePromotionScope {
- const _TopLevelScope() : super._topLevel();
-}
diff --git a/pkg/front_end/test/fasta/expression_suite.dart b/pkg/front_end/test/fasta/expression_suite.dart
index ddf7d48..4178a6f 100644
--- a/pkg/front_end/test/fasta/expression_suite.dart
+++ b/pkg/front_end/test/fasta/expression_suite.dart
@@ -313,7 +313,8 @@
}
List<TypeParameter> typeParams = [];
for (String name in test.typeDefinitions) {
- typeParams.add(new TypeParameter(name, new DynamicType()));
+ typeParams
+ .add(new TypeParameter(name, new DynamicType(), new DynamicType()));
}
Procedure compiledProcedure = await compiler.compileExpression(
diff --git a/pkg/front_end/test/fasta/types/kernel_type_parser_test.dart b/pkg/front_end/test/fasta/types/kernel_type_parser_test.dart
index 8d54c8a..6b31ffd 100644
--- a/pkg/front_end/test/fasta/types/kernel_type_parser_test.dart
+++ b/pkg/front_end/test/fasta/types/kernel_type_parser_test.dart
@@ -71,7 +71,7 @@
}
class bool extends self::Object {
}
-class DefaultTypes<S extends self::Object? = dynamic, T extends self::Object = self::Object, U extends self::List<self::DefaultTypes::S%> = self::List<dynamic>, V extends self::List<self::DefaultTypes::T> = self::List<self::Object>, W extends self::Comparable<self::DefaultTypes::W> = self::Comparable<dynamic>, X extends (self::DefaultTypes::W) → void = (Never) → void, Y extends () → self::DefaultTypes::W = () → self::Comparable<dynamic>> extends self::Object {
+class DefaultTypes<S extends self::Object? = dynamic, T extends self::Object, U extends self::List<self::DefaultTypes::S%> = self::List<dynamic>, V extends self::List<self::DefaultTypes::T> = self::List<self::Object>, W extends self::Comparable<self::DefaultTypes::W> = self::Comparable<dynamic>, X extends (self::DefaultTypes::W) → void = (Never) → void, Y extends () → self::DefaultTypes::W = () → self::Comparable<dynamic>> extends self::Object {
}
class Super extends self::Object implements self::Comparable<self::Sub> {
}
diff --git a/pkg/front_end/test/text_representation/internal_ast_text_representation_test.dart b/pkg/front_end/test/text_representation/internal_ast_text_representation_test.dart
index b51b99d..543a79f 100644
--- a/pkg/front_end/test/text_representation/internal_ast_text_representation_test.dart
+++ b/pkg/front_end/test/text_representation/internal_ast_text_representation_test.dart
@@ -511,15 +511,12 @@
void _testVariableGetImpl() {
VariableDeclaration variable = new VariableDeclaration('foo');
- testExpression(
- new VariableGetImpl(variable, null, null, forNullGuardedAccess: false),
- '''
+ testExpression(new VariableGetImpl(variable, forNullGuardedAccess: false), '''
+foo''');
+ testExpression(new VariableGetImpl(variable, forNullGuardedAccess: true), '''
foo''');
testExpression(
- new VariableGetImpl(variable, null, null, forNullGuardedAccess: true), '''
-foo''');
- testExpression(
- new VariableGetImpl(variable, null, null, forNullGuardedAccess: false)
+ new VariableGetImpl(variable, forNullGuardedAccess: false)
..promotedType = const VoidType(),
'''
foo{void}''');
diff --git a/pkg/front_end/testcases/extension_types/extension_on_nullable.dart b/pkg/front_end/testcases/extension_types/extension_on_nullable.dart
new file mode 100644
index 0000000..ea57240
--- /dev/null
+++ b/pkg/front_end/testcases/extension_types/extension_on_nullable.dart
@@ -0,0 +1,13 @@
+// Copyright (c) 2021, 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 {}
+
+extension E on A? {
+ void foo() {}
+}
+
+bar(E e) => e.foo();
+
+main() {}
diff --git a/pkg/front_end/testcases/extension_types/extension_on_nullable.dart.strong.expect b/pkg/front_end/testcases/extension_types/extension_on_nullable.dart.strong.expect
new file mode 100644
index 0000000..3074033
--- /dev/null
+++ b/pkg/front_end/testcases/extension_types/extension_on_nullable.dart.strong.expect
@@ -0,0 +1,19 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+extension E on self::A? {
+ method foo = self::E|foo;
+ tearoff foo = self::E|get#foo;
+}
+static method E|foo(lowered final self::A? #this) → void {}
+static method E|get#foo(lowered final self::A? #this) → () → void
+ return () → void => self::E|foo(#this);
+static method bar(self::E e) → dynamic
+ return self::E|foo(e);
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extension_types/extension_on_nullable.dart.textual_outline.expect b/pkg/front_end/testcases/extension_types/extension_on_nullable.dart.textual_outline.expect
new file mode 100644
index 0000000..37161fe
--- /dev/null
+++ b/pkg/front_end/testcases/extension_types/extension_on_nullable.dart.textual_outline.expect
@@ -0,0 +1,8 @@
+class A {}
+
+extension E on A? {
+ void foo() {}
+}
+
+bar(E e) => e.foo();
+main() {}
diff --git a/pkg/front_end/testcases/extension_types/extension_on_nullable.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/extension_types/extension_on_nullable.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..a6cd4d8
--- /dev/null
+++ b/pkg/front_end/testcases/extension_types/extension_on_nullable.dart.textual_outline_modelled.expect
@@ -0,0 +1,9 @@
+bar(E e) => e.foo();
+
+class A {}
+
+extension E on A? {
+ void foo() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/extension_types/extension_on_nullable.dart.weak.expect b/pkg/front_end/testcases/extension_types/extension_on_nullable.dart.weak.expect
new file mode 100644
index 0000000..3074033
--- /dev/null
+++ b/pkg/front_end/testcases/extension_types/extension_on_nullable.dart.weak.expect
@@ -0,0 +1,19 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+extension E on self::A? {
+ method foo = self::E|foo;
+ tearoff foo = self::E|get#foo;
+}
+static method E|foo(lowered final self::A? #this) → void {}
+static method E|get#foo(lowered final self::A? #this) → () → void
+ return () → void => self::E|foo(#this);
+static method bar(self::E e) → dynamic
+ return self::E|foo(e);
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/extension_types/extension_on_nullable.dart.weak.outline.expect b/pkg/front_end/testcases/extension_types/extension_on_nullable.dart.weak.outline.expect
new file mode 100644
index 0000000..c897d7f
--- /dev/null
+++ b/pkg/front_end/testcases/extension_types/extension_on_nullable.dart.weak.outline.expect
@@ -0,0 +1,20 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ ;
+}
+extension E on self::A? {
+ method foo = self::E|foo;
+ tearoff foo = self::E|get#foo;
+}
+static method E|foo(lowered final self::A? #this) → void
+ ;
+static method E|get#foo(lowered final self::A? #this) → () → void
+ return () → void => self::E|foo(#this);
+static method bar(self::E e) → dynamic
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/extension_types/issue45775.dart b/pkg/front_end/testcases/extension_types/issue45775.dart
new file mode 100644
index 0000000..012fff6
--- /dev/null
+++ b/pkg/front_end/testcases/extension_types/issue45775.dart
@@ -0,0 +1,11 @@
+// Copyright (c) 2021, 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 Foo {}
+
+extension Bar on Foo {}
+
+void main() {
+ Bar bar = Foo();
+}
diff --git a/pkg/front_end/testcases/extension_types/issue45775.dart.strong.expect b/pkg/front_end/testcases/extension_types/issue45775.dart.strong.expect
new file mode 100644
index 0000000..f5b3d09
--- /dev/null
+++ b/pkg/front_end/testcases/extension_types/issue45775.dart.strong.expect
@@ -0,0 +1,25 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/extension_types/issue45775.dart:10:13: Error: A value of type 'Foo' can't be assigned to a variable of type 'Bar'.
+// - 'Foo' is from 'pkg/front_end/testcases/extension_types/issue45775.dart'.
+// Bar bar = Foo();
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class Foo extends core::Object {
+ synthetic constructor •() → self::Foo
+ : super core::Object::•()
+ ;
+}
+extension Bar on self::Foo {
+}
+static method main() → void {
+ self::Bar bar = let final Never #t1 = invalid-expression "pkg/front_end/testcases/extension_types/issue45775.dart:10:13: Error: A value of type 'Foo' can't be assigned to a variable of type 'Bar'.
+ - 'Foo' is from 'pkg/front_end/testcases/extension_types/issue45775.dart'.
+ Bar bar = Foo();
+ ^" in new self::Foo::•() as{TypeError,ForNonNullableByDefault} self::Bar;
+}
diff --git a/pkg/front_end/testcases/extension_types/issue45775.dart.textual_outline.expect b/pkg/front_end/testcases/extension_types/issue45775.dart.textual_outline.expect
new file mode 100644
index 0000000..a30a73d
--- /dev/null
+++ b/pkg/front_end/testcases/extension_types/issue45775.dart.textual_outline.expect
@@ -0,0 +1,5 @@
+class Foo {}
+
+extension Bar on Foo {}
+
+void main() {}
diff --git a/pkg/front_end/testcases/extension_types/issue45775.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/extension_types/issue45775.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..a30a73d
--- /dev/null
+++ b/pkg/front_end/testcases/extension_types/issue45775.dart.textual_outline_modelled.expect
@@ -0,0 +1,5 @@
+class Foo {}
+
+extension Bar on Foo {}
+
+void main() {}
diff --git a/pkg/front_end/testcases/extension_types/issue45775.dart.weak.expect b/pkg/front_end/testcases/extension_types/issue45775.dart.weak.expect
new file mode 100644
index 0000000..f5b3d09
--- /dev/null
+++ b/pkg/front_end/testcases/extension_types/issue45775.dart.weak.expect
@@ -0,0 +1,25 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/extension_types/issue45775.dart:10:13: Error: A value of type 'Foo' can't be assigned to a variable of type 'Bar'.
+// - 'Foo' is from 'pkg/front_end/testcases/extension_types/issue45775.dart'.
+// Bar bar = Foo();
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class Foo extends core::Object {
+ synthetic constructor •() → self::Foo
+ : super core::Object::•()
+ ;
+}
+extension Bar on self::Foo {
+}
+static method main() → void {
+ self::Bar bar = let final Never #t1 = invalid-expression "pkg/front_end/testcases/extension_types/issue45775.dart:10:13: Error: A value of type 'Foo' can't be assigned to a variable of type 'Bar'.
+ - 'Foo' is from 'pkg/front_end/testcases/extension_types/issue45775.dart'.
+ Bar bar = Foo();
+ ^" in new self::Foo::•() as{TypeError,ForNonNullableByDefault} self::Bar;
+}
diff --git a/pkg/front_end/testcases/extension_types/issue45775.dart.weak.outline.expect b/pkg/front_end/testcases/extension_types/issue45775.dart.weak.outline.expect
new file mode 100644
index 0000000..621635e
--- /dev/null
+++ b/pkg/front_end/testcases/extension_types/issue45775.dart.weak.outline.expect
@@ -0,0 +1,12 @@
+library /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Foo extends core::Object {
+ synthetic constructor •() → self::Foo
+ ;
+}
+extension Bar on self::Foo {
+}
+static method main() → void
+ ;
diff --git a/pkg/front_end/testcases/extensions/bounds.dart.weak.expect b/pkg/front_end/testcases/extensions/bounds.dart.weak.expect
index b7ca556..8c13b5c 100644
--- a/pkg/front_end/testcases/extensions/bounds.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/bounds.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-extension Extension1<T extends core::Object* = core::Object*> on T* {
+extension Extension1<T extends core::Object*> on T* {
method method1 = self::Extension1|method1;
tearoff method1 = self::Extension1|get#method1;
method method2 = self::Extension1|method2;
@@ -12,7 +12,7 @@
method method4 = self::Extension1|method4;
tearoff method4 = self::Extension1|get#method4;
}
-extension Extension2<T extends core::String* = core::String*> on T* {
+extension Extension2<T extends core::String*> on T* {
method method1 = self::Extension2|method1;
tearoff method1 = self::Extension2|get#method1;
method method2 = self::Extension2|method2;
@@ -22,7 +22,7 @@
method method4 = self::Extension2|method4;
tearoff method4 = self::Extension2|get#method4;
}
-extension Extension3<T extends dynamic = dynamic> on T* {
+extension Extension3<T extends dynamic> on T* {
method method1 = self::Extension3|method1;
tearoff method1 = self::Extension3|get#method1;
method method2 = self::Extension3|method2;
@@ -42,51 +42,51 @@
method method4 = self::Extension4|method4;
tearoff method4 = self::Extension4|get#method4;
}
-static method Extension1|method1<T extends core::Object* = core::Object*, S extends core::Object* = core::Object*>(lowered final self::Extension1|method1::T* #this) → dynamic {}
-static method Extension1|get#method1<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
- return <S extends core::Object* = core::Object*>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T*, S*>(#this);
-static method Extension1|method2<T extends core::Object* = core::Object*, S extends core::String* = core::String*>(lowered final self::Extension1|method2::T* #this) → dynamic {}
-static method Extension1|get#method2<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
- return <S extends core::String* = core::String*>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T*, S*>(#this);
-static method Extension1|method3<T extends core::Object* = core::Object*, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T* #this) → dynamic {}
-static method Extension1|get#method3<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T*, S%>(#this);
-static method Extension1|method4<T extends core::Object* = core::Object*, S extends core::Object* = dynamic>(lowered final self::Extension1|method4::T* #this) → dynamic {}
-static method Extension1|get#method4<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension1|method1<T extends core::Object*, S extends core::Object*>(lowered final self::Extension1|method1::T* #this) → dynamic {}
+static method Extension1|get#method1<T extends core::Object*>(lowered final self::Extension1|get#method1::T* #this) → <S extends core::Object*>() →* dynamic
+ return <S extends core::Object*>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T*, S*>(#this);
+static method Extension1|method2<T extends core::Object*, S extends core::String*>(lowered final self::Extension1|method2::T* #this) → dynamic {}
+static method Extension1|get#method2<T extends core::Object*>(lowered final self::Extension1|get#method2::T* #this) → <S extends core::String*>() →* dynamic
+ return <S extends core::String*>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T*, S*>(#this);
+static method Extension1|method3<T extends core::Object*, S extends dynamic>(lowered final self::Extension1|method3::T* #this) → dynamic {}
+static method Extension1|get#method3<T extends core::Object*>(lowered final self::Extension1|get#method3::T* #this) → <S extends dynamic>() →* dynamic
+ return <S extends dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T*, S%>(#this);
+static method Extension1|method4<T extends core::Object*, S extends core::Object* = dynamic>(lowered final self::Extension1|method4::T* #this) → dynamic {}
+static method Extension1|get#method4<T extends core::Object*>(lowered final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T*, S*>(#this);
-static method Extension2|method1<T extends core::String* = core::String*, S extends core::Object* = core::Object*>(lowered final self::Extension2|method1::T* #this) → dynamic {}
-static method Extension2|get#method1<T extends core::String* = core::String*>(lowered final self::Extension2|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
- return <S extends core::Object* = core::Object*>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T*, S*>(#this);
-static method Extension2|method2<T extends core::String* = core::String*, S extends core::String* = core::String*>(lowered final self::Extension2|method2::T* #this) → dynamic {}
-static method Extension2|get#method2<T extends core::String* = core::String*>(lowered final self::Extension2|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
- return <S extends core::String* = core::String*>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T*, S*>(#this);
-static method Extension2|method3<T extends core::String* = core::String*, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T* #this) → dynamic {}
-static method Extension2|get#method3<T extends core::String* = core::String*>(lowered final self::Extension2|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T*, S%>(#this);
-static method Extension2|method4<T extends core::String* = core::String*, S extends core::Object* = dynamic>(lowered final self::Extension2|method4::T* #this) → dynamic {}
-static method Extension2|get#method4<T extends core::String* = core::String*>(lowered final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension2|method1<T extends core::String*, S extends core::Object*>(lowered final self::Extension2|method1::T* #this) → dynamic {}
+static method Extension2|get#method1<T extends core::String*>(lowered final self::Extension2|get#method1::T* #this) → <S extends core::Object*>() →* dynamic
+ return <S extends core::Object*>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T*, S*>(#this);
+static method Extension2|method2<T extends core::String*, S extends core::String*>(lowered final self::Extension2|method2::T* #this) → dynamic {}
+static method Extension2|get#method2<T extends core::String*>(lowered final self::Extension2|get#method2::T* #this) → <S extends core::String*>() →* dynamic
+ return <S extends core::String*>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T*, S*>(#this);
+static method Extension2|method3<T extends core::String*, S extends dynamic>(lowered final self::Extension2|method3::T* #this) → dynamic {}
+static method Extension2|get#method3<T extends core::String*>(lowered final self::Extension2|get#method3::T* #this) → <S extends dynamic>() →* dynamic
+ return <S extends dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T*, S%>(#this);
+static method Extension2|method4<T extends core::String*, S extends core::Object* = dynamic>(lowered final self::Extension2|method4::T* #this) → dynamic {}
+static method Extension2|get#method4<T extends core::String*>(lowered final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T*, S*>(#this);
-static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension3|method1::T* #this) → dynamic {}
-static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
- return <S extends core::Object* = core::Object*>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S*>(#this);
-static method Extension3|method2<T extends dynamic = dynamic, S extends core::String* = core::String*>(lowered final self::Extension3|method2::T* #this) → dynamic {}
-static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
- return <S extends core::String* = core::String*>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S*>(#this);
-static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T* #this) → dynamic {}
-static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
-static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension3|method4::T* #this) → dynamic {}
-static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension3|method1<T extends dynamic, S extends core::Object*>(lowered final self::Extension3|method1::T* #this) → dynamic {}
+static method Extension3|get#method1<T extends dynamic>(lowered final self::Extension3|get#method1::T* #this) → <S extends core::Object*>() →* dynamic
+ return <S extends core::Object*>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S*>(#this);
+static method Extension3|method2<T extends dynamic, S extends core::String*>(lowered final self::Extension3|method2::T* #this) → dynamic {}
+static method Extension3|get#method2<T extends dynamic>(lowered final self::Extension3|get#method2::T* #this) → <S extends core::String*>() →* dynamic
+ return <S extends core::String*>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S*>(#this);
+static method Extension3|method3<T extends dynamic, S extends dynamic>(lowered final self::Extension3|method3::T* #this) → dynamic {}
+static method Extension3|get#method3<T extends dynamic>(lowered final self::Extension3|get#method3::T* #this) → <S extends dynamic>() →* dynamic
+ return <S extends dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
+static method Extension3|method4<T extends dynamic, S extends core::Object* = dynamic>(lowered final self::Extension3|method4::T* #this) → dynamic {}
+static method Extension3|get#method4<T extends dynamic>(lowered final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S*>(#this);
-static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension4|method1::T* #this) → dynamic {}
-static method Extension4|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
- return <S extends core::Object* = core::Object*>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T*, S*>(#this);
-static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String* = core::String*>(lowered final self::Extension4|method2::T* #this) → dynamic {}
-static method Extension4|get#method2<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
- return <S extends core::String* = core::String*>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T*, S*>(#this);
-static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T* #this) → dynamic {}
-static method Extension4|get#method3<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T*, S%>(#this);
+static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object*>(lowered final self::Extension4|method1::T* #this) → dynamic {}
+static method Extension4|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method1::T* #this) → <S extends core::Object*>() →* dynamic
+ return <S extends core::Object*>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T*, S*>(#this);
+static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String*>(lowered final self::Extension4|method2::T* #this) → dynamic {}
+static method Extension4|get#method2<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method2::T* #this) → <S extends core::String*>() →* dynamic
+ return <S extends core::String*>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T*, S*>(#this);
+static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic>(lowered final self::Extension4|method3::T* #this) → dynamic {}
+static method Extension4|get#method3<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method3::T* #this) → <S extends dynamic>() →* dynamic
+ return <S extends dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T*, S%>(#this);
static method Extension4|method4<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension4|method4::T* #this) → dynamic {}
static method Extension4|get#method4<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T*, S*>(#this);
diff --git a/pkg/front_end/testcases/extensions/bounds.dart.weak.outline.expect b/pkg/front_end/testcases/extensions/bounds.dart.weak.outline.expect
index 460599a..923a293 100644
--- a/pkg/front_end/testcases/extensions/bounds.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/extensions/bounds.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-extension Extension1<T extends core::Object* = core::Object*> on T* {
+extension Extension1<T extends core::Object*> on T* {
method method1 = self::Extension1|method1;
tearoff method1 = self::Extension1|get#method1;
method method2 = self::Extension1|method2;
@@ -12,7 +12,7 @@
method method4 = self::Extension1|method4;
tearoff method4 = self::Extension1|get#method4;
}
-extension Extension2<T extends core::String* = core::String*> on T* {
+extension Extension2<T extends core::String*> on T* {
method method1 = self::Extension2|method1;
tearoff method1 = self::Extension2|get#method1;
method method2 = self::Extension2|method2;
@@ -22,7 +22,7 @@
method method4 = self::Extension2|method4;
tearoff method4 = self::Extension2|get#method4;
}
-extension Extension3<T extends dynamic = dynamic> on T* {
+extension Extension3<T extends dynamic> on T* {
method method1 = self::Extension3|method1;
tearoff method1 = self::Extension3|get#method1;
method method2 = self::Extension3|method2;
@@ -42,66 +42,66 @@
method method4 = self::Extension4|method4;
tearoff method4 = self::Extension4|get#method4;
}
-static method Extension1|method1<T extends core::Object* = core::Object*, S extends core::Object* = core::Object*>(lowered final self::Extension1|method1::T* #this) → dynamic
+static method Extension1|method1<T extends core::Object*, S extends core::Object*>(lowered final self::Extension1|method1::T* #this) → dynamic
;
-static method Extension1|get#method1<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
- return <S extends core::Object* = core::Object*>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T*, S*>(#this);
-static method Extension1|method2<T extends core::Object* = core::Object*, S extends core::String* = core::String*>(lowered final self::Extension1|method2::T* #this) → dynamic
+static method Extension1|get#method1<T extends core::Object*>(lowered final self::Extension1|get#method1::T* #this) → <S extends core::Object*>() →* dynamic
+ return <S extends core::Object*>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T*, S*>(#this);
+static method Extension1|method2<T extends core::Object*, S extends core::String*>(lowered final self::Extension1|method2::T* #this) → dynamic
;
-static method Extension1|get#method2<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
- return <S extends core::String* = core::String*>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T*, S*>(#this);
-static method Extension1|method3<T extends core::Object* = core::Object*, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T* #this) → dynamic
+static method Extension1|get#method2<T extends core::Object*>(lowered final self::Extension1|get#method2::T* #this) → <S extends core::String*>() →* dynamic
+ return <S extends core::String*>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T*, S*>(#this);
+static method Extension1|method3<T extends core::Object*, S extends dynamic>(lowered final self::Extension1|method3::T* #this) → dynamic
;
-static method Extension1|get#method3<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T*, S%>(#this);
-static method Extension1|method4<T extends core::Object* = core::Object*, S extends core::Object* = dynamic>(lowered final self::Extension1|method4::T* #this) → dynamic
+static method Extension1|get#method3<T extends core::Object*>(lowered final self::Extension1|get#method3::T* #this) → <S extends dynamic>() →* dynamic
+ return <S extends dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T*, S%>(#this);
+static method Extension1|method4<T extends core::Object*, S extends core::Object* = dynamic>(lowered final self::Extension1|method4::T* #this) → dynamic
;
-static method Extension1|get#method4<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension1|get#method4<T extends core::Object*>(lowered final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T*, S*>(#this);
-static method Extension2|method1<T extends core::String* = core::String*, S extends core::Object* = core::Object*>(lowered final self::Extension2|method1::T* #this) → dynamic
+static method Extension2|method1<T extends core::String*, S extends core::Object*>(lowered final self::Extension2|method1::T* #this) → dynamic
;
-static method Extension2|get#method1<T extends core::String* = core::String*>(lowered final self::Extension2|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
- return <S extends core::Object* = core::Object*>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T*, S*>(#this);
-static method Extension2|method2<T extends core::String* = core::String*, S extends core::String* = core::String*>(lowered final self::Extension2|method2::T* #this) → dynamic
+static method Extension2|get#method1<T extends core::String*>(lowered final self::Extension2|get#method1::T* #this) → <S extends core::Object*>() →* dynamic
+ return <S extends core::Object*>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T*, S*>(#this);
+static method Extension2|method2<T extends core::String*, S extends core::String*>(lowered final self::Extension2|method2::T* #this) → dynamic
;
-static method Extension2|get#method2<T extends core::String* = core::String*>(lowered final self::Extension2|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
- return <S extends core::String* = core::String*>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T*, S*>(#this);
-static method Extension2|method3<T extends core::String* = core::String*, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T* #this) → dynamic
+static method Extension2|get#method2<T extends core::String*>(lowered final self::Extension2|get#method2::T* #this) → <S extends core::String*>() →* dynamic
+ return <S extends core::String*>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T*, S*>(#this);
+static method Extension2|method3<T extends core::String*, S extends dynamic>(lowered final self::Extension2|method3::T* #this) → dynamic
;
-static method Extension2|get#method3<T extends core::String* = core::String*>(lowered final self::Extension2|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T*, S%>(#this);
-static method Extension2|method4<T extends core::String* = core::String*, S extends core::Object* = dynamic>(lowered final self::Extension2|method4::T* #this) → dynamic
+static method Extension2|get#method3<T extends core::String*>(lowered final self::Extension2|get#method3::T* #this) → <S extends dynamic>() →* dynamic
+ return <S extends dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T*, S%>(#this);
+static method Extension2|method4<T extends core::String*, S extends core::Object* = dynamic>(lowered final self::Extension2|method4::T* #this) → dynamic
;
-static method Extension2|get#method4<T extends core::String* = core::String*>(lowered final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension2|get#method4<T extends core::String*>(lowered final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T*, S*>(#this);
-static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension3|method1::T* #this) → dynamic
+static method Extension3|method1<T extends dynamic, S extends core::Object*>(lowered final self::Extension3|method1::T* #this) → dynamic
;
-static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
- return <S extends core::Object* = core::Object*>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S*>(#this);
-static method Extension3|method2<T extends dynamic = dynamic, S extends core::String* = core::String*>(lowered final self::Extension3|method2::T* #this) → dynamic
+static method Extension3|get#method1<T extends dynamic>(lowered final self::Extension3|get#method1::T* #this) → <S extends core::Object*>() →* dynamic
+ return <S extends core::Object*>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S*>(#this);
+static method Extension3|method2<T extends dynamic, S extends core::String*>(lowered final self::Extension3|method2::T* #this) → dynamic
;
-static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
- return <S extends core::String* = core::String*>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S*>(#this);
-static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T* #this) → dynamic
+static method Extension3|get#method2<T extends dynamic>(lowered final self::Extension3|get#method2::T* #this) → <S extends core::String*>() →* dynamic
+ return <S extends core::String*>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S*>(#this);
+static method Extension3|method3<T extends dynamic, S extends dynamic>(lowered final self::Extension3|method3::T* #this) → dynamic
;
-static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
-static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension3|method4::T* #this) → dynamic
+static method Extension3|get#method3<T extends dynamic>(lowered final self::Extension3|get#method3::T* #this) → <S extends dynamic>() →* dynamic
+ return <S extends dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
+static method Extension3|method4<T extends dynamic, S extends core::Object* = dynamic>(lowered final self::Extension3|method4::T* #this) → dynamic
;
-static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension3|get#method4<T extends dynamic>(lowered final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S*>(#this);
-static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension4|method1::T* #this) → dynamic
+static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object*>(lowered final self::Extension4|method1::T* #this) → dynamic
;
-static method Extension4|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
- return <S extends core::Object* = core::Object*>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T*, S*>(#this);
-static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String* = core::String*>(lowered final self::Extension4|method2::T* #this) → dynamic
+static method Extension4|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method1::T* #this) → <S extends core::Object*>() →* dynamic
+ return <S extends core::Object*>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T*, S*>(#this);
+static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String*>(lowered final self::Extension4|method2::T* #this) → dynamic
;
-static method Extension4|get#method2<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
- return <S extends core::String* = core::String*>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T*, S*>(#this);
-static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T* #this) → dynamic
+static method Extension4|get#method2<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method2::T* #this) → <S extends core::String*>() →* dynamic
+ return <S extends core::String*>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T*, S*>(#this);
+static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic>(lowered final self::Extension4|method3::T* #this) → dynamic
;
-static method Extension4|get#method3<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T*, S%>(#this);
+static method Extension4|get#method3<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method3::T* #this) → <S extends dynamic>() →* dynamic
+ return <S extends dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T*, S%>(#this);
static method Extension4|method4<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension4|method4::T* #this) → dynamic
;
static method Extension4|get#method4<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
diff --git a/pkg/front_end/testcases/extensions/bounds.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/bounds.dart.weak.transformed.expect
index b7ca556..8c13b5c 100644
--- a/pkg/front_end/testcases/extensions/bounds.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/bounds.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-extension Extension1<T extends core::Object* = core::Object*> on T* {
+extension Extension1<T extends core::Object*> on T* {
method method1 = self::Extension1|method1;
tearoff method1 = self::Extension1|get#method1;
method method2 = self::Extension1|method2;
@@ -12,7 +12,7 @@
method method4 = self::Extension1|method4;
tearoff method4 = self::Extension1|get#method4;
}
-extension Extension2<T extends core::String* = core::String*> on T* {
+extension Extension2<T extends core::String*> on T* {
method method1 = self::Extension2|method1;
tearoff method1 = self::Extension2|get#method1;
method method2 = self::Extension2|method2;
@@ -22,7 +22,7 @@
method method4 = self::Extension2|method4;
tearoff method4 = self::Extension2|get#method4;
}
-extension Extension3<T extends dynamic = dynamic> on T* {
+extension Extension3<T extends dynamic> on T* {
method method1 = self::Extension3|method1;
tearoff method1 = self::Extension3|get#method1;
method method2 = self::Extension3|method2;
@@ -42,51 +42,51 @@
method method4 = self::Extension4|method4;
tearoff method4 = self::Extension4|get#method4;
}
-static method Extension1|method1<T extends core::Object* = core::Object*, S extends core::Object* = core::Object*>(lowered final self::Extension1|method1::T* #this) → dynamic {}
-static method Extension1|get#method1<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
- return <S extends core::Object* = core::Object*>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T*, S*>(#this);
-static method Extension1|method2<T extends core::Object* = core::Object*, S extends core::String* = core::String*>(lowered final self::Extension1|method2::T* #this) → dynamic {}
-static method Extension1|get#method2<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
- return <S extends core::String* = core::String*>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T*, S*>(#this);
-static method Extension1|method3<T extends core::Object* = core::Object*, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T* #this) → dynamic {}
-static method Extension1|get#method3<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T*, S%>(#this);
-static method Extension1|method4<T extends core::Object* = core::Object*, S extends core::Object* = dynamic>(lowered final self::Extension1|method4::T* #this) → dynamic {}
-static method Extension1|get#method4<T extends core::Object* = core::Object*>(lowered final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension1|method1<T extends core::Object*, S extends core::Object*>(lowered final self::Extension1|method1::T* #this) → dynamic {}
+static method Extension1|get#method1<T extends core::Object*>(lowered final self::Extension1|get#method1::T* #this) → <S extends core::Object*>() →* dynamic
+ return <S extends core::Object*>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T*, S*>(#this);
+static method Extension1|method2<T extends core::Object*, S extends core::String*>(lowered final self::Extension1|method2::T* #this) → dynamic {}
+static method Extension1|get#method2<T extends core::Object*>(lowered final self::Extension1|get#method2::T* #this) → <S extends core::String*>() →* dynamic
+ return <S extends core::String*>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T*, S*>(#this);
+static method Extension1|method3<T extends core::Object*, S extends dynamic>(lowered final self::Extension1|method3::T* #this) → dynamic {}
+static method Extension1|get#method3<T extends core::Object*>(lowered final self::Extension1|get#method3::T* #this) → <S extends dynamic>() →* dynamic
+ return <S extends dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T*, S%>(#this);
+static method Extension1|method4<T extends core::Object*, S extends core::Object* = dynamic>(lowered final self::Extension1|method4::T* #this) → dynamic {}
+static method Extension1|get#method4<T extends core::Object*>(lowered final self::Extension1|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T*, S*>(#this);
-static method Extension2|method1<T extends core::String* = core::String*, S extends core::Object* = core::Object*>(lowered final self::Extension2|method1::T* #this) → dynamic {}
-static method Extension2|get#method1<T extends core::String* = core::String*>(lowered final self::Extension2|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
- return <S extends core::Object* = core::Object*>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T*, S*>(#this);
-static method Extension2|method2<T extends core::String* = core::String*, S extends core::String* = core::String*>(lowered final self::Extension2|method2::T* #this) → dynamic {}
-static method Extension2|get#method2<T extends core::String* = core::String*>(lowered final self::Extension2|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
- return <S extends core::String* = core::String*>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T*, S*>(#this);
-static method Extension2|method3<T extends core::String* = core::String*, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T* #this) → dynamic {}
-static method Extension2|get#method3<T extends core::String* = core::String*>(lowered final self::Extension2|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T*, S%>(#this);
-static method Extension2|method4<T extends core::String* = core::String*, S extends core::Object* = dynamic>(lowered final self::Extension2|method4::T* #this) → dynamic {}
-static method Extension2|get#method4<T extends core::String* = core::String*>(lowered final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension2|method1<T extends core::String*, S extends core::Object*>(lowered final self::Extension2|method1::T* #this) → dynamic {}
+static method Extension2|get#method1<T extends core::String*>(lowered final self::Extension2|get#method1::T* #this) → <S extends core::Object*>() →* dynamic
+ return <S extends core::Object*>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T*, S*>(#this);
+static method Extension2|method2<T extends core::String*, S extends core::String*>(lowered final self::Extension2|method2::T* #this) → dynamic {}
+static method Extension2|get#method2<T extends core::String*>(lowered final self::Extension2|get#method2::T* #this) → <S extends core::String*>() →* dynamic
+ return <S extends core::String*>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T*, S*>(#this);
+static method Extension2|method3<T extends core::String*, S extends dynamic>(lowered final self::Extension2|method3::T* #this) → dynamic {}
+static method Extension2|get#method3<T extends core::String*>(lowered final self::Extension2|get#method3::T* #this) → <S extends dynamic>() →* dynamic
+ return <S extends dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T*, S%>(#this);
+static method Extension2|method4<T extends core::String*, S extends core::Object* = dynamic>(lowered final self::Extension2|method4::T* #this) → dynamic {}
+static method Extension2|get#method4<T extends core::String*>(lowered final self::Extension2|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T*, S*>(#this);
-static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension3|method1::T* #this) → dynamic {}
-static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
- return <S extends core::Object* = core::Object*>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S*>(#this);
-static method Extension3|method2<T extends dynamic = dynamic, S extends core::String* = core::String*>(lowered final self::Extension3|method2::T* #this) → dynamic {}
-static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
- return <S extends core::String* = core::String*>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S*>(#this);
-static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T* #this) → dynamic {}
-static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
-static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension3|method4::T* #this) → dynamic {}
-static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
+static method Extension3|method1<T extends dynamic, S extends core::Object*>(lowered final self::Extension3|method1::T* #this) → dynamic {}
+static method Extension3|get#method1<T extends dynamic>(lowered final self::Extension3|get#method1::T* #this) → <S extends core::Object*>() →* dynamic
+ return <S extends core::Object*>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S*>(#this);
+static method Extension3|method2<T extends dynamic, S extends core::String*>(lowered final self::Extension3|method2::T* #this) → dynamic {}
+static method Extension3|get#method2<T extends dynamic>(lowered final self::Extension3|get#method2::T* #this) → <S extends core::String*>() →* dynamic
+ return <S extends core::String*>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S*>(#this);
+static method Extension3|method3<T extends dynamic, S extends dynamic>(lowered final self::Extension3|method3::T* #this) → dynamic {}
+static method Extension3|get#method3<T extends dynamic>(lowered final self::Extension3|get#method3::T* #this) → <S extends dynamic>() →* dynamic
+ return <S extends dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
+static method Extension3|method4<T extends dynamic, S extends core::Object* = dynamic>(lowered final self::Extension3|method4::T* #this) → dynamic {}
+static method Extension3|get#method4<T extends dynamic>(lowered final self::Extension3|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S*>(#this);
-static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object* = core::Object*>(lowered final self::Extension4|method1::T* #this) → dynamic {}
-static method Extension4|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method1::T* #this) → <S extends core::Object* = core::Object*>() →* dynamic
- return <S extends core::Object* = core::Object*>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T*, S*>(#this);
-static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String* = core::String*>(lowered final self::Extension4|method2::T* #this) → dynamic {}
-static method Extension4|get#method2<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method2::T* #this) → <S extends core::String* = core::String*>() →* dynamic
- return <S extends core::String* = core::String*>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T*, S*>(#this);
-static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T* #this) → dynamic {}
-static method Extension4|get#method3<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method3::T* #this) → <S extends dynamic = dynamic>() →* dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T*, S%>(#this);
+static method Extension4|method1<T extends core::Object* = dynamic, S extends core::Object*>(lowered final self::Extension4|method1::T* #this) → dynamic {}
+static method Extension4|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method1::T* #this) → <S extends core::Object*>() →* dynamic
+ return <S extends core::Object*>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T*, S*>(#this);
+static method Extension4|method2<T extends core::Object* = dynamic, S extends core::String*>(lowered final self::Extension4|method2::T* #this) → dynamic {}
+static method Extension4|get#method2<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method2::T* #this) → <S extends core::String*>() →* dynamic
+ return <S extends core::String*>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T*, S*>(#this);
+static method Extension4|method3<T extends core::Object* = dynamic, S extends dynamic>(lowered final self::Extension4|method3::T* #this) → dynamic {}
+static method Extension4|get#method3<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method3::T* #this) → <S extends dynamic>() →* dynamic
+ return <S extends dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T*, S%>(#this);
static method Extension4|method4<T extends core::Object* = dynamic, S extends core::Object* = dynamic>(lowered final self::Extension4|method4::T* #this) → dynamic {}
static method Extension4|get#method4<T extends core::Object* = dynamic>(lowered final self::Extension4|get#method4::T* #this) → <S extends core::Object* = dynamic>() →* dynamic
return <S extends core::Object* = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T*, S*>(#this);
diff --git a/pkg/front_end/testcases/extensions/check_bounds.dart.weak.expect b/pkg/front_end/testcases/extensions/check_bounds.dart.weak.expect
index 635468b..cef7b3b 100644
--- a/pkg/front_end/testcases/extensions/check_bounds.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/check_bounds.dart.weak.expect
@@ -827,7 +827,7 @@
: super self::A::•()
;
}
-class Class<T extends self::A* = self::A*> extends core::Object {
+class Class<T extends self::A*> extends core::Object {
synthetic constructor •() → self::Class<self::Class::T*>*
: super core::Object::•()
;
@@ -842,7 +842,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-extension Extension<T extends self::B* = self::B*> on self::Class<T*>* {
+extension Extension<T extends self::B*> on self::Class<T*>* {
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
method genericMethod = self::Extension|genericMethod;
@@ -885,12 +885,12 @@
static final field dynamic field27 = self::Extension|genericMethod<self::B*, self::A*>(self::classB, self::a);
static final field dynamic field28 = self::Extension|genericMethod<self::B*, self::A*>(self::classB, self::a);
static final field dynamic field29 = self::Extension|genericMethod<self::B*, self::B*>(self::classB, self::a as{TypeError} self::B*);
-static method Extension|method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|method::T*>* #this) → dynamic {}
-static method Extension|get#method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
+static method Extension|method<T extends self::B*>(lowered final self::Class<self::Extension|method::T*>* #this) → dynamic {}
+static method Extension|get#method<T extends self::B*>(lowered final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
return () → dynamic => self::Extension|method<self::Extension|get#method::T*>(#this);
-static method Extension|genericMethod<T extends self::B* = self::B*, S extends self::B* = self::B*>(lowered final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic {}
-static method Extension|get#genericMethod<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B* = self::B*>(S*) →* dynamic
- return <S extends self::B* = self::B*>(S* s) → dynamic => self::Extension|genericMethod<self::Extension|get#genericMethod::T*, S*>(#this, s);
+static method Extension|genericMethod<T extends self::B*, S extends self::B*>(lowered final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic {}
+static method Extension|get#genericMethod<T extends self::B*>(lowered final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B*>(S*) →* dynamic
+ return <S extends self::B*>(S* s) → dynamic => self::Extension|genericMethod<self::Extension|get#genericMethod::T*, S*>(#this, s);
static method main() → dynamic {}
static method test() → dynamic {
self::A* a;
diff --git a/pkg/front_end/testcases/extensions/check_bounds.dart.weak.outline.expect b/pkg/front_end/testcases/extensions/check_bounds.dart.weak.outline.expect
index b599220..22f598c 100644
--- a/pkg/front_end/testcases/extensions/check_bounds.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/extensions/check_bounds.dart.weak.outline.expect
@@ -21,7 +21,7 @@
synthetic constructor •() → self::B*
;
}
-class Class<T extends self::A* = self::A*> extends core::Object {
+class Class<T extends self::A*> extends core::Object {
synthetic constructor •() → self::Class<self::Class::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -35,7 +35,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-extension Extension<T extends self::B* = self::B*> on self::Class<T*>* {
+extension Extension<T extends self::B*> on self::Class<T*>* {
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
method genericMethod = self::Extension|genericMethod;
@@ -73,14 +73,14 @@
static final field dynamic field27;
static final field dynamic field28;
static final field dynamic field29;
-static method Extension|method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|method::T*>* #this) → dynamic
+static method Extension|method<T extends self::B*>(lowered final self::Class<self::Extension|method::T*>* #this) → dynamic
;
-static method Extension|get#method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
+static method Extension|get#method<T extends self::B*>(lowered final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
return () → dynamic => self::Extension|method<self::Extension|get#method::T*>(#this);
-static method Extension|genericMethod<T extends self::B* = self::B*, S extends self::B* = self::B*>(lowered final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic
+static method Extension|genericMethod<T extends self::B*, S extends self::B*>(lowered final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic
;
-static method Extension|get#genericMethod<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B* = self::B*>(S*) →* dynamic
- return <S extends self::B* = self::B*>(S* s) → dynamic => self::Extension|genericMethod<self::Extension|get#genericMethod::T*, S*>(#this, s);
+static method Extension|get#genericMethod<T extends self::B*>(lowered final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B*>(S*) →* dynamic
+ return <S extends self::B*>(S* s) → dynamic => self::Extension|genericMethod<self::Extension|get#genericMethod::T*, S*>(#this, s);
static method main() → dynamic
;
static method test() → dynamic
diff --git a/pkg/front_end/testcases/extensions/check_bounds.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/check_bounds.dart.weak.transformed.expect
index 635468b..cef7b3b 100644
--- a/pkg/front_end/testcases/extensions/check_bounds.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/check_bounds.dart.weak.transformed.expect
@@ -827,7 +827,7 @@
: super self::A::•()
;
}
-class Class<T extends self::A* = self::A*> extends core::Object {
+class Class<T extends self::A*> extends core::Object {
synthetic constructor •() → self::Class<self::Class::T*>*
: super core::Object::•()
;
@@ -842,7 +842,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-extension Extension<T extends self::B* = self::B*> on self::Class<T*>* {
+extension Extension<T extends self::B*> on self::Class<T*>* {
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
method genericMethod = self::Extension|genericMethod;
@@ -885,12 +885,12 @@
static final field dynamic field27 = self::Extension|genericMethod<self::B*, self::A*>(self::classB, self::a);
static final field dynamic field28 = self::Extension|genericMethod<self::B*, self::A*>(self::classB, self::a);
static final field dynamic field29 = self::Extension|genericMethod<self::B*, self::B*>(self::classB, self::a as{TypeError} self::B*);
-static method Extension|method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|method::T*>* #this) → dynamic {}
-static method Extension|get#method<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
+static method Extension|method<T extends self::B*>(lowered final self::Class<self::Extension|method::T*>* #this) → dynamic {}
+static method Extension|get#method<T extends self::B*>(lowered final self::Class<self::Extension|get#method::T*>* #this) → () →* dynamic
return () → dynamic => self::Extension|method<self::Extension|get#method::T*>(#this);
-static method Extension|genericMethod<T extends self::B* = self::B*, S extends self::B* = self::B*>(lowered final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic {}
-static method Extension|get#genericMethod<T extends self::B* = self::B*>(lowered final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B* = self::B*>(S*) →* dynamic
- return <S extends self::B* = self::B*>(S* s) → dynamic => self::Extension|genericMethod<self::Extension|get#genericMethod::T*, S*>(#this, s);
+static method Extension|genericMethod<T extends self::B*, S extends self::B*>(lowered final self::Class<self::Extension|genericMethod::T*>* #this, self::Extension|genericMethod::S* s) → dynamic {}
+static method Extension|get#genericMethod<T extends self::B*>(lowered final self::Class<self::Extension|get#genericMethod::T*>* #this) → <S extends self::B*>(S*) →* dynamic
+ return <S extends self::B*>(S* s) → dynamic => self::Extension|genericMethod<self::Extension|get#genericMethod::T*, S*>(#this, s);
static method main() → dynamic {}
static method test() → dynamic {
self::A* a;
diff --git a/pkg/front_end/testcases/extensions/explicit_extension_access.dart.weak.expect b/pkg/front_end/testcases/extensions/explicit_extension_access.dart.weak.expect
index c216317..cf95acc 100644
--- a/pkg/front_end/testcases/extensions/explicit_extension_access.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/explicit_extension_access.dart.weak.expect
@@ -44,10 +44,10 @@
return #this.{self::Class::field1};
static method Extension1|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
+static method Extension1|genericMethod<T extends core::num*>(lowered final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
return #this.{self::Class::field1}.{core::num::+}(t) as{TypeError} core::int*;
-static method Extension1|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
+static method Extension1|get#genericMethod(lowered final self::Class* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
static method Extension2|get#field(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field2};
static method Extension2|set#field(lowered final self::Class* #this, core::int* value) → void {
@@ -57,10 +57,10 @@
return #this.{self::Class::field2};
static method Extension2|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
+static method Extension2|genericMethod<T extends core::num*>(lowered final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
return #this.{self::Class::field2}.{core::num::+}(t) as{TypeError} core::int*;
-static method Extension2|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
+static method Extension2|get#genericMethod(lowered final self::Class* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method main() → dynamic {
self::Class* c = new self::Class::•();
self::expect(42, self::Extension1|get#field(c));
@@ -75,8 +75,8 @@
self::expect(97, self::Extension2|genericMethod<core::int*>(c, 10));
self::expect(52, self::Extension1|genericMethod<core::num*>(c, 10));
self::expect(97, self::Extension2|genericMethod<core::num*>(c, 10));
- <T extends core::num* = core::num*>(T*) →* core::int* genericTearOff1 = self::Extension1|get#genericMethod(c);
- <T extends core::num* = core::num*>(T*) →* core::int* genericTearOff2 = self::Extension2|get#genericMethod(c);
+ <T extends core::num*>(T*) →* core::int* genericTearOff1 = self::Extension1|get#genericMethod(c);
+ <T extends core::num*>(T*) →* core::int* genericTearOff2 = self::Extension2|get#genericMethod(c);
self::expect(52, genericTearOff1.call<core::int*>(10));
self::expect(97, genericTearOff2.call<core::int*>(10));
self::expect(52, genericTearOff1.call<core::num*>(10));
diff --git a/pkg/front_end/testcases/extensions/explicit_extension_access.dart.weak.outline.expect b/pkg/front_end/testcases/extensions/explicit_extension_access.dart.weak.outline.expect
index c567e2c..a5c90f6 100644
--- a/pkg/front_end/testcases/extensions/explicit_extension_access.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/extensions/explicit_extension_access.dart.weak.outline.expect
@@ -42,10 +42,10 @@
;
static method Extension1|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
+static method Extension1|genericMethod<T extends core::num*>(lowered final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
;
-static method Extension1|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
+static method Extension1|get#genericMethod(lowered final self::Class* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
static method Extension2|get#field(lowered final self::Class* #this) → core::int*
;
static method Extension2|set#field(lowered final self::Class* #this, core::int* value) → void
@@ -54,10 +54,10 @@
;
static method Extension2|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
+static method Extension2|genericMethod<T extends core::num*>(lowered final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
;
-static method Extension2|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
+static method Extension2|get#genericMethod(lowered final self::Class* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method main() → dynamic
;
static method expect(dynamic expected, dynamic actual) → dynamic
diff --git a/pkg/front_end/testcases/extensions/explicit_extension_access.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/explicit_extension_access.dart.weak.transformed.expect
index e1fd4f1..ad97e80 100644
--- a/pkg/front_end/testcases/extensions/explicit_extension_access.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/explicit_extension_access.dart.weak.transformed.expect
@@ -44,10 +44,10 @@
return #this.{self::Class::field1};
static method Extension1|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
+static method Extension1|genericMethod<T extends core::num*>(lowered final self::Class* #this, self::Extension1|genericMethod::T* t) → core::int*
return #this.{self::Class::field1}.{core::num::+}(t) as{TypeError} core::int*;
-static method Extension1|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
+static method Extension1|get#genericMethod(lowered final self::Class* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
static method Extension2|get#field(lowered final self::Class* #this) → core::int*
return #this.{self::Class::field2};
static method Extension2|set#field(lowered final self::Class* #this, core::int* value) → void {
@@ -57,10 +57,10 @@
return #this.{self::Class::field2};
static method Extension2|get#method(lowered final self::Class* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
+static method Extension2|genericMethod<T extends core::num*>(lowered final self::Class* #this, self::Extension2|genericMethod::T* t) → core::int*
return #this.{self::Class::field2}.{core::num::+}(t) as{TypeError} core::int*;
-static method Extension2|get#genericMethod(lowered final self::Class* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
+static method Extension2|get#genericMethod(lowered final self::Class* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method main() → dynamic {
self::Class* c = new self::Class::•();
self::expect(42, self::Extension1|get#field(c));
@@ -75,8 +75,8 @@
self::expect(97, self::Extension2|genericMethod<core::int*>(c, 10));
self::expect(52, self::Extension1|genericMethod<core::num*>(c, 10));
self::expect(97, self::Extension2|genericMethod<core::num*>(c, 10));
- <T extends core::num* = core::num*>(T*) →* core::int* genericTearOff1 = self::Extension1|get#genericMethod(c);
- <T extends core::num* = core::num*>(T*) →* core::int* genericTearOff2 = self::Extension2|get#genericMethod(c);
+ <T extends core::num*>(T*) →* core::int* genericTearOff1 = self::Extension1|get#genericMethod(c);
+ <T extends core::num*>(T*) →* core::int* genericTearOff2 = self::Extension2|get#genericMethod(c);
self::expect(52, genericTearOff1.call<core::int*>(10));
self::expect(97, genericTearOff2.call<core::int*>(10));
self::expect(52, genericTearOff1.call<core::num*>(10));
diff --git a/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.weak.expect b/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.weak.expect
index 1934541..6cff7c7 100644
--- a/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class Class<T extends core::num* = core::num*> extends core::Object {
+class Class<T extends core::num*> extends core::Object {
generic-covariant-impl field self::Class::T* field1;
generic-covariant-impl field self::Class::T* field2;
constructor •(self::Class::T* field1, self::Class::T* field2) → self::Class<self::Class::T*>*
@@ -19,7 +19,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-extension Extension1<T extends core::num* = core::num*> on self::Class<T*>* {
+extension Extension1<T extends core::num*> on self::Class<T*>* {
static field latestType = self::Extension1|latestType;
get field = self::Extension1|get#field;
method method = self::Extension1|method;
@@ -28,7 +28,7 @@
tearoff genericMethod = self::Extension1|get#genericMethod;
set field = self::Extension1|set#field;
}
-extension Extension2<T extends core::num* = core::num*> on self::Class<T*>* {
+extension Extension2<T extends core::num*> on self::Class<T*>* {
get field = self::Extension2|get#field;
method method = self::Extension2|method;
tearoff method = self::Extension2|get#method;
@@ -37,39 +37,39 @@
set field = self::Extension2|set#field;
}
static field core::String* Extension1|latestType;
-static method Extension1|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T* {
+static method Extension1|get#field<T extends core::num*>(lowered final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T* {
self::Extension1|latestType = "${self::Extension1|get#field::T*}";
return #this.{self::Class::field1};
}
-static method Extension1|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void {
+static method Extension1|set#field<T extends core::num*>(lowered final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void {
self::Extension1|latestType = "${self::Extension1|set#field::T*}";
#this.{self::Class::field1} = value;
}
-static method Extension1|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T* {
+static method Extension1|method<T extends core::num*>(lowered final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T* {
self::Extension1|latestType = "${self::Extension1|method::T*}";
return #this.{self::Class::field1};
}
-static method Extension1|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
+static method Extension1|get#method<T extends core::num*>(lowered final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
return () → self::Extension1|get#method::T* => self::Extension1|method<self::Extension1|get#method::T*>(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T* {
+static method Extension1|genericMethod<T extends core::num*, S extends core::num*>(lowered final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T* {
self::Extension1|latestType = "${self::Extension1|genericMethod::T*}:${self::Extension1|genericMethod::S*}";
return #this.{self::Class::field1}.{core::num::+}(t) as{TypeError} self::Extension1|genericMethod::T*;
}
-static method Extension1|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension1|get#genericMethod::T*
- return <S extends core::num* = core::num*>(S* t) → self::Extension1|get#genericMethod::T* => self::Extension1|genericMethod<self::Extension1|get#genericMethod::T*, S*>(#this, t);
-static method Extension2|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
+static method Extension1|get#genericMethod<T extends core::num*>(lowered final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num*>(S*) →* self::Extension1|get#genericMethod::T*
+ return <S extends core::num*>(S* t) → self::Extension1|get#genericMethod::T* => self::Extension1|genericMethod<self::Extension1|get#genericMethod::T*, S*>(#this, t);
+static method Extension2|get#field<T extends core::num*>(lowered final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
return #this.{self::Class::field2};
-static method Extension2|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void {
+static method Extension2|set#field<T extends core::num*>(lowered final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void {
#this.{self::Class::field2} = value;
}
-static method Extension2|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
+static method Extension2|method<T extends core::num*>(lowered final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
return #this.{self::Class::field2};
-static method Extension2|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
+static method Extension2|get#method<T extends core::num*>(lowered final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
return () → self::Extension2|get#method::T* => self::Extension2|method<self::Extension2|get#method::T*>(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
+static method Extension2|genericMethod<T extends core::num*, S extends core::num*>(lowered final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
return #this.{self::Class::field2}.{core::num::+}(t) as{TypeError} self::Extension2|genericMethod::T*;
-static method Extension2|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension2|get#genericMethod::T*
- return <S extends core::num* = core::num*>(S* t) → self::Extension2|get#genericMethod::T* => self::Extension2|genericMethod<self::Extension2|get#genericMethod::T*, S*>(#this, t);
+static method Extension2|get#genericMethod<T extends core::num*>(lowered final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num*>(S*) →* self::Extension2|get#genericMethod::T*
+ return <S extends core::num*>(S* t) → self::Extension2|get#genericMethod::T* => self::Extension2|genericMethod<self::Extension2|get#genericMethod::T*, S*>(#this, t);
static method main() → dynamic {
self::Class<core::int*>* c = new self::Class::•<core::int*>(42, 87);
self::expect(42, self::Extension1|get#field<core::num*>(c));
@@ -106,9 +106,9 @@
self::expect("int:num", self::Extension1|latestType);
self::expect(52, self::Extension1|genericMethod<core::int*, core::int*>(c, 10));
self::expect("int:int", self::Extension1|latestType);
- <S extends core::num* = core::num*>(S*) →* core::num* genericTearOffNumber1 = self::Extension1|get#genericMethod<core::num*>(c);
- <S extends core::num* = core::num*>(S*) →* core::int* genericTearOffInteger1 = self::Extension1|get#genericMethod<core::int*>(c);
- <S extends core::num* = core::num*>(S*) →* core::num* genericTearOff2 = self::Extension2|get#genericMethod<core::num*>(c);
+ <S extends core::num*>(S*) →* core::num* genericTearOffNumber1 = self::Extension1|get#genericMethod<core::num*>(c);
+ <S extends core::num*>(S*) →* core::int* genericTearOffInteger1 = self::Extension1|get#genericMethod<core::int*>(c);
+ <S extends core::num*>(S*) →* core::num* genericTearOff2 = self::Extension2|get#genericMethod<core::num*>(c);
self::expect(52, genericTearOffNumber1.call<core::int*>(10));
self::expect("num:int", self::Extension1|latestType);
self::expect(52, genericTearOffInteger1.call<core::int*>(10));
diff --git a/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.weak.outline.expect b/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.weak.outline.expect
index 633ea25..54e9504 100644
--- a/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class Class<T extends core::num* = core::num*> extends core::Object {
+class Class<T extends core::num*> extends core::Object {
generic-covariant-impl field self::Class::T* field1;
generic-covariant-impl field self::Class::T* field2;
constructor •(self::Class::T* field1, self::Class::T* field2) → self::Class<self::Class::T*>*
@@ -18,7 +18,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-extension Extension1<T extends core::num* = core::num*> on self::Class<T*>* {
+extension Extension1<T extends core::num*> on self::Class<T*>* {
static field latestType = self::Extension1|latestType;
get field = self::Extension1|get#field;
method method = self::Extension1|method;
@@ -27,7 +27,7 @@
tearoff genericMethod = self::Extension1|get#genericMethod;
set field = self::Extension1|set#field;
}
-extension Extension2<T extends core::num* = core::num*> on self::Class<T*>* {
+extension Extension2<T extends core::num*> on self::Class<T*>* {
get field = self::Extension2|get#field;
method method = self::Extension2|method;
tearoff method = self::Extension2|get#method;
@@ -36,30 +36,30 @@
set field = self::Extension2|set#field;
}
static field core::String* Extension1|latestType;
-static method Extension1|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T*
+static method Extension1|get#field<T extends core::num*>(lowered final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T*
;
-static method Extension1|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void
+static method Extension1|set#field<T extends core::num*>(lowered final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void
;
-static method Extension1|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T*
+static method Extension1|method<T extends core::num*>(lowered final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T*
;
-static method Extension1|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
+static method Extension1|get#method<T extends core::num*>(lowered final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
return () → self::Extension1|get#method::T* => self::Extension1|method<self::Extension1|get#method::T*>(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T*
+static method Extension1|genericMethod<T extends core::num*, S extends core::num*>(lowered final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T*
;
-static method Extension1|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension1|get#genericMethod::T*
- return <S extends core::num* = core::num*>(S* t) → self::Extension1|get#genericMethod::T* => self::Extension1|genericMethod<self::Extension1|get#genericMethod::T*, S*>(#this, t);
-static method Extension2|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
+static method Extension1|get#genericMethod<T extends core::num*>(lowered final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num*>(S*) →* self::Extension1|get#genericMethod::T*
+ return <S extends core::num*>(S* t) → self::Extension1|get#genericMethod::T* => self::Extension1|genericMethod<self::Extension1|get#genericMethod::T*, S*>(#this, t);
+static method Extension2|get#field<T extends core::num*>(lowered final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
;
-static method Extension2|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void
+static method Extension2|set#field<T extends core::num*>(lowered final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void
;
-static method Extension2|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
+static method Extension2|method<T extends core::num*>(lowered final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
;
-static method Extension2|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
+static method Extension2|get#method<T extends core::num*>(lowered final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
return () → self::Extension2|get#method::T* => self::Extension2|method<self::Extension2|get#method::T*>(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
+static method Extension2|genericMethod<T extends core::num*, S extends core::num*>(lowered final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
;
-static method Extension2|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension2|get#genericMethod::T*
- return <S extends core::num* = core::num*>(S* t) → self::Extension2|get#genericMethod::T* => self::Extension2|genericMethod<self::Extension2|get#genericMethod::T*, S*>(#this, t);
+static method Extension2|get#genericMethod<T extends core::num*>(lowered final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num*>(S*) →* self::Extension2|get#genericMethod::T*
+ return <S extends core::num*>(S* t) → self::Extension2|get#genericMethod::T* => self::Extension2|genericMethod<self::Extension2|get#genericMethod::T*, S*>(#this, t);
static method main() → dynamic
;
static method expect(dynamic expected, dynamic actual) → dynamic
diff --git a/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.weak.transformed.expect
index c99297a..8f41bf6 100644
--- a/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/explicit_generic_extension_access.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class Class<T extends core::num* = core::num*> extends core::Object {
+class Class<T extends core::num*> extends core::Object {
generic-covariant-impl field self::Class::T* field1;
generic-covariant-impl field self::Class::T* field2;
constructor •(self::Class::T* field1, self::Class::T* field2) → self::Class<self::Class::T*>*
@@ -19,7 +19,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-extension Extension1<T extends core::num* = core::num*> on self::Class<T*>* {
+extension Extension1<T extends core::num*> on self::Class<T*>* {
static field latestType = self::Extension1|latestType;
get field = self::Extension1|get#field;
method method = self::Extension1|method;
@@ -28,7 +28,7 @@
tearoff genericMethod = self::Extension1|get#genericMethod;
set field = self::Extension1|set#field;
}
-extension Extension2<T extends core::num* = core::num*> on self::Class<T*>* {
+extension Extension2<T extends core::num*> on self::Class<T*>* {
get field = self::Extension2|get#field;
method method = self::Extension2|method;
tearoff method = self::Extension2|get#method;
@@ -37,39 +37,39 @@
set field = self::Extension2|set#field;
}
static field core::String* Extension1|latestType;
-static method Extension1|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T* {
+static method Extension1|get#field<T extends core::num*>(lowered final self::Class<self::Extension1|get#field::T*>* #this) → self::Extension1|get#field::T* {
self::Extension1|latestType = "${self::Extension1|get#field::T*}";
return #this.{self::Class::field1};
}
-static method Extension1|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void {
+static method Extension1|set#field<T extends core::num*>(lowered final self::Class<self::Extension1|set#field::T*>* #this, self::Extension1|set#field::T* value) → void {
self::Extension1|latestType = "${self::Extension1|set#field::T*}";
#this.{self::Class::field1} = value;
}
-static method Extension1|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T* {
+static method Extension1|method<T extends core::num*>(lowered final self::Class<self::Extension1|method::T*>* #this) → self::Extension1|method::T* {
self::Extension1|latestType = "${self::Extension1|method::T*}";
return #this.{self::Class::field1};
}
-static method Extension1|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
+static method Extension1|get#method<T extends core::num*>(lowered final self::Class<self::Extension1|get#method::T*>* #this) → () →* self::Extension1|get#method::T*
return () → self::Extension1|get#method::T* => self::Extension1|method<self::Extension1|get#method::T*>(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T* {
+static method Extension1|genericMethod<T extends core::num*, S extends core::num*>(lowered final self::Class<self::Extension1|genericMethod::T*>* #this, self::Extension1|genericMethod::S* t) → self::Extension1|genericMethod::T* {
self::Extension1|latestType = "${self::Extension1|genericMethod::T*}:${self::Extension1|genericMethod::S*}";
return #this.{self::Class::field1}.{core::num::+}(t) as{TypeError} self::Extension1|genericMethod::T*;
}
-static method Extension1|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension1|get#genericMethod::T*
- return <S extends core::num* = core::num*>(S* t) → self::Extension1|get#genericMethod::T* => self::Extension1|genericMethod<self::Extension1|get#genericMethod::T*, S*>(#this, t);
-static method Extension2|get#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
+static method Extension1|get#genericMethod<T extends core::num*>(lowered final self::Class<self::Extension1|get#genericMethod::T*>* #this) → <S extends core::num*>(S*) →* self::Extension1|get#genericMethod::T*
+ return <S extends core::num*>(S* t) → self::Extension1|get#genericMethod::T* => self::Extension1|genericMethod<self::Extension1|get#genericMethod::T*, S*>(#this, t);
+static method Extension2|get#field<T extends core::num*>(lowered final self::Class<self::Extension2|get#field::T*>* #this) → self::Extension2|get#field::T*
return #this.{self::Class::field2};
-static method Extension2|set#field<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void {
+static method Extension2|set#field<T extends core::num*>(lowered final self::Class<self::Extension2|set#field::T*>* #this, self::Extension2|set#field::T* value) → void {
#this.{self::Class::field2} = value;
}
-static method Extension2|method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
+static method Extension2|method<T extends core::num*>(lowered final self::Class<self::Extension2|method::T*>* #this) → self::Extension2|method::T*
return #this.{self::Class::field2};
-static method Extension2|get#method<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
+static method Extension2|get#method<T extends core::num*>(lowered final self::Class<self::Extension2|get#method::T*>* #this) → () →* self::Extension2|get#method::T*
return () → self::Extension2|get#method::T* => self::Extension2|method<self::Extension2|get#method::T*>(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*, S extends core::num* = core::num*>(lowered final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
+static method Extension2|genericMethod<T extends core::num*, S extends core::num*>(lowered final self::Class<self::Extension2|genericMethod::T*>* #this, self::Extension2|genericMethod::S* t) → self::Extension2|genericMethod::T*
return #this.{self::Class::field2}.{core::num::+}(t) as{TypeError} self::Extension2|genericMethod::T*;
-static method Extension2|get#genericMethod<T extends core::num* = core::num*>(lowered final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num* = core::num*>(S*) →* self::Extension2|get#genericMethod::T*
- return <S extends core::num* = core::num*>(S* t) → self::Extension2|get#genericMethod::T* => self::Extension2|genericMethod<self::Extension2|get#genericMethod::T*, S*>(#this, t);
+static method Extension2|get#genericMethod<T extends core::num*>(lowered final self::Class<self::Extension2|get#genericMethod::T*>* #this) → <S extends core::num*>(S*) →* self::Extension2|get#genericMethod::T*
+ return <S extends core::num*>(S* t) → self::Extension2|get#genericMethod::T* => self::Extension2|genericMethod<self::Extension2|get#genericMethod::T*, S*>(#this, t);
static method main() → dynamic {
self::Class<core::int*>* c = new self::Class::•<core::int*>(42, 87);
self::expect(42, self::Extension1|get#field<core::num*>(c));
@@ -106,9 +106,9 @@
self::expect("int:num", self::Extension1|latestType);
self::expect(52, self::Extension1|genericMethod<core::int*, core::int*>(c, 10));
self::expect("int:int", self::Extension1|latestType);
- <S extends core::num* = core::num*>(S*) →* core::num* genericTearOffNumber1 = self::Extension1|get#genericMethod<core::num*>(c);
- <S extends core::num* = core::num*>(S*) →* core::int* genericTearOffInteger1 = self::Extension1|get#genericMethod<core::int*>(c);
- <S extends core::num* = core::num*>(S*) →* core::num* genericTearOff2 = self::Extension2|get#genericMethod<core::num*>(c);
+ <S extends core::num*>(S*) →* core::num* genericTearOffNumber1 = self::Extension1|get#genericMethod<core::num*>(c);
+ <S extends core::num*>(S*) →* core::int* genericTearOffInteger1 = self::Extension1|get#genericMethod<core::int*>(c);
+ <S extends core::num*>(S*) →* core::num* genericTearOff2 = self::Extension2|get#genericMethod<core::num*>(c);
self::expect(52, genericTearOffNumber1.call<core::int*>(10));
self::expect("num:int", self::Extension1|latestType);
self::expect(52, genericTearOffInteger1.call<core::int*>(10));
diff --git a/pkg/front_end/testcases/extensions/instance_access.dart.weak.expect b/pkg/front_end/testcases/extensions/instance_access.dart.weak.expect
index 4fd4d22..acfd4c8 100644
--- a/pkg/front_end/testcases/extensions/instance_access.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/instance_access.dart.weak.expect
@@ -58,12 +58,12 @@
}
static method Extension1|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int* {
+static method Extension1|genericMethod<T extends core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int* {
core::print("Extension1.genericMethod<${self::Extension1|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class1::field}.{core::num::+}(t) as{TypeError} core::int*;
}
-static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
+static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
static method Extension1|get#property(lowered final self::Class1* #this) → core::int* {
core::print("Extension1.property get on ${#this}");
return #this.{self::Class1::field};
@@ -79,12 +79,12 @@
}
static method Extension2|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int* {
+static method Extension2|genericMethod<T extends core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int* {
core::print("Extension2.genericMethod<${self::Extension2|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(t).{core::num::+}(4) as{TypeError} core::int*;
}
-static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
+static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method Extension2|get#property(lowered final self::Class2* #this) → core::int* {
core::print("Extension2.property get on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(5);
diff --git a/pkg/front_end/testcases/extensions/instance_access.dart.weak.outline.expect b/pkg/front_end/testcases/extensions/instance_access.dart.weak.outline.expect
index 36f5cf9..4e0c07a 100644
--- a/pkg/front_end/testcases/extensions/instance_access.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/extensions/instance_access.dart.weak.outline.expect
@@ -54,10 +54,10 @@
;
static method Extension1|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int*
+static method Extension1|genericMethod<T extends core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int*
;
-static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
+static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
static method Extension1|get#property(lowered final self::Class1* #this) → core::int*
;
static method Extension1|set#property(lowered final self::Class1* #this, core::int* value) → void
@@ -66,10 +66,10 @@
;
static method Extension2|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int*
+static method Extension2|genericMethod<T extends core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int*
;
-static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
+static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method Extension2|get#property(lowered final self::Class2* #this) → core::int*
;
static method Extension2|set#property(lowered final self::Class2* #this, core::int* value) → void
diff --git a/pkg/front_end/testcases/extensions/instance_access.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/instance_access.dart.weak.transformed.expect
index 9d2558b..c022d12 100644
--- a/pkg/front_end/testcases/extensions/instance_access.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/instance_access.dart.weak.transformed.expect
@@ -58,12 +58,12 @@
}
static method Extension1|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int* {
+static method Extension1|genericMethod<T extends core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int* {
core::print("Extension1.genericMethod<${self::Extension1|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class1::field}.{core::num::+}(t) as{TypeError} core::int*;
}
-static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
+static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
static method Extension1|get#property(lowered final self::Class1* #this) → core::int* {
core::print("Extension1.property get on ${#this}");
return #this.{self::Class1::field};
@@ -79,12 +79,12 @@
}
static method Extension2|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int* {
+static method Extension2|genericMethod<T extends core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int* {
core::print("Extension2.genericMethod<${self::Extension2|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(t).{core::num::+}(4) as{TypeError} core::int*;
}
-static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
+static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method Extension2|get#property(lowered final self::Class2* #this) → core::int* {
core::print("Extension2.property get on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(5);
diff --git a/pkg/front_end/testcases/extensions/instance_tearoff.dart.weak.expect b/pkg/front_end/testcases/extensions/instance_tearoff.dart.weak.expect
index 3e30930..7ff18f4 100644
--- a/pkg/front_end/testcases/extensions/instance_tearoff.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/instance_tearoff.dart.weak.expect
@@ -54,24 +54,24 @@
}
static method Extension1|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int* {
+static method Extension1|genericMethod<T extends core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int* {
core::print("Extension1.genericMethod<${self::Extension1|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class1::field}.{core::num::+}(t) as{TypeError} core::int*;
}
-static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
+static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
static method Extension2|method(lowered final self::Class2* #this) → core::int* {
core::print("Extension2.method on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(2);
}
static method Extension2|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int* {
+static method Extension2|genericMethod<T extends core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int* {
core::print("Extension2.genericMethod<${self::Extension2|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(t).{core::num::+}(3) as{TypeError} core::int*;
}
-static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
+static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method main() → dynamic {
self::testExtension1();
self::testExtension2();
@@ -87,10 +87,10 @@
self::expect(1, tearOff1.call());
c1 = new self::Class1::•(7.{core::int::unary-}());
self::expect(1, tearOff1.call());
- <T extends core::num* = core::num*>(T*) →* core::int* genericTearOff0 = self::Extension1|get#genericMethod(c0);
+ <T extends core::num*>(T*) →* core::int* genericTearOff0 = self::Extension1|get#genericMethod(c0);
self::expect(38, genericTearOff0.call<core::int*>(42));
self::expect(38, genericTearOff0.call<core::num*>(42));
- <T extends core::num* = core::num*>(T*) →* core::int* genericTearOff1 = self::Extension1|get#genericMethod(c1);
+ <T extends core::num*>(T*) →* core::int* genericTearOff1 = self::Extension1|get#genericMethod(c1);
self::expect(35, genericTearOff1.call<core::int*>(42));
self::expect(35, genericTearOff1.call<core::num*>(42));
}
@@ -105,10 +105,10 @@
self::expect(3, tearOff1.call());
c1 = new self::Class2::•(7.{core::int::unary-}());
self::expect(3, tearOff1.call());
- <T extends core::num* = core::num*>(T*) →* core::int* genericTearOff0 = self::Extension2|get#genericMethod(c0);
+ <T extends core::num*>(T*) →* core::int* genericTearOff0 = self::Extension2|get#genericMethod(c0);
self::expect(41, genericTearOff0.call<core::int*>(42));
self::expect(41, genericTearOff0.call<core::num*>(42));
- <T extends core::num* = core::num*>(T*) →* core::int* genericTearOff1 = self::Extension2|get#genericMethod(c1);
+ <T extends core::num*>(T*) →* core::int* genericTearOff1 = self::Extension2|get#genericMethod(c1);
self::expect(38, genericTearOff1.call<core::int*>(42));
self::expect(38, genericTearOff1.call<core::num*>(42));
}
diff --git a/pkg/front_end/testcases/extensions/instance_tearoff.dart.weak.outline.expect b/pkg/front_end/testcases/extensions/instance_tearoff.dart.weak.outline.expect
index 03756cc..8d3c1e7 100644
--- a/pkg/front_end/testcases/extensions/instance_tearoff.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/extensions/instance_tearoff.dart.weak.outline.expect
@@ -50,18 +50,18 @@
;
static method Extension1|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int*
+static method Extension1|genericMethod<T extends core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int*
;
-static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
+static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
static method Extension2|method(lowered final self::Class2* #this) → core::int*
;
static method Extension2|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int*
+static method Extension2|genericMethod<T extends core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int*
;
-static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
+static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method main() → dynamic
;
static method testExtension1() → dynamic
diff --git a/pkg/front_end/testcases/extensions/instance_tearoff.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/instance_tearoff.dart.weak.transformed.expect
index 70b8f9f..1c79b12 100644
--- a/pkg/front_end/testcases/extensions/instance_tearoff.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/instance_tearoff.dart.weak.transformed.expect
@@ -54,24 +54,24 @@
}
static method Extension1|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::Extension1|method(#this);
-static method Extension1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int* {
+static method Extension1|genericMethod<T extends core::num*>(lowered final self::Class1* #this, self::Extension1|genericMethod::T* t) → core::int* {
core::print("Extension1.genericMethod<${self::Extension1|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class1::field}.{core::num::+}(t) as{TypeError} core::int*;
}
-static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
+static method Extension1|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension1|genericMethod<T*>(#this, t);
static method Extension2|method(lowered final self::Class2* #this) → core::int* {
core::print("Extension2.method on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(2);
}
static method Extension2|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::Extension2|method(#this);
-static method Extension2|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int* {
+static method Extension2|genericMethod<T extends core::num*>(lowered final self::Class2* #this, self::Extension2|genericMethod::T* t) → core::int* {
core::print("Extension2.genericMethod<${self::Extension2|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(t).{core::num::+}(3) as{TypeError} core::int*;
}
-static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
+static method Extension2|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::Extension2|genericMethod<T*>(#this, t);
static method main() → dynamic {
self::testExtension1();
self::testExtension2();
@@ -87,10 +87,10 @@
self::expect(1, tearOff1.call());
c1 = new self::Class1::•(7.{core::int::unary-}());
self::expect(1, tearOff1.call());
- <T extends core::num* = core::num*>(T*) →* core::int* genericTearOff0 = self::Extension1|get#genericMethod(c0);
+ <T extends core::num*>(T*) →* core::int* genericTearOff0 = self::Extension1|get#genericMethod(c0);
self::expect(38, genericTearOff0.call<core::int*>(42));
self::expect(38, genericTearOff0.call<core::num*>(42));
- <T extends core::num* = core::num*>(T*) →* core::int* genericTearOff1 = self::Extension1|get#genericMethod(c1);
+ <T extends core::num*>(T*) →* core::int* genericTearOff1 = self::Extension1|get#genericMethod(c1);
self::expect(35, genericTearOff1.call<core::int*>(42));
self::expect(35, genericTearOff1.call<core::num*>(42));
}
@@ -105,10 +105,10 @@
self::expect(3, tearOff1.call());
c1 = new self::Class2::•(7.{core::int::unary-}());
self::expect(3, tearOff1.call());
- <T extends core::num* = core::num*>(T*) →* core::int* genericTearOff0 = self::Extension2|get#genericMethod(c0);
+ <T extends core::num*>(T*) →* core::int* genericTearOff0 = self::Extension2|get#genericMethod(c0);
self::expect(41, genericTearOff0.call<core::int*>(42));
self::expect(41, genericTearOff0.call<core::num*>(42));
- <T extends core::num* = core::num*>(T*) →* core::int* genericTearOff1 = self::Extension2|get#genericMethod(c1);
+ <T extends core::num*>(T*) →* core::int* genericTearOff1 = self::Extension2|get#genericMethod(c1);
self::expect(38, genericTearOff1.call<core::int*>(42));
self::expect(38, genericTearOff1.call<core::num*>(42));
}
diff --git a/pkg/front_end/testcases/extensions/language_issue1182.dart.weak.expect b/pkg/front_end/testcases/extensions/language_issue1182.dart.weak.expect
index ada1a5c..b657553 100644
--- a/pkg/front_end/testcases/extensions/language_issue1182.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/language_issue1182.dart.weak.expect
@@ -9,7 +9,7 @@
import self as self;
import "dart:core" as core;
-class Foo<S extends core::num* = core::num*> extends core::Object {
+class Foo<S extends core::num*> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::S*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/extensions/language_issue1182.dart.weak.outline.expect b/pkg/front_end/testcases/extensions/language_issue1182.dart.weak.outline.expect
index 44bd9dc..cf1db41 100644
--- a/pkg/front_end/testcases/extensions/language_issue1182.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/extensions/language_issue1182.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class Foo<S extends core::num* = core::num*> extends core::Object {
+class Foo<S extends core::num*> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::S*>*
;
method test1(generic-covariant-impl self::Foo::S* x) → void
diff --git a/pkg/front_end/testcases/extensions/language_issue1182.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/language_issue1182.dart.weak.transformed.expect
index ada1a5c..b657553 100644
--- a/pkg/front_end/testcases/extensions/language_issue1182.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/language_issue1182.dart.weak.transformed.expect
@@ -9,7 +9,7 @@
import self as self;
import "dart:core" as core;
-class Foo<S extends core::num* = core::num*> extends core::Object {
+class Foo<S extends core::num*> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::S*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/extensions/on_function_type.dart.weak.expect b/pkg/front_end/testcases/extensions/on_function_type.dart.weak.expect
index 9c1f826..7fd4a5b 100644
--- a/pkg/front_end/testcases/extensions/on_function_type.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/on_function_type.dart.weak.expect
@@ -40,7 +40,7 @@
return i;
core::print(self::_extension#0|get#returnType<core::int*, core::int*>(local1));
core::print(self::_extension#0|get#parameterType<core::int*, core::int*>(local1));
- function local2<S extends self::Subclass* = self::Subclass*>(self::Subclass* a, S* b) → self::Subclass*
+ function local2<S extends self::Subclass*>(self::Subclass* a, S* b) → self::Subclass*
return a;
core::print(self::_extension#1|get#parameterType<self::Subclass*>(local2));
}
diff --git a/pkg/front_end/testcases/extensions/on_function_type.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/on_function_type.dart.weak.transformed.expect
index 9c1f826..7fd4a5b 100644
--- a/pkg/front_end/testcases/extensions/on_function_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/on_function_type.dart.weak.transformed.expect
@@ -40,7 +40,7 @@
return i;
core::print(self::_extension#0|get#returnType<core::int*, core::int*>(local1));
core::print(self::_extension#0|get#parameterType<core::int*, core::int*>(local1));
- function local2<S extends self::Subclass* = self::Subclass*>(self::Subclass* a, S* b) → self::Subclass*
+ function local2<S extends self::Subclass*>(self::Subclass* a, S* b) → self::Subclass*
return a;
core::print(self::_extension#1|get#parameterType<self::Subclass*>(local2));
}
diff --git a/pkg/front_end/testcases/extensions/on_type_inference.dart.weak.expect b/pkg/front_end/testcases/extensions/on_type_inference.dart.weak.expect
index 75adac2..a5fc214 100644
--- a/pkg/front_end/testcases/extensions/on_type_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/on_type_inference.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-extension BestCom<T extends core::num* = core::num*> on core::Iterable<T*>* {
+extension BestCom<T extends core::num*> on core::Iterable<T*>* {
method best = self::BestCom|best;
tearoff best = self::BestCom|get#best;
}
@@ -14,9 +14,9 @@
method best = self::BestSpec|best;
tearoff best = self::BestSpec|get#best;
}
-static method BestCom|best<T extends core::num* = core::num*>(lowered final core::Iterable<self::BestCom|best::T*>* #this) → self::BestCom|best::T*
+static method BestCom|best<T extends core::num*>(lowered final core::Iterable<self::BestCom|best::T*>* #this) → self::BestCom|best::T*
return null;
-static method BestCom|get#best<T extends core::num* = core::num*>(lowered final core::Iterable<self::BestCom|get#best::T*>* #this) → () →* self::BestCom|get#best::T*
+static method BestCom|get#best<T extends core::num*>(lowered final core::Iterable<self::BestCom|get#best::T*>* #this) → () →* self::BestCom|get#best::T*
return () → self::BestCom|get#best::T* => self::BestCom|best<self::BestCom|get#best::T*>(#this);
static method BestList|best<T extends core::Object* = dynamic>(lowered final core::List<self::BestList|best::T*>* #this) → self::BestList|best::T*
return null;
diff --git a/pkg/front_end/testcases/extensions/on_type_inference.dart.weak.outline.expect b/pkg/front_end/testcases/extensions/on_type_inference.dart.weak.outline.expect
index f2746bb..e1ea935 100644
--- a/pkg/front_end/testcases/extensions/on_type_inference.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/extensions/on_type_inference.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-extension BestCom<T extends core::num* = core::num*> on core::Iterable<T*>* {
+extension BestCom<T extends core::num*> on core::Iterable<T*>* {
method best = self::BestCom|best;
tearoff best = self::BestCom|get#best;
}
@@ -14,9 +14,9 @@
method best = self::BestSpec|best;
tearoff best = self::BestSpec|get#best;
}
-static method BestCom|best<T extends core::num* = core::num*>(lowered final core::Iterable<self::BestCom|best::T*>* #this) → self::BestCom|best::T*
+static method BestCom|best<T extends core::num*>(lowered final core::Iterable<self::BestCom|best::T*>* #this) → self::BestCom|best::T*
;
-static method BestCom|get#best<T extends core::num* = core::num*>(lowered final core::Iterable<self::BestCom|get#best::T*>* #this) → () →* self::BestCom|get#best::T*
+static method BestCom|get#best<T extends core::num*>(lowered final core::Iterable<self::BestCom|get#best::T*>* #this) → () →* self::BestCom|get#best::T*
return () → self::BestCom|get#best::T* => self::BestCom|best<self::BestCom|get#best::T*>(#this);
static method BestList|best<T extends core::Object* = dynamic>(lowered final core::List<self::BestList|best::T*>* #this) → self::BestList|best::T*
;
diff --git a/pkg/front_end/testcases/extensions/on_type_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/on_type_inference.dart.weak.transformed.expect
index 75adac2..a5fc214 100644
--- a/pkg/front_end/testcases/extensions/on_type_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/on_type_inference.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-extension BestCom<T extends core::num* = core::num*> on core::Iterable<T*>* {
+extension BestCom<T extends core::num*> on core::Iterable<T*>* {
method best = self::BestCom|best;
tearoff best = self::BestCom|get#best;
}
@@ -14,9 +14,9 @@
method best = self::BestSpec|best;
tearoff best = self::BestSpec|get#best;
}
-static method BestCom|best<T extends core::num* = core::num*>(lowered final core::Iterable<self::BestCom|best::T*>* #this) → self::BestCom|best::T*
+static method BestCom|best<T extends core::num*>(lowered final core::Iterable<self::BestCom|best::T*>* #this) → self::BestCom|best::T*
return null;
-static method BestCom|get#best<T extends core::num* = core::num*>(lowered final core::Iterable<self::BestCom|get#best::T*>* #this) → () →* self::BestCom|get#best::T*
+static method BestCom|get#best<T extends core::num*>(lowered final core::Iterable<self::BestCom|get#best::T*>* #this) → () →* self::BestCom|get#best::T*
return () → self::BestCom|get#best::T* => self::BestCom|best<self::BestCom|get#best::T*>(#this);
static method BestList|best<T extends core::Object* = dynamic>(lowered final core::List<self::BestList|best::T*>* #this) → self::BestList|best::T*
return null;
diff --git a/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.weak.expect b/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.weak.expect
index 21907d2..4fa3d96 100644
--- a/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.weak.expect
@@ -81,19 +81,19 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-extension Extension<T extends self::Struct* = self::Struct*> on T* {
+extension Extension<T extends self::Struct*> on T* {
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
get property = self::Extension|get#property;
set property = self::Extension|set#property;
}
-static method Extension|method<T extends self::Struct* = self::Struct*>(lowered final self::Extension|method::T* #this) → self::Extension|method::T*
+static method Extension|method<T extends self::Struct*>(lowered final self::Extension|method::T* #this) → self::Extension|method::T*
return #this;
-static method Extension|get#method<T extends self::Struct* = self::Struct*>(lowered final self::Extension|get#method::T* #this) → () →* self::Extension|get#method::T*
+static method Extension|get#method<T extends self::Struct*>(lowered final self::Extension|get#method::T* #this) → () →* self::Extension|get#method::T*
return () → self::Extension|get#method::T* => self::Extension|method<self::Extension|get#method::T*>(#this);
-static method Extension|get#property<T extends self::Struct* = self::Struct*>(lowered final self::Extension|get#property::T* #this) → self::Extension|get#property::T*
+static method Extension|get#property<T extends self::Struct*>(lowered final self::Extension|get#property::T* #this) → self::Extension|get#property::T*
return #this;
-static method Extension|set#property<T extends self::Struct* = self::Struct*>(lowered final self::Extension|set#property::T* #this, self::Extension|set#property::T* value) → void {}
+static method Extension|set#property<T extends self::Struct*>(lowered final self::Extension|set#property::T* #this, self::Extension|set#property::T* value) → void {}
static method main() → dynamic {
self::Struct* struct;
self::StructA* structA;
diff --git a/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.weak.outline.expect b/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.weak.outline.expect
index 3dd1c35..4503bad 100644
--- a/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.weak.outline.expect
@@ -38,19 +38,19 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-extension Extension<T extends self::Struct* = self::Struct*> on T* {
+extension Extension<T extends self::Struct*> on T* {
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
get property = self::Extension|get#property;
set property = self::Extension|set#property;
}
-static method Extension|method<T extends self::Struct* = self::Struct*>(lowered final self::Extension|method::T* #this) → self::Extension|method::T*
+static method Extension|method<T extends self::Struct*>(lowered final self::Extension|method::T* #this) → self::Extension|method::T*
;
-static method Extension|get#method<T extends self::Struct* = self::Struct*>(lowered final self::Extension|get#method::T* #this) → () →* self::Extension|get#method::T*
+static method Extension|get#method<T extends self::Struct*>(lowered final self::Extension|get#method::T* #this) → () →* self::Extension|get#method::T*
return () → self::Extension|get#method::T* => self::Extension|method<self::Extension|get#method::T*>(#this);
-static method Extension|get#property<T extends self::Struct* = self::Struct*>(lowered final self::Extension|get#property::T* #this) → self::Extension|get#property::T*
+static method Extension|get#property<T extends self::Struct*>(lowered final self::Extension|get#property::T* #this) → self::Extension|get#property::T*
;
-static method Extension|set#property<T extends self::Struct* = self::Struct*>(lowered final self::Extension|set#property::T* #this, self::Extension|set#property::T* value) → void
+static method Extension|set#property<T extends self::Struct*>(lowered final self::Extension|set#property::T* #this, self::Extension|set#property::T* value) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.weak.transformed.expect
index 21907d2..4fa3d96 100644
--- a/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/on_type_variable_inference.dart.weak.transformed.expect
@@ -81,19 +81,19 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-extension Extension<T extends self::Struct* = self::Struct*> on T* {
+extension Extension<T extends self::Struct*> on T* {
method method = self::Extension|method;
tearoff method = self::Extension|get#method;
get property = self::Extension|get#property;
set property = self::Extension|set#property;
}
-static method Extension|method<T extends self::Struct* = self::Struct*>(lowered final self::Extension|method::T* #this) → self::Extension|method::T*
+static method Extension|method<T extends self::Struct*>(lowered final self::Extension|method::T* #this) → self::Extension|method::T*
return #this;
-static method Extension|get#method<T extends self::Struct* = self::Struct*>(lowered final self::Extension|get#method::T* #this) → () →* self::Extension|get#method::T*
+static method Extension|get#method<T extends self::Struct*>(lowered final self::Extension|get#method::T* #this) → () →* self::Extension|get#method::T*
return () → self::Extension|get#method::T* => self::Extension|method<self::Extension|get#method::T*>(#this);
-static method Extension|get#property<T extends self::Struct* = self::Struct*>(lowered final self::Extension|get#property::T* #this) → self::Extension|get#property::T*
+static method Extension|get#property<T extends self::Struct*>(lowered final self::Extension|get#property::T* #this) → self::Extension|get#property::T*
return #this;
-static method Extension|set#property<T extends self::Struct* = self::Struct*>(lowered final self::Extension|set#property::T* #this, self::Extension|set#property::T* value) → void {}
+static method Extension|set#property<T extends self::Struct*>(lowered final self::Extension|set#property::T* #this, self::Extension|set#property::T* value) → void {}
static method main() → dynamic {
self::Struct* struct;
self::StructA* structA;
diff --git a/pkg/front_end/testcases/extensions/type_variable_bound.dart.weak.expect b/pkg/front_end/testcases/extensions/type_variable_bound.dart.weak.expect
index a20912a..5b11e7e 100644
--- a/pkg/front_end/testcases/extensions/type_variable_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/type_variable_bound.dart.weak.expect
@@ -26,7 +26,7 @@
method method1 = self::Extension|method1;
tearoff method1 = self::Extension|get#method1;
}
-extension BoundExtension<T extends self::Class* = self::Class*> on T* {
+extension BoundExtension<T extends self::Class*> on T* {
method method2 = self::BoundExtension|method2;
tearoff method2 = self::BoundExtension|get#method2;
}
@@ -34,9 +34,9 @@
return #this;
static method Extension|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension|get#method1::T* #this) → () →* self::Extension|get#method1::T*
return () → self::Extension|get#method1::T* => self::Extension|method1<self::Extension|get#method1::T*>(#this);
-static method BoundExtension|method2<T extends self::Class* = self::Class*>(lowered final self::BoundExtension|method2::T* #this) → self::BoundExtension|method2::T*
+static method BoundExtension|method2<T extends self::Class*>(lowered final self::BoundExtension|method2::T* #this) → self::BoundExtension|method2::T*
return #this;
-static method BoundExtension|get#method2<T extends self::Class* = self::Class*>(lowered final self::BoundExtension|get#method2::T* #this) → () →* self::BoundExtension|get#method2::T*
+static method BoundExtension|get#method2<T extends self::Class*>(lowered final self::BoundExtension|get#method2::T* #this) → () →* self::BoundExtension|get#method2::T*
return () → self::BoundExtension|get#method2::T* => self::BoundExtension|method2<self::BoundExtension|get#method2::T*>(#this);
static method test1<T extends core::Object* = dynamic>(self::test1::T* t1) → self::Class* {
if(t1 is self::SubClass*) {
@@ -44,7 +44,7 @@
}
return new self::Class::•();
}
-static method test2<T extends self::Class* = self::Class*>(self::test2::T* t2) → dynamic {
+static method test2<T extends self::Class*>(self::test2::T* t2) → dynamic {
if(self::test2::T*.{core::Type::==}(#C1)) {
self::SubClass* subClass = self::BoundExtension|method2<self::Class*>(t2) as{TypeError} self::SubClass*;
}
diff --git a/pkg/front_end/testcases/extensions/type_variable_bound.dart.weak.outline.expect b/pkg/front_end/testcases/extensions/type_variable_bound.dart.weak.outline.expect
index 6efbb7d..e51a6e0 100644
--- a/pkg/front_end/testcases/extensions/type_variable_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/extensions/type_variable_bound.dart.weak.outline.expect
@@ -24,7 +24,7 @@
method method1 = self::Extension|method1;
tearoff method1 = self::Extension|get#method1;
}
-extension BoundExtension<T extends self::Class* = self::Class*> on T* {
+extension BoundExtension<T extends self::Class*> on T* {
method method2 = self::BoundExtension|method2;
tearoff method2 = self::BoundExtension|get#method2;
}
@@ -32,13 +32,13 @@
;
static method Extension|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension|get#method1::T* #this) → () →* self::Extension|get#method1::T*
return () → self::Extension|get#method1::T* => self::Extension|method1<self::Extension|get#method1::T*>(#this);
-static method BoundExtension|method2<T extends self::Class* = self::Class*>(lowered final self::BoundExtension|method2::T* #this) → self::BoundExtension|method2::T*
+static method BoundExtension|method2<T extends self::Class*>(lowered final self::BoundExtension|method2::T* #this) → self::BoundExtension|method2::T*
;
-static method BoundExtension|get#method2<T extends self::Class* = self::Class*>(lowered final self::BoundExtension|get#method2::T* #this) → () →* self::BoundExtension|get#method2::T*
+static method BoundExtension|get#method2<T extends self::Class*>(lowered final self::BoundExtension|get#method2::T* #this) → () →* self::BoundExtension|get#method2::T*
return () → self::BoundExtension|get#method2::T* => self::BoundExtension|method2<self::BoundExtension|get#method2::T*>(#this);
static method test1<T extends core::Object* = dynamic>(self::test1::T* t1) → self::Class*
;
-static method test2<T extends self::Class* = self::Class*>(self::test2::T* t2) → dynamic
+static method test2<T extends self::Class*>(self::test2::T* t2) → dynamic
;
static method test3<T extends core::Object* = dynamic>(self::test3::T* t3) → dynamic
;
diff --git a/pkg/front_end/testcases/extensions/type_variable_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/type_variable_bound.dart.weak.transformed.expect
index a20912a..5b11e7e 100644
--- a/pkg/front_end/testcases/extensions/type_variable_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/type_variable_bound.dart.weak.transformed.expect
@@ -26,7 +26,7 @@
method method1 = self::Extension|method1;
tearoff method1 = self::Extension|get#method1;
}
-extension BoundExtension<T extends self::Class* = self::Class*> on T* {
+extension BoundExtension<T extends self::Class*> on T* {
method method2 = self::BoundExtension|method2;
tearoff method2 = self::BoundExtension|get#method2;
}
@@ -34,9 +34,9 @@
return #this;
static method Extension|get#method1<T extends core::Object* = dynamic>(lowered final self::Extension|get#method1::T* #this) → () →* self::Extension|get#method1::T*
return () → self::Extension|get#method1::T* => self::Extension|method1<self::Extension|get#method1::T*>(#this);
-static method BoundExtension|method2<T extends self::Class* = self::Class*>(lowered final self::BoundExtension|method2::T* #this) → self::BoundExtension|method2::T*
+static method BoundExtension|method2<T extends self::Class*>(lowered final self::BoundExtension|method2::T* #this) → self::BoundExtension|method2::T*
return #this;
-static method BoundExtension|get#method2<T extends self::Class* = self::Class*>(lowered final self::BoundExtension|get#method2::T* #this) → () →* self::BoundExtension|get#method2::T*
+static method BoundExtension|get#method2<T extends self::Class*>(lowered final self::BoundExtension|get#method2::T* #this) → () →* self::BoundExtension|get#method2::T*
return () → self::BoundExtension|get#method2::T* => self::BoundExtension|method2<self::BoundExtension|get#method2::T*>(#this);
static method test1<T extends core::Object* = dynamic>(self::test1::T* t1) → self::Class* {
if(t1 is self::SubClass*) {
@@ -44,7 +44,7 @@
}
return new self::Class::•();
}
-static method test2<T extends self::Class* = self::Class*>(self::test2::T* t2) → dynamic {
+static method test2<T extends self::Class*>(self::test2::T* t2) → dynamic {
if(self::test2::T*.{core::Type::==}(#C1)) {
self::SubClass* subClass = self::BoundExtension|method2<self::Class*>(t2) as{TypeError} self::SubClass*;
}
diff --git a/pkg/front_end/testcases/extensions/unnamed_extensions.dart.weak.expect b/pkg/front_end/testcases/extensions/unnamed_extensions.dart.weak.expect
index 1786045..932e48a 100644
--- a/pkg/front_end/testcases/extensions/unnamed_extensions.dart.weak.expect
+++ b/pkg/front_end/testcases/extensions/unnamed_extensions.dart.weak.expect
@@ -58,12 +58,12 @@
}
static method _extension#0|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::_extension#0|method(#this);
-static method _extension#0|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::_extension#0|genericMethod::T* t) → core::int* {
+static method _extension#0|genericMethod<T extends core::num*>(lowered final self::Class1* #this, self::_extension#0|genericMethod::T* t) → core::int* {
core::print("Extension1.genericMethod<${self::_extension#0|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class1::field}.{core::num::+}(t) as{TypeError} core::int*;
}
-static method _extension#0|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::_extension#0|genericMethod<T*>(#this, t);
+static method _extension#0|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::_extension#0|genericMethod<T*>(#this, t);
static method _extension#0|get#property(lowered final self::Class1* #this) → core::int* {
core::print("Extension1.property get on ${#this}");
return #this.{self::Class1::field};
@@ -79,12 +79,12 @@
}
static method _extension#1|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::_extension#1|method(#this);
-static method _extension#1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::_extension#1|genericMethod::T* t) → core::int* {
+static method _extension#1|genericMethod<T extends core::num*>(lowered final self::Class2* #this, self::_extension#1|genericMethod::T* t) → core::int* {
core::print("Extension2.genericMethod<${self::_extension#1|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(t).{core::num::+}(4) as{TypeError} core::int*;
}
-static method _extension#1|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::_extension#1|genericMethod<T*>(#this, t);
+static method _extension#1|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::_extension#1|genericMethod<T*>(#this, t);
static method _extension#1|get#property(lowered final self::Class2* #this) → core::int* {
core::print("Extension2.property get on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(5);
diff --git a/pkg/front_end/testcases/extensions/unnamed_extensions.dart.weak.outline.expect b/pkg/front_end/testcases/extensions/unnamed_extensions.dart.weak.outline.expect
index bca6081..7880975 100644
--- a/pkg/front_end/testcases/extensions/unnamed_extensions.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/extensions/unnamed_extensions.dart.weak.outline.expect
@@ -54,10 +54,10 @@
;
static method _extension#0|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::_extension#0|method(#this);
-static method _extension#0|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::_extension#0|genericMethod::T* t) → core::int*
+static method _extension#0|genericMethod<T extends core::num*>(lowered final self::Class1* #this, self::_extension#0|genericMethod::T* t) → core::int*
;
-static method _extension#0|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::_extension#0|genericMethod<T*>(#this, t);
+static method _extension#0|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::_extension#0|genericMethod<T*>(#this, t);
static method _extension#0|get#property(lowered final self::Class1* #this) → core::int*
;
static method _extension#0|set#property(lowered final self::Class1* #this, core::int* value) → void
@@ -66,10 +66,10 @@
;
static method _extension#1|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::_extension#1|method(#this);
-static method _extension#1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::_extension#1|genericMethod::T* t) → core::int*
+static method _extension#1|genericMethod<T extends core::num*>(lowered final self::Class2* #this, self::_extension#1|genericMethod::T* t) → core::int*
;
-static method _extension#1|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::_extension#1|genericMethod<T*>(#this, t);
+static method _extension#1|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::_extension#1|genericMethod<T*>(#this, t);
static method _extension#1|get#property(lowered final self::Class2* #this) → core::int*
;
static method _extension#1|set#property(lowered final self::Class2* #this, core::int* value) → void
diff --git a/pkg/front_end/testcases/extensions/unnamed_extensions.dart.weak.transformed.expect b/pkg/front_end/testcases/extensions/unnamed_extensions.dart.weak.transformed.expect
index 4e7371c..bfc173d 100644
--- a/pkg/front_end/testcases/extensions/unnamed_extensions.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/extensions/unnamed_extensions.dart.weak.transformed.expect
@@ -58,12 +58,12 @@
}
static method _extension#0|get#method(lowered final self::Class1* #this) → () →* core::int*
return () → core::int* => self::_extension#0|method(#this);
-static method _extension#0|genericMethod<T extends core::num* = core::num*>(lowered final self::Class1* #this, self::_extension#0|genericMethod::T* t) → core::int* {
+static method _extension#0|genericMethod<T extends core::num*>(lowered final self::Class1* #this, self::_extension#0|genericMethod::T* t) → core::int* {
core::print("Extension1.genericMethod<${self::_extension#0|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class1::field}.{core::num::+}(t) as{TypeError} core::int*;
}
-static method _extension#0|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::_extension#0|genericMethod<T*>(#this, t);
+static method _extension#0|get#genericMethod(lowered final self::Class1* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::_extension#0|genericMethod<T*>(#this, t);
static method _extension#0|get#property(lowered final self::Class1* #this) → core::int* {
core::print("Extension1.property get on ${#this}");
return #this.{self::Class1::field};
@@ -79,12 +79,12 @@
}
static method _extension#1|get#method(lowered final self::Class2* #this) → () →* core::int*
return () → core::int* => self::_extension#1|method(#this);
-static method _extension#1|genericMethod<T extends core::num* = core::num*>(lowered final self::Class2* #this, self::_extension#1|genericMethod::T* t) → core::int* {
+static method _extension#1|genericMethod<T extends core::num*>(lowered final self::Class2* #this, self::_extension#1|genericMethod::T* t) → core::int* {
core::print("Extension2.genericMethod<${self::_extension#1|genericMethod::T*}>(${t}) on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(t).{core::num::+}(4) as{TypeError} core::int*;
}
-static method _extension#1|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num* = core::num*>(T*) →* core::int*
- return <T extends core::num* = core::num*>(T* t) → core::int* => self::_extension#1|genericMethod<T*>(#this, t);
+static method _extension#1|get#genericMethod(lowered final self::Class2* #this) → <T extends core::num*>(T*) →* core::int*
+ return <T extends core::num*>(T* t) → core::int* => self::_extension#1|genericMethod<T*>(#this, t);
static method _extension#1|get#property(lowered final self::Class2* #this) → core::int* {
core::print("Extension2.property get on ${#this}");
return #this.{self::Class2::field}.{core::num::+}(5);
diff --git a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.expect b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.expect
index d64170d..cd1a183 100644
--- a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.expect
@@ -6,7 +6,7 @@
synthetic constructor •() → self::A<self::A::X*>*
: super core::Object::•()
;
- method bar<generic-covariant-impl Y extends self::A::X* = self::A::X*>() → dynamic
+ method bar<generic-covariant-impl Y extends self::A::X*>() → dynamic
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
@@ -23,7 +23,7 @@
synthetic constructor •() → self::B*
: super core::Object::•()
;
- static method foo<Y extends core::Object* = core::Object*>() → self::A<self::B::foo::Y*>*
+ static method foo<Y extends core::Object*>() → self::A<self::B::foo::Y*>*
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
diff --git a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.outline.expect b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.outline.expect
index b5f4961..0828ddb 100644
--- a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.outline.expect
@@ -5,7 +5,7 @@
class A<X extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X*>*
;
- method bar<generic-covariant-impl Y extends self::A::X* = self::A::X*>() → dynamic
+ method bar<generic-covariant-impl Y extends self::A::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
@@ -21,7 +21,7 @@
class B extends core::Object {
synthetic constructor •() → self::B*
;
- static method foo<Y extends core::Object* = core::Object*>() → self::A<self::B::foo::Y*>*
+ static method foo<Y extends core::Object*>() → self::A<self::B::foo::Y*>*
;
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
diff --git a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.transformed.expect
index d64170d..cd1a183 100644
--- a/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bounds_check_depends_on_inference.dart.weak.transformed.expect
@@ -6,7 +6,7 @@
synthetic constructor •() → self::A<self::A::X*>*
: super core::Object::•()
;
- method bar<generic-covariant-impl Y extends self::A::X* = self::A::X*>() → dynamic
+ method bar<generic-covariant-impl Y extends self::A::X*>() → dynamic
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
@@ -23,7 +23,7 @@
synthetic constructor •() → self::B*
: super core::Object::•()
;
- static method foo<Y extends core::Object* = core::Object*>() → self::A<self::B::foo::Y*>*
+ static method foo<Y extends core::Object*>() → self::A<self::B::foo::Y*>*
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
diff --git a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.expect b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.expect
index 1bf550a..01f1570 100644
--- a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.expect
@@ -23,7 +23,7 @@
typedef F = <Y extends core::num* = dynamic>() →* <Z extends self::A<Y*>* = dynamic>() →* dynamic;
typedef G = <Y extends core::num* = dynamic>(<Z extends self::A<Y*>* = dynamic>() →* dynamic) →* void;
-class A<X extends core::String* = core::String*> extends core::Object {
+class A<X extends core::String*> extends core::Object {
synthetic constructor •() → self::A<self::A::X*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.outline.expect b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.outline.expect
index cdad149..ffcf750 100644
--- a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.outline.expect
@@ -23,7 +23,7 @@
typedef F = <Y extends core::num* = dynamic>() →* <Z extends self::A<Y*>* = dynamic>() →* dynamic;
typedef G = <Y extends core::num* = dynamic>(<Z extends self::A<Y*>* = dynamic>() →* dynamic) →* void;
-class A<X extends core::String* = core::String*> extends core::Object {
+class A<X extends core::String*> extends core::Object {
synthetic constructor •() → self::A<self::A::X*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.transformed.expect
index 1bf550a..01f1570 100644
--- a/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bounds_check_in_typedef.dart.weak.transformed.expect
@@ -23,7 +23,7 @@
typedef F = <Y extends core::num* = dynamic>() →* <Z extends self::A<Y*>* = dynamic>() →* dynamic;
typedef G = <Y extends core::num* = dynamic>(<Z extends self::A<Y*>* = dynamic>() →* dynamic) →* void;
-class A<X extends core::String* = core::String*> extends core::Object {
+class A<X extends core::String*> extends core::Object {
synthetic constructor •() → self::A<self::A::X*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/general/bug35470.dart.weak.expect b/pkg/front_end/testcases/general/bug35470.dart.weak.expect
index 4bb1bd3..42009f8 100644
--- a/pkg/front_end/testcases/general/bug35470.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug35470.dart.weak.expect
@@ -6,7 +6,7 @@
synthetic constructor •() → self::A<self::A::X*>*
: super core::Object::•()
;
- method foo<generic-covariant-impl Y extends self::A::X* = self::A::X*>() → dynamic {}
+ method foo<generic-covariant-impl Y extends self::A::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
diff --git a/pkg/front_end/testcases/general/bug35470.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug35470.dart.weak.outline.expect
index bc8adee..bfe47d7 100644
--- a/pkg/front_end/testcases/general/bug35470.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bug35470.dart.weak.outline.expect
@@ -5,7 +5,7 @@
class A<X extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X*>*
;
- method foo<generic-covariant-impl Y extends self::A::X* = self::A::X*>() → dynamic
+ method foo<generic-covariant-impl Y extends self::A::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
diff --git a/pkg/front_end/testcases/general/bug35470.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug35470.dart.weak.transformed.expect
index 4bb1bd3..42009f8 100644
--- a/pkg/front_end/testcases/general/bug35470.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug35470.dart.weak.transformed.expect
@@ -6,7 +6,7 @@
synthetic constructor •() → self::A<self::A::X*>*
: super core::Object::•()
;
- method foo<generic-covariant-impl Y extends self::A::X* = self::A::X*>() → dynamic {}
+ method foo<generic-covariant-impl Y extends self::A::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
diff --git a/pkg/front_end/testcases/general/bug37476.dart.weak.expect b/pkg/front_end/testcases/general/bug37476.dart.weak.expect
index 112e0e4..bd16297 100644
--- a/pkg/front_end/testcases/general/bug37476.dart.weak.expect
+++ b/pkg/front_end/testcases/general/bug37476.dart.weak.expect
@@ -2,13 +2,13 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
method foo() → <S extends self::A::T* = dynamic>(S*) →* void {
core::print("foo: T = ${self::A::T*}");
- return <S extends self::A::T* = self::A::T*>(S* a) → Null {};
+ return <S extends self::A::T*>(S* a) → 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
@@ -21,7 +21,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::num* = core::num*> extends core::Object {
+class B<T extends core::num*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/general/bug37476.dart.weak.outline.expect b/pkg/front_end/testcases/general/bug37476.dart.weak.outline.expect
index 7828759..112f56d 100644
--- a/pkg/front_end/testcases/general/bug37476.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/bug37476.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
;
method foo() → <S extends self::A::T* = dynamic>(S*) →* void
@@ -18,7 +18,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::num* = core::num*> extends core::Object {
+class B<T extends core::num*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
;
method foo() → (self::B::T*) →* void
diff --git a/pkg/front_end/testcases/general/bug37476.dart.weak.transformed.expect b/pkg/front_end/testcases/general/bug37476.dart.weak.transformed.expect
index 112e0e4..bd16297 100644
--- a/pkg/front_end/testcases/general/bug37476.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/bug37476.dart.weak.transformed.expect
@@ -2,13 +2,13 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
method foo() → <S extends self::A::T* = dynamic>(S*) →* void {
core::print("foo: T = ${self::A::T*}");
- return <S extends self::A::T* = self::A::T*>(S* a) → Null {};
+ return <S extends self::A::T*>(S* a) → 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
@@ -21,7 +21,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::num* = core::num*> extends core::Object {
+class B<T extends core::num*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/general/callable_type_variable.dart.weak.expect b/pkg/front_end/testcases/general/callable_type_variable.dart.weak.expect
index a03f477..c56828e 100644
--- a/pkg/front_end/testcases/general/callable_type_variable.dart.weak.expect
+++ b/pkg/front_end/testcases/general/callable_type_variable.dart.weak.expect
@@ -13,7 +13,7 @@
import self as self;
import "dart:core" as core;
-class Class1<T extends core::Function* = core::Function*> extends core::Object {
+class Class1<T extends core::Function*> extends core::Object {
generic-covariant-impl field self::Class1::T* field;
constructor •(self::Class1::T* field) → self::Class1<self::Class1::T*>*
: self::Class1::field = field, super core::Object::•()
@@ -36,7 +36,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Class2<T extends (core::int*) →* core::String* = (core::int*) →* core::String*> extends core::Object {
+class Class2<T extends (core::int*) →* core::String*> extends core::Object {
generic-covariant-impl field self::Class2::T* field;
constructor •(self::Class2::T* field) → self::Class2<self::Class2::T*>*
: self::Class2::field = field, super core::Object::•()
diff --git a/pkg/front_end/testcases/general/callable_type_variable.dart.weak.outline.expect b/pkg/front_end/testcases/general/callable_type_variable.dart.weak.outline.expect
index 139ef5e..654c962 100644
--- a/pkg/front_end/testcases/general/callable_type_variable.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/callable_type_variable.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class Class1<T extends core::Function* = core::Function*> extends core::Object {
+class Class1<T extends core::Function*> extends core::Object {
generic-covariant-impl field self::Class1::T* field;
constructor •(self::Class1::T* field) → self::Class1<self::Class1::T*>*
;
@@ -19,7 +19,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Class2<T extends (core::int*) →* core::String* = (core::int*) →* core::String*> extends core::Object {
+class Class2<T extends (core::int*) →* core::String*> extends core::Object {
generic-covariant-impl field self::Class2::T* field;
constructor •(self::Class2::T* field) → self::Class2<self::Class2::T*>*
;
diff --git a/pkg/front_end/testcases/general/callable_type_variable.dart.weak.transformed.expect b/pkg/front_end/testcases/general/callable_type_variable.dart.weak.transformed.expect
index 6388442..f7b5cfc 100644
--- a/pkg/front_end/testcases/general/callable_type_variable.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/callable_type_variable.dart.weak.transformed.expect
@@ -13,7 +13,7 @@
import self as self;
import "dart:core" as core;
-class Class1<T extends core::Function* = core::Function*> extends core::Object {
+class Class1<T extends core::Function*> extends core::Object {
generic-covariant-impl field self::Class1::T* field;
constructor •(self::Class1::T* field) → self::Class1<self::Class1::T*>*
: self::Class1::field = field, super core::Object::•()
@@ -36,7 +36,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Class2<T extends (core::int*) →* core::String* = (core::int*) →* core::String*> extends core::Object {
+class Class2<T extends (core::int*) →* core::String*> extends core::Object {
generic-covariant-impl field self::Class2::T* field;
constructor •(self::Class2::T* field) → self::Class2<self::Class2::T*>*
: self::Class2::field = field, super core::Object::•()
diff --git a/pkg/front_end/testcases/general/clone_function_type.dart.weak.expect b/pkg/front_end/testcases/general/clone_function_type.dart.weak.expect
index a8b62fb..7453dc4 100644
--- a/pkg/front_end/testcases/general/clone_function_type.dart.weak.expect
+++ b/pkg/front_end/testcases/general/clone_function_type.dart.weak.expect
@@ -513,7 +513,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Am2<X extends () →* dynamic = () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
+class Am2<X extends () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Am2<self::Am2::X*, self::Am2::Y*>*
: super core::Object::•()
;
@@ -1128,8 +1128,8 @@
: super self::_Km3&Object&Am3::•()
;
}
-class Af1<X extends (core::int*) →* dynamic = (core::int*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::int*) →* dynamic = (core::int*) →* dynamic>() → self::Af1<self::Af1::foo::X*>*
+class Af1<X extends (core::int*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::int*) →* dynamic>() → self::Af1<self::Af1::foo::X*>*
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
@@ -1142,8 +1142,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bf1<X extends (core::int*) →* dynamic = (core::int*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::int*) →* dynamic = (core::int*) →* dynamic>() → self::Bf1<self::Bf1::foo::X*>*
+class Bf1<X extends (core::int*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::int*) →* dynamic>() → self::Bf1<self::Bf1::foo::X*>*
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
@@ -1156,8 +1156,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Cf1<X extends () →* core::int* = () →* core::int*> extends core::Object {
- static factory foo<X extends () →* core::int* = () →* core::int*>() → self::Cf1<self::Cf1::foo::X*>*
+class Cf1<X extends () →* core::int*> extends core::Object {
+ static factory foo<X extends () →* core::int*>() → self::Cf1<self::Cf1::foo::X*>*
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
@@ -1170,8 +1170,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Df1<X extends () →* dynamic = () →* dynamic> extends core::Object {
- static factory foo<X extends () →* dynamic = () →* dynamic>() → self::Df1<self::Df1::foo::X*>*
+class Df1<X extends () →* dynamic> extends core::Object {
+ static factory foo<X extends () →* dynamic>() → self::Df1<self::Df1::foo::X*>*
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
@@ -1184,8 +1184,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Ef1<X extends () →* dynamic = () →* dynamic> extends core::Object {
- static factory foo<X extends () →* dynamic = () →* dynamic>() → self::Ef1<self::Ef1::foo::X*>*
+class Ef1<X extends () →* dynamic> extends core::Object {
+ static factory foo<X extends () →* dynamic>() → self::Ef1<self::Ef1::foo::X*>*
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
@@ -1198,8 +1198,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Ff1<X extends ({x: core::int*}) →* dynamic = ({x: core::int*}) →* dynamic> extends core::Object {
- static factory foo<X extends ({x: core::int*}) →* dynamic = ({x: core::int*}) →* dynamic>() → self::Ff1<self::Ff1::foo::X*>*
+class Ff1<X extends ({x: core::int*}) →* dynamic> extends core::Object {
+ static factory foo<X extends ({x: core::int*}) →* dynamic>() → self::Ff1<self::Ff1::foo::X*>*
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
@@ -1212,8 +1212,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Gf1<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic> extends core::Object {
- static factory foo<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic>() → self::Gf1<self::Gf1::foo::X*>*
+class Gf1<X extends ([core::int*]) →* dynamic> extends core::Object {
+ static factory foo<X extends ([core::int*]) →* dynamic>() → self::Gf1<self::Gf1::foo::X*>*
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
@@ -1226,8 +1226,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Hf1<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic> extends core::Object {
- static factory foo<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic>() → self::Hf1<self::Hf1::foo::X*>*
+class Hf1<X extends ([core::int*]) →* dynamic> extends core::Object {
+ static factory foo<X extends ([core::int*]) →* dynamic>() → self::Hf1<self::Hf1::foo::X*>*
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
@@ -1240,8 +1240,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class If1<X extends core::Function* = core::Function*> extends core::Object {
- static factory foo<X extends core::Function* = core::Function*>() → self::If1<self::If1::foo::X*>*
+class If1<X extends core::Function*> extends core::Object {
+ static factory foo<X extends core::Function*>() → self::If1<self::If1::foo::X*>*
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
@@ -1254,8 +1254,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Jf1<X extends (core::Function*) →* dynamic = (core::Function*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::Function*) →* dynamic = (core::Function*) →* dynamic>() → self::Jf1<self::Jf1::foo::X*>*
+class Jf1<X extends (core::Function*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::Function*) →* dynamic>() → self::Jf1<self::Jf1::foo::X*>*
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
@@ -1268,8 +1268,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Kf1<X extends () →* (() →* core::Function*) →* dynamic = () →* (() →* core::Function*) →* dynamic> extends core::Object {
- static factory foo<X extends () →* (() →* core::Function*) →* dynamic = () →* (() →* core::Function*) →* dynamic>() → self::Kf1<self::Kf1::foo::X*>*
+class Kf1<X extends () →* (() →* core::Function*) →* dynamic> extends core::Object {
+ static factory foo<X extends () →* (() →* core::Function*) →* dynamic>() → self::Kf1<self::Kf1::foo::X*>*
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
@@ -1282,8 +1282,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bf2<X extends (core::int*) →* dynamic = (core::int*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::int*) →* dynamic = (core::int*) →* dynamic>() → self::Bf2<self::Bf2::foo::X*>*
+class Bf2<X extends (core::int*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::int*) →* dynamic>() → self::Bf2<self::Bf2::foo::X*>*
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
@@ -1296,8 +1296,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Cf2<X extends (core::int*) →* dynamic = (core::int*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::int*) →* dynamic = (core::int*) →* dynamic>() → self::Cf2<self::Cf2::foo::X*>*
+class Cf2<X extends (core::int*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::int*) →* dynamic>() → self::Cf2<self::Cf2::foo::X*>*
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
@@ -1310,8 +1310,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Df2<X extends () →* core::int* = () →* core::int*> extends core::Object {
- static factory foo<X extends () →* core::int* = () →* core::int*>() → self::Df2<self::Df2::foo::X*>*
+class Df2<X extends () →* core::int*> extends core::Object {
+ static factory foo<X extends () →* core::int*>() → self::Df2<self::Df2::foo::X*>*
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
@@ -1324,8 +1324,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Ef2<X extends () →* dynamic = () →* dynamic> extends core::Object {
- static factory foo<X extends () →* dynamic = () →* dynamic>() → self::Ef2<self::Ef2::foo::X*>*
+class Ef2<X extends () →* dynamic> extends core::Object {
+ static factory foo<X extends () →* dynamic>() → self::Ef2<self::Ef2::foo::X*>*
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
@@ -1338,8 +1338,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Ff2<X extends () →* dynamic = () →* dynamic> extends core::Object {
- static factory foo<X extends () →* dynamic = () →* dynamic>() → self::Ff2<self::Ff2::foo::X*>*
+class Ff2<X extends () →* dynamic> extends core::Object {
+ static factory foo<X extends () →* dynamic>() → self::Ff2<self::Ff2::foo::X*>*
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
@@ -1352,8 +1352,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Gf2<X extends ({x: core::int*}) →* dynamic = ({x: core::int*}) →* dynamic> extends core::Object {
- static factory foo<X extends ({x: core::int*}) →* dynamic = ({x: core::int*}) →* dynamic>() → self::Gf2<self::Gf2::foo::X*>*
+class Gf2<X extends ({x: core::int*}) →* dynamic> extends core::Object {
+ static factory foo<X extends ({x: core::int*}) →* dynamic>() → self::Gf2<self::Gf2::foo::X*>*
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
@@ -1366,8 +1366,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Hf2<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic> extends core::Object {
- static factory foo<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic>() → self::Hf2<self::Hf2::foo::X*>*
+class Hf2<X extends ([core::int*]) →* dynamic> extends core::Object {
+ static factory foo<X extends ([core::int*]) →* dynamic>() → self::Hf2<self::Hf2::foo::X*>*
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
@@ -1380,8 +1380,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class If2<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic> extends core::Object {
- static factory foo<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic>() → self::If2<self::If2::foo::X*>*
+class If2<X extends ([core::int*]) →* dynamic> extends core::Object {
+ static factory foo<X extends ([core::int*]) →* dynamic>() → self::If2<self::If2::foo::X*>*
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
@@ -1394,8 +1394,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Jf2<X extends (core::Function*) →* dynamic = (core::Function*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::Function*) →* dynamic = (core::Function*) →* dynamic>() → self::Jf2<self::Jf2::foo::X*>*
+class Jf2<X extends (core::Function*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::Function*) →* dynamic>() → self::Jf2<self::Jf2::foo::X*>*
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
@@ -1408,8 +1408,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Kf2<X extends () →* (() →* core::Function*) →* dynamic = () →* (() →* core::Function*) →* dynamic> extends core::Object {
- static factory foo<X extends () →* (() →* core::Function*) →* dynamic = () →* (() →* core::Function*) →* dynamic>() → self::Kf2<self::Kf2::foo::X*>*
+class Kf2<X extends () →* (() →* core::Function*) →* dynamic> extends core::Object {
+ static factory foo<X extends () →* (() →* core::Function*) →* dynamic>() → self::Kf2<self::Kf2::foo::X*>*
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
diff --git a/pkg/front_end/testcases/general/clone_function_type.dart.weak.outline.expect b/pkg/front_end/testcases/general/clone_function_type.dart.weak.outline.expect
index def0418..cf63a80 100644
--- a/pkg/front_end/testcases/general/clone_function_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/clone_function_type.dart.weak.outline.expect
@@ -501,7 +501,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Am2<X extends () →* dynamic = () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
+class Am2<X extends () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Am2<self::Am2::X*, self::Am2::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -1093,8 +1093,8 @@
synthetic constructor •() → self::Km3<self::Km3::Z*>*
;
}
-class Af1<X extends (core::int*) →* dynamic = (core::int*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::int*) →* dynamic = (core::int*) →* dynamic>() → self::Af1<self::Af1::foo::X*>*
+class Af1<X extends (core::int*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::int*) →* dynamic>() → self::Af1<self::Af1::foo::X*>*
;
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
@@ -1107,8 +1107,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bf1<X extends (core::int*) →* dynamic = (core::int*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::int*) →* dynamic = (core::int*) →* dynamic>() → self::Bf1<self::Bf1::foo::X*>*
+class Bf1<X extends (core::int*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::int*) →* dynamic>() → self::Bf1<self::Bf1::foo::X*>*
;
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
@@ -1121,8 +1121,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Cf1<X extends () →* core::int* = () →* core::int*> extends core::Object {
- static factory foo<X extends () →* core::int* = () →* core::int*>() → self::Cf1<self::Cf1::foo::X*>*
+class Cf1<X extends () →* core::int*> extends core::Object {
+ static factory foo<X extends () →* core::int*>() → self::Cf1<self::Cf1::foo::X*>*
;
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
@@ -1135,8 +1135,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Df1<X extends () →* dynamic = () →* dynamic> extends core::Object {
- static factory foo<X extends () →* dynamic = () →* dynamic>() → self::Df1<self::Df1::foo::X*>*
+class Df1<X extends () →* dynamic> extends core::Object {
+ static factory foo<X extends () →* dynamic>() → self::Df1<self::Df1::foo::X*>*
;
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
@@ -1149,8 +1149,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Ef1<X extends () →* dynamic = () →* dynamic> extends core::Object {
- static factory foo<X extends () →* dynamic = () →* dynamic>() → self::Ef1<self::Ef1::foo::X*>*
+class Ef1<X extends () →* dynamic> extends core::Object {
+ static factory foo<X extends () →* dynamic>() → self::Ef1<self::Ef1::foo::X*>*
;
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
@@ -1163,8 +1163,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Ff1<X extends ({x: core::int*}) →* dynamic = ({x: core::int*}) →* dynamic> extends core::Object {
- static factory foo<X extends ({x: core::int*}) →* dynamic = ({x: core::int*}) →* dynamic>() → self::Ff1<self::Ff1::foo::X*>*
+class Ff1<X extends ({x: core::int*}) →* dynamic> extends core::Object {
+ static factory foo<X extends ({x: core::int*}) →* dynamic>() → self::Ff1<self::Ff1::foo::X*>*
;
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
@@ -1177,8 +1177,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Gf1<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic> extends core::Object {
- static factory foo<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic>() → self::Gf1<self::Gf1::foo::X*>*
+class Gf1<X extends ([core::int*]) →* dynamic> extends core::Object {
+ static factory foo<X extends ([core::int*]) →* dynamic>() → self::Gf1<self::Gf1::foo::X*>*
;
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
@@ -1191,8 +1191,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Hf1<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic> extends core::Object {
- static factory foo<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic>() → self::Hf1<self::Hf1::foo::X*>*
+class Hf1<X extends ([core::int*]) →* dynamic> extends core::Object {
+ static factory foo<X extends ([core::int*]) →* dynamic>() → self::Hf1<self::Hf1::foo::X*>*
;
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
@@ -1205,8 +1205,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class If1<X extends core::Function* = core::Function*> extends core::Object {
- static factory foo<X extends core::Function* = core::Function*>() → self::If1<self::If1::foo::X*>*
+class If1<X extends core::Function*> extends core::Object {
+ static factory foo<X extends core::Function*>() → self::If1<self::If1::foo::X*>*
;
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
@@ -1219,8 +1219,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Jf1<X extends (core::Function*) →* dynamic = (core::Function*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::Function*) →* dynamic = (core::Function*) →* dynamic>() → self::Jf1<self::Jf1::foo::X*>*
+class Jf1<X extends (core::Function*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::Function*) →* dynamic>() → self::Jf1<self::Jf1::foo::X*>*
;
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
@@ -1233,8 +1233,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Kf1<X extends () →* (() →* core::Function*) →* dynamic = () →* (() →* core::Function*) →* dynamic> extends core::Object {
- static factory foo<X extends () →* (() →* core::Function*) →* dynamic = () →* (() →* core::Function*) →* dynamic>() → self::Kf1<self::Kf1::foo::X*>*
+class Kf1<X extends () →* (() →* core::Function*) →* dynamic> extends core::Object {
+ static factory foo<X extends () →* (() →* core::Function*) →* dynamic>() → self::Kf1<self::Kf1::foo::X*>*
;
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
@@ -1247,8 +1247,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bf2<X extends (core::int*) →* dynamic = (core::int*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::int*) →* dynamic = (core::int*) →* dynamic>() → self::Bf2<self::Bf2::foo::X*>*
+class Bf2<X extends (core::int*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::int*) →* dynamic>() → self::Bf2<self::Bf2::foo::X*>*
;
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
@@ -1261,8 +1261,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Cf2<X extends (core::int*) →* dynamic = (core::int*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::int*) →* dynamic = (core::int*) →* dynamic>() → self::Cf2<self::Cf2::foo::X*>*
+class Cf2<X extends (core::int*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::int*) →* dynamic>() → self::Cf2<self::Cf2::foo::X*>*
;
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
@@ -1275,8 +1275,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Df2<X extends () →* core::int* = () →* core::int*> extends core::Object {
- static factory foo<X extends () →* core::int* = () →* core::int*>() → self::Df2<self::Df2::foo::X*>*
+class Df2<X extends () →* core::int*> extends core::Object {
+ static factory foo<X extends () →* core::int*>() → self::Df2<self::Df2::foo::X*>*
;
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
@@ -1289,8 +1289,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Ef2<X extends () →* dynamic = () →* dynamic> extends core::Object {
- static factory foo<X extends () →* dynamic = () →* dynamic>() → self::Ef2<self::Ef2::foo::X*>*
+class Ef2<X extends () →* dynamic> extends core::Object {
+ static factory foo<X extends () →* dynamic>() → self::Ef2<self::Ef2::foo::X*>*
;
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
@@ -1303,8 +1303,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Ff2<X extends () →* dynamic = () →* dynamic> extends core::Object {
- static factory foo<X extends () →* dynamic = () →* dynamic>() → self::Ff2<self::Ff2::foo::X*>*
+class Ff2<X extends () →* dynamic> extends core::Object {
+ static factory foo<X extends () →* dynamic>() → self::Ff2<self::Ff2::foo::X*>*
;
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
@@ -1317,8 +1317,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Gf2<X extends ({x: core::int*}) →* dynamic = ({x: core::int*}) →* dynamic> extends core::Object {
- static factory foo<X extends ({x: core::int*}) →* dynamic = ({x: core::int*}) →* dynamic>() → self::Gf2<self::Gf2::foo::X*>*
+class Gf2<X extends ({x: core::int*}) →* dynamic> extends core::Object {
+ static factory foo<X extends ({x: core::int*}) →* dynamic>() → self::Gf2<self::Gf2::foo::X*>*
;
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
@@ -1331,8 +1331,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Hf2<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic> extends core::Object {
- static factory foo<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic>() → self::Hf2<self::Hf2::foo::X*>*
+class Hf2<X extends ([core::int*]) →* dynamic> extends core::Object {
+ static factory foo<X extends ([core::int*]) →* dynamic>() → self::Hf2<self::Hf2::foo::X*>*
;
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
@@ -1345,8 +1345,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class If2<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic> extends core::Object {
- static factory foo<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic>() → self::If2<self::If2::foo::X*>*
+class If2<X extends ([core::int*]) →* dynamic> extends core::Object {
+ static factory foo<X extends ([core::int*]) →* dynamic>() → self::If2<self::If2::foo::X*>*
;
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
@@ -1359,8 +1359,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Jf2<X extends (core::Function*) →* dynamic = (core::Function*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::Function*) →* dynamic = (core::Function*) →* dynamic>() → self::Jf2<self::Jf2::foo::X*>*
+class Jf2<X extends (core::Function*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::Function*) →* dynamic>() → self::Jf2<self::Jf2::foo::X*>*
;
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
@@ -1373,8 +1373,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Kf2<X extends () →* (() →* core::Function*) →* dynamic = () →* (() →* core::Function*) →* dynamic> extends core::Object {
- static factory foo<X extends () →* (() →* core::Function*) →* dynamic = () →* (() →* core::Function*) →* dynamic>() → self::Kf2<self::Kf2::foo::X*>*
+class Kf2<X extends () →* (() →* core::Function*) →* dynamic> extends core::Object {
+ static factory foo<X extends () →* (() →* core::Function*) →* dynamic>() → self::Kf2<self::Kf2::foo::X*>*
;
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
diff --git a/pkg/front_end/testcases/general/clone_function_type.dart.weak.transformed.expect b/pkg/front_end/testcases/general/clone_function_type.dart.weak.transformed.expect
index 7935b39..93e0a13 100644
--- a/pkg/front_end/testcases/general/clone_function_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/clone_function_type.dart.weak.transformed.expect
@@ -513,7 +513,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Am2<X extends () →* dynamic = () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
+class Am2<X extends () →* dynamic, Y extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::Am2<self::Am2::X*, self::Am2::Y*>*
: super core::Object::•()
;
@@ -1128,8 +1128,8 @@
: super self::_Km3&Object&Am3::•()
;
}
-class Af1<X extends (core::int*) →* dynamic = (core::int*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::int*) →* dynamic = (core::int*) →* dynamic>() → self::Af1<self::Af1::foo::X*>*
+class Af1<X extends (core::int*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::int*) →* dynamic>() → self::Af1<self::Af1::foo::X*>*
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
@@ -1142,8 +1142,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bf1<X extends (core::int*) →* dynamic = (core::int*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::int*) →* dynamic = (core::int*) →* dynamic>() → self::Bf1<self::Bf1::foo::X*>*
+class Bf1<X extends (core::int*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::int*) →* dynamic>() → self::Bf1<self::Bf1::foo::X*>*
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
@@ -1156,8 +1156,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Cf1<X extends () →* core::int* = () →* core::int*> extends core::Object {
- static factory foo<X extends () →* core::int* = () →* core::int*>() → self::Cf1<self::Cf1::foo::X*>*
+class Cf1<X extends () →* core::int*> extends core::Object {
+ static factory foo<X extends () →* core::int*>() → self::Cf1<self::Cf1::foo::X*>*
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
@@ -1170,8 +1170,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Df1<X extends () →* dynamic = () →* dynamic> extends core::Object {
- static factory foo<X extends () →* dynamic = () →* dynamic>() → self::Df1<self::Df1::foo::X*>*
+class Df1<X extends () →* dynamic> extends core::Object {
+ static factory foo<X extends () →* dynamic>() → self::Df1<self::Df1::foo::X*>*
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
@@ -1184,8 +1184,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Ef1<X extends () →* dynamic = () →* dynamic> extends core::Object {
- static factory foo<X extends () →* dynamic = () →* dynamic>() → self::Ef1<self::Ef1::foo::X*>*
+class Ef1<X extends () →* dynamic> extends core::Object {
+ static factory foo<X extends () →* dynamic>() → self::Ef1<self::Ef1::foo::X*>*
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
@@ -1198,8 +1198,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Ff1<X extends ({x: core::int*}) →* dynamic = ({x: core::int*}) →* dynamic> extends core::Object {
- static factory foo<X extends ({x: core::int*}) →* dynamic = ({x: core::int*}) →* dynamic>() → self::Ff1<self::Ff1::foo::X*>*
+class Ff1<X extends ({x: core::int*}) →* dynamic> extends core::Object {
+ static factory foo<X extends ({x: core::int*}) →* dynamic>() → self::Ff1<self::Ff1::foo::X*>*
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
@@ -1212,8 +1212,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Gf1<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic> extends core::Object {
- static factory foo<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic>() → self::Gf1<self::Gf1::foo::X*>*
+class Gf1<X extends ([core::int*]) →* dynamic> extends core::Object {
+ static factory foo<X extends ([core::int*]) →* dynamic>() → self::Gf1<self::Gf1::foo::X*>*
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
@@ -1226,8 +1226,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Hf1<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic> extends core::Object {
- static factory foo<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic>() → self::Hf1<self::Hf1::foo::X*>*
+class Hf1<X extends ([core::int*]) →* dynamic> extends core::Object {
+ static factory foo<X extends ([core::int*]) →* dynamic>() → self::Hf1<self::Hf1::foo::X*>*
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
@@ -1240,8 +1240,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class If1<X extends core::Function* = core::Function*> extends core::Object {
- static factory foo<X extends core::Function* = core::Function*>() → self::If1<self::If1::foo::X*>*
+class If1<X extends core::Function*> extends core::Object {
+ static factory foo<X extends core::Function*>() → self::If1<self::If1::foo::X*>*
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
@@ -1254,8 +1254,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Jf1<X extends (core::Function*) →* dynamic = (core::Function*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::Function*) →* dynamic = (core::Function*) →* dynamic>() → self::Jf1<self::Jf1::foo::X*>*
+class Jf1<X extends (core::Function*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::Function*) →* dynamic>() → self::Jf1<self::Jf1::foo::X*>*
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
@@ -1268,8 +1268,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Kf1<X extends () →* (() →* core::Function*) →* dynamic = () →* (() →* core::Function*) →* dynamic> extends core::Object {
- static factory foo<X extends () →* (() →* core::Function*) →* dynamic = () →* (() →* core::Function*) →* dynamic>() → self::Kf1<self::Kf1::foo::X*>*
+class Kf1<X extends () →* (() →* core::Function*) →* dynamic> extends core::Object {
+ static factory foo<X extends () →* (() →* core::Function*) →* dynamic>() → self::Kf1<self::Kf1::foo::X*>*
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
@@ -1282,8 +1282,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bf2<X extends (core::int*) →* dynamic = (core::int*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::int*) →* dynamic = (core::int*) →* dynamic>() → self::Bf2<self::Bf2::foo::X*>*
+class Bf2<X extends (core::int*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::int*) →* dynamic>() → self::Bf2<self::Bf2::foo::X*>*
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
@@ -1296,8 +1296,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Cf2<X extends (core::int*) →* dynamic = (core::int*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::int*) →* dynamic = (core::int*) →* dynamic>() → self::Cf2<self::Cf2::foo::X*>*
+class Cf2<X extends (core::int*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::int*) →* dynamic>() → self::Cf2<self::Cf2::foo::X*>*
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
@@ -1310,8 +1310,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Df2<X extends () →* core::int* = () →* core::int*> extends core::Object {
- static factory foo<X extends () →* core::int* = () →* core::int*>() → self::Df2<self::Df2::foo::X*>*
+class Df2<X extends () →* core::int*> extends core::Object {
+ static factory foo<X extends () →* core::int*>() → self::Df2<self::Df2::foo::X*>*
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
@@ -1324,8 +1324,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Ef2<X extends () →* dynamic = () →* dynamic> extends core::Object {
- static factory foo<X extends () →* dynamic = () →* dynamic>() → self::Ef2<self::Ef2::foo::X*>*
+class Ef2<X extends () →* dynamic> extends core::Object {
+ static factory foo<X extends () →* dynamic>() → self::Ef2<self::Ef2::foo::X*>*
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
@@ -1338,8 +1338,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Ff2<X extends () →* dynamic = () →* dynamic> extends core::Object {
- static factory foo<X extends () →* dynamic = () →* dynamic>() → self::Ff2<self::Ff2::foo::X*>*
+class Ff2<X extends () →* dynamic> extends core::Object {
+ static factory foo<X extends () →* dynamic>() → self::Ff2<self::Ff2::foo::X*>*
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
@@ -1352,8 +1352,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Gf2<X extends ({x: core::int*}) →* dynamic = ({x: core::int*}) →* dynamic> extends core::Object {
- static factory foo<X extends ({x: core::int*}) →* dynamic = ({x: core::int*}) →* dynamic>() → self::Gf2<self::Gf2::foo::X*>*
+class Gf2<X extends ({x: core::int*}) →* dynamic> extends core::Object {
+ static factory foo<X extends ({x: core::int*}) →* dynamic>() → self::Gf2<self::Gf2::foo::X*>*
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
@@ -1366,8 +1366,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Hf2<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic> extends core::Object {
- static factory foo<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic>() → self::Hf2<self::Hf2::foo::X*>*
+class Hf2<X extends ([core::int*]) →* dynamic> extends core::Object {
+ static factory foo<X extends ([core::int*]) →* dynamic>() → self::Hf2<self::Hf2::foo::X*>*
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
@@ -1380,8 +1380,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class If2<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic> extends core::Object {
- static factory foo<X extends ([core::int*]) →* dynamic = ([core::int*]) →* dynamic>() → self::If2<self::If2::foo::X*>*
+class If2<X extends ([core::int*]) →* dynamic> extends core::Object {
+ static factory foo<X extends ([core::int*]) →* dynamic>() → self::If2<self::If2::foo::X*>*
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
@@ -1394,8 +1394,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Jf2<X extends (core::Function*) →* dynamic = (core::Function*) →* dynamic> extends core::Object {
- static factory foo<X extends (core::Function*) →* dynamic = (core::Function*) →* dynamic>() → self::Jf2<self::Jf2::foo::X*>*
+class Jf2<X extends (core::Function*) →* dynamic> extends core::Object {
+ static factory foo<X extends (core::Function*) →* dynamic>() → self::Jf2<self::Jf2::foo::X*>*
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
@@ -1408,8 +1408,8 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Kf2<X extends () →* (() →* core::Function*) →* dynamic = () →* (() →* core::Function*) →* dynamic> extends core::Object {
- static factory foo<X extends () →* (() →* core::Function*) →* dynamic = () →* (() →* core::Function*) →* dynamic>() → self::Kf2<self::Kf2::foo::X*>*
+class Kf2<X extends () →* (() →* core::Function*) →* dynamic> extends core::Object {
+ static factory foo<X extends () →* (() →* core::Function*) →* dynamic>() → self::Kf2<self::Kf2::foo::X*>*
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
diff --git a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.expect b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.expect
index 19ac8c4..79836e1 100644
--- a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.expect
+++ b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.expect
@@ -32,7 +32,7 @@
: super self::C::•()
;
}
-class G<T extends self::A* = self::A*> extends core::Object {
+class G<T extends self::A*> extends core::Object {
synthetic constructor •() → self::G<self::G::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.outline.expect b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.outline.expect
index f0e2f4b..ec0b3ec 100644
--- a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.outline.expect
@@ -28,7 +28,7 @@
synthetic constructor •() → self::D*
;
}
-class G<T extends self::A* = self::A*> extends core::Object {
+class G<T extends self::A*> extends core::Object {
synthetic constructor •() → self::G<self::G::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.transformed.expect b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.transformed.expect
index 19ac8c4..79836e1 100644
--- a/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/complex_class_hierarchy.dart.weak.transformed.expect
@@ -32,7 +32,7 @@
: super self::C::•()
;
}
-class G<T extends self::A* = self::A*> extends core::Object {
+class G<T extends self::A*> extends core::Object {
synthetic constructor •() → self::G<self::G::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.weak.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.weak.expect
index 5716a4f..3144a2d 100644
--- a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.weak.expect
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.weak.expect
@@ -93,7 +93,7 @@
operator unary-() → self::C
return this;
}
-class Class<T extends self::A = self::A> extends core::Object /*hasConstConstructor*/ {
+class Class<T extends self::A> extends core::Object /*hasConstConstructor*/ {
const constructor •(self::Class::T t) → self::Class<self::Class::T>
: super core::Object::•()
;
@@ -107,7 +107,7 @@
^" in t.{self::A::unary-}(){() → self::A} as{TypeError,ForNonNullableByDefault} Never)
;
}
-class Subclass<T extends self::A = self::A> extends self::Class<self::Subclass::T> /*hasConstConstructor*/ {
+class Subclass<T extends self::A> extends self::Class<self::Subclass::T> /*hasConstConstructor*/ {
const constructor •(dynamic t) → self::Subclass<self::Subclass::T>
: super self::Class::•(t as{TypeError,ForDynamic,ForNonNullableByDefault} self::Subclass::T)
;
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.weak.outline.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.weak.outline.expect
index 3afb32d..247eb18 100644
--- a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.weak.outline.expect
@@ -65,7 +65,7 @@
operator unary-() → self::C
;
}
-class Class<T extends self::A = self::A> extends core::Object /*hasConstConstructor*/ {
+class Class<T extends self::A> extends core::Object /*hasConstConstructor*/ {
const constructor •(self::Class::T t) → self::Class<self::Class::T>
: super core::Object::•()
;
@@ -79,7 +79,7 @@
^" in t.{self::A::unary-}(){() → self::A} as{TypeError,ForNonNullableByDefault} Never)
;
}
-class Subclass<T extends self::A = self::A> extends self::Class<self::Subclass::T> /*hasConstConstructor*/ {
+class Subclass<T extends self::A> extends self::Class<self::Subclass::T> /*hasConstConstructor*/ {
const constructor •(dynamic t) → self::Subclass<self::Subclass::T>
: super self::Class::•(t as{TypeError,ForDynamic,ForNonNullableByDefault} self::Subclass::T)
;
diff --git a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.weak.transformed.expect b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.weak.transformed.expect
index cc4f2ae..bb6d767 100644
--- a/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/constants/with_unevaluated_agnostic/various.dart.weak.transformed.expect
@@ -93,7 +93,7 @@
operator unary-() → self::C
return this;
}
-class Class<T extends self::A = self::A> extends core::Object /*hasConstConstructor*/ {
+class Class<T extends self::A> extends core::Object /*hasConstConstructor*/ {
const constructor •(self::Class::T t) → self::Class<self::Class::T>
: super core::Object::•()
;
@@ -107,7 +107,7 @@
^" in t.{self::A::unary-}(){() → self::A} as{TypeError,ForNonNullableByDefault} Never)
;
}
-class Subclass<T extends self::A = self::A> extends self::Class<self::Subclass::T> /*hasConstConstructor*/ {
+class Subclass<T extends self::A> extends self::Class<self::Subclass::T> /*hasConstConstructor*/ {
const constructor •(dynamic t) → self::Subclass<self::Subclass::T>
: super self::Class::•(t as{TypeError,ForDynamic,ForNonNullableByDefault} self::Subclass::T)
;
diff --git a/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.expect b/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.expect
index 02336a0..4ba2d78 100644
--- a/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.expect
+++ b/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.expect
@@ -6,7 +6,7 @@
synthetic constructor •() → self::A<self::A::S*>*
: super core::Object::•()
;
- method method<generic-covariant-impl T extends self::A::S* = self::A::S*>(generic-covariant-impl self::A::S* s) → void {}
+ method method<generic-covariant-impl T extends self::A::S*>(generic-covariant-impl self::A::S* s) → 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
@@ -22,7 +22,7 @@
synthetic constructor •() → self::B<self::B::S*>*
: super core::Object::•()
;
- method method<generic-covariant-impl T extends self::B::S* = self::B::S*>(covariant generic-covariant-impl self::B::S* s) → void {}
+ method method<generic-covariant-impl T extends self::B::S*>(covariant generic-covariant-impl self::B::S* s) → 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
@@ -38,14 +38,14 @@
synthetic constructor •() → self::C<self::C::S*>*
: super self::A::•()
;
- forwarding-stub forwarding-semi-stub method method<generic-covariant-impl T extends self::C::S* = self::C::S*>(covariant generic-covariant-impl self::C::S* s) → void
+ forwarding-stub forwarding-semi-stub method method<generic-covariant-impl T extends self::C::S*>(covariant generic-covariant-impl self::C::S* s) → void
return super.{self::A::method}<self::C::method::T*>(s);
}
class D<S extends core::Object* = dynamic> extends self::A<self::D::S*> implements self::B<self::D::S*> {
synthetic constructor •() → self::D<self::D::S*>*
: super self::A::•()
;
- forwarding-stub method method<generic-covariant-impl T extends self::D::S* = self::D::S*>(covariant generic-covariant-impl self::D::S* s) → void
+ forwarding-stub method method<generic-covariant-impl T extends self::D::S*>(covariant generic-covariant-impl self::D::S* s) → void
return super.{self::A::method}<self::D::method::T*>(s);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.outline.expect b/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.outline.expect
index 7b6fa81..066d863 100644
--- a/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.outline.expect
@@ -5,7 +5,7 @@
class A<S extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::S*>*
;
- method method<generic-covariant-impl T extends self::A::S* = self::A::S*>(generic-covariant-impl self::A::S* s) → void
+ method method<generic-covariant-impl T extends self::A::S*>(generic-covariant-impl self::A::S* s) → 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
@@ -21,7 +21,7 @@
class B<S extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::S*>*
;
- method method<generic-covariant-impl T extends self::B::S* = self::B::S*>(covariant generic-covariant-impl self::B::S* s) → void
+ method method<generic-covariant-impl T extends self::B::S*>(covariant generic-covariant-impl self::B::S* s) → 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
@@ -37,13 +37,13 @@
class C<S extends core::Object* = dynamic> extends self::A<self::C::S*> implements self::B<self::C::S*> {
synthetic constructor •() → self::C<self::C::S*>*
;
- forwarding-stub forwarding-semi-stub method method<generic-covariant-impl T extends self::C::S* = self::C::S*>(covariant generic-covariant-impl self::C::S* s) → void
+ forwarding-stub forwarding-semi-stub method method<generic-covariant-impl T extends self::C::S*>(covariant generic-covariant-impl self::C::S* s) → void
return super.{self::A::method}<self::C::method::T*>(s);
}
class D<S extends core::Object* = dynamic> extends self::A<self::D::S*> implements self::B<self::D::S*> {
synthetic constructor •() → self::D<self::D::S*>*
;
- forwarding-stub method method<generic-covariant-impl T extends self::D::S* = self::D::S*>(covariant generic-covariant-impl self::D::S* s) → void
+ forwarding-stub method method<generic-covariant-impl T extends self::D::S*>(covariant generic-covariant-impl self::D::S* s) → void
return super.{self::A::method}<self::D::method::T*>(s);
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.transformed.expect b/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.transformed.expect
index 02336a0..4ba2d78 100644
--- a/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/covariant_type_parameter.dart.weak.transformed.expect
@@ -6,7 +6,7 @@
synthetic constructor •() → self::A<self::A::S*>*
: super core::Object::•()
;
- method method<generic-covariant-impl T extends self::A::S* = self::A::S*>(generic-covariant-impl self::A::S* s) → void {}
+ method method<generic-covariant-impl T extends self::A::S*>(generic-covariant-impl self::A::S* s) → 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
@@ -22,7 +22,7 @@
synthetic constructor •() → self::B<self::B::S*>*
: super core::Object::•()
;
- method method<generic-covariant-impl T extends self::B::S* = self::B::S*>(covariant generic-covariant-impl self::B::S* s) → void {}
+ method method<generic-covariant-impl T extends self::B::S*>(covariant generic-covariant-impl self::B::S* s) → 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
@@ -38,14 +38,14 @@
synthetic constructor •() → self::C<self::C::S*>*
: super self::A::•()
;
- forwarding-stub forwarding-semi-stub method method<generic-covariant-impl T extends self::C::S* = self::C::S*>(covariant generic-covariant-impl self::C::S* s) → void
+ forwarding-stub forwarding-semi-stub method method<generic-covariant-impl T extends self::C::S*>(covariant generic-covariant-impl self::C::S* s) → void
return super.{self::A::method}<self::C::method::T*>(s);
}
class D<S extends core::Object* = dynamic> extends self::A<self::D::S*> implements self::B<self::D::S*> {
synthetic constructor •() → self::D<self::D::S*>*
: super self::A::•()
;
- forwarding-stub method method<generic-covariant-impl T extends self::D::S* = self::D::S*>(covariant generic-covariant-impl self::D::S* s) → void
+ forwarding-stub method method<generic-covariant-impl T extends self::D::S*>(covariant generic-covariant-impl self::D::S* s) → void
return super.{self::A::method}<self::D::method::T*>(s);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/general/crashes/crash_05/main.dart.weak.expect b/pkg/front_end/testcases/general/crashes/crash_05/main.dart.weak.expect
index cd6f676..ab69e1b 100644
--- a/pkg/front_end/testcases/general/crashes/crash_05/main.dart.weak.expect
+++ b/pkg/front_end/testcases/general/crashes/crash_05/main.dart.weak.expect
@@ -94,5 +94,5 @@
;
method handleEvent(invalid-type event, covariant invalid-type entry) → void {}
}
-abstract class RenderObjectWithChildMixin<ChildType extends mai::RenderObject = mai::RenderObject> extends mai::RenderObject /*isMixinDeclaration*/ {
+abstract class RenderObjectWithChildMixin<ChildType extends mai::RenderObject> extends mai::RenderObject /*isMixinDeclaration*/ {
}
diff --git a/pkg/front_end/testcases/general/crashes/crash_05/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/crashes/crash_05/main.dart.weak.outline.expect
index db57999..bac955b 100644
--- a/pkg/front_end/testcases/general/crashes/crash_05/main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/crashes/crash_05/main.dart.weak.outline.expect
@@ -81,5 +81,5 @@
method handleEvent(invalid-type event, covariant invalid-type entry) → void
;
}
-abstract class RenderObjectWithChildMixin<ChildType extends mai::RenderObject = mai::RenderObject> extends mai::RenderObject /*isMixinDeclaration*/ {
+abstract class RenderObjectWithChildMixin<ChildType extends mai::RenderObject> extends mai::RenderObject /*isMixinDeclaration*/ {
}
diff --git a/pkg/front_end/testcases/general/crashes/crash_05/main.dart.weak.transformed.expect b/pkg/front_end/testcases/general/crashes/crash_05/main.dart.weak.transformed.expect
index 6019bb4..89640c3 100644
--- a/pkg/front_end/testcases/general/crashes/crash_05/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/crashes/crash_05/main.dart.weak.transformed.expect
@@ -94,5 +94,5 @@
;
method handleEvent(invalid-type event, covariant invalid-type entry) → void {}
}
-abstract class RenderObjectWithChildMixin<ChildType extends mai::RenderObject = mai::RenderObject> extends mai::RenderObject /*isMixinDeclaration*/ {
+abstract class RenderObjectWithChildMixin<ChildType extends mai::RenderObject> extends mai::RenderObject /*isMixinDeclaration*/ {
}
diff --git a/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.expect b/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.expect
index 9db3393..8ead278 100644
--- a/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.expect
+++ b/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.expect
@@ -44,7 +44,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _Class1&S&Mixin<T extends core::Object* = dynamic, S extends self::SuperClass* = self::SuperClass*> = core::Object with self::Mixin<self::_Class1&S&Mixin::T*> /*isAnonymousMixin*/ {
+abstract class _Class1&S&Mixin<T extends core::Object* = dynamic, S extends self::SuperClass*> = core::Object with self::Mixin<self::_Class1&S&Mixin::T*> /*isAnonymousMixin*/ {
synthetic constructor •() → self::_Class1&S&Mixin<self::_Class1&S&Mixin::T*, self::_Class1&S&Mixin::S*>*
: super core::Object::•()
;
@@ -59,7 +59,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Class1<T extends core::Object* = dynamic, S extends self::SuperClass* = self::SuperClass*> extends self::_Class1&S&Mixin<self::Class1::T*, self::Class1::S*> {
+class Class1<T extends core::Object* = dynamic, S extends self::SuperClass*> extends self::_Class1&S&Mixin<self::Class1::T*, self::Class1::S*> {
synthetic constructor •() → self::Class1<self::Class1::T*, self::Class1::S*>*
: super self::_Class1&S&Mixin::•()
;
diff --git a/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.outline.expect b/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.outline.expect
index c70de66..c6193d3 100644
--- a/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.outline.expect
@@ -43,7 +43,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _Class1&S&Mixin<T extends core::Object* = dynamic, S extends self::SuperClass* = self::SuperClass*> = core::Object with self::Mixin<self::_Class1&S&Mixin::T*> /*isAnonymousMixin*/ {
+abstract class _Class1&S&Mixin<T extends core::Object* = dynamic, S extends self::SuperClass*> = core::Object with self::Mixin<self::_Class1&S&Mixin::T*> /*isAnonymousMixin*/ {
synthetic constructor •() → self::_Class1&S&Mixin<self::_Class1&S&Mixin::T*, self::_Class1&S&Mixin::S*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -57,7 +57,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Class1<T extends core::Object* = dynamic, S extends self::SuperClass* = self::SuperClass*> extends self::_Class1&S&Mixin<self::Class1::T*, self::Class1::S*> {
+class Class1<T extends core::Object* = dynamic, S extends self::SuperClass*> extends self::_Class1&S&Mixin<self::Class1::T*, self::Class1::S*> {
synthetic constructor •() → self::Class1<self::Class1::T*, self::Class1::S*>*
;
}
diff --git a/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.transformed.expect b/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.transformed.expect
index a62c5b1..3c6fc51 100644
--- a/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/extend_with_type_variable.dart.weak.transformed.expect
@@ -44,7 +44,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _Class1&S&Mixin<T extends core::Object* = dynamic, S extends self::SuperClass* = self::SuperClass*> extends core::Object implements self::Mixin<self::_Class1&S&Mixin::T*> /*isAnonymousMixin,isEliminatedMixin*/ {
+abstract class _Class1&S&Mixin<T extends core::Object* = dynamic, S extends self::SuperClass*> extends core::Object implements self::Mixin<self::_Class1&S&Mixin::T*> /*isAnonymousMixin,isEliminatedMixin*/ {
synthetic constructor •() → self::_Class1&S&Mixin<self::_Class1&S&Mixin::T*, self::_Class1&S&Mixin::S*>*
: super core::Object::•()
;
@@ -59,7 +59,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Class1<T extends core::Object* = dynamic, S extends self::SuperClass* = self::SuperClass*> extends self::_Class1&S&Mixin<self::Class1::T*, self::Class1::S*> {
+class Class1<T extends core::Object* = dynamic, S extends self::SuperClass*> extends self::_Class1&S&Mixin<self::Class1::T*, self::Class1::S*> {
synthetic constructor •() → self::Class1<self::Class1::T*, self::Class1::S*>*
: super self::_Class1&S&Mixin::•()
;
diff --git a/pkg/front_end/testcases/general/flutter_issue68092/main.dart.weak.expect b/pkg/front_end/testcases/general/flutter_issue68092/main.dart.weak.expect
index 317b261..06e24b0 100644
--- a/pkg/front_end/testcases/general/flutter_issue68092/main.dart.weak.expect
+++ b/pkg/front_end/testcases/general/flutter_issue68092/main.dart.weak.expect
@@ -15,7 +15,7 @@
import self as mai;
import "dart:core" as core;
-class DynamicDispatchRegistry<T extends core::Function* = core::Function*> extends core::Object {
+class DynamicDispatchRegistry<T extends core::Function*> extends core::Object {
synthetic constructor •() → mai::DynamicDispatchRegistry<mai::DynamicDispatchRegistry::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/general/flutter_issue68092/main.dart.weak.outline.expect b/pkg/front_end/testcases/general/flutter_issue68092/main.dart.weak.outline.expect
index cfc2e45..63c1b76 100644
--- a/pkg/front_end/testcases/general/flutter_issue68092/main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/flutter_issue68092/main.dart.weak.outline.expect
@@ -10,7 +10,7 @@
import self as self2;
import "dart:core" as core;
-class DynamicDispatchRegistry<T extends core::Function* = core::Function*> extends core::Object {
+class DynamicDispatchRegistry<T extends core::Function*> extends core::Object {
synthetic constructor •() → self2::DynamicDispatchRegistry<self2::DynamicDispatchRegistry::T*>*
;
method register(generic-covariant-impl self2::DynamicDispatchRegistry::T* function) → self2::DynamicDispatchRegistry::T*
diff --git a/pkg/front_end/testcases/general/flutter_issue68092/main.dart.weak.transformed.expect b/pkg/front_end/testcases/general/flutter_issue68092/main.dart.weak.transformed.expect
index 317b261..06e24b0 100644
--- a/pkg/front_end/testcases/general/flutter_issue68092/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/flutter_issue68092/main.dart.weak.transformed.expect
@@ -15,7 +15,7 @@
import self as mai;
import "dart:core" as core;
-class DynamicDispatchRegistry<T extends core::Function* = core::Function*> extends core::Object {
+class DynamicDispatchRegistry<T extends core::Function*> extends core::Object {
synthetic constructor •() → mai::DynamicDispatchRegistry<mai::DynamicDispatchRegistry::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/general/function_invocation_bounds.dart.weak.expect b/pkg/front_end/testcases/general/function_invocation_bounds.dart.weak.expect
index ea6f457..fa6936b 100644
--- a/pkg/front_end/testcases/general/function_invocation_bounds.dart.weak.expect
+++ b/pkg/front_end/testcases/general/function_invocation_bounds.dart.weak.expect
@@ -35,7 +35,7 @@
typedef G<invariant T extends core::Object? = dynamic> = (T%) → T%;
static method test() → dynamic {
- function local<T extends core::num = core::num>(T t) → T
+ function local<T extends core::num>(T t) → T
return t;
local.call<core::String>("");
local.call<core::String>(throw "");
@@ -44,7 +44,7 @@
let final Never #t1 = invalid-expression "pkg/front_end/testcases/general/function_invocation_bounds.dart:13:8: Error: Expected 1 type arguments.
local<int, String>(throw '');
^" in local.call<core::int, core::String>(throw "");
- <T extends core::num = core::num>(T) → T f = local;
+ <T extends core::num>(T) → T f = local;
f.call<core::String>("");
f.call<core::String>(throw "");
f.call<core::int>(0);
diff --git a/pkg/front_end/testcases/general/function_type_assignments.dart.weak.expect b/pkg/front_end/testcases/general/function_type_assignments.dart.weak.expect
index a1f9842..0d92c04 100644
--- a/pkg/front_end/testcases/general/function_type_assignments.dart.weak.expect
+++ b/pkg/front_end/testcases/general/function_type_assignments.dart.weak.expect
@@ -32,7 +32,7 @@
^" in (#C3) as{TypeError} core::String*;
static method identity<T extends core::Object* = dynamic>(self::identity::T* t) → self::identity::T*
return t;
-static method identityObject<T extends core::Object* = core::Object*>(self::identityObject::T* t) → self::identityObject::T*
+static method identityObject<T extends core::Object*>(self::identityObject::T* t) → self::identityObject::T*
return t;
static method identityList<T extends core::List<self::identityList::T*>* = core::List<dynamic>*>(self::identityList::T* t) → self::identityList::T*
return t;
diff --git a/pkg/front_end/testcases/general/function_type_assignments.dart.weak.outline.expect b/pkg/front_end/testcases/general/function_type_assignments.dart.weak.outline.expect
index 1e430dd..3d00d77 100644
--- a/pkg/front_end/testcases/general/function_type_assignments.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/function_type_assignments.dart.weak.outline.expect
@@ -7,7 +7,7 @@
static field core::String* z;
static method identity<T extends core::Object* = dynamic>(self::identity::T* t) → self::identity::T*
;
-static method identityObject<T extends core::Object* = core::Object*>(self::identityObject::T* t) → self::identityObject::T*
+static method identityObject<T extends core::Object*>(self::identityObject::T* t) → self::identityObject::T*
;
static method identityList<T extends core::List<self::identityList::T*>* = core::List<dynamic>*>(self::identityList::T* t) → self::identityList::T*
;
diff --git a/pkg/front_end/testcases/general/function_type_assignments.dart.weak.transformed.expect b/pkg/front_end/testcases/general/function_type_assignments.dart.weak.transformed.expect
index a1f9842..0d92c04 100644
--- a/pkg/front_end/testcases/general/function_type_assignments.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/function_type_assignments.dart.weak.transformed.expect
@@ -32,7 +32,7 @@
^" in (#C3) as{TypeError} core::String*;
static method identity<T extends core::Object* = dynamic>(self::identity::T* t) → self::identity::T*
return t;
-static method identityObject<T extends core::Object* = core::Object*>(self::identityObject::T* t) → self::identityObject::T*
+static method identityObject<T extends core::Object*>(self::identityObject::T* t) → self::identityObject::T*
return t;
static method identityList<T extends core::List<self::identityList::T*>* = core::List<dynamic>*>(self::identityList::T* t) → self::identityList::T*
return t;
diff --git a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.expect b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.expect
index 0b9eef2..96838f0 100644
--- a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.expect
+++ b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.expect
@@ -9,7 +9,7 @@
import self as self;
import "dart:core" as core;
-static method add<A extends core::num* = core::num*, B extends core::num* = core::num*>(self::add::A* a, self::add::B* b) → core::num*
+static method add<A extends core::num*, B extends core::num*>(self::add::A* a, self::add::B* b) → core::num*
return a.{core::num::+}(b);
static method test() → dynamic {
core::int* x = let final Never* #t1 = invalid-expression "pkg/front_end/testcases/general/generic_function_type_in_message.dart:8:11: Error: A value of type 'num Function<A extends num, B extends num>(A, B)' can't be assigned to a variable of type 'int'.
diff --git a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.outline.expect b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.outline.expect
index c236efd..36becbd 100644
--- a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-static method add<A extends core::num* = core::num*, B extends core::num* = core::num*>(self::add::A* a, self::add::B* b) → core::num*
+static method add<A extends core::num*, B extends core::num*>(self::add::A* a, self::add::B* b) → core::num*
;
static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.transformed.expect b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.transformed.expect
index 0b9eef2..96838f0 100644
--- a/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/generic_function_type_in_message.dart.weak.transformed.expect
@@ -9,7 +9,7 @@
import self as self;
import "dart:core" as core;
-static method add<A extends core::num* = core::num*, B extends core::num* = core::num*>(self::add::A* a, self::add::B* b) → core::num*
+static method add<A extends core::num*, B extends core::num*>(self::add::A* a, self::add::B* b) → core::num*
return a.{core::num::+}(b);
static method test() → dynamic {
core::int* x = let final Never* #t1 = invalid-expression "pkg/front_end/testcases/general/generic_function_type_in_message.dart:8:11: Error: A value of type 'num Function<A extends num, B extends num>(A, B)' can't be assigned to a variable of type 'int'.
diff --git a/pkg/front_end/testcases/general/generic_function_typedef.dart.weak.expect b/pkg/front_end/testcases/general/generic_function_typedef.dart.weak.expect
index adf2f0d..509ac9e 100644
--- a/pkg/front_end/testcases/general/generic_function_typedef.dart.weak.expect
+++ b/pkg/front_end/testcases/general/generic_function_typedef.dart.weak.expect
@@ -3,11 +3,11 @@
import "dart:core" as core;
typedef E1<unrelated T extends core::Object* = dynamic> = () →* void;
-typedef E2<unrelated T extends core::num* = core::num*> = () →* void;
+typedef E2<unrelated T extends core::num*> = () →* void;
typedef E3<unrelated T extends core::Object* = dynamic, unrelated S extends core::Object* = dynamic> = () →* void;
-typedef E4<unrelated T extends core::num* = core::num*, unrelated S extends core::num* = core::num*> = () →* void;
-typedef E5<unrelated T extends S* = core::num*, unrelated S extends core::num* = core::num*> = () →* void;
-typedef E6<unrelated T extends core::num* = core::num*, unrelated S extends T* = core::num*> = () →* void;
+typedef E4<unrelated T extends core::num*, unrelated S extends core::num*> = () →* void;
+typedef E5<unrelated T extends S* = core::num*, unrelated S extends core::num*> = () →* void;
+typedef E6<unrelated T extends core::num*, unrelated S extends T* = core::num*> = () →* void;
typedef F1 = <T extends core::Object* = dynamic>() →* void;
typedef F2 = <T extends core::num* = dynamic>() →* void;
typedef F3 = <T extends core::Object* = dynamic, S extends core::Object* = dynamic>() →* void;
@@ -15,11 +15,11 @@
typedef F5 = <T extends S* = dynamic, S extends core::num* = dynamic>() →* void;
typedef F6 = <T extends core::num* = dynamic, S extends T* = dynamic>() →* void;
typedef G1<invariant X extends core::Object* = dynamic> = <T extends X* = dynamic>() →* void;
-typedef G2<invariant X extends core::num* = core::num*> = <T extends X* = dynamic>() →* void;
+typedef G2<invariant X extends core::num*> = <T extends X* = dynamic>() →* void;
typedef G3<invariant X extends core::Object* = dynamic, invariant Y extends core::Object* = dynamic> = <T extends X* = dynamic, S extends Y* = dynamic>() →* void;
-typedef G4<invariant X extends core::num* = core::num*, invariant Y extends core::num* = core::num*> = <T extends X* = dynamic, S extends Y* = dynamic>() →* void;
-typedef G5<invariant X extends core::num* = core::num*> = <T extends S* = dynamic, S extends X* = dynamic>() →* void;
-typedef G6<invariant X extends core::num* = core::num*> = <T extends X* = dynamic, S extends T* = dynamic>() →* void;
+typedef G4<invariant X extends core::num*, invariant Y extends core::num*> = <T extends X* = dynamic, S extends Y* = dynamic>() →* void;
+typedef G5<invariant X extends core::num*> = <T extends S* = dynamic, S extends X* = dynamic>() →* void;
+typedef G6<invariant X extends core::num*> = <T extends X* = dynamic, S extends T* = dynamic>() →* void;
typedef H1 = (<T extends core::Object* = dynamic>() →* void) →* void;
typedef H2 = (<T extends core::num* = dynamic>() →* void) →* void;
typedef H3 = (<T extends core::Object* = dynamic, S extends core::Object* = dynamic>() →* void) →* void;
diff --git a/pkg/front_end/testcases/general/generic_function_typedef.dart.weak.outline.expect b/pkg/front_end/testcases/general/generic_function_typedef.dart.weak.outline.expect
index 338c05f..cb01afe 100644
--- a/pkg/front_end/testcases/general/generic_function_typedef.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/generic_function_typedef.dart.weak.outline.expect
@@ -3,11 +3,11 @@
import "dart:core" as core;
typedef E1<unrelated T extends core::Object* = dynamic> = () →* void;
-typedef E2<unrelated T extends core::num* = core::num*> = () →* void;
+typedef E2<unrelated T extends core::num*> = () →* void;
typedef E3<unrelated T extends core::Object* = dynamic, unrelated S extends core::Object* = dynamic> = () →* void;
-typedef E4<unrelated T extends core::num* = core::num*, unrelated S extends core::num* = core::num*> = () →* void;
-typedef E5<unrelated T extends S* = core::num*, unrelated S extends core::num* = core::num*> = () →* void;
-typedef E6<unrelated T extends core::num* = core::num*, unrelated S extends T* = core::num*> = () →* void;
+typedef E4<unrelated T extends core::num*, unrelated S extends core::num*> = () →* void;
+typedef E5<unrelated T extends S* = core::num*, unrelated S extends core::num*> = () →* void;
+typedef E6<unrelated T extends core::num*, unrelated S extends T* = core::num*> = () →* void;
typedef F1 = <T extends core::Object* = dynamic>() →* void;
typedef F2 = <T extends core::num* = dynamic>() →* void;
typedef F3 = <T extends core::Object* = dynamic, S extends core::Object* = dynamic>() →* void;
@@ -15,11 +15,11 @@
typedef F5 = <T extends S* = dynamic, S extends core::num* = dynamic>() →* void;
typedef F6 = <T extends core::num* = dynamic, S extends T* = dynamic>() →* void;
typedef G1<invariant X extends core::Object* = dynamic> = <T extends X* = dynamic>() →* void;
-typedef G2<invariant X extends core::num* = core::num*> = <T extends X* = dynamic>() →* void;
+typedef G2<invariant X extends core::num*> = <T extends X* = dynamic>() →* void;
typedef G3<invariant X extends core::Object* = dynamic, invariant Y extends core::Object* = dynamic> = <T extends X* = dynamic, S extends Y* = dynamic>() →* void;
-typedef G4<invariant X extends core::num* = core::num*, invariant Y extends core::num* = core::num*> = <T extends X* = dynamic, S extends Y* = dynamic>() →* void;
-typedef G5<invariant X extends core::num* = core::num*> = <T extends S* = dynamic, S extends X* = dynamic>() →* void;
-typedef G6<invariant X extends core::num* = core::num*> = <T extends X* = dynamic, S extends T* = dynamic>() →* void;
+typedef G4<invariant X extends core::num*, invariant Y extends core::num*> = <T extends X* = dynamic, S extends Y* = dynamic>() →* void;
+typedef G5<invariant X extends core::num*> = <T extends S* = dynamic, S extends X* = dynamic>() →* void;
+typedef G6<invariant X extends core::num*> = <T extends X* = dynamic, S extends T* = dynamic>() →* void;
typedef H1 = (<T extends core::Object* = dynamic>() →* void) →* void;
typedef H2 = (<T extends core::num* = dynamic>() →* void) →* void;
typedef H3 = (<T extends core::Object* = dynamic, S extends core::Object* = dynamic>() →* void) →* void;
diff --git a/pkg/front_end/testcases/general/generic_function_typedef.dart.weak.transformed.expect b/pkg/front_end/testcases/general/generic_function_typedef.dart.weak.transformed.expect
index adf2f0d..509ac9e 100644
--- a/pkg/front_end/testcases/general/generic_function_typedef.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/generic_function_typedef.dart.weak.transformed.expect
@@ -3,11 +3,11 @@
import "dart:core" as core;
typedef E1<unrelated T extends core::Object* = dynamic> = () →* void;
-typedef E2<unrelated T extends core::num* = core::num*> = () →* void;
+typedef E2<unrelated T extends core::num*> = () →* void;
typedef E3<unrelated T extends core::Object* = dynamic, unrelated S extends core::Object* = dynamic> = () →* void;
-typedef E4<unrelated T extends core::num* = core::num*, unrelated S extends core::num* = core::num*> = () →* void;
-typedef E5<unrelated T extends S* = core::num*, unrelated S extends core::num* = core::num*> = () →* void;
-typedef E6<unrelated T extends core::num* = core::num*, unrelated S extends T* = core::num*> = () →* void;
+typedef E4<unrelated T extends core::num*, unrelated S extends core::num*> = () →* void;
+typedef E5<unrelated T extends S* = core::num*, unrelated S extends core::num*> = () →* void;
+typedef E6<unrelated T extends core::num*, unrelated S extends T* = core::num*> = () →* void;
typedef F1 = <T extends core::Object* = dynamic>() →* void;
typedef F2 = <T extends core::num* = dynamic>() →* void;
typedef F3 = <T extends core::Object* = dynamic, S extends core::Object* = dynamic>() →* void;
@@ -15,11 +15,11 @@
typedef F5 = <T extends S* = dynamic, S extends core::num* = dynamic>() →* void;
typedef F6 = <T extends core::num* = dynamic, S extends T* = dynamic>() →* void;
typedef G1<invariant X extends core::Object* = dynamic> = <T extends X* = dynamic>() →* void;
-typedef G2<invariant X extends core::num* = core::num*> = <T extends X* = dynamic>() →* void;
+typedef G2<invariant X extends core::num*> = <T extends X* = dynamic>() →* void;
typedef G3<invariant X extends core::Object* = dynamic, invariant Y extends core::Object* = dynamic> = <T extends X* = dynamic, S extends Y* = dynamic>() →* void;
-typedef G4<invariant X extends core::num* = core::num*, invariant Y extends core::num* = core::num*> = <T extends X* = dynamic, S extends Y* = dynamic>() →* void;
-typedef G5<invariant X extends core::num* = core::num*> = <T extends S* = dynamic, S extends X* = dynamic>() →* void;
-typedef G6<invariant X extends core::num* = core::num*> = <T extends X* = dynamic, S extends T* = dynamic>() →* void;
+typedef G4<invariant X extends core::num*, invariant Y extends core::num*> = <T extends X* = dynamic, S extends Y* = dynamic>() →* void;
+typedef G5<invariant X extends core::num*> = <T extends S* = dynamic, S extends X* = dynamic>() →* void;
+typedef G6<invariant X extends core::num*> = <T extends X* = dynamic, S extends T* = dynamic>() →* void;
typedef H1 = (<T extends core::Object* = dynamic>() →* void) →* void;
typedef H2 = (<T extends core::num* = dynamic>() →* void) →* void;
typedef H3 = (<T extends core::Object* = dynamic, S extends core::Object* = dynamic>() →* void) →* void;
diff --git a/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.expect b/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.expect
index 9842a9b..5d0cc59 100644
--- a/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.expect
+++ b/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.expect
@@ -352,7 +352,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-extension Extension<T extends core::num* = core::num*, S extends T* = core::num*> on core::int* {
+extension Extension<T extends core::num*, S extends T* = core::num*> on core::int* {
get property1 = self::Extension|get#property1;
get property2a = self::Extension|get#property2a;
get property2b = self::Extension|get#property2b;
@@ -378,36 +378,36 @@
static set property8b = set self::Extension|property8b;
static set property9 = set self::Extension|property9;
}
-static method Extension|get#property1<T extends core::num* = core::num*, S extends self::Extension|get#property1::T* = core::num*>(lowered final core::int* #this) → core::int*
+static method Extension|get#property1<T extends core::num*, S extends self::Extension|get#property1::T* = core::num*>(lowered final core::int* #this) → core::int*
return 0;
-static method Extension|set#property1<T extends core::num* = core::num*, S extends self::Extension|set#property1::T* = core::num*>(lowered final core::int* #this, core::int* i) → void {}
-static method Extension|get#property2a<T extends core::num* = core::num*, S extends self::Extension|get#property2a::T* = core::num*>(lowered final core::int* #this) → core::num*
+static method Extension|set#property1<T extends core::num*, S extends self::Extension|set#property1::T* = core::num*>(lowered final core::int* #this, core::int* i) → void {}
+static method Extension|get#property2a<T extends core::num*, S extends self::Extension|get#property2a::T* = core::num*>(lowered final core::int* #this) → core::num*
return 0;
-static method Extension|set#property2a<T extends core::num* = core::num*, S extends self::Extension|set#property2a::T* = core::num*>(lowered final core::int* #this, core::int* i) → void {}
-static method Extension|get#property2b<T extends core::num* = core::num*, S extends self::Extension|get#property2b::T* = core::num*>(lowered final core::int* #this) → core::int*
+static method Extension|set#property2a<T extends core::num*, S extends self::Extension|set#property2a::T* = core::num*>(lowered final core::int* #this, core::int* i) → void {}
+static method Extension|get#property2b<T extends core::num*, S extends self::Extension|get#property2b::T* = core::num*>(lowered final core::int* #this) → core::int*
return 0;
-static method Extension|set#property2b<T extends core::num* = core::num*, S extends self::Extension|set#property2b::T* = core::num*>(lowered final core::int* #this, core::num* i) → void {}
-static method Extension|get#property3<T extends core::num* = core::num*, S extends self::Extension|get#property3::T* = core::num*>(lowered final core::int* #this) → core::String*
+static method Extension|set#property2b<T extends core::num*, S extends self::Extension|set#property2b::T* = core::num*>(lowered final core::int* #this, core::num* i) → void {}
+static method Extension|get#property3<T extends core::num*, S extends self::Extension|get#property3::T* = core::num*>(lowered final core::int* #this) → core::String*
return "";
-static method Extension|set#property3<T extends core::num* = core::num*, S extends self::Extension|set#property3::T* = core::num*>(lowered final core::int* #this, core::int* i) → void {}
-static method Extension|get#property4<T extends core::num* = core::num*, S extends self::Extension|get#property4::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property4::S*
+static method Extension|set#property3<T extends core::num*, S extends self::Extension|set#property3::T* = core::num*>(lowered final core::int* #this, core::int* i) → void {}
+static method Extension|get#property4<T extends core::num*, S extends self::Extension|get#property4::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property4::S*
return let final Never* #t1 = invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:133:22: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
S get property4 => 0; // ok
^" in 0 as{TypeError} Never;
-static method Extension|set#property4<T extends core::num* = core::num*, S extends self::Extension|set#property4::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property4::S* i) → void {}
-static method Extension|get#property5a<T extends core::num* = core::num*, S extends self::Extension|get#property5a::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property5a::S*
+static method Extension|set#property4<T extends core::num*, S extends self::Extension|set#property4::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property4::S* i) → void {}
+static method Extension|get#property5a<T extends core::num*, S extends self::Extension|get#property5a::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property5a::S*
return let final Never* #t2 = invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:136:23: Error: A value of type 'int' can't be assigned to a variable of type 'S'.
S get property5a => 0; // ok
^" in 0 as{TypeError} Never;
-static method Extension|set#property5a<T extends core::num* = core::num*, S extends self::Extension|set#property5a::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property5a::T* i) → void {}
-static method Extension|get#property5b<T extends core::num* = core::num*, S extends self::Extension|get#property5b::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property5b::T*
+static method Extension|set#property5a<T extends core::num*, S extends self::Extension|set#property5a::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property5a::T* i) → void {}
+static method Extension|get#property5b<T extends core::num*, S extends self::Extension|get#property5b::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property5b::T*
return let final Never* #t3 = invalid-expression "pkg/front_end/testcases/general/getter_vs_setter_type.dart:139:23: Error: A value of type 'int' can't be assigned to a variable of type 'T'.
T get property5b => 0; // ok
^" in 0 as{TypeError} Never;
-static method Extension|set#property5b<T extends core::num* = core::num*, S extends self::Extension|set#property5b::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property5b::S* i) → void {}
-static method Extension|get#property6<T extends core::num* = core::num*, S extends self::Extension|get#property6::T* = core::num*>(lowered final core::int* #this) → core::String*
+static method Extension|set#property5b<T extends core::num*, S extends self::Extension|set#property5b::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property5b::S* i) → void {}
+static method Extension|get#property6<T extends core::num*, S extends self::Extension|get#property6::T* = core::num*>(lowered final core::int* #this) → core::String*
return "";
-static method Extension|set#property6<T extends core::num* = core::num*, S extends self::Extension|set#property6::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property6::S* i) → void {}
+static method Extension|set#property6<T extends core::num*, S extends self::Extension|set#property6::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property6::S* i) → void {}
static get Extension|property7() → core::int*
return 0;
static set Extension|property7(core::int* value) → void {}
diff --git a/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.outline.expect b/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.outline.expect
index 597b9c0..a903f97 100644
--- a/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/getter_vs_setter_type.dart.weak.outline.expect
@@ -335,7 +335,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-extension Extension<T extends core::num* = core::num*, S extends T* = core::num*> on core::int* {
+extension Extension<T extends core::num*, S extends T* = core::num*> on core::int* {
get property1 = self::Extension|get#property1;
get property2a = self::Extension|get#property2a;
get property2b = self::Extension|get#property2b;
@@ -361,37 +361,37 @@
static set property8b = set self::Extension|property8b;
static set property9 = set self::Extension|property9;
}
-static method Extension|get#property1<T extends core::num* = core::num*, S extends self::Extension|get#property1::T* = core::num*>(lowered final core::int* #this) → core::int*
+static method Extension|get#property1<T extends core::num*, S extends self::Extension|get#property1::T* = core::num*>(lowered final core::int* #this) → core::int*
;
-static method Extension|set#property1<T extends core::num* = core::num*, S extends self::Extension|set#property1::T* = core::num*>(lowered final core::int* #this, core::int* i) → void
+static method Extension|set#property1<T extends core::num*, S extends self::Extension|set#property1::T* = core::num*>(lowered final core::int* #this, core::int* i) → void
;
-static method Extension|get#property2a<T extends core::num* = core::num*, S extends self::Extension|get#property2a::T* = core::num*>(lowered final core::int* #this) → core::num*
+static method Extension|get#property2a<T extends core::num*, S extends self::Extension|get#property2a::T* = core::num*>(lowered final core::int* #this) → core::num*
;
-static method Extension|set#property2a<T extends core::num* = core::num*, S extends self::Extension|set#property2a::T* = core::num*>(lowered final core::int* #this, core::int* i) → void
+static method Extension|set#property2a<T extends core::num*, S extends self::Extension|set#property2a::T* = core::num*>(lowered final core::int* #this, core::int* i) → void
;
-static method Extension|get#property2b<T extends core::num* = core::num*, S extends self::Extension|get#property2b::T* = core::num*>(lowered final core::int* #this) → core::int*
+static method Extension|get#property2b<T extends core::num*, S extends self::Extension|get#property2b::T* = core::num*>(lowered final core::int* #this) → core::int*
;
-static method Extension|set#property2b<T extends core::num* = core::num*, S extends self::Extension|set#property2b::T* = core::num*>(lowered final core::int* #this, core::num* i) → void
+static method Extension|set#property2b<T extends core::num*, S extends self::Extension|set#property2b::T* = core::num*>(lowered final core::int* #this, core::num* i) → void
;
-static method Extension|get#property3<T extends core::num* = core::num*, S extends self::Extension|get#property3::T* = core::num*>(lowered final core::int* #this) → core::String*
+static method Extension|get#property3<T extends core::num*, S extends self::Extension|get#property3::T* = core::num*>(lowered final core::int* #this) → core::String*
;
-static method Extension|set#property3<T extends core::num* = core::num*, S extends self::Extension|set#property3::T* = core::num*>(lowered final core::int* #this, core::int* i) → void
+static method Extension|set#property3<T extends core::num*, S extends self::Extension|set#property3::T* = core::num*>(lowered final core::int* #this, core::int* i) → void
;
-static method Extension|get#property4<T extends core::num* = core::num*, S extends self::Extension|get#property4::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property4::S*
+static method Extension|get#property4<T extends core::num*, S extends self::Extension|get#property4::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property4::S*
;
-static method Extension|set#property4<T extends core::num* = core::num*, S extends self::Extension|set#property4::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property4::S* i) → void
+static method Extension|set#property4<T extends core::num*, S extends self::Extension|set#property4::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property4::S* i) → void
;
-static method Extension|get#property5a<T extends core::num* = core::num*, S extends self::Extension|get#property5a::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property5a::S*
+static method Extension|get#property5a<T extends core::num*, S extends self::Extension|get#property5a::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property5a::S*
;
-static method Extension|set#property5a<T extends core::num* = core::num*, S extends self::Extension|set#property5a::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property5a::T* i) → void
+static method Extension|set#property5a<T extends core::num*, S extends self::Extension|set#property5a::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property5a::T* i) → void
;
-static method Extension|get#property5b<T extends core::num* = core::num*, S extends self::Extension|get#property5b::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property5b::T*
+static method Extension|get#property5b<T extends core::num*, S extends self::Extension|get#property5b::T* = core::num*>(lowered final core::int* #this) → self::Extension|get#property5b::T*
;
-static method Extension|set#property5b<T extends core::num* = core::num*, S extends self::Extension|set#property5b::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property5b::S* i) → void
+static method Extension|set#property5b<T extends core::num*, S extends self::Extension|set#property5b::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property5b::S* i) → void
;
-static method Extension|get#property6<T extends core::num* = core::num*, S extends self::Extension|get#property6::T* = core::num*>(lowered final core::int* #this) → core::String*
+static method Extension|get#property6<T extends core::num*, S extends self::Extension|get#property6::T* = core::num*>(lowered final core::int* #this) → core::String*
;
-static method Extension|set#property6<T extends core::num* = core::num*, S extends self::Extension|set#property6::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property6::S* i) → void
+static method Extension|set#property6<T extends core::num*, S extends self::Extension|set#property6::T* = core::num*>(lowered final core::int* #this, self::Extension|set#property6::S* i) → void
;
static get Extension|property7() → core::int*
;
diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.expect
index 8661180..a8b24bc 100644
--- a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.expect
+++ b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.expect
@@ -49,19 +49,19 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _D&C&B<T extends core::num* = core::num*> = self::C with self::B<self::_D&C&B::T*> /*isAnonymousMixin*/ {
+abstract class _D&C&B<T extends core::num*> = self::C with self::B<self::_D&C&B::T*> /*isAnonymousMixin*/ {
synthetic constructor •() → self::_D&C&B<self::_D&C&B::T*>*
: super self::C::•()
;
forwarding-stub method foo(generic-covariant-impl core::num* x) → dynamic
return super.{self::C::foo}(x);
}
-class D<T extends core::num* = core::num*> extends self::_D&C&B<self::D::T*> {
+class D<T extends core::num*> extends self::_D&C&B<self::D::T*> {
synthetic constructor •() → self::D<self::D::T*>*
: super self::_D&C&B::•()
;
}
-class E<T extends core::num* = core::num*> = self::C with self::B<self::E::T*> {
+class E<T extends core::num*> = self::C with self::B<self::E::T*> {
synthetic constructor •() → self::E<self::E::T*>*
: super self::C::•()
;
diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.outline.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.outline.expect
index 613c5f9..63349f7 100644
--- a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.outline.expect
@@ -47,18 +47,18 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _D&C&B<T extends core::num* = core::num*> = self::C with self::B<self::_D&C&B::T*> /*isAnonymousMixin*/ {
+abstract class _D&C&B<T extends core::num*> = self::C with self::B<self::_D&C&B::T*> /*isAnonymousMixin*/ {
synthetic constructor •() → self::_D&C&B<self::_D&C&B::T*>*
: super self::C::•()
;
forwarding-stub method foo(generic-covariant-impl core::num* x) → dynamic
return super.{self::C::foo}(x);
}
-class D<T extends core::num* = core::num*> extends self::_D&C&B<self::D::T*> {
+class D<T extends core::num*> extends self::_D&C&B<self::D::T*> {
synthetic constructor •() → self::D<self::D::T*>*
;
}
-class E<T extends core::num* = core::num*> = self::C with self::B<self::E::T*> {
+class E<T extends core::num*> = self::C with self::B<self::E::T*> {
synthetic constructor •() → self::E<self::E::T*>*
: super self::C::•()
;
diff --git a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.transformed.expect b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.transformed.expect
index d2f5898..c1432a4 100644
--- a/pkg/front_end/testcases/general/implicit_covariance.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/implicit_covariance.dart.weak.transformed.expect
@@ -49,19 +49,19 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _D&C&B<T extends core::num* = core::num*> extends self::C implements self::B<self::_D&C&B::T*> /*isAnonymousMixin,isEliminatedMixin*/ {
+abstract class _D&C&B<T extends core::num*> extends self::C implements self::B<self::_D&C&B::T*> /*isAnonymousMixin,isEliminatedMixin*/ {
synthetic constructor •() → self::_D&C&B<self::_D&C&B::T*>*
: super self::C::•()
;
forwarding-stub method foo(generic-covariant-impl core::num* x) → dynamic
return super.{self::C::foo}(x);
}
-class D<T extends core::num* = core::num*> extends self::_D&C&B<self::D::T*> {
+class D<T extends core::num*> extends self::_D&C&B<self::D::T*> {
synthetic constructor •() → self::D<self::D::T*>*
: super self::_D&C&B::•()
;
}
-class E<T extends core::num* = core::num*> extends self::C implements self::B<self::E::T*> /*isEliminatedMixin*/ {
+class E<T extends core::num*> extends self::C implements self::B<self::E::T*> /*isEliminatedMixin*/ {
synthetic constructor •() → self::E<self::E::T*>*
: super self::C::•()
;
diff --git a/pkg/front_end/testcases/general/issue38812.dart.weak.expect b/pkg/front_end/testcases/general/issue38812.dart.weak.expect
index 07ce423..1bcd793 100644
--- a/pkg/front_end/testcases/general/issue38812.dart.weak.expect
+++ b/pkg/front_end/testcases/general/issue38812.dart.weak.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
typedef G<unrelated X extends core::Object* = dynamic> = () →* void;
-class A<X extends () →* void = () →* void, Y extends () →* void = () →* void> extends core::Object {
+class A<X extends () →* void, Y extends () →* void> extends core::Object {
synthetic constructor •() → self::A<self::A::X*, self::A::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/general/issue38812.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue38812.dart.weak.outline.expect
index b09f203..d9a199c 100644
--- a/pkg/front_end/testcases/general/issue38812.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/issue38812.dart.weak.outline.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
typedef G<unrelated X extends core::Object* = dynamic> = () →* void;
-class A<X extends () →* void = () →* void, Y extends () →* void = () →* void> extends core::Object {
+class A<X extends () →* void, Y extends () →* void> extends core::Object {
synthetic constructor •() → self::A<self::A::X*, self::A::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/general/issue38812.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue38812.dart.weak.transformed.expect
index 07ce423..1bcd793 100644
--- a/pkg/front_end/testcases/general/issue38812.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/issue38812.dart.weak.transformed.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
typedef G<unrelated X extends core::Object* = dynamic> = () →* void;
-class A<X extends () →* void = () →* void, Y extends () →* void = () →* void> extends core::Object {
+class A<X extends () →* void, Y extends () →* void> extends core::Object {
synthetic constructor •() → self::A<self::A::X*, self::A::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/general/issue38943.dart.weak.expect b/pkg/front_end/testcases/general/issue38943.dart.weak.expect
index c85022a..c723406 100644
--- a/pkg/front_end/testcases/general/issue38943.dart.weak.expect
+++ b/pkg/front_end/testcases/general/issue38943.dart.weak.expect
@@ -2,10 +2,10 @@
import self as self;
import "dart:core" as core;
-class D<X extends () →* void = () →* void> extends core::Object {
+class D<X extends () →* void> extends core::Object {
constructor _() → self::D<self::D::X*>*
: super core::Object::•() {}
- static factory foo<X extends () →* void = () →* void>() → self::D<self::D::foo::X*>*
+ static factory foo<X extends () →* void>() → self::D<self::D::foo::X*>*
return new self::D::_<self::D::foo::X*>();
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
diff --git a/pkg/front_end/testcases/general/issue38943.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue38943.dart.weak.outline.expect
index 0c892f9..7c3fcaf 100644
--- a/pkg/front_end/testcases/general/issue38943.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/issue38943.dart.weak.outline.expect
@@ -2,10 +2,10 @@
import self as self;
import "dart:core" as core;
-class D<X extends () →* void = () →* void> extends core::Object {
+class D<X extends () →* void> extends core::Object {
constructor _() → self::D<self::D::X*>*
;
- static factory foo<X extends () →* void = () →* void>() → self::D<self::D::foo::X*>*
+ static factory foo<X extends () →* void>() → self::D<self::D::foo::X*>*
;
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
diff --git a/pkg/front_end/testcases/general/issue38943.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue38943.dart.weak.transformed.expect
index c85022a..c723406 100644
--- a/pkg/front_end/testcases/general/issue38943.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/issue38943.dart.weak.transformed.expect
@@ -2,10 +2,10 @@
import self as self;
import "dart:core" as core;
-class D<X extends () →* void = () →* void> extends core::Object {
+class D<X extends () →* void> extends core::Object {
constructor _() → self::D<self::D::X*>*
: super core::Object::•() {}
- static factory foo<X extends () →* void = () →* void>() → self::D<self::D::foo::X*>*
+ static factory foo<X extends () →* void>() → self::D<self::D::foo::X*>*
return new self::D::_<self::D::foo::X*>();
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
diff --git a/pkg/front_end/testcases/general/issue39344.dart.weak.expect b/pkg/front_end/testcases/general/issue39344.dart.weak.expect
index 5fdc524a..07a4d30 100644
--- a/pkg/front_end/testcases/general/issue39344.dart.weak.expect
+++ b/pkg/front_end/testcases/general/issue39344.dart.weak.expect
@@ -37,7 +37,7 @@
: super self::A::•()
;
}
-class Class<T extends self::A* = self::A*> extends core::Object {
+class Class<T extends self::A*> extends core::Object {
synthetic constructor •() → self::Class<self::Class::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/general/issue39344.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue39344.dart.weak.outline.expect
index fbf21ce..03e1065 100644
--- a/pkg/front_end/testcases/general/issue39344.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/issue39344.dart.weak.outline.expect
@@ -20,7 +20,7 @@
synthetic constructor •() → self::B*
;
}
-class Class<T extends self::A* = self::A*> extends core::Object {
+class Class<T extends self::A*> extends core::Object {
synthetic constructor •() → self::Class<self::Class::T*>*
;
method method1a(generic-covariant-impl self::Class::T* t) → void
diff --git a/pkg/front_end/testcases/general/issue39344.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue39344.dart.weak.transformed.expect
index ce3f707..7fe41a0 100644
--- a/pkg/front_end/testcases/general/issue39344.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/issue39344.dart.weak.transformed.expect
@@ -37,7 +37,7 @@
: super self::A::•()
;
}
-class Class<T extends self::A* = self::A*> extends core::Object {
+class Class<T extends self::A*> extends core::Object {
synthetic constructor •() → self::Class<self::Class::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/general/issue43721.dart.weak.expect b/pkg/front_end/testcases/general/issue43721.dart.weak.expect
index c204fd6..4ca7943 100644
--- a/pkg/front_end/testcases/general/issue43721.dart.weak.expect
+++ b/pkg/front_end/testcases/general/issue43721.dart.weak.expect
@@ -15,8 +15,8 @@
import "dart:async";
-static method ok<T extends FutureOr<core::num*>* = FutureOr<core::num*>*>(self::ok::T* t) → dynamic {}
-static method error<T extends FutureOr<core::int*>* = FutureOr<core::int*>*>(self::error::T* t) → dynamic {}
+static method ok<T extends FutureOr<core::num*>*>(self::ok::T* t) → dynamic {}
+static method error<T extends FutureOr<core::int*>*>(self::error::T* t) → dynamic {}
static method bar(core::bool* condition) → dynamic {
FutureOr<core::int*>* x = null;
core::num* n = 1;
diff --git a/pkg/front_end/testcases/general/issue43721.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue43721.dart.weak.outline.expect
index 84a6f86..710bffc 100644
--- a/pkg/front_end/testcases/general/issue43721.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/issue43721.dart.weak.outline.expect
@@ -4,9 +4,9 @@
import "dart:async";
-static method ok<T extends FutureOr<core::num*>* = FutureOr<core::num*>*>(self::ok::T* t) → dynamic
+static method ok<T extends FutureOr<core::num*>*>(self::ok::T* t) → dynamic
;
-static method error<T extends FutureOr<core::int*>* = FutureOr<core::int*>*>(self::error::T* t) → dynamic
+static method error<T extends FutureOr<core::int*>*>(self::error::T* t) → dynamic
;
static method bar(core::bool* condition) → dynamic
;
diff --git a/pkg/front_end/testcases/general/issue43721.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue43721.dart.weak.transformed.expect
index c204fd6..4ca7943 100644
--- a/pkg/front_end/testcases/general/issue43721.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/issue43721.dart.weak.transformed.expect
@@ -15,8 +15,8 @@
import "dart:async";
-static method ok<T extends FutureOr<core::num*>* = FutureOr<core::num*>*>(self::ok::T* t) → dynamic {}
-static method error<T extends FutureOr<core::int*>* = FutureOr<core::int*>*>(self::error::T* t) → dynamic {}
+static method ok<T extends FutureOr<core::num*>*>(self::ok::T* t) → dynamic {}
+static method error<T extends FutureOr<core::int*>*>(self::error::T* t) → dynamic {}
static method bar(core::bool* condition) → dynamic {
FutureOr<core::int*>* x = null;
core::num* n = 1;
diff --git a/pkg/front_end/testcases/general/issue44476.dart.weak.expect b/pkg/front_end/testcases/general/issue44476.dart.weak.expect
index 136f9b1..645587c 100644
--- a/pkg/front_end/testcases/general/issue44476.dart.weak.expect
+++ b/pkg/front_end/testcases/general/issue44476.dart.weak.expect
@@ -61,7 +61,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::int* = core::int*> extends core::Object {
+class A<X extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::X*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/general/issue44476.dart.weak.outline.expect b/pkg/front_end/testcases/general/issue44476.dart.weak.outline.expect
index 7f40fcf..2131965 100644
--- a/pkg/front_end/testcases/general/issue44476.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/issue44476.dart.weak.outline.expect
@@ -13,7 +13,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::int* = core::int*> extends core::Object {
+class A<X extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::X*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/general/issue44476.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue44476.dart.weak.transformed.expect
index 136f9b1..645587c 100644
--- a/pkg/front_end/testcases/general/issue44476.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/issue44476.dart.weak.transformed.expect
@@ -61,7 +61,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::int* = core::int*> extends core::Object {
+class A<X extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::X*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/general/issue45330.dart.weak.expect b/pkg/front_end/testcases/general/issue45330.dart.weak.expect
index c315320..22c456a 100644
--- a/pkg/front_end/testcases/general/issue45330.dart.weak.expect
+++ b/pkg/front_end/testcases/general/issue45330.dart.weak.expect
@@ -28,9 +28,9 @@
part issue45330_lib.dart;
static method genericMethod<T extends core::Object? = dynamic>() → void {}
static method testInMain() → dynamic {
- self::genericMethod<<T extends invalid-type = invalid-type>() → void>();
+ self::genericMethod<<T extends invalid-type>() → void>();
}
static method main() → dynamic {}
static method /* from org-dartlang-testcase:///issue45330_lib.dart */ testInPart() → dynamic {
- self::genericMethod<<T extends invalid-type = invalid-type>() → void>();
+ self::genericMethod<<T extends invalid-type>() → void>();
}
diff --git a/pkg/front_end/testcases/general/issue45330.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue45330.dart.weak.transformed.expect
index c315320..22c456a 100644
--- a/pkg/front_end/testcases/general/issue45330.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/issue45330.dart.weak.transformed.expect
@@ -28,9 +28,9 @@
part issue45330_lib.dart;
static method genericMethod<T extends core::Object? = dynamic>() → void {}
static method testInMain() → dynamic {
- self::genericMethod<<T extends invalid-type = invalid-type>() → void>();
+ self::genericMethod<<T extends invalid-type>() → void>();
}
static method main() → dynamic {}
static method /* from org-dartlang-testcase:///issue45330_lib.dart */ testInPart() → dynamic {
- self::genericMethod<<T extends invalid-type = invalid-type>() → void>();
+ self::genericMethod<<T extends invalid-type>() → void>();
}
diff --git a/pkg/front_end/testcases/general/issue45660.dart.weak.expect b/pkg/front_end/testcases/general/issue45660.dart.weak.expect
index cd197e9..f65680e 100644
--- a/pkg/front_end/testcases/general/issue45660.dart.weak.expect
+++ b/pkg/front_end/testcases/general/issue45660.dart.weak.expect
@@ -10,7 +10,7 @@
import self as self;
import "dart:core" as core;
-static field <T extends core::num* = dynamic>(T*) →* T* extendsNumReturnArg = <S extends core::num* = core::num*>(S* s) → S* => s;
+static field <T extends core::num* = dynamic>(T*) →* T* extendsNumReturnArg = <S extends core::num*>(S* s) → S* => s;
static method functionInvocations() → dynamic {
self::extendsNumReturnArg.call<Null>(null);
self::extendsNumReturnArg.call<core::String*>("");
diff --git a/pkg/front_end/testcases/general/issue45660.dart.weak.transformed.expect b/pkg/front_end/testcases/general/issue45660.dart.weak.transformed.expect
index cd197e9..f65680e 100644
--- a/pkg/front_end/testcases/general/issue45660.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/issue45660.dart.weak.transformed.expect
@@ -10,7 +10,7 @@
import self as self;
import "dart:core" as core;
-static field <T extends core::num* = dynamic>(T*) →* T* extendsNumReturnArg = <S extends core::num* = core::num*>(S* s) → S* => s;
+static field <T extends core::num* = dynamic>(T*) →* T* extendsNumReturnArg = <S extends core::num*>(S* s) → S* => s;
static method functionInvocations() → dynamic {
self::extendsNumReturnArg.call<Null>(null);
self::extendsNumReturnArg.call<core::String*>("");
diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field.dart.weak.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field.dart.weak.expect
index 5465909..fce001a 100644
--- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field.dart.weak.expect
+++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field.dart.weak.expect
@@ -17,7 +17,7 @@
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 self::A* = self::A*> extends core::Object {
+class C<T extends self::A*> extends core::Object {
generic-covariant-impl field self::C::T* _field = null;
synthetic constructor •() → self::C<self::C::T*>*
: super core::Object::•()
diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field.dart.weak.outline.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field.dart.weak.outline.expect
index 4366b2f..8b4326c 100644
--- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field.dart.weak.outline.expect
@@ -16,7 +16,7 @@
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 self::A* = self::A*> extends core::Object {
+class C<T extends self::A*> extends core::Object {
generic-covariant-impl field self::C::T* _field;
synthetic constructor •() → self::C<self::C::T*>*
;
diff --git a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field.dart.weak.transformed.expect b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field.dart.weak.transformed.expect
index 9828c0d..cd6518b 100644
--- a/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/mixin_inherited_setter_for_mixed_in_field.dart.weak.transformed.expect
@@ -17,7 +17,7 @@
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 self::A* = self::A*> extends core::Object {
+class C<T extends self::A*> extends core::Object {
generic-covariant-impl field self::C::T* _field = null;
synthetic constructor •() → self::C<self::C::T*>*
: super core::Object::•()
diff --git a/pkg/front_end/testcases/general/nested_variance.dart.weak.expect b/pkg/front_end/testcases/general/nested_variance.dart.weak.expect
index e1dd3c7..ab01f23 100644
--- a/pkg/front_end/testcases/general/nested_variance.dart.weak.expect
+++ b/pkg/front_end/testcases/general/nested_variance.dart.weak.expect
@@ -6,9 +6,9 @@
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* = core::num*> = () →* X*;
-typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
-typedef FinvBound<invariant X extends core::num* = core::num*> = (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<Null>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
@@ -60,7 +60,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AcovBound<X extends () →* self::AcovBound::Y* = () →* core::num*, Y extends core::num* = core::num*> extends core::Object {
+class AcovBound<X extends () →* self::AcovBound::Y* = () →* core::num*, Y extends core::num*> extends core::Object {
synthetic constructor •() → self::AcovBound<self::AcovBound::X*, self::AcovBound::Y*>*
: super core::Object::•()
;
@@ -75,7 +75,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconBound<X extends (self::AconBound::Y*) →* dynamic = (Null) →* dynamic, Y extends core::num* = core::num*> extends core::Object {
+class AconBound<X extends (self::AconBound::Y*) →* dynamic = (Null) →* dynamic, Y extends core::num*> extends core::Object {
synthetic constructor •() → self::AconBound<self::AconBound::X*, self::AconBound::Y*>*
: super core::Object::•()
;
@@ -90,7 +90,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AinvBound<X extends (self::AinvBound::Y*) →* self::AinvBound::Y* = (core::num*) →* core::num*, Y extends core::num* = core::num*> extends core::Object {
+class AinvBound<X extends (self::AinvBound::Y*) →* self::AinvBound::Y* = (core::num*) →* core::num*, Y extends core::num*> extends core::Object {
synthetic constructor •() → self::AinvBound<self::AinvBound::X*, self::AinvBound::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/general/nested_variance.dart.weak.outline.expect b/pkg/front_end/testcases/general/nested_variance.dart.weak.outline.expect
index 1172b5e..c2384c9 100644
--- a/pkg/front_end/testcases/general/nested_variance.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/nested_variance.dart.weak.outline.expect
@@ -6,9 +6,9 @@
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* = core::num*> = () →* X*;
-typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
-typedef FinvBound<invariant X extends core::num* = core::num*> = (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<Null>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
@@ -57,7 +57,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AcovBound<X extends () →* self::AcovBound::Y* = () →* core::num*, Y extends core::num* = core::num*> extends core::Object {
+class AcovBound<X extends () →* self::AcovBound::Y* = () →* core::num*, Y extends core::num*> extends core::Object {
synthetic constructor •() → self::AcovBound<self::AcovBound::X*, self::AcovBound::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -71,7 +71,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconBound<X extends (self::AconBound::Y*) →* dynamic = (Null) →* dynamic, Y extends core::num* = core::num*> extends core::Object {
+class AconBound<X extends (self::AconBound::Y*) →* dynamic = (Null) →* dynamic, Y extends core::num*> extends core::Object {
synthetic constructor •() → self::AconBound<self::AconBound::X*, self::AconBound::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -85,7 +85,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AinvBound<X extends (self::AinvBound::Y*) →* self::AinvBound::Y* = (core::num*) →* core::num*, Y extends core::num* = core::num*> extends core::Object {
+class AinvBound<X extends (self::AinvBound::Y*) →* self::AinvBound::Y* = (core::num*) →* core::num*, Y extends core::num*> extends core::Object {
synthetic constructor •() → self::AinvBound<self::AinvBound::X*, self::AinvBound::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/general/nested_variance.dart.weak.transformed.expect b/pkg/front_end/testcases/general/nested_variance.dart.weak.transformed.expect
index e1dd3c7..ab01f23 100644
--- a/pkg/front_end/testcases/general/nested_variance.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/nested_variance.dart.weak.transformed.expect
@@ -6,9 +6,9 @@
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* = core::num*> = () →* X*;
-typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
-typedef FinvBound<invariant X extends core::num* = core::num*> = (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<Null>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
@@ -60,7 +60,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AcovBound<X extends () →* self::AcovBound::Y* = () →* core::num*, Y extends core::num* = core::num*> extends core::Object {
+class AcovBound<X extends () →* self::AcovBound::Y* = () →* core::num*, Y extends core::num*> extends core::Object {
synthetic constructor •() → self::AcovBound<self::AcovBound::X*, self::AcovBound::Y*>*
: super core::Object::•()
;
@@ -75,7 +75,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AconBound<X extends (self::AconBound::Y*) →* dynamic = (Null) →* dynamic, Y extends core::num* = core::num*> extends core::Object {
+class AconBound<X extends (self::AconBound::Y*) →* dynamic = (Null) →* dynamic, Y extends core::num*> extends core::Object {
synthetic constructor •() → self::AconBound<self::AconBound::X*, self::AconBound::Y*>*
: super core::Object::•()
;
@@ -90,7 +90,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class AinvBound<X extends (self::AinvBound::Y*) →* self::AinvBound::Y* = (core::num*) →* core::num*, Y extends core::num* = core::num*> extends core::Object {
+class AinvBound<X extends (self::AinvBound::Y*) →* self::AinvBound::Y* = (core::num*) →* core::num*, Y extends core::num*> extends core::Object {
synthetic constructor •() → self::AinvBound<self::AinvBound::X*, self::AinvBound::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/general/non_covariant_checks.dart.weak.expect b/pkg/front_end/testcases/general/non_covariant_checks.dart.weak.expect
index 39064e3..2f9cd4a 100644
--- a/pkg/front_end/testcases/general/non_covariant_checks.dart.weak.expect
+++ b/pkg/front_end/testcases/general/non_covariant_checks.dart.weak.expect
@@ -19,7 +19,7 @@
generic-covariant-impl field <S extends self::C::T* = dynamic>(S*) →* S* field14;
generic-covariant-impl field (<S extends self::C::T* = dynamic>() →* S*) →* void field15;
constructor •(self::C::T* field1) → self::C<self::C::T*>*
- : self::C::field1 = field1, self::C::field2 = () → self::C::T* => field1, self::C::field3 = (self::C::T* t) → Null {}, self::C::field4 = (self::C::T* t) → self::C::T* => t, self::C::field5 = () → () →* self::C::T* => () → self::C::T* => field1, self::C::field6 = (() →* self::C::T* f) → Null {}, self::C::field7 = (() →* self::C::T* f) → self::C::T* => field1, self::C::field8 = ((self::C::T*) →* void f) → Null {}, self::C::field9 = ((self::C::T*) →* void f) → self::C::T* => field1, self::C::field10 = ((self::C::T*) →* self::C::T* f) → Null {}, self::C::field11 = ((self::C::T*) →* self::C::T* f) → self::C::T* => field1, self::C::field12 = <S extends self::C::T* = self::C::T*>() → Null => null, self::C::field13 = <S extends self::C::T* = self::C::T*>(S* s) → Null {}, self::C::field14 = <S extends self::C::T* = self::C::T*>(S* s) → S* => s, self::C::field15 = (<S extends self::C::T* = self::C::T*>() →* S* f) → Null {}, super core::Object::•()
+ : self::C::field1 = field1, self::C::field2 = () → self::C::T* => field1, self::C::field3 = (self::C::T* t) → Null {}, self::C::field4 = (self::C::T* t) → self::C::T* => t, self::C::field5 = () → () →* self::C::T* => () → self::C::T* => field1, self::C::field6 = (() →* self::C::T* f) → Null {}, self::C::field7 = (() →* self::C::T* f) → self::C::T* => field1, self::C::field8 = ((self::C::T*) →* void f) → Null {}, self::C::field9 = ((self::C::T*) →* void f) → self::C::T* => field1, self::C::field10 = ((self::C::T*) →* self::C::T* f) → Null {}, self::C::field11 = ((self::C::T*) →* self::C::T* f) → self::C::T* => field1, self::C::field12 = <S extends self::C::T*>() → Null => null, self::C::field13 = <S extends self::C::T*>(S* s) → Null {}, self::C::field14 = <S extends self::C::T*>(S* s) → S* => s, self::C::field15 = (<S extends self::C::T*>() →* S* f) → Null {}, super core::Object::•()
;
get getter1() → self::C::T*
return this.{self::C::field1};
@@ -370,28 +370,28 @@
core::print(e);
}
try {
- c.{self::C::setter12} = <S extends core::num* = core::num*>() → Null => null;
+ c.{self::C::setter12} = <S extends core::num*>() → Null => null;
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::setter13} = <S extends core::num* = core::num*>(S* s) → Null {};
+ c.{self::C::setter13} = <S extends core::num*>(S* s) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::setter14} = <S extends core::num* = core::num*>(S* s) → S* => s;
+ c.{self::C::setter14} = <S extends core::num*>(S* s) → S* => s;
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::setter15} = (<S extends core::num* = core::num*>() →* S* f) → Null {};
+ c.{self::C::setter15} = (<S extends core::num*>() →* S* f) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -463,28 +463,28 @@
core::print(e);
}
try {
- c.{self::C::method12}(<S extends core::num* = core::num*>() → Null => null);
+ c.{self::C::method12}(<S extends core::num*>() → Null => null);
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::method13}(<S extends core::num* = core::num*>(S* s) → Null {});
+ c.{self::C::method13}(<S extends core::num*>(S* s) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::method14}(<S extends core::num* = core::num*>(S* s) → S* => s);
+ c.{self::C::method14}(<S extends core::num*>(S* s) → S* => s);
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::method15}((<S extends core::num* = core::num*>() →* S* f) → Null {});
+ c.{self::C::method15}((<S extends core::num*>() →* S* f) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
diff --git a/pkg/front_end/testcases/general/non_covariant_checks.dart.weak.transformed.expect b/pkg/front_end/testcases/general/non_covariant_checks.dart.weak.transformed.expect
index 39064e3..2f9cd4a 100644
--- a/pkg/front_end/testcases/general/non_covariant_checks.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/non_covariant_checks.dart.weak.transformed.expect
@@ -19,7 +19,7 @@
generic-covariant-impl field <S extends self::C::T* = dynamic>(S*) →* S* field14;
generic-covariant-impl field (<S extends self::C::T* = dynamic>() →* S*) →* void field15;
constructor •(self::C::T* field1) → self::C<self::C::T*>*
- : self::C::field1 = field1, self::C::field2 = () → self::C::T* => field1, self::C::field3 = (self::C::T* t) → Null {}, self::C::field4 = (self::C::T* t) → self::C::T* => t, self::C::field5 = () → () →* self::C::T* => () → self::C::T* => field1, self::C::field6 = (() →* self::C::T* f) → Null {}, self::C::field7 = (() →* self::C::T* f) → self::C::T* => field1, self::C::field8 = ((self::C::T*) →* void f) → Null {}, self::C::field9 = ((self::C::T*) →* void f) → self::C::T* => field1, self::C::field10 = ((self::C::T*) →* self::C::T* f) → Null {}, self::C::field11 = ((self::C::T*) →* self::C::T* f) → self::C::T* => field1, self::C::field12 = <S extends self::C::T* = self::C::T*>() → Null => null, self::C::field13 = <S extends self::C::T* = self::C::T*>(S* s) → Null {}, self::C::field14 = <S extends self::C::T* = self::C::T*>(S* s) → S* => s, self::C::field15 = (<S extends self::C::T* = self::C::T*>() →* S* f) → Null {}, super core::Object::•()
+ : self::C::field1 = field1, self::C::field2 = () → self::C::T* => field1, self::C::field3 = (self::C::T* t) → Null {}, self::C::field4 = (self::C::T* t) → self::C::T* => t, self::C::field5 = () → () →* self::C::T* => () → self::C::T* => field1, self::C::field6 = (() →* self::C::T* f) → Null {}, self::C::field7 = (() →* self::C::T* f) → self::C::T* => field1, self::C::field8 = ((self::C::T*) →* void f) → Null {}, self::C::field9 = ((self::C::T*) →* void f) → self::C::T* => field1, self::C::field10 = ((self::C::T*) →* self::C::T* f) → Null {}, self::C::field11 = ((self::C::T*) →* self::C::T* f) → self::C::T* => field1, self::C::field12 = <S extends self::C::T*>() → Null => null, self::C::field13 = <S extends self::C::T*>(S* s) → Null {}, self::C::field14 = <S extends self::C::T*>(S* s) → S* => s, self::C::field15 = (<S extends self::C::T*>() →* S* f) → Null {}, super core::Object::•()
;
get getter1() → self::C::T*
return this.{self::C::field1};
@@ -370,28 +370,28 @@
core::print(e);
}
try {
- c.{self::C::setter12} = <S extends core::num* = core::num*>() → Null => null;
+ c.{self::C::setter12} = <S extends core::num*>() → Null => null;
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::setter13} = <S extends core::num* = core::num*>(S* s) → Null {};
+ c.{self::C::setter13} = <S extends core::num*>(S* s) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::setter14} = <S extends core::num* = core::num*>(S* s) → S* => s;
+ c.{self::C::setter14} = <S extends core::num*>(S* s) → S* => s;
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::setter15} = (<S extends core::num* = core::num*>() →* S* f) → Null {};
+ c.{self::C::setter15} = (<S extends core::num*>() →* S* f) → Null {};
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
@@ -463,28 +463,28 @@
core::print(e);
}
try {
- c.{self::C::method12}(<S extends core::num* = core::num*>() → Null => null);
+ c.{self::C::method12}(<S extends core::num*>() → Null => null);
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::method13}(<S extends core::num* = core::num*>(S* s) → Null {});
+ c.{self::C::method13}(<S extends core::num*>(S* s) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::method14}(<S extends core::num* = core::num*>(S* s) → S* => s);
+ c.{self::C::method14}(<S extends core::num*>(S* s) → S* => s);
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
core::print(e);
}
try {
- c.{self::C::method15}((<S extends core::num* = core::num*>() →* S* f) → Null {});
+ c.{self::C::method15}((<S extends core::num*>() →* S* f) → Null {});
throw "TypeError expected";
}
on core::TypeError* catch(final core::TypeError* e) {
diff --git a/pkg/front_end/testcases/general/null_check_type_variable_type.dart.weak.expect b/pkg/front_end/testcases/general/null_check_type_variable_type.dart.weak.expect
index 6972fb1..02008c5 100644
--- a/pkg/front_end/testcases/general/null_check_type_variable_type.dart.weak.expect
+++ b/pkg/front_end/testcases/general/null_check_type_variable_type.dart.weak.expect
@@ -8,7 +8,7 @@
: super core::Object::•()
;
}
-class Class<E extends self::Element? = self::Element?> extends core::Object {
+class Class<E extends self::Element?> extends core::Object {
generic-covariant-impl field self::Class::E? element;
constructor •(self::Class::E? element) → self::Class<self::Class::E%>
: self::Class::element = element, super core::Object::•()
diff --git a/pkg/front_end/testcases/general/null_check_type_variable_type.dart.weak.outline.expect b/pkg/front_end/testcases/general/null_check_type_variable_type.dart.weak.outline.expect
index 199055c..b66e3a9 100644
--- a/pkg/front_end/testcases/general/null_check_type_variable_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/null_check_type_variable_type.dart.weak.outline.expect
@@ -6,7 +6,7 @@
synthetic constructor •() → self::Element
;
}
-class Class<E extends self::Element? = self::Element?> extends core::Object {
+class Class<E extends self::Element?> extends core::Object {
generic-covariant-impl field self::Class::E? element;
constructor •(self::Class::E? element) → self::Class<self::Class::E%>
;
diff --git a/pkg/front_end/testcases/general/null_check_type_variable_type.dart.weak.transformed.expect b/pkg/front_end/testcases/general/null_check_type_variable_type.dart.weak.transformed.expect
index 6405a73..c5d8066 100644
--- a/pkg/front_end/testcases/general/null_check_type_variable_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/null_check_type_variable_type.dart.weak.transformed.expect
@@ -8,7 +8,7 @@
: super core::Object::•()
;
}
-class Class<E extends self::Element? = self::Element?> extends core::Object {
+class Class<E extends self::Element?> extends core::Object {
generic-covariant-impl field self::Class::E? element;
constructor •(self::Class::E? element) → self::Class<self::Class::E%>
: self::Class::element = element, super core::Object::•()
diff --git a/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.expect b/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.expect
index 9ada94b..05a7185 100644
--- a/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.expect
+++ b/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.expect
@@ -40,7 +40,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::X* = self::X*> extends self::A {
+class B<T extends self::X*> extends self::A {
constructor •() → self::B<self::B::T*>*
: super self::A::•()
;
diff --git a/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.outline.expect
index fe27ae5..3cc1659 100644
--- a/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.outline.expect
@@ -37,7 +37,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::X* = self::X*> extends self::A {
+class B<T extends self::X*> extends self::A {
constructor •() → self::B<self::B::T*>*
;
}
diff --git a/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.transformed.expect b/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.transformed.expect
index 35b0942..5fac4ba 100644
--- a/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/redirecting_factory_typeargs_test.dart.weak.transformed.expect
@@ -40,7 +40,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::X* = self::X*> extends self::A {
+class B<T extends self::X*> extends self::A {
constructor •() → self::B<self::B::T*>*
: super self::A::•()
;
diff --git a/pkg/front_end/testcases/general/redirecting_initializer_arguments_assignable_test.dart.weak.expect b/pkg/front_end/testcases/general/redirecting_initializer_arguments_assignable_test.dart.weak.expect
index 0afec65..6324f0a 100644
--- a/pkg/front_end/testcases/general/redirecting_initializer_arguments_assignable_test.dart.weak.expect
+++ b/pkg/front_end/testcases/general/redirecting_initializer_arguments_assignable_test.dart.weak.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Foo<T extends self::X* = self::X*> extends core::Object {
+class Foo<T extends self::X*> extends core::Object {
generic-covariant-impl field self::Foo::T* x;
constructor fromX(self::X* _init) → self::Foo<self::Foo::T*>*
: this self::Foo::_internal(x: _init as{TypeError} self::Foo::T*)
diff --git a/pkg/front_end/testcases/general/redirecting_initializer_arguments_assignable_test.dart.weak.outline.expect b/pkg/front_end/testcases/general/redirecting_initializer_arguments_assignable_test.dart.weak.outline.expect
index 6210541..b816f4d 100644
--- a/pkg/front_end/testcases/general/redirecting_initializer_arguments_assignable_test.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/redirecting_initializer_arguments_assignable_test.dart.weak.outline.expect
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Foo<T extends self::X* = self::X*> extends core::Object {
+class Foo<T extends self::X*> extends core::Object {
generic-covariant-impl field self::Foo::T* x;
constructor fromX(self::X* _init) → self::Foo<self::Foo::T*>*
;
diff --git a/pkg/front_end/testcases/general/redirecting_initializer_arguments_assignable_test.dart.weak.transformed.expect b/pkg/front_end/testcases/general/redirecting_initializer_arguments_assignable_test.dart.weak.transformed.expect
index 0afec65..6324f0a 100644
--- a/pkg/front_end/testcases/general/redirecting_initializer_arguments_assignable_test.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/general/redirecting_initializer_arguments_assignable_test.dart.weak.transformed.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Foo<T extends self::X* = self::X*> extends core::Object {
+class Foo<T extends self::X*> extends core::Object {
generic-covariant-impl field self::Foo::T* x;
constructor fromX(self::X* _init) → self::Foo<self::Foo::T*>*
: this self::Foo::_internal(x: _init as{TypeError} self::Foo::T*)
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 b21e661..c61d2e4 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
@@ -6,9 +6,9 @@
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* = core::num*> = () →* X*;
-typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
-typedef FinvBound<invariant X extends core::num* = core::num*> = (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<Null>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
diff --git a/pkg/front_end/testcases/general/top_level_variance_test.dart.weak.outline.expect b/pkg/front_end/testcases/general/top_level_variance_test.dart.weak.outline.expect
index e79bd82..8e8cfa3 100644
--- a/pkg/front_end/testcases/general/top_level_variance_test.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/top_level_variance_test.dart.weak.outline.expect
@@ -6,9 +6,9 @@
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* = core::num*> = () →* X*;
-typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
-typedef FinvBound<invariant X extends core::num* = core::num*> = (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<Null>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
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 b21e661..c61d2e4 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
@@ -6,9 +6,9 @@
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* = core::num*> = () →* X*;
-typedef FconBound<contravariant X extends core::num* = core::num*> = (X*) →* dynamic;
-typedef FinvBound<invariant X extends core::num* = core::num*> = (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<Null>*> = (X*) →* dynamic;
typedef FinvCyclicBound<invariant X extends self::A<X*>* = self::A<dynamic>*> = (X*) →* X*;
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 3700707..1e70230 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
@@ -10,7 +10,7 @@
import self as self;
import "dart:core" as core;
-class DynamicClass<T extends dynamic = dynamic, S extends self::DynamicClass::T* = dynamic> extends core::Object {
+class DynamicClass<T extends dynamic, S extends self::DynamicClass::T* = dynamic> extends core::Object {
generic-covariant-impl field self::DynamicClass::T* field1;
generic-covariant-impl field self::DynamicClass::T* field2;
constructor •(self::DynamicClass::T* field1, self::DynamicClass::T* field2) → self::DynamicClass<self::DynamicClass::T*, self::DynamicClass::S*>*
@@ -29,7 +29,7 @@
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* = core::num*, S extends self::NumClass::T* = core::num*> extends core::Object {
+class NumClass<T extends core::num*, S extends self::NumClass::T* = core::num*> extends core::Object {
generic-covariant-impl field self::NumClass::T* field1;
generic-covariant-impl field self::NumClass::S* field2;
constructor •(self::NumClass::T* field1, self::NumClass::S* field2) → self::NumClass<self::NumClass::T*, self::NumClass::S*>*
@@ -53,7 +53,7 @@
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* = core::int*> extends 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 {
generic-covariant-impl field self::Class::X0* field0 = null;
generic-covariant-impl field self::Class::X1* field1 = null;
generic-covariant-impl field self::Class::X2* field2 = null;
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 9a25328..b02e918 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
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class DynamicClass<T extends dynamic = dynamic, S extends self::DynamicClass::T* = dynamic> extends core::Object {
+class DynamicClass<T extends dynamic, S extends self::DynamicClass::T* = dynamic> extends core::Object {
generic-covariant-impl field self::DynamicClass::T* field1;
generic-covariant-impl field self::DynamicClass::T* field2;
constructor •(self::DynamicClass::T* field1, self::DynamicClass::T* field2) → self::DynamicClass<self::DynamicClass::T*, self::DynamicClass::S*>*
@@ -20,7 +20,7 @@
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* = core::num*, S extends self::NumClass::T* = core::num*> extends core::Object {
+class NumClass<T extends core::num*, S extends self::NumClass::T* = core::num*> extends core::Object {
generic-covariant-impl field self::NumClass::T* field1;
generic-covariant-impl field self::NumClass::S* field2;
constructor •(self::NumClass::T* field1, self::NumClass::S* field2) → self::NumClass<self::NumClass::T*, self::NumClass::S*>*
@@ -40,7 +40,7 @@
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* = core::int*> extends 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 {
generic-covariant-impl field self::Class::X0* field0;
generic-covariant-impl field self::Class::X1* field1;
generic-covariant-impl field self::Class::X2* field2;
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 dbc33c0..d9c7800 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
@@ -10,7 +10,7 @@
import self as self;
import "dart:core" as core;
-class DynamicClass<T extends dynamic = dynamic, S extends self::DynamicClass::T* = dynamic> extends core::Object {
+class DynamicClass<T extends dynamic, S extends self::DynamicClass::T* = dynamic> extends core::Object {
generic-covariant-impl field self::DynamicClass::T* field1;
generic-covariant-impl field self::DynamicClass::T* field2;
constructor •(self::DynamicClass::T* field1, self::DynamicClass::T* field2) → self::DynamicClass<self::DynamicClass::T*, self::DynamicClass::S*>*
@@ -29,7 +29,7 @@
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* = core::num*, S extends self::NumClass::T* = core::num*> extends core::Object {
+class NumClass<T extends core::num*, S extends self::NumClass::T* = core::num*> extends core::Object {
generic-covariant-impl field self::NumClass::T* field1;
generic-covariant-impl field self::NumClass::S* field2;
constructor •(self::NumClass::T* field1, self::NumClass::S* field2) → self::NumClass<self::NumClass::T*, self::NumClass::S*>*
@@ -53,7 +53,7 @@
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* = core::int*> extends 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 {
generic-covariant-impl field self::Class::X0* field0 = null;
generic-covariant-impl field self::Class::X1* field1 = null;
generic-covariant-impl field self::Class::X2* field2 = null;
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 10cd814..bf4731f 100644
--- a/pkg/front_end/testcases/general/unsound_promotion.dart.weak.expect
+++ b/pkg/front_end/testcases/general/unsound_promotion.dart.weak.expect
@@ -50,7 +50,7 @@
;
}
static field core::List<self::A*>* list;
-static method g<T extends self::A* = self::A*>(self::g::T* t) → core::List<self::g::T*>* {
+static method g<T extends self::A*>(self::g::T* t) → core::List<self::g::T*>* {
self::list = <self::g::T*>[];
core::print(self::list.{core::Object::runtimeType});
return self::list as{TypeError} core::List<self::g::T*>*;
diff --git a/pkg/front_end/testcases/general/unsound_promotion.dart.weak.outline.expect b/pkg/front_end/testcases/general/unsound_promotion.dart.weak.outline.expect
index 4d2b9c0..6b3902f 100644
--- a/pkg/front_end/testcases/general/unsound_promotion.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/general/unsound_promotion.dart.weak.outline.expect
@@ -35,7 +35,7 @@
;
}
static field core::List<self::A*>* list;
-static method g<T extends self::A* = self::A*>(self::g::T* t) → core::List<self::g::T*>*
+static method g<T extends self::A*>(self::g::T* t) → core::List<self::g::T*>*
;
static method f<S extends core::Object* = dynamic>(self::f::S* s) → core::List<self::f::S*>*
;
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 f5999a8..2091c88 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
@@ -55,10 +55,10 @@
return w as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*;
}
}
-class E<P extends core::String* = core::String*> extends core::Object {
- static factory •<P extends core::String* = 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*>*
return null;
- method foo6<generic-covariant-impl T extends self::E::P* = 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<generic-covariant-impl 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
@@ -74,8 +74,8 @@
synthetic constructor •() → self::F<self::F::T*>*
: super core::Object::•()
;
- abstract method foo7<generic-covariant-impl Q extends self::F::T* = self::F::T*>(self::F::foo7::Q* a, covariant core::num* b, generic-covariant-impl self::F::T* c) → void;
- abstract method foo8<generic-covariant-impl Q extends self::F::T* = self::F::T*>(self::F::foo8::Q* a, covariant core::num* b, generic-covariant-impl self::F::T* c) → void;
+ abstract method foo7<generic-covariant-impl Q extends self::F::T*>(self::F::foo7::Q* a, covariant core::num* b, generic-covariant-impl self::F::T* c) → void;
+ abstract method foo8<generic-covariant-impl Q extends self::F::T*>(self::F::foo8::Q* a, covariant core::num* b, generic-covariant-impl 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
@@ -91,7 +91,7 @@
synthetic constructor •() → self::G<self::G::T*>*
: super core::Object::•()
;
- method foo7<generic-covariant-impl Q extends self::G::T* = self::G::T*>(self::G::foo7::Q* a, core::int* b, generic-covariant-impl self::G::T* c) → void {}
+ method foo7<generic-covariant-impl Q extends self::G::T*>(self::G::foo7::Q* a, core::int* b, generic-covariant-impl 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
@@ -107,8 +107,8 @@
synthetic constructor •() → self::H<self::H::T*>*
: super self::G::•()
;
- method foo8<generic-covariant-impl Q extends self::H::T* = self::H::T*>(self::H::foo8::Q* a, covariant core::int* b, generic-covariant-impl self::H::T* c) → void {}
- forwarding-stub method foo7<generic-covariant-impl Q extends self::H::T* = self::H::T*>(self::H::foo7::Q* a, covariant core::num* b, generic-covariant-impl self::H::T* c) → void
+ method foo8<generic-covariant-impl Q extends self::H::T*>(self::H::foo8::Q* a, covariant core::int* b, generic-covariant-impl self::H::T* c) → void {}
+ forwarding-stub method foo7<generic-covariant-impl Q extends self::H::T*>(self::H::foo7::Q* a, covariant core::num* b, generic-covariant-impl self::H::T* c) → void
return super.{self::G::foo7}<self::H::foo7::Q*>(a, b, c);
}
static field core::List<core::Iterable<dynamic>*>* globalVar;
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 c37c149..679e7c3 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
@@ -35,10 +35,10 @@
method foo4(dynamic w) → core::Map<self::D::P*, self::D::Q*>*
;
}
-class E<P extends core::String* = core::String*> extends core::Object {
- static factory •<P extends core::String* = 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<generic-covariant-impl T extends self::E::P* = 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<generic-covariant-impl 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
@@ -54,8 +54,8 @@
abstract class F<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::F<self::F::T*>*
;
- abstract method foo7<generic-covariant-impl Q extends self::F::T* = self::F::T*>(self::F::foo7::Q* a, covariant core::num* b, generic-covariant-impl self::F::T* c) → void;
- abstract method foo8<generic-covariant-impl Q extends self::F::T* = self::F::T*>(self::F::foo8::Q* a, covariant core::num* b, generic-covariant-impl self::F::T* c) → void;
+ abstract method foo7<generic-covariant-impl Q extends self::F::T*>(self::F::foo7::Q* a, covariant core::num* b, generic-covariant-impl self::F::T* c) → void;
+ abstract method foo8<generic-covariant-impl Q extends self::F::T*>(self::F::foo8::Q* a, covariant core::num* b, generic-covariant-impl 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
@@ -70,7 +70,7 @@
class G<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::G<self::G::T*>*
;
- method foo7<generic-covariant-impl Q extends self::G::T* = self::G::T*>(self::G::foo7::Q* a, core::int* b, generic-covariant-impl self::G::T* c) → void
+ method foo7<generic-covariant-impl Q extends self::G::T*>(self::G::foo7::Q* a, core::int* b, generic-covariant-impl 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
@@ -86,9 +86,9 @@
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<generic-covariant-impl Q extends self::H::T* = self::H::T*>(self::H::foo8::Q* a, covariant core::int* b, generic-covariant-impl self::H::T* c) → void
+ method foo8<generic-covariant-impl Q extends self::H::T*>(self::H::foo8::Q* a, covariant core::int* b, generic-covariant-impl self::H::T* c) → void
;
- forwarding-stub method foo7<generic-covariant-impl Q extends self::H::T* = self::H::T*>(self::H::foo7::Q* a, covariant core::num* b, generic-covariant-impl self::H::T* c) → void
+ forwarding-stub method foo7<generic-covariant-impl Q extends self::H::T*>(self::H::foo7::Q* a, covariant core::num* b, generic-covariant-impl self::H::T* c) → void
return super.{self::G::foo7}<self::H::foo7::Q*>(a, b, c);
}
static field core::List<core::Iterable<dynamic>*>* globalVar;
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 63d1a23..ce44cfa 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
@@ -55,10 +55,10 @@
return w as{TypeError,ForDynamic} core::Map<self::D::P*, self::D::Q*>*;
}
}
-class E<P extends core::String* = core::String*> extends core::Object {
- static factory •<P extends core::String* = 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*>*
return null;
- method foo6<generic-covariant-impl T extends self::E::P* = 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<generic-covariant-impl 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
@@ -74,8 +74,8 @@
synthetic constructor •() → self::F<self::F::T*>*
: super core::Object::•()
;
- abstract method foo7<generic-covariant-impl Q extends self::F::T* = self::F::T*>(self::F::foo7::Q* a, covariant core::num* b, generic-covariant-impl self::F::T* c) → void;
- abstract method foo8<generic-covariant-impl Q extends self::F::T* = self::F::T*>(self::F::foo8::Q* a, covariant core::num* b, generic-covariant-impl self::F::T* c) → void;
+ abstract method foo7<generic-covariant-impl Q extends self::F::T*>(self::F::foo7::Q* a, covariant core::num* b, generic-covariant-impl self::F::T* c) → void;
+ abstract method foo8<generic-covariant-impl Q extends self::F::T*>(self::F::foo8::Q* a, covariant core::num* b, generic-covariant-impl 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
@@ -91,7 +91,7 @@
synthetic constructor •() → self::G<self::G::T*>*
: super core::Object::•()
;
- method foo7<generic-covariant-impl Q extends self::G::T* = self::G::T*>(self::G::foo7::Q* a, core::int* b, generic-covariant-impl self::G::T* c) → void {}
+ method foo7<generic-covariant-impl Q extends self::G::T*>(self::G::foo7::Q* a, core::int* b, generic-covariant-impl 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
@@ -107,8 +107,8 @@
synthetic constructor •() → self::H<self::H::T*>*
: super self::G::•()
;
- method foo8<generic-covariant-impl Q extends self::H::T* = self::H::T*>(self::H::foo8::Q* a, covariant core::int* b, generic-covariant-impl self::H::T* c) → void {}
- forwarding-stub method foo7<generic-covariant-impl Q extends self::H::T* = self::H::T*>(self::H::foo7::Q* a, covariant core::num* b, generic-covariant-impl self::H::T* c) → void
+ method foo8<generic-covariant-impl Q extends self::H::T*>(self::H::foo8::Q* a, covariant core::int* b, generic-covariant-impl self::H::T* c) → void {}
+ forwarding-stub method foo7<generic-covariant-impl Q extends self::H::T*>(self::H::foo7::Q* a, covariant core::num* b, generic-covariant-impl self::H::T* c) → void
return super.{self::G::foo7}<self::H::foo7::Q*>(a, b, c);
}
static field core::List<core::Iterable<dynamic>*>* globalVar;
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 56d2323..a688b79 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
@@ -61,7 +61,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::int* = core::int*> extends core::Object {
+class A<X extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::X*>*
: super core::Object::•()
;
@@ -93,7 +93,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-extension E<X extends self::A<core::num*>* = self::A<core::num*>*> on self::A<core::int*>* {
+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;
@@ -103,14 +103,14 @@
tearoff bazOfE = self::E|get#bazOfE;
}
static field self::A<core::num*>* E|fieldOfE;
-static method E|fooOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → self::A<core::num*>*
+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*>* = 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*>* = 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*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → (self::A<core::num*>*) →* void
+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*>* = self::A<core::num*>*, Y extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → void {}
-static method E|get#bazOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → <Y extends self::A<core::num*>* = self::A<core::num*>*>() →* void
- return <Y extends self::A<core::num*>* = self::A<core::num*>*>() → void => self::E|bazOfE<self::E|get#bazOfE::X*, Y*>(#this);
+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_outline.dart.weak.outline.expect b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.outline.expect
index 82ff41e..f1bac31 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
@@ -61,7 +61,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::int* = core::int*> extends core::Object {
+class A<X extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::X*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -91,7 +91,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-extension E<X extends self::A<core::num*>* = self::A<core::num*>*> on self::A<core::int*>* {
+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;
@@ -101,17 +101,17 @@
tearoff bazOfE = self::E|get#bazOfE;
}
static field self::A<core::num*>* E|fieldOfE;
-static method E|fooOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → self::A<core::num*>*
+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*>* = 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*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this, self::A<core::num*>* a) → void
+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*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → (self::A<core::num*>*) →* 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*>* = self::A<core::num*>*, Y extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → void
+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*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → <Y extends self::A<core::num*>* = self::A<core::num*>*>() →* void
- return <Y extends self::A<core::num*>* = self::A<core::num*>*>() → void => self::E|bazOfE<self::E|get#bazOfE::X*, Y*>(#this);
+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_outline.dart.weak.transformed.expect b/pkg/front_end/testcases/general/well_boundness_checks_in_outline.dart.weak.transformed.expect
index 56d2323..a688b79 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
@@ -61,7 +61,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::int* = core::int*> extends core::Object {
+class A<X extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::X*>*
: super core::Object::•()
;
@@ -93,7 +93,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-extension E<X extends self::A<core::num*>* = self::A<core::num*>*> on self::A<core::int*>* {
+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;
@@ -103,14 +103,14 @@
tearoff bazOfE = self::E|get#bazOfE;
}
static field self::A<core::num*>* E|fieldOfE;
-static method E|fooOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → self::A<core::num*>*
+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*>* = 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*>* = 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*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → (self::A<core::num*>*) →* void
+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*>* = self::A<core::num*>*, Y extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → void {}
-static method E|get#bazOfE<X extends self::A<core::num*>* = self::A<core::num*>*>(lowered final self::A<core::int*>* #this) → <Y extends self::A<core::num*>* = self::A<core::num*>*>() →* void
- return <Y extends self::A<core::num*>* = self::A<core::num*>*>() → void => self::E|bazOfE<self::E|get#bazOfE::X*, Y*>(#this);
+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/generic_metadata/erroneous_function_type_parameter.dart.strong.expect b/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.strong.expect
index 6ab9190..5d340a4 100644
--- a/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.strong.expect
+++ b/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.strong.expect
@@ -56,7 +56,7 @@
: super core::Object::•()
;
}
-class Class<T extends <S extends core::Object? = dynamic>(S%) → void = <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
+class Class<T extends <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
synthetic constructor •() → self::Class<self::Class::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.strong.transformed.expect b/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.strong.transformed.expect
index 6ab9190..5d340a4 100644
--- a/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.strong.transformed.expect
@@ -56,7 +56,7 @@
: super core::Object::•()
;
}
-class Class<T extends <S extends core::Object? = dynamic>(S%) → void = <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
+class Class<T extends <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
synthetic constructor •() → self::Class<self::Class::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.weak.expect b/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.weak.expect
index 6ab9190..5d340a4 100644
--- a/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.weak.expect
+++ b/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.weak.expect
@@ -56,7 +56,7 @@
: super core::Object::•()
;
}
-class Class<T extends <S extends core::Object? = dynamic>(S%) → void = <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
+class Class<T extends <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
synthetic constructor •() → self::Class<self::Class::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.weak.outline.expect b/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.weak.outline.expect
index edc7f22..a2d0339 100644
--- a/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.weak.outline.expect
@@ -28,7 +28,7 @@
: super core::Object::•()
;
}
-class Class<T extends <S extends core::Object? = dynamic>(S%) → void = <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
+class Class<T extends <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
synthetic constructor •() → self::Class<self::Class::T>
;
}
diff --git a/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.weak.transformed.expect b/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.weak.transformed.expect
index 6ab9190..5d340a4 100644
--- a/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/erroneous_function_type_parameter.dart.weak.transformed.expect
@@ -56,7 +56,7 @@
: super core::Object::•()
;
}
-class Class<T extends <S extends core::Object? = dynamic>(S%) → void = <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
+class Class<T extends <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
synthetic constructor •() → self::Class<self::Class::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.strong.expect b/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.strong.expect
index 92b41bb..189f2c4 100644
--- a/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.strong.expect
+++ b/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.strong.expect
@@ -15,9 +15,9 @@
mai::C4<<T extends core::Object? = dynamic>(T%) → void> c7 = new mai::C4::•<<T extends core::Object? = dynamic>(T%) → void>();
mai::C4<<T extends core::Object? = dynamic>(T%) → void> c8 = new mai::C4::•<<T extends core::Object? = dynamic>(T%) → void>();
mai::C5<<T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> c9 = new mai::C5::•<<T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T>();
- mai::C5<<T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> c10 = new mai::C5::•<<T extends <S extends core::Object? = dynamic>(S%) → S% = <S extends core::Object? = dynamic>(S%) → S%>(T) → T>();
+ mai::C5<<T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> c10 = new mai::C5::•<<T extends <S extends core::Object? = dynamic>(S%) → S%>(T) → T>();
mai::C6<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> c11 = new mai::C6::•<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%>();
- mai::C6<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> c12 = new mai::C6::•<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = S%, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%>();
+ mai::C6<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> c12 = new mai::C6::•<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S%, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%>();
}
library /*isNonNullableByDefault*/;
@@ -30,37 +30,37 @@
typedef exp4 = <T extends core::Object? = dynamic>(T%) → void;
typedef exp5 = <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T;
typedef exp6 = <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%;
-class C1<X extends <T extends core::Object? = dynamic>(T%) → T% = <T extends core::Object? = dynamic>(T%) → T%> extends core::Object {
+class C1<X extends <T extends core::Object? = dynamic>(T%) → T%> extends core::Object {
constructor •() → mai::C1<mai::C1::X>
: super core::Object::•() {
mai::expect(#C1, mai::C1::X);
}
}
-class C2<X extends <T extends core::Object? = dynamic>() → void = <T extends core::Object? = dynamic>() → void> extends core::Object {
+class C2<X extends <T extends core::Object? = dynamic>() → void> extends core::Object {
constructor •() → mai::C2<mai::C2::X>
: super core::Object::•() {
mai::expect(#C2, mai::C2::X);
}
}
-class C3<X extends <T extends core::Object? = dynamic>() → T% = <T extends core::Object? = dynamic>() → T%> extends core::Object {
+class C3<X extends <T extends core::Object? = dynamic>() → T%> extends core::Object {
constructor •() → mai::C3<mai::C3::X>
: super core::Object::•() {
mai::expect(#C3, mai::C3::X);
}
}
-class C4<X extends <T extends core::Object? = dynamic>(T%) → void = <T extends core::Object? = dynamic>(T%) → void> extends core::Object {
+class C4<X extends <T extends core::Object? = dynamic>(T%) → void> extends core::Object {
constructor •() → mai::C4<mai::C4::X>
: super core::Object::•() {
mai::expect(#C4, mai::C4::X);
}
}
-class C5<X extends <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T = <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> extends core::Object {
+class C5<X extends <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> extends core::Object {
constructor •() → mai::C5<mai::C5::X>
: super core::Object::•() {
mai::expect(#C5, mai::C5::X);
}
}
-class C6<X extends <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T% = <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> extends core::Object {
+class C6<X extends <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> extends core::Object {
constructor •() → mai::C6<mai::C6::X>
: super core::Object::•() {
mai::expect(#C6, mai::C6::X);
diff --git a/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.strong.transformed.expect b/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.strong.transformed.expect
index 92b41bb..189f2c4 100644
--- a/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.strong.transformed.expect
@@ -15,9 +15,9 @@
mai::C4<<T extends core::Object? = dynamic>(T%) → void> c7 = new mai::C4::•<<T extends core::Object? = dynamic>(T%) → void>();
mai::C4<<T extends core::Object? = dynamic>(T%) → void> c8 = new mai::C4::•<<T extends core::Object? = dynamic>(T%) → void>();
mai::C5<<T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> c9 = new mai::C5::•<<T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T>();
- mai::C5<<T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> c10 = new mai::C5::•<<T extends <S extends core::Object? = dynamic>(S%) → S% = <S extends core::Object? = dynamic>(S%) → S%>(T) → T>();
+ mai::C5<<T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> c10 = new mai::C5::•<<T extends <S extends core::Object? = dynamic>(S%) → S%>(T) → T>();
mai::C6<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> c11 = new mai::C6::•<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%>();
- mai::C6<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> c12 = new mai::C6::•<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = S%, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%>();
+ mai::C6<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> c12 = new mai::C6::•<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S%, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%>();
}
library /*isNonNullableByDefault*/;
@@ -30,37 +30,37 @@
typedef exp4 = <T extends core::Object? = dynamic>(T%) → void;
typedef exp5 = <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T;
typedef exp6 = <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%;
-class C1<X extends <T extends core::Object? = dynamic>(T%) → T% = <T extends core::Object? = dynamic>(T%) → T%> extends core::Object {
+class C1<X extends <T extends core::Object? = dynamic>(T%) → T%> extends core::Object {
constructor •() → mai::C1<mai::C1::X>
: super core::Object::•() {
mai::expect(#C1, mai::C1::X);
}
}
-class C2<X extends <T extends core::Object? = dynamic>() → void = <T extends core::Object? = dynamic>() → void> extends core::Object {
+class C2<X extends <T extends core::Object? = dynamic>() → void> extends core::Object {
constructor •() → mai::C2<mai::C2::X>
: super core::Object::•() {
mai::expect(#C2, mai::C2::X);
}
}
-class C3<X extends <T extends core::Object? = dynamic>() → T% = <T extends core::Object? = dynamic>() → T%> extends core::Object {
+class C3<X extends <T extends core::Object? = dynamic>() → T%> extends core::Object {
constructor •() → mai::C3<mai::C3::X>
: super core::Object::•() {
mai::expect(#C3, mai::C3::X);
}
}
-class C4<X extends <T extends core::Object? = dynamic>(T%) → void = <T extends core::Object? = dynamic>(T%) → void> extends core::Object {
+class C4<X extends <T extends core::Object? = dynamic>(T%) → void> extends core::Object {
constructor •() → mai::C4<mai::C4::X>
: super core::Object::•() {
mai::expect(#C4, mai::C4::X);
}
}
-class C5<X extends <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T = <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> extends core::Object {
+class C5<X extends <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> extends core::Object {
constructor •() → mai::C5<mai::C5::X>
: super core::Object::•() {
mai::expect(#C5, mai::C5::X);
}
}
-class C6<X extends <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T% = <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> extends core::Object {
+class C6<X extends <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> extends core::Object {
constructor •() → mai::C6<mai::C6::X>
: super core::Object::•() {
mai::expect(#C6, mai::C6::X);
diff --git a/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.weak.expect b/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.weak.expect
index e1e7067..941af3f 100644
--- a/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.weak.expect
+++ b/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.weak.expect
@@ -15,9 +15,9 @@
mai::C4<<T extends core::Object? = dynamic>(T%) → void> c7 = new mai::C4::•<<T extends core::Object? = dynamic>(T%) → void>();
mai::C4<<T extends core::Object? = dynamic>(T%) → void> c8 = new mai::C4::•<<T extends core::Object? = dynamic>(T%) → void>();
mai::C5<<T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> c9 = new mai::C5::•<<T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T>();
- mai::C5<<T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> c10 = new mai::C5::•<<T extends <S extends core::Object? = dynamic>(S%) → S% = <S extends core::Object? = dynamic>(S%) → S%>(T) → T>();
+ mai::C5<<T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> c10 = new mai::C5::•<<T extends <S extends core::Object? = dynamic>(S%) → S%>(T) → T>();
mai::C6<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> c11 = new mai::C6::•<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%>();
- mai::C6<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> c12 = new mai::C6::•<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = S%, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%>();
+ mai::C6<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> c12 = new mai::C6::•<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S%, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%>();
}
library /*isNonNullableByDefault*/;
@@ -30,37 +30,37 @@
typedef exp4 = <T extends core::Object? = dynamic>(T%) → void;
typedef exp5 = <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T;
typedef exp6 = <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%;
-class C1<X extends <T extends core::Object? = dynamic>(T%) → T% = <T extends core::Object? = dynamic>(T%) → T%> extends core::Object {
+class C1<X extends <T extends core::Object? = dynamic>(T%) → T%> extends core::Object {
constructor •() → mai::C1<mai::C1::X>
: super core::Object::•() {
mai::expect(#C1, mai::C1::X);
}
}
-class C2<X extends <T extends core::Object? = dynamic>() → void = <T extends core::Object? = dynamic>() → void> extends core::Object {
+class C2<X extends <T extends core::Object? = dynamic>() → void> extends core::Object {
constructor •() → mai::C2<mai::C2::X>
: super core::Object::•() {
mai::expect(#C2, mai::C2::X);
}
}
-class C3<X extends <T extends core::Object? = dynamic>() → T% = <T extends core::Object? = dynamic>() → T%> extends core::Object {
+class C3<X extends <T extends core::Object? = dynamic>() → T%> extends core::Object {
constructor •() → mai::C3<mai::C3::X>
: super core::Object::•() {
mai::expect(#C3, mai::C3::X);
}
}
-class C4<X extends <T extends core::Object? = dynamic>(T%) → void = <T extends core::Object? = dynamic>(T%) → void> extends core::Object {
+class C4<X extends <T extends core::Object? = dynamic>(T%) → void> extends core::Object {
constructor •() → mai::C4<mai::C4::X>
: super core::Object::•() {
mai::expect(#C4, mai::C4::X);
}
}
-class C5<X extends <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T = <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> extends core::Object {
+class C5<X extends <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> extends core::Object {
constructor •() → mai::C5<mai::C5::X>
: super core::Object::•() {
mai::expect(#C5, mai::C5::X);
}
}
-class C6<X extends <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T% = <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> extends core::Object {
+class C6<X extends <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> extends core::Object {
constructor •() → mai::C6<mai::C6::X>
: super core::Object::•() {
mai::expect(#C6, mai::C6::X);
@@ -76,6 +76,6 @@
#C2 = TypeLiteralConstant(<T extends core::Object? = dynamic>() →* void)
#C3 = TypeLiteralConstant(<T extends core::Object? = dynamic>() →* T*)
#C4 = TypeLiteralConstant(<T extends core::Object? = dynamic>(T*) →* void)
- #C5 = TypeLiteralConstant(<T extends <S extends core::Object? = dynamic>(S*) →* S* = <S extends core::Object? = dynamic>(S*) →* S*>(T*) →* T*)
- #C6 = TypeLiteralConstant(<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T*, S*, <V extends S* = S*, U extends core::Object? = dynamic>(T*, U*, V*, core::Map<S*, U*>*) →* V*) →* T*)
+ #C5 = TypeLiteralConstant(<T extends <S extends core::Object? = dynamic>(S*) →* S*>(T*) →* T*)
+ #C6 = TypeLiteralConstant(<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T*, S*, <V extends S*, U extends core::Object? = dynamic>(T*, U*, V*, core::Map<S*, U*>*) →* V*) →* T*)
}
diff --git a/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.weak.outline.expect b/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.weak.outline.expect
index b9ccc27..ba9fc54 100644
--- a/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.weak.outline.expect
@@ -16,27 +16,27 @@
typedef exp4 = <T extends core::Object? = dynamic>(T%) → void;
typedef exp5 = <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T;
typedef exp6 = <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%;
-class C1<X extends <T extends core::Object? = dynamic>(T%) → T% = <T extends core::Object? = dynamic>(T%) → T%> extends core::Object {
+class C1<X extends <T extends core::Object? = dynamic>(T%) → T%> extends core::Object {
constructor •() → self2::C1<self2::C1::X>
;
}
-class C2<X extends <T extends core::Object? = dynamic>() → void = <T extends core::Object? = dynamic>() → void> extends core::Object {
+class C2<X extends <T extends core::Object? = dynamic>() → void> extends core::Object {
constructor •() → self2::C2<self2::C2::X>
;
}
-class C3<X extends <T extends core::Object? = dynamic>() → T% = <T extends core::Object? = dynamic>() → T%> extends core::Object {
+class C3<X extends <T extends core::Object? = dynamic>() → T%> extends core::Object {
constructor •() → self2::C3<self2::C3::X>
;
}
-class C4<X extends <T extends core::Object? = dynamic>(T%) → void = <T extends core::Object? = dynamic>(T%) → void> extends core::Object {
+class C4<X extends <T extends core::Object? = dynamic>(T%) → void> extends core::Object {
constructor •() → self2::C4<self2::C4::X>
;
}
-class C5<X extends <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T = <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> extends core::Object {
+class C5<X extends <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> extends core::Object {
constructor •() → self2::C5<self2::C5::X>
;
}
-class C6<X extends <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T% = <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> extends core::Object {
+class C6<X extends <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> extends core::Object {
constructor •() → self2::C6<self2::C6::X>
;
}
diff --git a/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.weak.transformed.expect b/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.weak.transformed.expect
index e1e7067..941af3f 100644
--- a/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/from_dill/main.dart.weak.transformed.expect
@@ -15,9 +15,9 @@
mai::C4<<T extends core::Object? = dynamic>(T%) → void> c7 = new mai::C4::•<<T extends core::Object? = dynamic>(T%) → void>();
mai::C4<<T extends core::Object? = dynamic>(T%) → void> c8 = new mai::C4::•<<T extends core::Object? = dynamic>(T%) → void>();
mai::C5<<T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> c9 = new mai::C5::•<<T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T>();
- mai::C5<<T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> c10 = new mai::C5::•<<T extends <S extends core::Object? = dynamic>(S%) → S% = <S extends core::Object? = dynamic>(S%) → S%>(T) → T>();
+ mai::C5<<T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> c10 = new mai::C5::•<<T extends <S extends core::Object? = dynamic>(S%) → S%>(T) → T>();
mai::C6<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> c11 = new mai::C6::•<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%>();
- mai::C6<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> c12 = new mai::C6::•<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = S%, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%>();
+ mai::C6<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> c12 = new mai::C6::•<<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S%, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%>();
}
library /*isNonNullableByDefault*/;
@@ -30,37 +30,37 @@
typedef exp4 = <T extends core::Object? = dynamic>(T%) → void;
typedef exp5 = <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T;
typedef exp6 = <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%;
-class C1<X extends <T extends core::Object? = dynamic>(T%) → T% = <T extends core::Object? = dynamic>(T%) → T%> extends core::Object {
+class C1<X extends <T extends core::Object? = dynamic>(T%) → T%> extends core::Object {
constructor •() → mai::C1<mai::C1::X>
: super core::Object::•() {
mai::expect(#C1, mai::C1::X);
}
}
-class C2<X extends <T extends core::Object? = dynamic>() → void = <T extends core::Object? = dynamic>() → void> extends core::Object {
+class C2<X extends <T extends core::Object? = dynamic>() → void> extends core::Object {
constructor •() → mai::C2<mai::C2::X>
: super core::Object::•() {
mai::expect(#C2, mai::C2::X);
}
}
-class C3<X extends <T extends core::Object? = dynamic>() → T% = <T extends core::Object? = dynamic>() → T%> extends core::Object {
+class C3<X extends <T extends core::Object? = dynamic>() → T%> extends core::Object {
constructor •() → mai::C3<mai::C3::X>
: super core::Object::•() {
mai::expect(#C3, mai::C3::X);
}
}
-class C4<X extends <T extends core::Object? = dynamic>(T%) → void = <T extends core::Object? = dynamic>(T%) → void> extends core::Object {
+class C4<X extends <T extends core::Object? = dynamic>(T%) → void> extends core::Object {
constructor •() → mai::C4<mai::C4::X>
: super core::Object::•() {
mai::expect(#C4, mai::C4::X);
}
}
-class C5<X extends <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T = <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> extends core::Object {
+class C5<X extends <T extends <S extends core::Object? = dynamic>(S%) → S% = dynamic>(T) → T> extends core::Object {
constructor •() → mai::C5<mai::C5::X>
: super core::Object::•() {
mai::expect(#C5, mai::C5::X);
}
}
-class C6<X extends <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T% = <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> extends core::Object {
+class C6<X extends <T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T%, S%, <V extends S% = dynamic, U extends core::Object? = dynamic>(T%, U%, V%, core::Map<S%, U%>) → V%) → T%> extends core::Object {
constructor •() → mai::C6<mai::C6::X>
: super core::Object::•() {
mai::expect(#C6, mai::C6::X);
@@ -76,6 +76,6 @@
#C2 = TypeLiteralConstant(<T extends core::Object? = dynamic>() →* void)
#C3 = TypeLiteralConstant(<T extends core::Object? = dynamic>() →* T*)
#C4 = TypeLiteralConstant(<T extends core::Object? = dynamic>(T*) →* void)
- #C5 = TypeLiteralConstant(<T extends <S extends core::Object? = dynamic>(S*) →* S* = <S extends core::Object? = dynamic>(S*) →* S*>(T*) →* T*)
- #C6 = TypeLiteralConstant(<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T*, S*, <V extends S* = S*, U extends core::Object? = dynamic>(T*, U*, V*, core::Map<S*, U*>*) →* V*) →* T*)
+ #C5 = TypeLiteralConstant(<T extends <S extends core::Object? = dynamic>(S*) →* S*>(T*) →* T*)
+ #C6 = TypeLiteralConstant(<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(T*, S*, <V extends S*, U extends core::Object? = dynamic>(T*, U*, V*, core::Map<S*, U*>*) →* V*) →* T*)
}
diff --git a/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.strong.expect b/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.strong.expect
index 493cc77..17eab83 100644
--- a/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.strong.expect
+++ b/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.strong.expect
@@ -9,7 +9,7 @@
: super core::Object::•()
;
}
-class Class<T extends <S extends core::Object? = dynamic>(S%) → void = <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
+class Class<T extends <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
synthetic constructor •() → self::Class<self::Class::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.strong.transformed.expect b/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.strong.transformed.expect
index 493cc77..17eab83 100644
--- a/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.strong.transformed.expect
@@ -9,7 +9,7 @@
: super core::Object::•()
;
}
-class Class<T extends <S extends core::Object? = dynamic>(S%) → void = <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
+class Class<T extends <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
synthetic constructor •() → self::Class<self::Class::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.weak.expect b/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.weak.expect
index c1ead73..d081a19 100644
--- a/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.weak.expect
+++ b/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.weak.expect
@@ -9,7 +9,7 @@
: super core::Object::•()
;
}
-class Class<T extends <S extends core::Object? = dynamic>(S%) → void = <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
+class Class<T extends <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
synthetic constructor •() → self::Class<self::Class::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.weak.outline.expect b/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.weak.outline.expect
index 778e91b..7735bd6 100644
--- a/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.weak.outline.expect
@@ -9,7 +9,7 @@
: super core::Object::•()
;
}
-class Class<T extends <S extends core::Object? = dynamic>(S%) → void = <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
+class Class<T extends <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
synthetic constructor •() → self::Class<self::Class::T>
;
}
diff --git a/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.weak.transformed.expect b/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.weak.transformed.expect
index c1ead73..d081a19 100644
--- a/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/function_type_parameter.dart.weak.transformed.expect
@@ -9,7 +9,7 @@
: super core::Object::•()
;
}
-class Class<T extends <S extends core::Object? = dynamic>(S%) → void = <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
+class Class<T extends <S extends core::Object? = dynamic>(S%) → void> extends core::Object {
synthetic constructor •() → self::Class<self::Class::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.strong.expect b/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.strong.expect
index d7ddced..0054d6c 100644
--- a/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.strong.expect
+++ b/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.strong.expect
@@ -45,12 +45,12 @@
: super core::Object::•()
;
}
-class C<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class C<T extends core::num> extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::C<self::C::T>
: super core::Object::•()
;
}
-class D<S extends core::num = core::num, T extends self::D::S = core::num> extends core::Object /*hasConstConstructor*/ {
+class D<S extends core::num, T extends self::D::S = core::num> extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::D<self::D::S, self::D::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.strong.transformed.expect b/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.strong.transformed.expect
index d7ddced..0054d6c 100644
--- a/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.strong.transformed.expect
@@ -45,12 +45,12 @@
: super core::Object::•()
;
}
-class C<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class C<T extends core::num> extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::C<self::C::T>
: super core::Object::•()
;
}
-class D<S extends core::num = core::num, T extends self::D::S = core::num> extends core::Object /*hasConstConstructor*/ {
+class D<S extends core::num, T extends self::D::S = core::num> extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::D<self::D::S, self::D::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.weak.expect b/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.weak.expect
index 338bb8d..b60d2ce 100644
--- a/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.weak.expect
+++ b/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.weak.expect
@@ -45,12 +45,12 @@
: super core::Object::•()
;
}
-class C<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class C<T extends core::num> extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::C<self::C::T>
: super core::Object::•()
;
}
-class D<S extends core::num = core::num, T extends self::D::S = core::num> extends core::Object /*hasConstConstructor*/ {
+class D<S extends core::num, T extends self::D::S = core::num> extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::D<self::D::S, self::D::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.weak.outline.expect b/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.weak.outline.expect
index 229b1bb..71f6cda 100644
--- a/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.weak.outline.expect
@@ -45,12 +45,12 @@
: super core::Object::•()
;
}
-class C<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class C<T extends core::num> extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::C<self::C::T>
: super core::Object::•()
;
}
-class D<S extends core::num = core::num, T extends self::D::S = core::num> extends core::Object /*hasConstConstructor*/ {
+class D<S extends core::num, T extends self::D::S = core::num> extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::D<self::D::S, self::D::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.weak.transformed.expect b/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.weak.transformed.expect
index 338bb8d..b60d2ce 100644
--- a/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/generic_metadata.dart.weak.transformed.expect
@@ -45,12 +45,12 @@
: super core::Object::•()
;
}
-class C<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class C<T extends core::num> extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::C<self::C::T>
: super core::Object::•()
;
}
-class D<S extends core::num = core::num, T extends self::D::S = core::num> extends core::Object /*hasConstConstructor*/ {
+class D<S extends core::num, T extends self::D::S = core::num> extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::D<self::D::S, self::D::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/generic_metadata/issue45330.dart.strong.expect b/pkg/front_end/testcases/generic_metadata/issue45330.dart.strong.expect
index bf8ebf6..156f3fb 100644
--- a/pkg/front_end/testcases/generic_metadata/issue45330.dart.strong.expect
+++ b/pkg/front_end/testcases/generic_metadata/issue45330.dart.strong.expect
@@ -18,9 +18,9 @@
part issue45330_lib.dart;
static method genericMethod<T extends core::Object? = dynamic>() → void {}
static method testInMain() → dynamic {
- self::genericMethod<<T extends invalid-type = invalid-type>() → void>();
+ self::genericMethod<<T extends invalid-type>() → void>();
}
static method main() → dynamic {}
static method /* from org-dartlang-testcase:///issue45330_lib.dart */ testInPart() → dynamic {
- self::genericMethod<<T extends invalid-type = invalid-type>() → void>();
+ self::genericMethod<<T extends invalid-type>() → void>();
}
diff --git a/pkg/front_end/testcases/generic_metadata/issue45330.dart.strong.transformed.expect b/pkg/front_end/testcases/generic_metadata/issue45330.dart.strong.transformed.expect
index bf8ebf6..156f3fb 100644
--- a/pkg/front_end/testcases/generic_metadata/issue45330.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/issue45330.dart.strong.transformed.expect
@@ -18,9 +18,9 @@
part issue45330_lib.dart;
static method genericMethod<T extends core::Object? = dynamic>() → void {}
static method testInMain() → dynamic {
- self::genericMethod<<T extends invalid-type = invalid-type>() → void>();
+ self::genericMethod<<T extends invalid-type>() → void>();
}
static method main() → dynamic {}
static method /* from org-dartlang-testcase:///issue45330_lib.dart */ testInPart() → dynamic {
- self::genericMethod<<T extends invalid-type = invalid-type>() → void>();
+ self::genericMethod<<T extends invalid-type>() → void>();
}
diff --git a/pkg/front_end/testcases/generic_metadata/issue45330.dart.weak.expect b/pkg/front_end/testcases/generic_metadata/issue45330.dart.weak.expect
index bf8ebf6..156f3fb 100644
--- a/pkg/front_end/testcases/generic_metadata/issue45330.dart.weak.expect
+++ b/pkg/front_end/testcases/generic_metadata/issue45330.dart.weak.expect
@@ -18,9 +18,9 @@
part issue45330_lib.dart;
static method genericMethod<T extends core::Object? = dynamic>() → void {}
static method testInMain() → dynamic {
- self::genericMethod<<T extends invalid-type = invalid-type>() → void>();
+ self::genericMethod<<T extends invalid-type>() → void>();
}
static method main() → dynamic {}
static method /* from org-dartlang-testcase:///issue45330_lib.dart */ testInPart() → dynamic {
- self::genericMethod<<T extends invalid-type = invalid-type>() → void>();
+ self::genericMethod<<T extends invalid-type>() → void>();
}
diff --git a/pkg/front_end/testcases/generic_metadata/issue45330.dart.weak.transformed.expect b/pkg/front_end/testcases/generic_metadata/issue45330.dart.weak.transformed.expect
index bf8ebf6..156f3fb 100644
--- a/pkg/front_end/testcases/generic_metadata/issue45330.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/issue45330.dart.weak.transformed.expect
@@ -18,9 +18,9 @@
part issue45330_lib.dart;
static method genericMethod<T extends core::Object? = dynamic>() → void {}
static method testInMain() → dynamic {
- self::genericMethod<<T extends invalid-type = invalid-type>() → void>();
+ self::genericMethod<<T extends invalid-type>() → void>();
}
static method main() → dynamic {}
static method /* from org-dartlang-testcase:///issue45330_lib.dart */ testInPart() → dynamic {
- self::genericMethod<<T extends invalid-type = invalid-type>() → void>();
+ self::genericMethod<<T extends invalid-type>() → void>();
}
diff --git a/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.strong.expect b/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.strong.expect
index 0777872..3c45ce6 100644
--- a/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.strong.expect
+++ b/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.strong.expect
@@ -12,13 +12,13 @@
: super self::A::•()
;
}
-class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
+class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::Z>
: super core::Object::•()
;
}
static method foo(self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic> x) → self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic>
return throw 42;
-static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
+static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
return throw 42;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.strong.transformed.expect b/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.strong.transformed.expect
index 0777872..3c45ce6 100644
--- a/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.strong.transformed.expect
@@ -12,13 +12,13 @@
: super self::A::•()
;
}
-class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
+class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::Z>
: super core::Object::•()
;
}
static method foo(self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic> x) → self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic>
return throw 42;
-static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
+static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
return throw 42;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.weak.expect b/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.weak.expect
index 0777872..3c45ce6 100644
--- a/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.weak.expect
+++ b/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.weak.expect
@@ -12,13 +12,13 @@
: super self::A::•()
;
}
-class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
+class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::Z>
: super core::Object::•()
;
}
static method foo(self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic> x) → self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic>
return throw 42;
-static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
+static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
return throw 42;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.weak.outline.expect b/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.weak.outline.expect
index 13fcc95..98c0d38 100644
--- a/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.weak.outline.expect
@@ -10,13 +10,13 @@
synthetic constructor •() → self::B
;
}
-class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
+class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::Z>
;
}
static method foo(self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic> x) → self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic>
;
-static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
+static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.weak.transformed.expect b/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.weak.transformed.expect
index 0777872..3c45ce6 100644
--- a/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/simple_generic_types_in_arguments_and_bounds.dart.weak.transformed.expect
@@ -12,13 +12,13 @@
: super self::A::•()
;
}
-class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
+class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::Z>
: super core::Object::•()
;
}
static method foo(self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic> x) → self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic>
return throw 42;
-static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
+static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
return throw 42;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.strong.expect b/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.strong.expect
index 52d8793..f970a2a 100644
--- a/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.strong.expect
+++ b/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.strong.expect
@@ -1,5 +1,5 @@
library /*isNonNullableByDefault*/;
import self as self;
-static method foo<X extends <Y extends self::foo::X = dynamic>() → dynamic = <Y extends dynamic = dynamic>() → dynamic>() → dynamic {}
+static method foo<X extends <Y extends self::foo::X = dynamic>() → dynamic = <Y extends dynamic>() → dynamic>() → dynamic {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.strong.transformed.expect b/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.strong.transformed.expect
index 52d8793..f970a2a 100644
--- a/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.strong.transformed.expect
@@ -1,5 +1,5 @@
library /*isNonNullableByDefault*/;
import self as self;
-static method foo<X extends <Y extends self::foo::X = dynamic>() → dynamic = <Y extends dynamic = dynamic>() → dynamic>() → dynamic {}
+static method foo<X extends <Y extends self::foo::X = dynamic>() → dynamic = <Y extends dynamic>() → dynamic>() → dynamic {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.weak.expect b/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.weak.expect
index 52d8793..f970a2a 100644
--- a/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.weak.expect
+++ b/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.weak.expect
@@ -1,5 +1,5 @@
library /*isNonNullableByDefault*/;
import self as self;
-static method foo<X extends <Y extends self::foo::X = dynamic>() → dynamic = <Y extends dynamic = dynamic>() → dynamic>() → dynamic {}
+static method foo<X extends <Y extends self::foo::X = dynamic>() → dynamic = <Y extends dynamic>() → dynamic>() → dynamic {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.weak.outline.expect b/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.weak.outline.expect
index 3b0732a..e413c7d 100644
--- a/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.weak.outline.expect
@@ -1,7 +1,7 @@
library /*isNonNullableByDefault*/;
import self as self;
-static method foo<X extends <Y extends self::foo::X = dynamic>() → dynamic = <Y extends dynamic = dynamic>() → dynamic>() → dynamic
+static method foo<X extends <Y extends self::foo::X = dynamic>() → dynamic = <Y extends dynamic>() → dynamic>() → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.weak.transformed.expect b/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.weak.transformed.expect
index 52d8793..f970a2a 100644
--- a/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/type_parameters_in_default_types.dart.weak.transformed.expect
@@ -1,5 +1,5 @@
library /*isNonNullableByDefault*/;
import self as self;
-static method foo<X extends <Y extends self::foo::X = dynamic>() → dynamic = <Y extends dynamic = dynamic>() → dynamic>() → dynamic {}
+static method foo<X extends <Y extends self::foo::X = dynamic>() → dynamic = <Y extends dynamic>() → dynamic>() → dynamic {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.strong.expect b/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.strong.expect
index dd20ce4..e853954 100644
--- a/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.strong.expect
+++ b/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.strong.expect
@@ -13,13 +13,13 @@
: super self::A::•()
;
}
-class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
+class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::Z>
: super core::Object::•()
;
}
static method foo(self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic> x) → self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic>
return throw 42;
-static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
+static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
return throw 42;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.strong.transformed.expect b/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.strong.transformed.expect
index dd20ce4..e853954 100644
--- a/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.strong.transformed.expect
@@ -13,13 +13,13 @@
: super self::A::•()
;
}
-class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
+class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::Z>
: super core::Object::•()
;
}
static method foo(self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic> x) → self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic>
return throw 42;
-static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
+static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
return throw 42;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.weak.expect b/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.weak.expect
index dd20ce4..e853954 100644
--- a/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.weak.expect
+++ b/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.weak.expect
@@ -13,13 +13,13 @@
: super self::A::•()
;
}
-class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
+class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::Z>
: super core::Object::•()
;
}
static method foo(self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic> x) → self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic>
return throw 42;
-static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
+static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
return throw 42;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.weak.outline.expect b/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.weak.outline.expect
index 1fbe2f1..7c86aa6 100644
--- a/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.weak.outline.expect
@@ -11,13 +11,13 @@
synthetic constructor •() → self::B
;
}
-class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
+class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::Z>
;
}
static method foo(self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic> x) → self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic>
;
-static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
+static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.weak.transformed.expect b/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.weak.transformed.expect
index dd20ce4..e853954 100644
--- a/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/generic_metadata/typedef_generic_types_in_arguments_and_bounds.dart.weak.transformed.expect
@@ -13,13 +13,13 @@
: super self::A::•()
;
}
-class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
+class C<Z extends <Y extends core::Object? = dynamic>(Y%) → dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::Z>
: super core::Object::•()
;
}
static method foo(self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic> x) → self::A<<Y extends core::Object? = dynamic>(Y%) → dynamic>
return throw 42;
-static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic = <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
+static method bar<V extends <Y extends core::Object? = dynamic>(Y%) → dynamic>() → dynamic
return throw 42;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml.world.1.expect b/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml.world.1.expect
index 83dfce6..596001e 100644
--- a/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml.world.1.expect
@@ -3,7 +3,7 @@
import "package:flutter/framework.dart";
- abstract class AfterLayoutMixin<T extends fra::StatefulWidget* = fra::StatefulWidget*> extends fra::State<aft::AfterLayoutMixin::T*> /*isMixinDeclaration*/ {
+ abstract class AfterLayoutMixin<T extends fra::StatefulWidget*> extends fra::State<aft::AfterLayoutMixin::T*> /*isMixinDeclaration*/ {
abstract member-signature get _widget() → aft::AfterLayoutMixin::T*; -> fra::State::_widget
abstract member-signature set _widget(generic-covariant-impl aft::AfterLayoutMixin::T* value) → void; -> fra::State::_widget
abstract member-signature method toString() → dart.core::String*; -> fra::_State&Object&Diagnosticable::toString
@@ -27,7 +27,7 @@
mixin-super-stub method toString() → dart.core::String
return super.{fra::Diagnosticable::toString}();
}
- abstract class State<T extends fra::StatefulWidget = fra::StatefulWidget> extends fra::_State&Object&Diagnosticable {
+ abstract class State<T extends fra::StatefulWidget> extends fra::_State&Object&Diagnosticable {
generic-covariant-impl field fra::State::T? _widget = null;
synthetic constructor •() → fra::State<fra::State::T>
: super fra::_State&Object&Diagnosticable::•()
diff --git a/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml.world.2.expect b/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml.world.2.expect
index 7d7406e..f1cc6fa 100644
--- a/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml.world.2.expect
@@ -3,7 +3,7 @@
import "package:flutter/framework.dart";
- abstract class AfterLayoutMixin<T extends fra::StatefulWidget* = fra::StatefulWidget*> extends fra::State<aft::AfterLayoutMixin::T*> /*isMixinDeclaration*/ {
+ abstract class AfterLayoutMixin<T extends fra::StatefulWidget*> extends fra::State<aft::AfterLayoutMixin::T*> /*isMixinDeclaration*/ {
abstract member-signature get _widget() → aft::AfterLayoutMixin::T*; -> fra::State::_widget
abstract member-signature set _widget(generic-covariant-impl aft::AfterLayoutMixin::T* value) → void; -> fra::State::_widget
abstract member-signature method toString() → dart.core::String*; -> fra::_State&Object&Diagnosticable::toString
@@ -27,7 +27,7 @@
mixin-super-stub method toString() → dart.core::String
return super.{fra::Diagnosticable::toString}();
}
- abstract class State<T extends fra::StatefulWidget = fra::StatefulWidget> extends fra::_State&Object&Diagnosticable {
+ abstract class State<T extends fra::StatefulWidget> extends fra::_State&Object&Diagnosticable {
generic-covariant-impl field fra::State::T? _widget = null;
synthetic constructor •() → fra::State<fra::State::T>
: super fra::_State&Object&Diagnosticable::•()
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.1.expect b/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.1.expect
index f12602b..3d2f012 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.1.expect
@@ -12,7 +12,7 @@
// ^^^
//
- class Bar<X extends invalid-type = invalid-type> extends dart.core::Object {
+ class Bar<X extends invalid-type> extends dart.core::Object {
synthetic constructor •() → lib::Bar<lib::Bar::X*>*
: super dart.core::Object::•()
;
@@ -32,7 +32,7 @@
import "org-dartlang-test:///lib.dart";
- class Foo<X extends lib::Bar<invalid-type>* = lib::Bar<invalid-type>*> extends dart.core::Object {
+ class Foo<X extends lib::Bar<invalid-type>*> extends dart.core::Object {
synthetic constructor •() → main::Foo<main::Foo::X*>*
: super dart.core::Object::•()
;
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.2.expect b/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.2.expect
index 5ad635e..4033273 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.2.expect
@@ -12,7 +12,7 @@
// ^^^
//
- class Bar<X extends invalid-type = invalid-type> extends dart.core::Object {
+ class Bar<X extends invalid-type> extends dart.core::Object {
synthetic constructor •() → lib::Bar<lib::Bar::X*>*
: super dart.core::Object::•()
;
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.3.expect b/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.3.expect
index fab0774..3c1d034 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.3.expect
@@ -3,7 +3,7 @@
import "org-dartlang-test:///main.dart";
- class Bar<X extends main::Foo<Null>* = main::Foo<Null>*> extends dart.core::Object {
+ class Bar<X extends main::Foo<Null>*> extends dart.core::Object {
synthetic constructor •() → lib::Bar<lib::Bar::X*>*
: super dart.core::Object::•()
;
@@ -23,7 +23,7 @@
import "org-dartlang-test:///lib.dart";
- class Foo<X extends lib::Bar<main::Foo<Null>*>* = lib::Bar<main::Foo<Null>*>*> extends dart.core::Object {
+ class Foo<X extends lib::Bar<main::Foo<Null>*>*> extends dart.core::Object {
synthetic constructor •() → main::Foo<main::Foo::X*>*
: super dart.core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.expect
index dc47257..7a1c1c0 100644
--- a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.expect
@@ -22,7 +22,7 @@
: super self::A::•()
;
}
-class Foo<T extends self::A* = self::A*> extends core::Object {
+class Foo<T extends self::A*> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.outline.expect
index 20ef2cd..3f5622c 100644
--- a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.outline.expect
@@ -20,7 +20,7 @@
synthetic constructor •() → self::B*
;
}
-class Foo<T extends self::A* = self::A*> extends core::Object {
+class Foo<T extends self::A*> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.transformed.expect
index dc47257..7a1c1c0 100644
--- a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.transformed.expect
@@ -22,7 +22,7 @@
: super self::A::•()
;
}
-class Foo<T extends self::A* = self::A*> extends core::Object {
+class Foo<T extends self::A*> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.expect
index 8445171..706d512 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.expect
@@ -41,7 +41,7 @@
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 self::A* = self::A*> extends core::Object {
+class C<T extends self::A*> extends core::Object {
constructor •(() →* self::C::T* f) → self::C<self::C::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.outline.expect
index a91a655f..9a32b9b 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.outline.expect
@@ -17,7 +17,7 @@
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 self::A* = self::A*> extends core::Object {
+class C<T extends self::A*> extends core::Object {
constructor •(() →* self::C::T* f) → self::C<self::C::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.expect
index f64a716..c79ff6d 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<T extends core::num* = core::num*> extends core::Object /*hasConstConstructor*/ {
+class C<T extends core::num*> extends core::Object /*hasConstConstructor*/ {
final field self::C::T* x;
const constructor •(self::C::T* x) → self::C<self::C::T*>*
: self::C::x = x, super core::Object::•()
@@ -18,7 +18,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<T extends core::num* = core::num*> extends core::Object /*hasConstConstructor*/ {
+class D<T extends core::num*> extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::D<self::D::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.outline.expect
index 11e4ec2..0b30da0d 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<T extends core::num* = core::num*> extends core::Object /*hasConstConstructor*/ {
+class C<T extends core::num*> extends core::Object /*hasConstConstructor*/ {
final field self::C::T* x;
const constructor •(self::C::T* x) → self::C<self::C::T*>*
: self::C::x = x, super core::Object::•()
@@ -18,7 +18,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<T extends core::num* = core::num*> extends core::Object /*hasConstConstructor*/ {
+class D<T extends core::num*> extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::D<self::D::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.transformed.expect
index f64a716..c79ff6d 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<T extends core::num* = core::num*> extends core::Object /*hasConstConstructor*/ {
+class C<T extends core::num*> extends core::Object /*hasConstConstructor*/ {
final field self::C::T* x;
const constructor •(self::C::T* x) → self::C<self::C::T*>*
: self::C::x = x, super core::Object::•()
@@ -18,7 +18,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<T extends core::num* = core::num*> extends core::Object /*hasConstConstructor*/ {
+class D<T extends core::num*> extends core::Object /*hasConstConstructor*/ {
const constructor •() → self::D<self::D::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.expect
index b512907..3569bc6 100644
--- a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.expect
@@ -11,11 +11,11 @@
import self as self;
import "dart:core" as core;
-class Foo<T extends core::Pattern* = core::Pattern*> extends core::Object {
+class Foo<T extends core::Pattern*> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::T*>*
: super core::Object::•()
;
- method method<generic-covariant-impl U extends self::Foo::T* = self::Foo::T*>(self::Foo::method::U* u) → self::Foo::method::U*
+ method method<generic-covariant-impl U extends self::Foo::T*>(self::Foo::method::U* u) → self::Foo::method::U*
return u;
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
diff --git a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.outline.expect
index d2565cf..981c3c1 100644
--- a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.outline.expect
@@ -2,10 +2,10 @@
import self as self;
import "dart:core" as core;
-class Foo<T extends core::Pattern* = core::Pattern*> extends core::Object {
+class Foo<T extends core::Pattern*> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::T*>*
;
- method method<generic-covariant-impl U extends self::Foo::T* = self::Foo::T*>(self::Foo::method::U* u) → self::Foo::method::U*
+ method method<generic-covariant-impl U extends self::Foo::T*>(self::Foo::method::U* u) → self::Foo::method::U*
;
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
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.expect
index 91a24d9..527c4b0 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.expect
@@ -36,7 +36,7 @@
synthetic constructor •() → self::C*
: super core::Object::•()
;
- method m<T extends core::num* = core::num*>(self::C::m::T* x, self::C::m::T* y) → self::C::m::T*
+ method m<T extends core::num*>(self::C::m::T* x, self::C::m::T* y) → self::C::m::T*
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
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.outline.expect
index 4f1f11c..0c12d64 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.outline.expect
@@ -8,7 +8,7 @@
class C extends core::Object {
synthetic constructor •() → self::C*
;
- method m<T extends core::num* = core::num*>(self::C::m::T* x, self::C::m::T* y) → self::C::m::T*
+ method m<T extends core::num*>(self::C::m::T* x, self::C::m::T* y) → self::C::m::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
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.transformed.expect
index a5a6c34..3783f0e 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.transformed.expect
@@ -36,7 +36,7 @@
synthetic constructor •() → self::C*
: super core::Object::•()
;
- method m<T extends core::num* = core::num*>(self::C::m::T* x, self::C::m::T* y) → self::C::m::T*
+ method m<T extends core::num*>(self::C::m::T* x, self::C::m::T* y) → self::C::m::T*
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
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.expect
index 3cf3930..0b511ab 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.expect
@@ -47,7 +47,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends core::Iterable<core::String*>* = core::Iterable<core::String*>*> extends core::Object {
+class Bar<T extends core::Iterable<core::String*>*> extends core::Object {
synthetic constructor •() → self::Bar<self::Bar::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.outline.expect
index fb24a4a..a8d39ff 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.outline.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends core::Iterable<core::String*>* = core::Iterable<core::String*>*> extends core::Object {
+class Bar<T extends core::Iterable<core::String*>*> extends core::Object {
synthetic constructor •() → self::Bar<self::Bar::T*>*
;
method foo(generic-covariant-impl self::Bar::T* t) → void
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.transformed.expect
index 2b13c7f..37f2947 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.transformed.expect
@@ -47,7 +47,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends core::Iterable<core::String*>* = core::Iterable<core::String*>*> extends core::Object {
+class Bar<T extends core::Iterable<core::String*>*> extends core::Object {
synthetic constructor •() → self::Bar<self::Bar::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.expect
index 0c59f14..c01f6d8 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.expect
@@ -50,7 +50,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends asy::Stream<core::String*>* = asy::Stream<core::String*>*> extends core::Object {
+class Bar<T extends asy::Stream<core::String*>*> extends core::Object {
synthetic constructor •() → self::Bar<self::Bar::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.outline.expect
index 98b90b7..3b83fec 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.outline.expect
@@ -20,7 +20,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends asy::Stream<core::String*>* = asy::Stream<core::String*>*> extends core::Object {
+class Bar<T extends asy::Stream<core::String*>*> extends core::Object {
synthetic constructor •() → self::Bar<self::Bar::T*>*
;
method foo(generic-covariant-impl self::Bar::T* t) → dynamic async
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.transformed.expect
index 2b08fb6..9b13665 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.transformed.expect
@@ -51,7 +51,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends asy::Stream<core::String*>* = asy::Stream<core::String*>*> extends core::Object {
+class Bar<T extends asy::Stream<core::String*>*> extends core::Object {
synthetic constructor •() → self::Bar<self::Bar::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.expect
index 8b892ed..0fb60dc 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class B<T extends self::A<core::int*>* = self::A<core::int*>*> extends core::Object {
+class B<T extends self::A<core::int*>*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()
;
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class A<T extends core::int* = core::int*> extends core::Object {
+class A<T extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.outline.expect
index d2cbeee..e676290 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class B<T extends self::A<core::int*>* = self::A<core::int*>*> extends core::Object {
+class B<T extends self::A<core::int*>*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class A<T extends core::int* = core::int*> extends core::Object {
+class A<T extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.transformed.expect
index 8b892ed..0fb60dc 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class B<T extends self::A<core::int*>* = self::A<core::int*>*> extends core::Object {
+class B<T extends self::A<core::int*>*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()
;
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class A<T extends core::int* = core::int*> extends core::Object {
+class A<T extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.expect
index 7654a70..0612d0f 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::int* = core::int*> extends core::Object {
+class A<T extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<core::int*>* = self::A<core::int*>*> extends core::Object {
+class B<T extends self::A<core::int*>*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.outline.expect
index 6aea523..8a8c77b 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::int* = core::int*> extends core::Object {
+class A<T extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<core::int*>* = self::A<core::int*>*> extends core::Object {
+class B<T extends self::A<core::int*>*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.transformed.expect
index 7654a70..0612d0f 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::int* = core::int*> extends core::Object {
+class A<T extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<core::int*>* = self::A<core::int*>*> extends core::Object {
+class B<T extends self::A<core::int*>*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.expect
index b9fff9c..731ae28 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<dynamic>* = self::A<dynamic>*> extends core::Object {
+class B<T extends self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.outline.expect
index ca700cd..f7e09d3 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.outline.expect
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<dynamic>* = self::A<dynamic>*> extends core::Object {
+class B<T extends self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.transformed.expect
index b9fff9c..731ae28 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.transformed.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<dynamic>* = self::A<dynamic>*> extends core::Object {
+class B<T extends self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.expect
index 002ee58..09072c4 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::int* = core::int*> extends core::Object {
+class A<T extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.outline.expect
index 0757181..5cb5fd6 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::int* = core::int*> extends core::Object {
+class A<T extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.transformed.expect
index 002ee58..09072c4 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::int* = core::int*> extends core::Object {
+class A<T extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.expect
index 002ee58..09072c4 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::int* = core::int*> extends core::Object {
+class A<T extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.outline.expect
index 0757181..5cb5fd6 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::int* = core::int*> extends core::Object {
+class A<T extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.transformed.expect
index 002ee58..09072c4 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::int* = core::int*> extends core::Object {
+class A<T extends core::int*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.expect
index f2d000e..1fb9971 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<T extends core::num* = core::num*> extends core::Object {
+class C<T extends core::num*> extends core::Object {
synthetic constructor •() → self::C<self::C::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.outline.expect
index a968144..1338660 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<T extends core::num* = core::num*> extends core::Object {
+class C<T extends core::num*> extends core::Object {
synthetic constructor •() → self::C<self::C::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.transformed.expect
index f2d000e..1fb9971 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<T extends core::num* = core::num*> extends core::Object {
+class C<T extends core::num*> extends core::Object {
synthetic constructor •() → self::C<self::C::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.expect
index 774152a..6bd9194 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A* = self::A*> extends core::Object {
+class B<T extends self::A*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.outline.expect
index 2eff5be..ef0a99a 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.outline.expect
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A* = self::A*> extends core::Object {
+class B<T extends self::A*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.transformed.expect
index 774152a..6bd9194 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.transformed.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A* = self::A*> extends core::Object {
+class B<T extends self::A*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.expect
index 545ce1b..ce1b438 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<X extends core::Object* = dynamic, Y extends core::String* = core::String*> extends self::I<self::M0::X*> {
+class M0<X extends core::Object* = dynamic, Y extends core::String*> extends self::I<self::M0::X*> {
synthetic constructor •() → self::M0<self::M0::X*, self::M0::Y*>*
: super self::I::•()
;
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.outline.expect
index 239c31f..d73c867 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.outline.expect
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<X extends core::Object* = dynamic, Y extends core::String* = core::String*> extends self::I<self::M0::X*> {
+class M0<X extends core::Object* = dynamic, Y extends core::String*> extends self::I<self::M0::X*> {
synthetic constructor •() → self::M0<self::M0::X*, self::M0::Y*>*
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.transformed.expect
index ad6db98..0ac49c5 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.transformed.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<X extends core::Object* = dynamic, Y extends core::String* = core::String*> extends self::I<self::M0::X*> {
+class M0<X extends core::Object* = dynamic, Y extends core::String*> extends self::I<self::M0::X*> {
synthetic constructor •() → self::M0<self::M0::X*, self::M0::Y*>*
: super self::I::•()
;
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.expect
index f7381da..4493630 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<X extends core::Object* = dynamic, Y extends ({name: core::String*}) →* void = ({name: core::String*}) →* void> extends self::I<self::M0::X*> {
+class M0<X extends core::Object* = dynamic, Y extends ({name: core::String*}) →* void> extends self::I<self::M0::X*> {
synthetic constructor •() → self::M0<self::M0::X*, self::M0::Y*>*
: super self::I::•()
;
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.outline.expect
index a94c66e..11c5048 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.outline.expect
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<X extends core::Object* = dynamic, Y extends ({name: core::String*}) →* void = ({name: core::String*}) →* void> extends self::I<self::M0::X*> {
+class M0<X extends core::Object* = dynamic, Y extends ({name: core::String*}) →* void> extends self::I<self::M0::X*> {
synthetic constructor •() → self::M0<self::M0::X*, self::M0::Y*>*
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.transformed.expect
index 5237b52..73fbc15 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.transformed.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<X extends core::Object* = dynamic, Y extends ({name: core::String*}) →* void = ({name: core::String*}) →* void> extends self::I<self::M0::X*> {
+class M0<X extends core::Object* = dynamic, Y extends ({name: core::String*}) →* void> extends self::I<self::M0::X*> {
synthetic constructor •() → self::M0<self::M0::X*, self::M0::Y*>*
: super self::I::•()
;
diff --git a/pkg/front_end/testcases/inference/promote_bounds.dart.weak.expect b/pkg/front_end/testcases/inference/promote_bounds.dart.weak.expect
index 49660c2..2559222 100644
--- a/pkg/front_end/testcases/inference/promote_bounds.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/promote_bounds.dart.weak.expect
@@ -24,7 +24,7 @@
;
abstract method bar() → void;
}
-static method f<T extends self::B* = self::B*>(self::f::T* a) → void {
+static method f<T extends self::B*>(self::f::T* a) → void {
if(a is core::String*) {
a.{self::B::foo}();
}
diff --git a/pkg/front_end/testcases/inference/promote_bounds.dart.weak.outline.expect b/pkg/front_end/testcases/inference/promote_bounds.dart.weak.outline.expect
index 208ac22..870ed64 100644
--- a/pkg/front_end/testcases/inference/promote_bounds.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/promote_bounds.dart.weak.outline.expect
@@ -22,7 +22,7 @@
;
abstract method bar() → void;
}
-static method f<T extends self::B* = self::B*>(self::f::T* a) → void
+static method f<T extends self::B*>(self::f::T* a) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/promote_bounds.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/promote_bounds.dart.weak.transformed.expect
index 49660c2..2559222 100644
--- a/pkg/front_end/testcases/inference/promote_bounds.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/promote_bounds.dart.weak.transformed.expect
@@ -24,7 +24,7 @@
;
abstract method bar() → void;
}
-static method f<T extends self::B* = self::B*>(self::f::T* a) → void {
+static method f<T extends self::B*>(self::f::T* a) → void {
if(a is core::String*) {
a.{self::B::foo}();
}
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.expect
index fe7230d..c6c59b5 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<T extends core::num* = core::num*> extends core::Object {
+class C<T extends core::num*> extends core::Object {
generic-covariant-impl field self::C::T* a = null;
synthetic constructor •() → self::C<self::C::T*>*
: super core::Object::•()
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.outline.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.outline.expect
index 9075050..f6a0aba 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<T extends core::num* = core::num*> extends core::Object {
+class C<T extends core::num*> extends core::Object {
generic-covariant-impl field self::C::T* a;
synthetic constructor •() → self::C<self::C::T*>*
;
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.transformed.expect
index 7f2b553..6560a3f 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<T extends core::num* = core::num*> extends core::Object {
+class C<T extends core::num*> extends core::Object {
generic-covariant-impl field self::C::T* a = null;
synthetic constructor •() → self::C<self::C::T*>*
: super core::Object::•()
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart.weak.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart.weak.expect
index 3f1e661..729edd2 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<T extends core::num* = core::num*> extends core::Object {
+class C<T extends core::num*> extends core::Object {
generic-covariant-impl field self::C::T* a = null;
synthetic constructor •() → self::C<self::C::T*>*
: super core::Object::•()
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart.weak.outline.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart.weak.outline.expect
index e5feef6..5781f2e 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<T extends core::num* = core::num*> extends core::Object {
+class C<T extends core::num*> extends core::Object {
generic-covariant-impl field self::C::T* a;
synthetic constructor •() → self::C<self::C::T*>*
;
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart.weak.transformed.expect
index 3f1e661..729edd2 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<T extends core::num* = core::num*> extends core::Object {
+class C<T extends core::num*> extends core::Object {
generic-covariant-impl field self::C::T* a = null;
synthetic constructor •() → self::C<self::C::T*>*
: super core::Object::•()
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart.weak.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart.weak.expect
index 1af3200..fb481ea 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<T extends core::num* = core::num*> extends core::Object {
+class C<T extends core::num*> extends core::Object {
generic-covariant-impl field self::C::T* a = null;
synthetic constructor •() → self::C<self::C::T*>*
: super core::Object::•()
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart.weak.outline.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart.weak.outline.expect
index 48982ba..8b713df 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<T extends core::num* = core::num*> extends core::Object {
+class C<T extends core::num*> extends core::Object {
generic-covariant-impl field self::C::T* a;
synthetic constructor •() → self::C<self::C::T*>*
;
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart.weak.transformed.expect
index 1af3200..fb481ea 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<T extends core::num* = core::num*> extends core::Object {
+class C<T extends core::num*> extends core::Object {
generic-covariant-impl field self::C::T* a = null;
synthetic constructor •() → self::C<self::C::T*>*
: super core::Object::•()
diff --git a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.expect
index b96266f..336e446 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.expect
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (Null) →* self::B<dynamic, dynamic>*, W extends core::num* = core::num*> extends core::Object {
+class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (Null) →* self::B<dynamic, dynamic>*, W extends core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*, self::D::Z*, self::D::W*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.outline.expect
index 939b47e..dfe429a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.outline.expect
@@ -30,7 +30,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (Null) →* self::B<dynamic, dynamic>*, W extends core::num* = core::num*> extends core::Object {
+class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (Null) →* self::B<dynamic, dynamic>*, W extends core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*, self::D::Z*, self::D::W*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.transformed.expect
index b96266f..336e446 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.transformed.expect
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (Null) →* self::B<dynamic, dynamic>*, W extends core::num* = core::num*> extends core::Object {
+class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (Null) →* self::B<dynamic, dynamic>*, W extends core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*, self::D::Z*, self::D::W*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.expect
index 7089cfc..ff8c02f 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.outline.expect
index 67dfa7f..4188002 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.transformed.expect
index c250022..e273fa4 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.expect
index 3ab59eb..28c2e96 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.outline.expect
index 67dfa7f..4188002 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.transformed.expect
index 3ab59eb..28c2e96 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.expect
index 0508b6c..19c0496 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
: super core::Object::•()
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.outline.expect
index 66230d2..79e9ce6 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.transformed.expect
index 7f370d6..1c268dc 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
: super core::Object::•()
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.expect
index 0b8c7d3..82bfe94 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
: super core::Object::•()
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.outline.expect
index 66230d2..79e9ce6 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.transformed.expect
index 0b8c7d3..82bfe94 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
: super core::Object::•()
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.expect
index c86f6b2..98dbd20 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
+class C<X extends core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.outline.expect
index d6d83e0..4906673 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
+class C<X extends core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.transformed.expect
index c86f6b2..98dbd20 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
+class C<X extends core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.expect
index 52cdb64..a7c105a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
+class C<X extends core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.outline.expect
index 84e4164..e263f73 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
+class C<X extends core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.transformed.expect
index a4aa8b0..92a4252 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<X extends core::num* = core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
+class C<X extends core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.expect
index 0288d9a..5fa1f9e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.expect
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
+class D<X extends core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
: super core::Object::•()
;
@@ -62,7 +62,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends core::num* = core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
+class F<X extends core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
synthetic constructor •() → self::F<self::F::X*, self::F::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.outline.expect
index 4d48eae..24c0e8a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.outline.expect
@@ -30,7 +30,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
+class D<X extends core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -58,7 +58,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends core::num* = core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
+class F<X extends core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
synthetic constructor •() → self::F<self::F::X*, self::F::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.transformed.expect
index 0288d9a..5fa1f9e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.transformed.expect
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
+class D<X extends core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
: super core::Object::•()
;
@@ -62,7 +62,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends core::num* = core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
+class F<X extends core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
synthetic constructor •() → self::F<self::F::X*, self::F::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.expect
index f4627cb..6957306 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.expect
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
+class D<X extends core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
: super core::Object::•()
;
@@ -62,7 +62,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends core::num* = core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
+class F<X extends core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
synthetic constructor •() → self::F<self::F::X*, self::F::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.outline.expect
index fc7f600..8fc64c5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.outline.expect
@@ -30,7 +30,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
+class D<X extends core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -58,7 +58,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends core::num* = core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
+class F<X extends core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
synthetic constructor •() → self::F<self::F::X*, self::F::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.transformed.expect
index 4c4e54a..e6f8f2a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.transformed.expect
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
+class D<X extends core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
: super core::Object::•()
;
@@ -62,7 +62,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends core::num* = core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
+class F<X extends core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
synthetic constructor •() → self::F<self::F::X*, self::F::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.expect
index 1586c3d..e5f74ce 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.expect
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
+class D<X extends core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.outline.expect
index 7d85a42..6f49703c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.outline.expect
@@ -30,7 +30,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
+class D<X extends core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.transformed.expect
index 1586c3d..e5f74ce 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.transformed.expect
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
+class D<X extends core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.expect
index edf4bbf..2cf489e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.expect
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
+class D<X extends core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.outline.expect
index e2d5490..b8ba08d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.outline.expect
@@ -30,7 +30,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
+class D<X extends core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.transformed.expect
index 71cc20d..a96c10c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.transformed.expect
@@ -32,7 +32,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num* = core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
+class D<X extends core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.expect
index 033ea89..5da171e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.outline.expect
index ea7a309..408de03 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.transformed.expect
index 033ea89..5da171e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.expect
index 153ebe1..13d0abf 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.outline.expect
index ea7a309..408de03 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.transformed.expect
index 153ebe1..13d0abf 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.expect
index 8dbad85..f971b81 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::num* = core::num*, S extends core::List<self::B::T*>* = core::List<core::num*>*> extends self::A<self::B::T*> {
+class B<T extends core::num*, S extends core::List<self::B::T*>* = core::List<core::num*>*> extends self::A<self::B::T*> {
constructor •([self::B::T* x = #C1]) → self::B<self::B::T*, self::B::S*>*
: super self::A::•() {}
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.outline.expect
index e3cf9c5..933cc07 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.outline.expect
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::num* = core::num*, S extends core::List<self::B::T*>* = core::List<core::num*>*> extends self::A<self::B::T*> {
+class B<T extends core::num*, S extends core::List<self::B::T*>* = core::List<core::num*>*> extends self::A<self::B::T*> {
constructor •([self::B::T* x]) → self::B<self::B::T*, self::B::S*>*
;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.transformed.expect
index 8dbad85..f971b81 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.transformed.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::num* = core::num*, S extends core::List<self::B::T*>* = core::List<core::num*>*> extends self::A<self::B::T*> {
+class B<T extends core::num*, S extends core::List<self::B::T*>* = core::List<core::num*>*> extends self::A<self::B::T*> {
constructor •([self::B::T* x = #C1]) → self::B<self::B::T*, self::B::S*>*
: super self::A::•() {}
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.expect
index b24b580..e04675b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.outline.expect
index 29045b9..2886fc8 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.transformed.expect
index b24b580..e04675b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.expect
index 33fac9a..f1af679 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.outline.expect
index 2ea894b..ce6b446 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.transformed.expect
index 1468342..7b0f742 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.expect
index 90e4973..e2fc6ab 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.outline.expect
index f053bc2..64d45b2 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.transformed.expect
index 90e4973..e2fc6ab 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.expect
index d8cb6c1..1576c98 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.expect
@@ -85,7 +85,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<V extends core::num* = core::num*, W extends self::B<self::F::W*, self::F::X*>* = self::B<dynamic, dynamic>*, X extends self::C<self::F::W*, self::F::X*>* = self::C<dynamic, dynamic>*, Y extends self::B<self::F::W*, self::F::X*>* = self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, Z extends self::C<self::F::Y*, self::F::Z*>* = self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*> extends core::Object {
+class F<V extends core::num*, W extends self::B<self::F::W*, self::F::X*>* = self::B<dynamic, dynamic>*, X extends self::C<self::F::W*, self::F::X*>* = self::C<dynamic, dynamic>*, Y extends self::B<self::F::W*, self::F::X*>* = self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, Z extends self::C<self::F::Y*, self::F::Z*>* = self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*> extends core::Object {
synthetic constructor •() → self::F<self::F::V*, self::F::W*, self::F::X*, self::F::Y*, self::F::Z*>*
: super core::Object::•()
;
@@ -100,7 +100,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class G<V extends core::num* = core::num*, W extends self::B<self::G::V*, self::G::X*>* = self::B<core::num*, dynamic>*, X extends self::C<self::G::W*, self::G::V*>* = self::C<dynamic, core::num*>*, Y extends self::B<self::G::W*, self::G::X*>* = self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, Z extends self::C<self::G::Y*, self::G::Z*>* = self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*> extends core::Object {
+class G<V extends core::num*, W extends self::B<self::G::V*, self::G::X*>* = self::B<core::num*, dynamic>*, X extends self::C<self::G::W*, self::G::V*>* = self::C<dynamic, core::num*>*, Y extends self::B<self::G::W*, self::G::X*>* = self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, Z extends self::C<self::G::Y*, self::G::Z*>* = self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*> extends core::Object {
synthetic constructor •() → self::G<self::G::V*, self::G::W*, self::G::X*, self::G::Y*, self::G::Z*>*
: super core::Object::•()
;
@@ -130,7 +130,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class I<T extends invalid-type = invalid-type, U extends self::I::Y* = invalid-type, V extends (self::I::W*) →* dynamic = (Null) →* dynamic, W extends (self::I::X*) →* dynamic = (Null) →* dynamic, X extends (self::I::V*) →* dynamic = (Null) →* dynamic, Y extends self::I::Z* = invalid-type, Z extends self::I::T* = invalid-type> extends core::Object {
+class I<T extends invalid-type, U extends self::I::Y* = invalid-type, V extends (self::I::W*) →* dynamic = (Null) →* dynamic, W extends (self::I::X*) →* dynamic = (Null) →* dynamic, X extends (self::I::V*) →* dynamic = (Null) →* dynamic, Y extends self::I::Z* = invalid-type, Z extends self::I::T* = invalid-type> extends core::Object {
synthetic constructor •() → self::I<self::I::T*, self::I::U*, self::I::V*, self::I::W*, self::I::X*, self::I::Y*, self::I::Z*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.outline.expect
index df65afc..e29ceb1 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.outline.expect
@@ -80,7 +80,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<V extends core::num* = core::num*, W extends self::B<self::F::W*, self::F::X*>* = self::B<dynamic, dynamic>*, X extends self::C<self::F::W*, self::F::X*>* = self::C<dynamic, dynamic>*, Y extends self::B<self::F::W*, self::F::X*>* = self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, Z extends self::C<self::F::Y*, self::F::Z*>* = self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*> extends core::Object {
+class F<V extends core::num*, W extends self::B<self::F::W*, self::F::X*>* = self::B<dynamic, dynamic>*, X extends self::C<self::F::W*, self::F::X*>* = self::C<dynamic, dynamic>*, Y extends self::B<self::F::W*, self::F::X*>* = self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, Z extends self::C<self::F::Y*, self::F::Z*>* = self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*> extends core::Object {
synthetic constructor •() → self::F<self::F::V*, self::F::W*, self::F::X*, self::F::Y*, self::F::Z*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -94,7 +94,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class G<V extends core::num* = core::num*, W extends self::B<self::G::V*, self::G::X*>* = self::B<core::num*, dynamic>*, X extends self::C<self::G::W*, self::G::V*>* = self::C<dynamic, core::num*>*, Y extends self::B<self::G::W*, self::G::X*>* = self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, Z extends self::C<self::G::Y*, self::G::Z*>* = self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*> extends core::Object {
+class G<V extends core::num*, W extends self::B<self::G::V*, self::G::X*>* = self::B<core::num*, dynamic>*, X extends self::C<self::G::W*, self::G::V*>* = self::C<dynamic, core::num*>*, Y extends self::B<self::G::W*, self::G::X*>* = self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, Z extends self::C<self::G::Y*, self::G::Z*>* = self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*> extends core::Object {
synthetic constructor •() → self::G<self::G::V*, self::G::W*, self::G::X*, self::G::Y*, self::G::Z*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -122,7 +122,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class I<T extends invalid-type = invalid-type, U extends self::I::Y* = invalid-type, V extends (self::I::W*) →* dynamic = (Null) →* dynamic, W extends (self::I::X*) →* dynamic = (Null) →* dynamic, X extends (self::I::V*) →* dynamic = (Null) →* dynamic, Y extends self::I::Z* = invalid-type, Z extends self::I::T* = invalid-type> extends core::Object {
+class I<T extends invalid-type, U extends self::I::Y* = invalid-type, V extends (self::I::W*) →* dynamic = (Null) →* dynamic, W extends (self::I::X*) →* dynamic = (Null) →* dynamic, X extends (self::I::V*) →* dynamic = (Null) →* dynamic, Y extends self::I::Z* = invalid-type, Z extends self::I::T* = invalid-type> extends core::Object {
synthetic constructor •() → self::I<self::I::T*, self::I::U*, self::I::V*, self::I::W*, self::I::X*, self::I::Y*, self::I::Z*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.transformed.expect
index d8cb6c1..1576c98 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.transformed.expect
@@ -85,7 +85,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<V extends core::num* = core::num*, W extends self::B<self::F::W*, self::F::X*>* = self::B<dynamic, dynamic>*, X extends self::C<self::F::W*, self::F::X*>* = self::C<dynamic, dynamic>*, Y extends self::B<self::F::W*, self::F::X*>* = self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, Z extends self::C<self::F::Y*, self::F::Z*>* = self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*> extends core::Object {
+class F<V extends core::num*, W extends self::B<self::F::W*, self::F::X*>* = self::B<dynamic, dynamic>*, X extends self::C<self::F::W*, self::F::X*>* = self::C<dynamic, dynamic>*, Y extends self::B<self::F::W*, self::F::X*>* = self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, Z extends self::C<self::F::Y*, self::F::Z*>* = self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*> extends core::Object {
synthetic constructor •() → self::F<self::F::V*, self::F::W*, self::F::X*, self::F::Y*, self::F::Z*>*
: super core::Object::•()
;
@@ -100,7 +100,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class G<V extends core::num* = core::num*, W extends self::B<self::G::V*, self::G::X*>* = self::B<core::num*, dynamic>*, X extends self::C<self::G::W*, self::G::V*>* = self::C<dynamic, core::num*>*, Y extends self::B<self::G::W*, self::G::X*>* = self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, Z extends self::C<self::G::Y*, self::G::Z*>* = self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*> extends core::Object {
+class G<V extends core::num*, W extends self::B<self::G::V*, self::G::X*>* = self::B<core::num*, dynamic>*, X extends self::C<self::G::W*, self::G::V*>* = self::C<dynamic, core::num*>*, Y extends self::B<self::G::W*, self::G::X*>* = self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, Z extends self::C<self::G::Y*, self::G::Z*>* = self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*> extends core::Object {
synthetic constructor •() → self::G<self::G::V*, self::G::W*, self::G::X*, self::G::Y*, self::G::Z*>*
: super core::Object::•()
;
@@ -130,7 +130,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class I<T extends invalid-type = invalid-type, U extends self::I::Y* = invalid-type, V extends (self::I::W*) →* dynamic = (Null) →* dynamic, W extends (self::I::X*) →* dynamic = (Null) →* dynamic, X extends (self::I::V*) →* dynamic = (Null) →* dynamic, Y extends self::I::Z* = invalid-type, Z extends self::I::T* = invalid-type> extends core::Object {
+class I<T extends invalid-type, U extends self::I::Y* = invalid-type, V extends (self::I::W*) →* dynamic = (Null) →* dynamic, W extends (self::I::X*) →* dynamic = (Null) →* dynamic, X extends (self::I::V*) →* dynamic = (Null) →* dynamic, Y extends self::I::Z* = invalid-type, Z extends self::I::T* = invalid-type> extends core::Object {
synthetic constructor •() → self::I<self::I::T*, self::I::U*, self::I::V*, self::I::W*, self::I::X*, self::I::Y*, self::I::Z*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.expect
index fc99ef9..c15ea34 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.expect
@@ -43,7 +43,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<TypeV extends self::B<dynamic>* = self::B<dynamic>*> extends core::Object {
+class C<TypeV extends self::B<dynamic>*> extends core::Object {
synthetic constructor •() → self::C<self::C::TypeV*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.outline.expect
index ca37d02..b64816e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.outline.expect
@@ -41,7 +41,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<TypeV extends self::B<dynamic>* = self::B<dynamic>*> extends core::Object {
+class C<TypeV extends self::B<dynamic>*> extends core::Object {
synthetic constructor •() → self::C<self::C::TypeV*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.transformed.expect
index fc99ef9..c15ea34 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.transformed.expect
@@ -43,7 +43,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<TypeV extends self::B<dynamic>* = self::B<dynamic>*> extends core::Object {
+class C<TypeV extends self::B<dynamic>*> extends core::Object {
synthetic constructor •() → self::C<self::C::TypeV*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.expect
index 165ac5e..1adc8bcb 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.expect
@@ -17,7 +17,7 @@
import "dart:core" as core;
typedef Fisk<unrelated TypeY extends core::Object* = dynamic> = () →* void;
-class Hest<TypeX extends () →* void = () →* void> extends core::Object {
+class Hest<TypeX extends () →* void> extends core::Object {
synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.outline.expect
index c9e1d02..1828b6d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.outline.expect
@@ -17,7 +17,7 @@
import "dart:core" as core;
typedef Fisk<unrelated TypeY extends core::Object* = dynamic> = () →* void;
-class Hest<TypeX extends () →* void = () →* void> extends core::Object {
+class Hest<TypeX extends () →* void> extends core::Object {
synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.transformed.expect
index 165ac5e..1adc8bcb 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.transformed.expect
@@ -17,7 +17,7 @@
import "dart:core" as core;
typedef Fisk<unrelated TypeY extends core::Object* = dynamic> = () →* void;
-class Hest<TypeX extends () →* void = () →* void> extends core::Object {
+class Hest<TypeX extends () →* void> extends core::Object {
synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.expect
index 134d69e..f205aa6 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<core::Object*>*>* = self::Hest<self::Hest<core::Object*>*>*> extends core::Object {
+class Fisk<TypeY extends self::Hest<self::Hest<core::Object*>*>*> extends core::Object {
synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.outline.expect
index 5543106..8159df5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.outline.expect
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<core::Object*>*>* = self::Hest<self::Hest<core::Object*>*>*> extends core::Object {
+class Fisk<TypeY extends self::Hest<self::Hest<core::Object*>*>*> extends core::Object {
synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.transformed.expect
index 134d69e..f205aa6 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.transformed.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<core::Object*>*>* = self::Hest<self::Hest<core::Object*>*>*> extends core::Object {
+class Fisk<TypeY extends self::Hest<self::Hest<core::Object*>*>*> extends core::Object {
synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.expect
index 132a9fd..0124e15 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.expect
@@ -42,7 +42,7 @@
import "org-dartlang-testcase:///non_simple_many_libs_same_name_cycle.dart" as lib;
-class Hest<TypeY extends self::Hest<dynamic>* = self::Hest<dynamic>*> extends core::Object {
+class Hest<TypeY extends self::Hest<dynamic>*> extends core::Object {
synthetic constructor •() → self2::Hest<self2::Hest::TypeY*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.outline.expect
index 573dcb4..e783ebd 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.outline.expect
@@ -42,7 +42,7 @@
import "org-dartlang-testcase:///non_simple_many_libs_same_name_cycle.dart" as lib;
-class Hest<TypeY extends self::Hest<dynamic>* = self::Hest<dynamic>*> extends core::Object {
+class Hest<TypeY extends self::Hest<dynamic>*> extends core::Object {
synthetic constructor •() → self2::Hest<self2::Hest::TypeY*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.transformed.expect
index 132a9fd..0124e15 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.transformed.expect
@@ -42,7 +42,7 @@
import "org-dartlang-testcase:///non_simple_many_libs_same_name_cycle.dart" as lib;
-class Hest<TypeY extends self::Hest<dynamic>* = self::Hest<dynamic>*> extends core::Object {
+class Hest<TypeY extends self::Hest<dynamic>*> extends core::Object {
synthetic constructor •() → self2::Hest<self2::Hest::TypeY*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.expect
index 570251f..34ba795 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.expect
@@ -43,7 +43,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Naebdyr<TypeZ extends self::Fisk<dynamic>* = self::Fisk<dynamic>*> extends core::Object {
+class Naebdyr<TypeZ extends self::Fisk<dynamic>*> extends core::Object {
synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.outline.expect
index e894bff..4c03b0d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.outline.expect
@@ -41,7 +41,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Naebdyr<TypeZ extends self::Fisk<dynamic>* = self::Fisk<dynamic>*> extends core::Object {
+class Naebdyr<TypeZ extends self::Fisk<dynamic>*> extends core::Object {
synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.transformed.expect
index 570251f..34ba795 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.transformed.expect
@@ -43,7 +43,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Naebdyr<TypeZ extends self::Fisk<dynamic>* = self::Fisk<dynamic>*> extends core::Object {
+class Naebdyr<TypeZ extends self::Fisk<dynamic>*> extends core::Object {
synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.expect
index 28149f2..97505bc 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<core::num*>* = self::A<core::num*>*> extends core::Object {
+class B<T extends self::A<core::num*>*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.outline.expect
index 3de42af..86a3170 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<core::num*>* = self::A<core::num*>*> extends core::Object {
+class B<T extends self::A<core::num*>*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.transformed.expect
index 28149f2..97505bc 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::num* = core::num*> extends core::Object {
+class A<T extends core::num*> extends core::Object {
synthetic constructor •() → self::A<self::A::T*>*
: super core::Object::•()
;
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<core::num*>* = self::A<core::num*>*> extends core::Object {
+class B<T extends self::A<core::num*>*> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.expect
index 7253b00..5ec3988 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<Y extends self::A<dynamic>* = self::A<dynamic>*> extends core::Object {
+class B<Y extends self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::B<self::B::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.outline.expect
index 526b4dc..c896444 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.outline.expect
@@ -16,7 +16,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<Y extends self::A<dynamic>* = self::A<dynamic>*> extends core::Object {
+class B<Y extends self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::B<self::B::Y*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.transformed.expect
index 7253b00..5ec3988 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.transformed.expect
@@ -17,7 +17,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<Y extends self::A<dynamic>* = self::A<dynamic>*> extends core::Object {
+class B<Y extends self::A<dynamic>*> extends core::Object {
synthetic constructor •() → self::B<self::B::Y*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.expect
index 05e4575..fbb18cb 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.expect
@@ -20,7 +20,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class X<T extends self::B* = self::B*> extends core::Object {
+class X<T extends self::B*> extends core::Object {
synthetic constructor •() → self::X<self::X::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.outline.expect
index 9d44acf..43c0107 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.outline.expect
@@ -18,7 +18,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class X<T extends self::B* = self::B*> extends core::Object {
+class X<T extends self::B*> extends core::Object {
synthetic constructor •() → self::X<self::X::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.transformed.expect
index 05e4575..fbb18cb 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.transformed.expect
@@ -20,7 +20,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class X<T extends self::B* = self::B*> extends core::Object {
+class X<T extends self::B*> extends core::Object {
synthetic constructor •() → self::X<self::X::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.expect
index 650f258..1e4c90a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
: super core::Object::•()
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.outline.expect
index c798857..bd8b1e2 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.transformed.expect
index 650f258..1e4c90a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
class B extends core::Object {
synthetic constructor •() → self::B*
: super core::Object::•()
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.expect
index e5555e7..954f38c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.expect
@@ -2,6 +2,6 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
static field core::List<(core::num*) →* dynamic>* a = <(core::num*) →* dynamic>[];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.outline.expect
index e6917ea..88f9288 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
static field core::List<(core::num*) →* dynamic>* a;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.transformed.expect
index 94f6c04..bf9f10e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.transformed.expect
@@ -2,6 +2,6 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
static field core::List<(core::num*) →* dynamic>* a = core::_GrowableList::•<(core::num*) →* dynamic>(0);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.expect
index 5412826..0914a2c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.expect
@@ -2,6 +2,6 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
static field core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a = <(core::num*) →* dynamic, (core::num*) →* dynamic>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.outline.expect
index 90306c1..9f56108 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
static field core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.transformed.expect
index 5412826..0914a2c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.transformed.expect
@@ -2,6 +2,6 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
static field core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a = <(core::num*) →* dynamic, (core::num*) →* dynamic>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.expect
index f68319b..f32d1b22 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.expect
@@ -2,8 +2,8 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
-class B<T extends (core::num*) →* dynamic = (core::num*) →* dynamic> extends core::Object {
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
+class B<T extends (core::num*) →* dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.outline.expect
index c7b5f33..8f890d3 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.outline.expect
@@ -2,8 +2,8 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
-class B<T extends (core::num*) →* dynamic = (core::num*) →* dynamic> extends core::Object {
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
+class B<T extends (core::num*) →* dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.transformed.expect
index f68319b..f32d1b22 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.transformed.expect
@@ -2,8 +2,8 @@
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num* = core::num*> = (T*) →* dynamic;
-class B<T extends (core::num*) →* dynamic = (core::num*) →* dynamic> extends core::Object {
+typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
+class B<T extends (core::num*) →* dynamic> extends core::Object {
synthetic constructor •() → self::B<self::B::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.expect b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.expect
index 184faaf..9e954be 100644
--- a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.expect
+++ b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.expect
@@ -42,7 +42,7 @@
import "dart:core" as core;
import "dart:_internal" as _in;
-class Class<T extends core::Object = core::Object> extends core::Object {
+class Class<T extends core::Object> extends core::Object {
field core::int? _#Class#instanceField = null;
field dynamic _#Class#finalInstanceField = null;
field core::bool _#Class#finalInstanceField#isSet = false;
@@ -108,7 +108,7 @@
non::_#finalTopLevelField#isSet = true;
non::_#finalTopLevelField = #t13;
}
-static method method<T extends core::Object = core::Object>(core::bool b, core::int i, non::method::T t) → dynamic {
+static method method<T extends core::Object>(core::bool b, core::int i, non::method::T t) → dynamic {
lowered core::int? #local;
function #local#get() → core::int
return let final core::int? #t14 = #local in #t14.==(null) ?{core::int} throw new _in::LateError::localNI("local") : #t14{core::int};
diff --git a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.transformed.expect b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.transformed.expect
index 184faaf..9e954be 100644
--- a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.strong.transformed.expect
@@ -42,7 +42,7 @@
import "dart:core" as core;
import "dart:_internal" as _in;
-class Class<T extends core::Object = core::Object> extends core::Object {
+class Class<T extends core::Object> extends core::Object {
field core::int? _#Class#instanceField = null;
field dynamic _#Class#finalInstanceField = null;
field core::bool _#Class#finalInstanceField#isSet = false;
@@ -108,7 +108,7 @@
non::_#finalTopLevelField#isSet = true;
non::_#finalTopLevelField = #t13;
}
-static method method<T extends core::Object = core::Object>(core::bool b, core::int i, non::method::T t) → dynamic {
+static method method<T extends core::Object>(core::bool b, core::int i, non::method::T t) → dynamic {
lowered core::int? #local;
function #local#get() → core::int
return let final core::int? #t14 = #local in #t14.==(null) ?{core::int} throw new _in::LateError::localNI("local") : #t14{core::int};
diff --git a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.expect b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.expect
index 7555788..f6a85c7 100644
--- a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.expect
+++ b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.expect
@@ -35,7 +35,7 @@
import "dart:core" as core;
import "dart:_internal" as _in;
-class Class<T extends core::Object = core::Object> extends core::Object {
+class Class<T extends core::Object> extends core::Object {
field core::int? _#Class#instanceField = null;
field core::bool _#Class#instanceField#isSet = false;
field dynamic _#Class#finalInstanceField = null;
@@ -116,7 +116,7 @@
non::_#finalTopLevelField#isSet = true;
non::_#finalTopLevelField = #t13;
}
-static method method<T extends core::Object = core::Object>(core::bool b, core::int i, non::method::T t) → dynamic {
+static method method<T extends core::Object>(core::bool b, core::int i, non::method::T t) → dynamic {
lowered core::int? #local;
lowered core::bool #local#isSet = false;
function #local#get() → core::int
diff --git a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.outline.expect b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.outline.expect
index c050791..1c5d975 100644
--- a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.outline.expect
@@ -10,7 +10,7 @@
import self as self2;
import "dart:core" as core;
-class Class<T extends core::Object = core::Object> extends core::Object {
+class Class<T extends core::Object> extends core::Object {
field core::int? _#Class#instanceField;
field core::bool _#Class#instanceField#isSet;
field dynamic _#Class#finalInstanceField;
@@ -46,7 +46,7 @@
static set topLevelField(core::int #t7) → void;
static get finalTopLevelField() → dynamic;
static set finalTopLevelField(dynamic #t8) → void;
-static method method<T extends core::Object = core::Object>(core::bool b, core::int i, self2::method::T t) → dynamic
+static method method<T extends core::Object>(core::bool b, core::int i, self2::method::T t) → dynamic
;
static method expect(dynamic expected, dynamic actual) → dynamic
;
diff --git a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.transformed.expect b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.transformed.expect
index 7555788..f6a85c7 100644
--- a/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/late_lowering/non_nullable_from_opt_out.dart.weak.transformed.expect
@@ -35,7 +35,7 @@
import "dart:core" as core;
import "dart:_internal" as _in;
-class Class<T extends core::Object = core::Object> extends core::Object {
+class Class<T extends core::Object> extends core::Object {
field core::int? _#Class#instanceField = null;
field core::bool _#Class#instanceField#isSet = false;
field dynamic _#Class#finalInstanceField = null;
@@ -116,7 +116,7 @@
non::_#finalTopLevelField#isSet = true;
non::_#finalTopLevelField = #t13;
}
-static method method<T extends core::Object = core::Object>(core::bool b, core::int i, non::method::T t) → dynamic {
+static method method<T extends core::Object>(core::bool b, core::int i, non::method::T t) → dynamic {
lowered core::int? #local;
lowered core::bool #local#isSet = false;
function #local#get() → core::int
diff --git a/pkg/front_end/testcases/nnbd/assignability.dart.strong.expect b/pkg/front_end/testcases/nnbd/assignability.dart.strong.expect
index 5048e4b..19d474e 100644
--- a/pkg/front_end/testcases/nnbd/assignability.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/assignability.dart.strong.expect
@@ -981,7 +981,7 @@
;
method call() → void {}
}
-static method ok<XnonNull extends core::Object = core::Object, YnonNull extends self::ok::XnonNull = core::Object, XpotentiallyNull extends core::Object? = core::Object?, YpotentiallyNull extends self::ok::XpotentiallyNull% = core::Object?>(dynamic dynamicArg, core::Object objectArg, core::num numArg, core::int intArg, core::double doubleArg, core::Function functionArg, () → void toVoidArg, self::Tearoffable tearoffableArg, self::ok::XnonNull xNonNullArg, self::ok::XpotentiallyNull% xPotentiallyNullArg, self::ok::YnonNull yNonNullArg, self::ok::YpotentiallyNull% yPotentiallyNullArg) → dynamic {
+static method ok<XnonNull extends core::Object, YnonNull extends self::ok::XnonNull = core::Object, XpotentiallyNull extends core::Object?, YpotentiallyNull extends self::ok::XpotentiallyNull% = core::Object?>(dynamic dynamicArg, core::Object objectArg, core::num numArg, core::int intArg, core::double doubleArg, core::Function functionArg, () → void toVoidArg, self::Tearoffable tearoffableArg, self::ok::XnonNull xNonNullArg, self::ok::XpotentiallyNull% xPotentiallyNullArg, self::ok::YnonNull yNonNullArg, self::ok::YpotentiallyNull% yPotentiallyNullArg) → dynamic {
dynamic dynamicVar = dynamicArg;
dynamicVar = objectArg;
dynamicVar = numArg;
@@ -1031,7 +1031,7 @@
self::ok::YpotentiallyNull% yPotentiallyNullVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} self::ok::YpotentiallyNull%;
yPotentiallyNullVar = yPotentiallyNullArg;
}
-static method error<XnonNull extends core::Object = core::Object, YnonNull extends self::error::XnonNull = core::Object, XpotentiallyNull extends core::Object? = core::Object?, YpotentiallyNull extends self::error::XpotentiallyNull% = core::Object?>(core::Object objectArg, core::Object? objectNullableArg, core::num numArg, core::num? numNullableArg, core::int intArg, core::int? intNullableArg, core::double doubleArg, core::double? doubleNullableArg, core::Function functionArg, core::Function? functionNullableArg, () → void toVoidArg, () →? void toVoidNullableArg, self::Tearoffable tearoffableArg, self::Tearoffable? tearoffableNullableArg, self::error::XnonNull xNonNullArg, self::error::XnonNull? xNonNullNullableArg, self::error::XpotentiallyNull% xPotentiallyNullArg, self::error::XpotentiallyNull? xPotentiallyNullNullableArg, self::error::YnonNull yNonNullArg, self::error::YnonNull? yNonNullNullableArg, self::error::YpotentiallyNull% yPotentiallyNullArg, self::error::YpotentiallyNull? yPotentiallyNullNullableArg) → dynamic {
+static method error<XnonNull extends core::Object, YnonNull extends self::error::XnonNull = core::Object, XpotentiallyNull extends core::Object?, YpotentiallyNull extends self::error::XpotentiallyNull% = core::Object?>(core::Object objectArg, core::Object? objectNullableArg, core::num numArg, core::num? numNullableArg, core::int intArg, core::int? intNullableArg, core::double doubleArg, core::double? doubleNullableArg, core::Function functionArg, core::Function? functionNullableArg, () → void toVoidArg, () →? void toVoidNullableArg, self::Tearoffable tearoffableArg, self::Tearoffable? tearoffableNullableArg, self::error::XnonNull xNonNullArg, self::error::XnonNull? xNonNullNullableArg, self::error::XpotentiallyNull% xPotentiallyNullArg, self::error::XpotentiallyNull? xPotentiallyNullNullableArg, self::error::YnonNull yNonNullArg, self::error::YnonNull? yNonNullNullableArg, self::error::YpotentiallyNull% yPotentiallyNullArg, self::error::YpotentiallyNull? yPotentiallyNullNullableArg) → dynamic {
core::Object objectVar = let final Never #t3 = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:114:22: Error: A value of type 'Object?' can't be assigned to a variable of type 'Object' because 'Object?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object objectVar = objectNullableArg;
diff --git a/pkg/front_end/testcases/nnbd/assignability.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/assignability.dart.strong.transformed.expect
index 1511c7e..0c62a44 100644
--- a/pkg/front_end/testcases/nnbd/assignability.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/assignability.dart.strong.transformed.expect
@@ -981,7 +981,7 @@
;
method call() → void {}
}
-static method ok<XnonNull extends core::Object = core::Object, YnonNull extends self::ok::XnonNull = core::Object, XpotentiallyNull extends core::Object? = core::Object?, YpotentiallyNull extends self::ok::XpotentiallyNull% = core::Object?>(dynamic dynamicArg, core::Object objectArg, core::num numArg, core::int intArg, core::double doubleArg, core::Function functionArg, () → void toVoidArg, self::Tearoffable tearoffableArg, self::ok::XnonNull xNonNullArg, self::ok::XpotentiallyNull% xPotentiallyNullArg, self::ok::YnonNull yNonNullArg, self::ok::YpotentiallyNull% yPotentiallyNullArg) → dynamic {
+static method ok<XnonNull extends core::Object, YnonNull extends self::ok::XnonNull = core::Object, XpotentiallyNull extends core::Object?, YpotentiallyNull extends self::ok::XpotentiallyNull% = core::Object?>(dynamic dynamicArg, core::Object objectArg, core::num numArg, core::int intArg, core::double doubleArg, core::Function functionArg, () → void toVoidArg, self::Tearoffable tearoffableArg, self::ok::XnonNull xNonNullArg, self::ok::XpotentiallyNull% xPotentiallyNullArg, self::ok::YnonNull yNonNullArg, self::ok::YpotentiallyNull% yPotentiallyNullArg) → dynamic {
dynamic dynamicVar = dynamicArg;
dynamicVar = objectArg;
dynamicVar = numArg;
@@ -1031,7 +1031,7 @@
self::ok::YpotentiallyNull% yPotentiallyNullVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} self::ok::YpotentiallyNull%;
yPotentiallyNullVar = yPotentiallyNullArg;
}
-static method error<XnonNull extends core::Object = core::Object, YnonNull extends self::error::XnonNull = core::Object, XpotentiallyNull extends core::Object? = core::Object?, YpotentiallyNull extends self::error::XpotentiallyNull% = core::Object?>(core::Object objectArg, core::Object? objectNullableArg, core::num numArg, core::num? numNullableArg, core::int intArg, core::int? intNullableArg, core::double doubleArg, core::double? doubleNullableArg, core::Function functionArg, core::Function? functionNullableArg, () → void toVoidArg, () →? void toVoidNullableArg, self::Tearoffable tearoffableArg, self::Tearoffable? tearoffableNullableArg, self::error::XnonNull xNonNullArg, self::error::XnonNull? xNonNullNullableArg, self::error::XpotentiallyNull% xPotentiallyNullArg, self::error::XpotentiallyNull? xPotentiallyNullNullableArg, self::error::YnonNull yNonNullArg, self::error::YnonNull? yNonNullNullableArg, self::error::YpotentiallyNull% yPotentiallyNullArg, self::error::YpotentiallyNull? yPotentiallyNullNullableArg) → dynamic {
+static method error<XnonNull extends core::Object, YnonNull extends self::error::XnonNull = core::Object, XpotentiallyNull extends core::Object?, YpotentiallyNull extends self::error::XpotentiallyNull% = core::Object?>(core::Object objectArg, core::Object? objectNullableArg, core::num numArg, core::num? numNullableArg, core::int intArg, core::int? intNullableArg, core::double doubleArg, core::double? doubleNullableArg, core::Function functionArg, core::Function? functionNullableArg, () → void toVoidArg, () →? void toVoidNullableArg, self::Tearoffable tearoffableArg, self::Tearoffable? tearoffableNullableArg, self::error::XnonNull xNonNullArg, self::error::XnonNull? xNonNullNullableArg, self::error::XpotentiallyNull% xPotentiallyNullArg, self::error::XpotentiallyNull? xPotentiallyNullNullableArg, self::error::YnonNull yNonNullArg, self::error::YnonNull? yNonNullNullableArg, self::error::YpotentiallyNull% yPotentiallyNullArg, self::error::YpotentiallyNull? yPotentiallyNullNullableArg) → dynamic {
core::Object objectVar = let final Never #t4 = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:114:22: Error: A value of type 'Object?' can't be assigned to a variable of type 'Object' because 'Object?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object objectVar = objectNullableArg;
diff --git a/pkg/front_end/testcases/nnbd/assignability.dart.weak.expect b/pkg/front_end/testcases/nnbd/assignability.dart.weak.expect
index 5048e4b..19d474e 100644
--- a/pkg/front_end/testcases/nnbd/assignability.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/assignability.dart.weak.expect
@@ -981,7 +981,7 @@
;
method call() → void {}
}
-static method ok<XnonNull extends core::Object = core::Object, YnonNull extends self::ok::XnonNull = core::Object, XpotentiallyNull extends core::Object? = core::Object?, YpotentiallyNull extends self::ok::XpotentiallyNull% = core::Object?>(dynamic dynamicArg, core::Object objectArg, core::num numArg, core::int intArg, core::double doubleArg, core::Function functionArg, () → void toVoidArg, self::Tearoffable tearoffableArg, self::ok::XnonNull xNonNullArg, self::ok::XpotentiallyNull% xPotentiallyNullArg, self::ok::YnonNull yNonNullArg, self::ok::YpotentiallyNull% yPotentiallyNullArg) → dynamic {
+static method ok<XnonNull extends core::Object, YnonNull extends self::ok::XnonNull = core::Object, XpotentiallyNull extends core::Object?, YpotentiallyNull extends self::ok::XpotentiallyNull% = core::Object?>(dynamic dynamicArg, core::Object objectArg, core::num numArg, core::int intArg, core::double doubleArg, core::Function functionArg, () → void toVoidArg, self::Tearoffable tearoffableArg, self::ok::XnonNull xNonNullArg, self::ok::XpotentiallyNull% xPotentiallyNullArg, self::ok::YnonNull yNonNullArg, self::ok::YpotentiallyNull% yPotentiallyNullArg) → dynamic {
dynamic dynamicVar = dynamicArg;
dynamicVar = objectArg;
dynamicVar = numArg;
@@ -1031,7 +1031,7 @@
self::ok::YpotentiallyNull% yPotentiallyNullVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} self::ok::YpotentiallyNull%;
yPotentiallyNullVar = yPotentiallyNullArg;
}
-static method error<XnonNull extends core::Object = core::Object, YnonNull extends self::error::XnonNull = core::Object, XpotentiallyNull extends core::Object? = core::Object?, YpotentiallyNull extends self::error::XpotentiallyNull% = core::Object?>(core::Object objectArg, core::Object? objectNullableArg, core::num numArg, core::num? numNullableArg, core::int intArg, core::int? intNullableArg, core::double doubleArg, core::double? doubleNullableArg, core::Function functionArg, core::Function? functionNullableArg, () → void toVoidArg, () →? void toVoidNullableArg, self::Tearoffable tearoffableArg, self::Tearoffable? tearoffableNullableArg, self::error::XnonNull xNonNullArg, self::error::XnonNull? xNonNullNullableArg, self::error::XpotentiallyNull% xPotentiallyNullArg, self::error::XpotentiallyNull? xPotentiallyNullNullableArg, self::error::YnonNull yNonNullArg, self::error::YnonNull? yNonNullNullableArg, self::error::YpotentiallyNull% yPotentiallyNullArg, self::error::YpotentiallyNull? yPotentiallyNullNullableArg) → dynamic {
+static method error<XnonNull extends core::Object, YnonNull extends self::error::XnonNull = core::Object, XpotentiallyNull extends core::Object?, YpotentiallyNull extends self::error::XpotentiallyNull% = core::Object?>(core::Object objectArg, core::Object? objectNullableArg, core::num numArg, core::num? numNullableArg, core::int intArg, core::int? intNullableArg, core::double doubleArg, core::double? doubleNullableArg, core::Function functionArg, core::Function? functionNullableArg, () → void toVoidArg, () →? void toVoidNullableArg, self::Tearoffable tearoffableArg, self::Tearoffable? tearoffableNullableArg, self::error::XnonNull xNonNullArg, self::error::XnonNull? xNonNullNullableArg, self::error::XpotentiallyNull% xPotentiallyNullArg, self::error::XpotentiallyNull? xPotentiallyNullNullableArg, self::error::YnonNull yNonNullArg, self::error::YnonNull? yNonNullNullableArg, self::error::YpotentiallyNull% yPotentiallyNullArg, self::error::YpotentiallyNull? yPotentiallyNullNullableArg) → dynamic {
core::Object objectVar = let final Never #t3 = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:114:22: Error: A value of type 'Object?' can't be assigned to a variable of type 'Object' because 'Object?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object objectVar = objectNullableArg;
diff --git a/pkg/front_end/testcases/nnbd/assignability.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/assignability.dart.weak.outline.expect
index 5697d0b..a3a89d2 100644
--- a/pkg/front_end/testcases/nnbd/assignability.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/assignability.dart.weak.outline.expect
@@ -8,9 +8,9 @@
method call() → void
;
}
-static method ok<XnonNull extends core::Object = core::Object, YnonNull extends self::ok::XnonNull = core::Object, XpotentiallyNull extends core::Object? = core::Object?, YpotentiallyNull extends self::ok::XpotentiallyNull% = core::Object?>(dynamic dynamicArg, core::Object objectArg, core::num numArg, core::int intArg, core::double doubleArg, core::Function functionArg, () → void toVoidArg, self::Tearoffable tearoffableArg, self::ok::XnonNull xNonNullArg, self::ok::XpotentiallyNull% xPotentiallyNullArg, self::ok::YnonNull yNonNullArg, self::ok::YpotentiallyNull% yPotentiallyNullArg) → dynamic
+static method ok<XnonNull extends core::Object, YnonNull extends self::ok::XnonNull = core::Object, XpotentiallyNull extends core::Object?, YpotentiallyNull extends self::ok::XpotentiallyNull% = core::Object?>(dynamic dynamicArg, core::Object objectArg, core::num numArg, core::int intArg, core::double doubleArg, core::Function functionArg, () → void toVoidArg, self::Tearoffable tearoffableArg, self::ok::XnonNull xNonNullArg, self::ok::XpotentiallyNull% xPotentiallyNullArg, self::ok::YnonNull yNonNullArg, self::ok::YpotentiallyNull% yPotentiallyNullArg) → dynamic
;
-static method error<XnonNull extends core::Object = core::Object, YnonNull extends self::error::XnonNull = core::Object, XpotentiallyNull extends core::Object? = core::Object?, YpotentiallyNull extends self::error::XpotentiallyNull% = core::Object?>(core::Object objectArg, core::Object? objectNullableArg, core::num numArg, core::num? numNullableArg, core::int intArg, core::int? intNullableArg, core::double doubleArg, core::double? doubleNullableArg, core::Function functionArg, core::Function? functionNullableArg, () → void toVoidArg, () →? void toVoidNullableArg, self::Tearoffable tearoffableArg, self::Tearoffable? tearoffableNullableArg, self::error::XnonNull xNonNullArg, self::error::XnonNull? xNonNullNullableArg, self::error::XpotentiallyNull% xPotentiallyNullArg, self::error::XpotentiallyNull? xPotentiallyNullNullableArg, self::error::YnonNull yNonNullArg, self::error::YnonNull? yNonNullNullableArg, self::error::YpotentiallyNull% yPotentiallyNullArg, self::error::YpotentiallyNull? yPotentiallyNullNullableArg) → dynamic
+static method error<XnonNull extends core::Object, YnonNull extends self::error::XnonNull = core::Object, XpotentiallyNull extends core::Object?, YpotentiallyNull extends self::error::XpotentiallyNull% = core::Object?>(core::Object objectArg, core::Object? objectNullableArg, core::num numArg, core::num? numNullableArg, core::int intArg, core::int? intNullableArg, core::double doubleArg, core::double? doubleNullableArg, core::Function functionArg, core::Function? functionNullableArg, () → void toVoidArg, () →? void toVoidNullableArg, self::Tearoffable tearoffableArg, self::Tearoffable? tearoffableNullableArg, self::error::XnonNull xNonNullArg, self::error::XnonNull? xNonNullNullableArg, self::error::XpotentiallyNull% xPotentiallyNullArg, self::error::XpotentiallyNull? xPotentiallyNullNullableArg, self::error::YnonNull yNonNullArg, self::error::YnonNull? yNonNullNullableArg, self::error::YpotentiallyNull% yPotentiallyNullArg, self::error::YpotentiallyNull? yPotentiallyNullNullableArg) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/assignability.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/assignability.dart.weak.transformed.expect
index 74dd324..24484a9 100644
--- a/pkg/front_end/testcases/nnbd/assignability.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/assignability.dart.weak.transformed.expect
@@ -981,7 +981,7 @@
;
method call() → void {}
}
-static method ok<XnonNull extends core::Object = core::Object, YnonNull extends self::ok::XnonNull = core::Object, XpotentiallyNull extends core::Object? = core::Object?, YpotentiallyNull extends self::ok::XpotentiallyNull% = core::Object?>(dynamic dynamicArg, core::Object objectArg, core::num numArg, core::int intArg, core::double doubleArg, core::Function functionArg, () → void toVoidArg, self::Tearoffable tearoffableArg, self::ok::XnonNull xNonNullArg, self::ok::XpotentiallyNull% xPotentiallyNullArg, self::ok::YnonNull yNonNullArg, self::ok::YpotentiallyNull% yPotentiallyNullArg) → dynamic {
+static method ok<XnonNull extends core::Object, YnonNull extends self::ok::XnonNull = core::Object, XpotentiallyNull extends core::Object?, YpotentiallyNull extends self::ok::XpotentiallyNull% = core::Object?>(dynamic dynamicArg, core::Object objectArg, core::num numArg, core::int intArg, core::double doubleArg, core::Function functionArg, () → void toVoidArg, self::Tearoffable tearoffableArg, self::ok::XnonNull xNonNullArg, self::ok::XpotentiallyNull% xPotentiallyNullArg, self::ok::YnonNull yNonNullArg, self::ok::YpotentiallyNull% yPotentiallyNullArg) → dynamic {
dynamic dynamicVar = dynamicArg;
dynamicVar = objectArg;
dynamicVar = numArg;
@@ -1031,7 +1031,7 @@
self::ok::YpotentiallyNull% yPotentiallyNullVar = dynamicArg as{TypeError,ForDynamic,ForNonNullableByDefault} self::ok::YpotentiallyNull%;
yPotentiallyNullVar = yPotentiallyNullArg;
}
-static method error<XnonNull extends core::Object = core::Object, YnonNull extends self::error::XnonNull = core::Object, XpotentiallyNull extends core::Object? = core::Object?, YpotentiallyNull extends self::error::XpotentiallyNull% = core::Object?>(core::Object objectArg, core::Object? objectNullableArg, core::num numArg, core::num? numNullableArg, core::int intArg, core::int? intNullableArg, core::double doubleArg, core::double? doubleNullableArg, core::Function functionArg, core::Function? functionNullableArg, () → void toVoidArg, () →? void toVoidNullableArg, self::Tearoffable tearoffableArg, self::Tearoffable? tearoffableNullableArg, self::error::XnonNull xNonNullArg, self::error::XnonNull? xNonNullNullableArg, self::error::XpotentiallyNull% xPotentiallyNullArg, self::error::XpotentiallyNull? xPotentiallyNullNullableArg, self::error::YnonNull yNonNullArg, self::error::YnonNull? yNonNullNullableArg, self::error::YpotentiallyNull% yPotentiallyNullArg, self::error::YpotentiallyNull? yPotentiallyNullNullableArg) → dynamic {
+static method error<XnonNull extends core::Object, YnonNull extends self::error::XnonNull = core::Object, XpotentiallyNull extends core::Object?, YpotentiallyNull extends self::error::XpotentiallyNull% = core::Object?>(core::Object objectArg, core::Object? objectNullableArg, core::num numArg, core::num? numNullableArg, core::int intArg, core::int? intNullableArg, core::double doubleArg, core::double? doubleNullableArg, core::Function functionArg, core::Function? functionNullableArg, () → void toVoidArg, () →? void toVoidNullableArg, self::Tearoffable tearoffableArg, self::Tearoffable? tearoffableNullableArg, self::error::XnonNull xNonNullArg, self::error::XnonNull? xNonNullNullableArg, self::error::XpotentiallyNull% xPotentiallyNullArg, self::error::XpotentiallyNull? xPotentiallyNullNullableArg, self::error::YnonNull yNonNullArg, self::error::YnonNull? yNonNullNullableArg, self::error::YpotentiallyNull% yPotentiallyNullArg, self::error::YpotentiallyNull? yPotentiallyNullNullableArg) → dynamic {
core::Object objectVar = let final Never #t3 = invalid-expression "pkg/front_end/testcases/nnbd/assignability.dart:114:22: Error: A value of type 'Object?' can't be assigned to a variable of type 'Object' because 'Object?' is nullable and 'Object' isn't.
- 'Object' is from 'dart:core'.
Object objectVar = objectNullableArg;
diff --git a/pkg/front_end/testcases/nnbd/bounds_checks.dart.strong.expect b/pkg/front_end/testcases/nnbd/bounds_checks.dart.strong.expect
index 90866e8..cf1774b 100644
--- a/pkg/front_end/testcases/nnbd/bounds_checks.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/bounds_checks.dart.strong.expect
@@ -59,7 +59,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::num = core::num> extends core::Object {
+class A<X extends core::num> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
;
@@ -69,7 +69,7 @@
: super self::A::•()
;
}
-class C<T extends self::A<core::num?> = self::A<core::num?>> extends core::Object {
+class C<T extends self::A<core::num?>> extends core::Object {
synthetic constructor •() → self::C<self::C::T>
: super core::Object::•()
;
@@ -78,12 +78,12 @@
synthetic constructor •() → self::Hest
: super core::Object::•()
;
- method hest<T extends core::num = core::num>() → void {}
+ method hest<T extends core::num>() → void {}
}
static method foo(self::A<core::num?> a) → dynamic {}
static method bar() → self::A<core::num?>? {}
-static method baz<T extends self::A<core::num?> = self::A<core::num?>>() → dynamic {}
-static method hest<T extends core::num = core::num>() → void {}
+static method baz<T extends self::A<core::num?>>() → dynamic {}
+static method hest<T extends core::num>() → void {}
static method fisk(self::Hest h) → dynamic {
self::hest<core::num?>();
h.{self::Hest::hest}<core::num?>();
diff --git a/pkg/front_end/testcases/nnbd/bounds_checks.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/bounds_checks.dart.strong.transformed.expect
index 90866e8..cf1774b 100644
--- a/pkg/front_end/testcases/nnbd/bounds_checks.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/bounds_checks.dart.strong.transformed.expect
@@ -59,7 +59,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::num = core::num> extends core::Object {
+class A<X extends core::num> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
;
@@ -69,7 +69,7 @@
: super self::A::•()
;
}
-class C<T extends self::A<core::num?> = self::A<core::num?>> extends core::Object {
+class C<T extends self::A<core::num?>> extends core::Object {
synthetic constructor •() → self::C<self::C::T>
: super core::Object::•()
;
@@ -78,12 +78,12 @@
synthetic constructor •() → self::Hest
: super core::Object::•()
;
- method hest<T extends core::num = core::num>() → void {}
+ method hest<T extends core::num>() → void {}
}
static method foo(self::A<core::num?> a) → dynamic {}
static method bar() → self::A<core::num?>? {}
-static method baz<T extends self::A<core::num?> = self::A<core::num?>>() → dynamic {}
-static method hest<T extends core::num = core::num>() → void {}
+static method baz<T extends self::A<core::num?>>() → dynamic {}
+static method hest<T extends core::num>() → void {}
static method fisk(self::Hest h) → dynamic {
self::hest<core::num?>();
h.{self::Hest::hest}<core::num?>();
diff --git a/pkg/front_end/testcases/nnbd/bounds_checks.dart.weak.expect b/pkg/front_end/testcases/nnbd/bounds_checks.dart.weak.expect
index 90866e8..cf1774b 100644
--- a/pkg/front_end/testcases/nnbd/bounds_checks.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/bounds_checks.dart.weak.expect
@@ -59,7 +59,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::num = core::num> extends core::Object {
+class A<X extends core::num> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
;
@@ -69,7 +69,7 @@
: super self::A::•()
;
}
-class C<T extends self::A<core::num?> = self::A<core::num?>> extends core::Object {
+class C<T extends self::A<core::num?>> extends core::Object {
synthetic constructor •() → self::C<self::C::T>
: super core::Object::•()
;
@@ -78,12 +78,12 @@
synthetic constructor •() → self::Hest
: super core::Object::•()
;
- method hest<T extends core::num = core::num>() → void {}
+ method hest<T extends core::num>() → void {}
}
static method foo(self::A<core::num?> a) → dynamic {}
static method bar() → self::A<core::num?>? {}
-static method baz<T extends self::A<core::num?> = self::A<core::num?>>() → dynamic {}
-static method hest<T extends core::num = core::num>() → void {}
+static method baz<T extends self::A<core::num?>>() → dynamic {}
+static method hest<T extends core::num>() → void {}
static method fisk(self::Hest h) → dynamic {
self::hest<core::num?>();
h.{self::Hest::hest}<core::num?>();
diff --git a/pkg/front_end/testcases/nnbd/bounds_checks.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/bounds_checks.dart.weak.outline.expect
index f3c9fb6..be5c01e 100644
--- a/pkg/front_end/testcases/nnbd/bounds_checks.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/bounds_checks.dart.weak.outline.expect
@@ -45,7 +45,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::num = core::num> extends core::Object {
+class A<X extends core::num> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
;
}
@@ -53,23 +53,23 @@
synthetic constructor •() → self::B
;
}
-class C<T extends self::A<core::num?> = self::A<core::num?>> extends core::Object {
+class C<T extends self::A<core::num?>> extends core::Object {
synthetic constructor •() → self::C<self::C::T>
;
}
class Hest extends core::Object {
synthetic constructor •() → self::Hest
;
- method hest<T extends core::num = core::num>() → void
+ method hest<T extends core::num>() → void
;
}
static method foo(self::A<core::num?> a) → dynamic
;
static method bar() → self::A<core::num?>?
;
-static method baz<T extends self::A<core::num?> = self::A<core::num?>>() → dynamic
+static method baz<T extends self::A<core::num?>>() → dynamic
;
-static method hest<T extends core::num = core::num>() → void
+static method hest<T extends core::num>() → void
;
static method fisk(self::Hest h) → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/bounds_checks.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/bounds_checks.dart.weak.transformed.expect
index 90866e8..cf1774b 100644
--- a/pkg/front_end/testcases/nnbd/bounds_checks.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/bounds_checks.dart.weak.transformed.expect
@@ -59,7 +59,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::num = core::num> extends core::Object {
+class A<X extends core::num> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
;
@@ -69,7 +69,7 @@
: super self::A::•()
;
}
-class C<T extends self::A<core::num?> = self::A<core::num?>> extends core::Object {
+class C<T extends self::A<core::num?>> extends core::Object {
synthetic constructor •() → self::C<self::C::T>
: super core::Object::•()
;
@@ -78,12 +78,12 @@
synthetic constructor •() → self::Hest
: super core::Object::•()
;
- method hest<T extends core::num = core::num>() → void {}
+ method hest<T extends core::num>() → void {}
}
static method foo(self::A<core::num?> a) → dynamic {}
static method bar() → self::A<core::num?>? {}
-static method baz<T extends self::A<core::num?> = self::A<core::num?>>() → dynamic {}
-static method hest<T extends core::num = core::num>() → void {}
+static method baz<T extends self::A<core::num?>>() → dynamic {}
+static method hest<T extends core::num>() → void {}
static method fisk(self::Hest h) → dynamic {
self::hest<core::num?>();
h.{self::Hest::hest}<core::num?>();
diff --git a/pkg/front_end/testcases/nnbd/extension_bounds.dart.strong.expect b/pkg/front_end/testcases/nnbd/extension_bounds.dart.strong.expect
index c1de6b4..71679c9 100644
--- a/pkg/front_end/testcases/nnbd/extension_bounds.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/extension_bounds.dart.strong.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-extension Extension1<T extends core::Object = core::Object> on T {
+extension Extension1<T extends core::Object> on T {
method method1 = self::Extension1|method1;
tearoff method1 = self::Extension1|get#method1;
method method2 = self::Extension1|method2;
@@ -14,7 +14,7 @@
method method5 = self::Extension1|method5;
tearoff method5 = self::Extension1|get#method5;
}
-extension Extension2<T extends core::String = core::String> on T {
+extension Extension2<T extends core::String> on T {
method method1 = self::Extension2|method1;
tearoff method1 = self::Extension2|get#method1;
method method2 = self::Extension2|method2;
@@ -26,7 +26,7 @@
method method5 = self::Extension2|method5;
tearoff method5 = self::Extension2|get#method5;
}
-extension Extension3<T extends dynamic = dynamic> on T% {
+extension Extension3<T extends dynamic> on T% {
method method1 = self::Extension3|method1;
tearoff method1 = self::Extension3|get#method1;
method method2 = self::Extension3|method2;
@@ -50,7 +50,7 @@
method method5 = self::Extension4|method5;
tearoff method5 = self::Extension4|get#method5;
}
-extension Extension5<T extends core::Object? = core::Object?> on T% {
+extension Extension5<T extends core::Object?> on T% {
method method1 = self::Extension5|method1;
tearoff method1 = self::Extension5|get#method1;
method method2 = self::Extension5|method2;
@@ -62,79 +62,79 @@
method method5 = self::Extension5|method5;
tearoff method5 = self::Extension5|get#method5;
}
-static method Extension1|method1<T extends core::Object = core::Object, S extends core::Object = core::Object>(lowered final self::Extension1|method1::T #this) → dynamic {}
-static method Extension1|get#method1<T extends core::Object = core::Object>(lowered final self::Extension1|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T, S>(#this);
-static method Extension1|method2<T extends core::Object = core::Object, S extends core::String = core::String>(lowered final self::Extension1|method2::T #this) → dynamic {}
-static method Extension1|get#method2<T extends core::Object = core::Object>(lowered final self::Extension1|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T, S>(#this);
-static method Extension1|method3<T extends core::Object = core::Object, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T #this) → dynamic {}
-static method Extension1|get#method3<T extends core::Object = core::Object>(lowered final self::Extension1|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T, S%>(#this);
-static method Extension1|method4<T extends core::Object = core::Object, S extends core::Object? = dynamic>(lowered final self::Extension1|method4::T #this) → dynamic {}
-static method Extension1|get#method4<T extends core::Object = core::Object>(lowered final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension1|method1<T extends core::Object, S extends core::Object>(lowered final self::Extension1|method1::T #this) → dynamic {}
+static method Extension1|get#method1<T extends core::Object>(lowered final self::Extension1|get#method1::T #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T, S>(#this);
+static method Extension1|method2<T extends core::Object, S extends core::String>(lowered final self::Extension1|method2::T #this) → dynamic {}
+static method Extension1|get#method2<T extends core::Object>(lowered final self::Extension1|get#method2::T #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T, S>(#this);
+static method Extension1|method3<T extends core::Object, S extends dynamic>(lowered final self::Extension1|method3::T #this) → dynamic {}
+static method Extension1|get#method3<T extends core::Object>(lowered final self::Extension1|get#method3::T #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T, S%>(#this);
+static method Extension1|method4<T extends core::Object, S extends core::Object? = dynamic>(lowered final self::Extension1|method4::T #this) → dynamic {}
+static method Extension1|get#method4<T extends core::Object>(lowered final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T, S%>(#this);
-static method Extension1|method5<T extends core::Object = core::Object, S extends core::Object? = core::Object?>(lowered final self::Extension1|method5::T #this) → dynamic {}
-static method Extension1|get#method5<T extends core::Object = core::Object>(lowered final self::Extension1|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension1|method5<self::Extension1|get#method5::T, S%>(#this);
-static method Extension2|method1<T extends core::String = core::String, S extends core::Object = core::Object>(lowered final self::Extension2|method1::T #this) → dynamic {}
-static method Extension2|get#method1<T extends core::String = core::String>(lowered final self::Extension2|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T, S>(#this);
-static method Extension2|method2<T extends core::String = core::String, S extends core::String = core::String>(lowered final self::Extension2|method2::T #this) → dynamic {}
-static method Extension2|get#method2<T extends core::String = core::String>(lowered final self::Extension2|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T, S>(#this);
-static method Extension2|method3<T extends core::String = core::String, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T #this) → dynamic {}
-static method Extension2|get#method3<T extends core::String = core::String>(lowered final self::Extension2|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T, S%>(#this);
-static method Extension2|get#method4<T extends core::String = core::String>(lowered final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension1|method5<T extends core::Object, S extends core::Object?>(lowered final self::Extension1|method5::T #this) → dynamic {}
+static method Extension1|get#method5<T extends core::Object>(lowered final self::Extension1|get#method5::T #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension1|method5<self::Extension1|get#method5::T, S%>(#this);
+static method Extension2|method1<T extends core::String, S extends core::Object>(lowered final self::Extension2|method1::T #this) → dynamic {}
+static method Extension2|get#method1<T extends core::String>(lowered final self::Extension2|get#method1::T #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T, S>(#this);
+static method Extension2|method2<T extends core::String, S extends core::String>(lowered final self::Extension2|method2::T #this) → dynamic {}
+static method Extension2|get#method2<T extends core::String>(lowered final self::Extension2|get#method2::T #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T, S>(#this);
+static method Extension2|method3<T extends core::String, S extends dynamic>(lowered final self::Extension2|method3::T #this) → dynamic {}
+static method Extension2|get#method3<T extends core::String>(lowered final self::Extension2|get#method3::T #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T, S%>(#this);
+static method Extension2|get#method4<T extends core::String>(lowered final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T, S%>(#this);
-static method Extension2|method4<T extends core::String = core::String, S extends core::Object? = dynamic>(lowered final self::Extension2|method4::T #this) → dynamic {}
-static method Extension2|method5<T extends core::String = core::String, S extends core::Object? = core::Object?>(lowered final self::Extension2|method5::T #this) → dynamic {}
-static method Extension2|get#method5<T extends core::String = core::String>(lowered final self::Extension2|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension2|method5<self::Extension2|get#method5::T, S%>(#this);
-static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object = core::Object>(lowered final self::Extension3|method1::T% #this) → dynamic {}
-static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S>(#this);
-static method Extension3|method2<T extends dynamic = dynamic, S extends core::String = core::String>(lowered final self::Extension3|method2::T% #this) → dynamic {}
-static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S>(#this);
-static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T% #this) → dynamic {}
-static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
-static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension3|method4::T% #this) → dynamic {}
-static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension2|method4<T extends core::String, S extends core::Object? = dynamic>(lowered final self::Extension2|method4::T #this) → dynamic {}
+static method Extension2|method5<T extends core::String, S extends core::Object?>(lowered final self::Extension2|method5::T #this) → dynamic {}
+static method Extension2|get#method5<T extends core::String>(lowered final self::Extension2|get#method5::T #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension2|method5<self::Extension2|get#method5::T, S%>(#this);
+static method Extension3|method1<T extends dynamic, S extends core::Object>(lowered final self::Extension3|method1::T% #this) → dynamic {}
+static method Extension3|get#method1<T extends dynamic>(lowered final self::Extension3|get#method1::T% #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S>(#this);
+static method Extension3|method2<T extends dynamic, S extends core::String>(lowered final self::Extension3|method2::T% #this) → dynamic {}
+static method Extension3|get#method2<T extends dynamic>(lowered final self::Extension3|get#method2::T% #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S>(#this);
+static method Extension3|method3<T extends dynamic, S extends dynamic>(lowered final self::Extension3|method3::T% #this) → dynamic {}
+static method Extension3|get#method3<T extends dynamic>(lowered final self::Extension3|get#method3::T% #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
+static method Extension3|method4<T extends dynamic, S extends core::Object? = dynamic>(lowered final self::Extension3|method4::T% #this) → dynamic {}
+static method Extension3|get#method4<T extends dynamic>(lowered final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S%>(#this);
-static method Extension3|method5<T extends dynamic = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension3|method5::T% #this) → dynamic {}
-static method Extension3|get#method5<T extends dynamic = dynamic>(lowered final self::Extension3|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension3|method5<self::Extension3|get#method5::T%, S%>(#this);
-static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object = core::Object>(lowered final self::Extension4|method1::T% #this) → dynamic {}
-static method Extension4|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T%, S>(#this);
-static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String = core::String>(lowered final self::Extension4|method2::T% #this) → dynamic {}
-static method Extension4|get#method2<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T%, S>(#this);
-static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T% #this) → dynamic {}
-static method Extension4|get#method3<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T%, S%>(#this);
+static method Extension3|method5<T extends dynamic, S extends core::Object?>(lowered final self::Extension3|method5::T% #this) → dynamic {}
+static method Extension3|get#method5<T extends dynamic>(lowered final self::Extension3|get#method5::T% #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension3|method5<self::Extension3|get#method5::T%, S%>(#this);
+static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object>(lowered final self::Extension4|method1::T% #this) → dynamic {}
+static method Extension4|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method1::T% #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T%, S>(#this);
+static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String>(lowered final self::Extension4|method2::T% #this) → dynamic {}
+static method Extension4|get#method2<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method2::T% #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T%, S>(#this);
+static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic>(lowered final self::Extension4|method3::T% #this) → dynamic {}
+static method Extension4|get#method3<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method3::T% #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T%, S%>(#this);
static method Extension4|method4<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension4|method4::T% #this) → dynamic {}
static method Extension4|get#method4<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T%, S%>(#this);
-static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension4|method5::T% #this) → dynamic {}
-static method Extension4|get#method5<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension4|method5<self::Extension4|get#method5::T%, S%>(#this);
-static method Extension5|method1<T extends core::Object? = core::Object?, S extends core::Object = core::Object>(lowered final self::Extension5|method1::T% #this) → dynamic {}
-static method Extension5|get#method1<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension5|method1<self::Extension5|get#method1::T%, S>(#this);
-static method Extension5|method2<T extends core::Object? = core::Object?, S extends core::String = core::String>(lowered final self::Extension5|method2::T% #this) → dynamic {}
-static method Extension5|get#method2<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension5|method2<self::Extension5|get#method2::T%, S>(#this);
-static method Extension5|method3<T extends core::Object? = core::Object?, S extends dynamic = dynamic>(lowered final self::Extension5|method3::T% #this) → dynamic {}
-static method Extension5|get#method3<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension5|method3<self::Extension5|get#method3::T%, S%>(#this);
-static method Extension5|method4<T extends core::Object? = core::Object?, S extends core::Object? = dynamic>(lowered final self::Extension5|method4::T% #this) → dynamic {}
-static method Extension5|get#method4<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object?>(lowered final self::Extension4|method5::T% #this) → dynamic {}
+static method Extension4|get#method5<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method5::T% #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension4|method5<self::Extension4|get#method5::T%, S%>(#this);
+static method Extension5|method1<T extends core::Object?, S extends core::Object>(lowered final self::Extension5|method1::T% #this) → dynamic {}
+static method Extension5|get#method1<T extends core::Object?>(lowered final self::Extension5|get#method1::T% #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension5|method1<self::Extension5|get#method1::T%, S>(#this);
+static method Extension5|method2<T extends core::Object?, S extends core::String>(lowered final self::Extension5|method2::T% #this) → dynamic {}
+static method Extension5|get#method2<T extends core::Object?>(lowered final self::Extension5|get#method2::T% #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension5|method2<self::Extension5|get#method2::T%, S>(#this);
+static method Extension5|method3<T extends core::Object?, S extends dynamic>(lowered final self::Extension5|method3::T% #this) → dynamic {}
+static method Extension5|get#method3<T extends core::Object?>(lowered final self::Extension5|get#method3::T% #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension5|method3<self::Extension5|get#method3::T%, S%>(#this);
+static method Extension5|method4<T extends core::Object?, S extends core::Object? = dynamic>(lowered final self::Extension5|method4::T% #this) → dynamic {}
+static method Extension5|get#method4<T extends core::Object?>(lowered final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension5|method4<self::Extension5|get#method4::T%, S%>(#this);
-static method Extension5|method5<T extends core::Object? = core::Object?, S extends core::Object? = core::Object?>(lowered final self::Extension5|method5::T% #this) → dynamic {}
-static method Extension5|get#method5<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension5|method5<self::Extension5|get#method5::T%, S%>(#this);
+static method Extension5|method5<T extends core::Object?, S extends core::Object?>(lowered final self::Extension5|method5::T% #this) → dynamic {}
+static method Extension5|get#method5<T extends core::Object?>(lowered final self::Extension5|get#method5::T% #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension5|method5<self::Extension5|get#method5::T%, S%>(#this);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/extension_bounds.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/extension_bounds.dart.strong.transformed.expect
index c1de6b4..71679c9 100644
--- a/pkg/front_end/testcases/nnbd/extension_bounds.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/extension_bounds.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-extension Extension1<T extends core::Object = core::Object> on T {
+extension Extension1<T extends core::Object> on T {
method method1 = self::Extension1|method1;
tearoff method1 = self::Extension1|get#method1;
method method2 = self::Extension1|method2;
@@ -14,7 +14,7 @@
method method5 = self::Extension1|method5;
tearoff method5 = self::Extension1|get#method5;
}
-extension Extension2<T extends core::String = core::String> on T {
+extension Extension2<T extends core::String> on T {
method method1 = self::Extension2|method1;
tearoff method1 = self::Extension2|get#method1;
method method2 = self::Extension2|method2;
@@ -26,7 +26,7 @@
method method5 = self::Extension2|method5;
tearoff method5 = self::Extension2|get#method5;
}
-extension Extension3<T extends dynamic = dynamic> on T% {
+extension Extension3<T extends dynamic> on T% {
method method1 = self::Extension3|method1;
tearoff method1 = self::Extension3|get#method1;
method method2 = self::Extension3|method2;
@@ -50,7 +50,7 @@
method method5 = self::Extension4|method5;
tearoff method5 = self::Extension4|get#method5;
}
-extension Extension5<T extends core::Object? = core::Object?> on T% {
+extension Extension5<T extends core::Object?> on T% {
method method1 = self::Extension5|method1;
tearoff method1 = self::Extension5|get#method1;
method method2 = self::Extension5|method2;
@@ -62,79 +62,79 @@
method method5 = self::Extension5|method5;
tearoff method5 = self::Extension5|get#method5;
}
-static method Extension1|method1<T extends core::Object = core::Object, S extends core::Object = core::Object>(lowered final self::Extension1|method1::T #this) → dynamic {}
-static method Extension1|get#method1<T extends core::Object = core::Object>(lowered final self::Extension1|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T, S>(#this);
-static method Extension1|method2<T extends core::Object = core::Object, S extends core::String = core::String>(lowered final self::Extension1|method2::T #this) → dynamic {}
-static method Extension1|get#method2<T extends core::Object = core::Object>(lowered final self::Extension1|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T, S>(#this);
-static method Extension1|method3<T extends core::Object = core::Object, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T #this) → dynamic {}
-static method Extension1|get#method3<T extends core::Object = core::Object>(lowered final self::Extension1|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T, S%>(#this);
-static method Extension1|method4<T extends core::Object = core::Object, S extends core::Object? = dynamic>(lowered final self::Extension1|method4::T #this) → dynamic {}
-static method Extension1|get#method4<T extends core::Object = core::Object>(lowered final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension1|method1<T extends core::Object, S extends core::Object>(lowered final self::Extension1|method1::T #this) → dynamic {}
+static method Extension1|get#method1<T extends core::Object>(lowered final self::Extension1|get#method1::T #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T, S>(#this);
+static method Extension1|method2<T extends core::Object, S extends core::String>(lowered final self::Extension1|method2::T #this) → dynamic {}
+static method Extension1|get#method2<T extends core::Object>(lowered final self::Extension1|get#method2::T #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T, S>(#this);
+static method Extension1|method3<T extends core::Object, S extends dynamic>(lowered final self::Extension1|method3::T #this) → dynamic {}
+static method Extension1|get#method3<T extends core::Object>(lowered final self::Extension1|get#method3::T #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T, S%>(#this);
+static method Extension1|method4<T extends core::Object, S extends core::Object? = dynamic>(lowered final self::Extension1|method4::T #this) → dynamic {}
+static method Extension1|get#method4<T extends core::Object>(lowered final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T, S%>(#this);
-static method Extension1|method5<T extends core::Object = core::Object, S extends core::Object? = core::Object?>(lowered final self::Extension1|method5::T #this) → dynamic {}
-static method Extension1|get#method5<T extends core::Object = core::Object>(lowered final self::Extension1|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension1|method5<self::Extension1|get#method5::T, S%>(#this);
-static method Extension2|method1<T extends core::String = core::String, S extends core::Object = core::Object>(lowered final self::Extension2|method1::T #this) → dynamic {}
-static method Extension2|get#method1<T extends core::String = core::String>(lowered final self::Extension2|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T, S>(#this);
-static method Extension2|method2<T extends core::String = core::String, S extends core::String = core::String>(lowered final self::Extension2|method2::T #this) → dynamic {}
-static method Extension2|get#method2<T extends core::String = core::String>(lowered final self::Extension2|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T, S>(#this);
-static method Extension2|method3<T extends core::String = core::String, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T #this) → dynamic {}
-static method Extension2|get#method3<T extends core::String = core::String>(lowered final self::Extension2|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T, S%>(#this);
-static method Extension2|get#method4<T extends core::String = core::String>(lowered final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension1|method5<T extends core::Object, S extends core::Object?>(lowered final self::Extension1|method5::T #this) → dynamic {}
+static method Extension1|get#method5<T extends core::Object>(lowered final self::Extension1|get#method5::T #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension1|method5<self::Extension1|get#method5::T, S%>(#this);
+static method Extension2|method1<T extends core::String, S extends core::Object>(lowered final self::Extension2|method1::T #this) → dynamic {}
+static method Extension2|get#method1<T extends core::String>(lowered final self::Extension2|get#method1::T #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T, S>(#this);
+static method Extension2|method2<T extends core::String, S extends core::String>(lowered final self::Extension2|method2::T #this) → dynamic {}
+static method Extension2|get#method2<T extends core::String>(lowered final self::Extension2|get#method2::T #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T, S>(#this);
+static method Extension2|method3<T extends core::String, S extends dynamic>(lowered final self::Extension2|method3::T #this) → dynamic {}
+static method Extension2|get#method3<T extends core::String>(lowered final self::Extension2|get#method3::T #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T, S%>(#this);
+static method Extension2|get#method4<T extends core::String>(lowered final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T, S%>(#this);
-static method Extension2|method4<T extends core::String = core::String, S extends core::Object? = dynamic>(lowered final self::Extension2|method4::T #this) → dynamic {}
-static method Extension2|method5<T extends core::String = core::String, S extends core::Object? = core::Object?>(lowered final self::Extension2|method5::T #this) → dynamic {}
-static method Extension2|get#method5<T extends core::String = core::String>(lowered final self::Extension2|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension2|method5<self::Extension2|get#method5::T, S%>(#this);
-static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object = core::Object>(lowered final self::Extension3|method1::T% #this) → dynamic {}
-static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S>(#this);
-static method Extension3|method2<T extends dynamic = dynamic, S extends core::String = core::String>(lowered final self::Extension3|method2::T% #this) → dynamic {}
-static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S>(#this);
-static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T% #this) → dynamic {}
-static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
-static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension3|method4::T% #this) → dynamic {}
-static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension2|method4<T extends core::String, S extends core::Object? = dynamic>(lowered final self::Extension2|method4::T #this) → dynamic {}
+static method Extension2|method5<T extends core::String, S extends core::Object?>(lowered final self::Extension2|method5::T #this) → dynamic {}
+static method Extension2|get#method5<T extends core::String>(lowered final self::Extension2|get#method5::T #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension2|method5<self::Extension2|get#method5::T, S%>(#this);
+static method Extension3|method1<T extends dynamic, S extends core::Object>(lowered final self::Extension3|method1::T% #this) → dynamic {}
+static method Extension3|get#method1<T extends dynamic>(lowered final self::Extension3|get#method1::T% #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S>(#this);
+static method Extension3|method2<T extends dynamic, S extends core::String>(lowered final self::Extension3|method2::T% #this) → dynamic {}
+static method Extension3|get#method2<T extends dynamic>(lowered final self::Extension3|get#method2::T% #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S>(#this);
+static method Extension3|method3<T extends dynamic, S extends dynamic>(lowered final self::Extension3|method3::T% #this) → dynamic {}
+static method Extension3|get#method3<T extends dynamic>(lowered final self::Extension3|get#method3::T% #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
+static method Extension3|method4<T extends dynamic, S extends core::Object? = dynamic>(lowered final self::Extension3|method4::T% #this) → dynamic {}
+static method Extension3|get#method4<T extends dynamic>(lowered final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S%>(#this);
-static method Extension3|method5<T extends dynamic = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension3|method5::T% #this) → dynamic {}
-static method Extension3|get#method5<T extends dynamic = dynamic>(lowered final self::Extension3|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension3|method5<self::Extension3|get#method5::T%, S%>(#this);
-static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object = core::Object>(lowered final self::Extension4|method1::T% #this) → dynamic {}
-static method Extension4|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T%, S>(#this);
-static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String = core::String>(lowered final self::Extension4|method2::T% #this) → dynamic {}
-static method Extension4|get#method2<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T%, S>(#this);
-static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T% #this) → dynamic {}
-static method Extension4|get#method3<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T%, S%>(#this);
+static method Extension3|method5<T extends dynamic, S extends core::Object?>(lowered final self::Extension3|method5::T% #this) → dynamic {}
+static method Extension3|get#method5<T extends dynamic>(lowered final self::Extension3|get#method5::T% #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension3|method5<self::Extension3|get#method5::T%, S%>(#this);
+static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object>(lowered final self::Extension4|method1::T% #this) → dynamic {}
+static method Extension4|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method1::T% #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T%, S>(#this);
+static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String>(lowered final self::Extension4|method2::T% #this) → dynamic {}
+static method Extension4|get#method2<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method2::T% #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T%, S>(#this);
+static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic>(lowered final self::Extension4|method3::T% #this) → dynamic {}
+static method Extension4|get#method3<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method3::T% #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T%, S%>(#this);
static method Extension4|method4<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension4|method4::T% #this) → dynamic {}
static method Extension4|get#method4<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T%, S%>(#this);
-static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension4|method5::T% #this) → dynamic {}
-static method Extension4|get#method5<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension4|method5<self::Extension4|get#method5::T%, S%>(#this);
-static method Extension5|method1<T extends core::Object? = core::Object?, S extends core::Object = core::Object>(lowered final self::Extension5|method1::T% #this) → dynamic {}
-static method Extension5|get#method1<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension5|method1<self::Extension5|get#method1::T%, S>(#this);
-static method Extension5|method2<T extends core::Object? = core::Object?, S extends core::String = core::String>(lowered final self::Extension5|method2::T% #this) → dynamic {}
-static method Extension5|get#method2<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension5|method2<self::Extension5|get#method2::T%, S>(#this);
-static method Extension5|method3<T extends core::Object? = core::Object?, S extends dynamic = dynamic>(lowered final self::Extension5|method3::T% #this) → dynamic {}
-static method Extension5|get#method3<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension5|method3<self::Extension5|get#method3::T%, S%>(#this);
-static method Extension5|method4<T extends core::Object? = core::Object?, S extends core::Object? = dynamic>(lowered final self::Extension5|method4::T% #this) → dynamic {}
-static method Extension5|get#method4<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object?>(lowered final self::Extension4|method5::T% #this) → dynamic {}
+static method Extension4|get#method5<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method5::T% #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension4|method5<self::Extension4|get#method5::T%, S%>(#this);
+static method Extension5|method1<T extends core::Object?, S extends core::Object>(lowered final self::Extension5|method1::T% #this) → dynamic {}
+static method Extension5|get#method1<T extends core::Object?>(lowered final self::Extension5|get#method1::T% #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension5|method1<self::Extension5|get#method1::T%, S>(#this);
+static method Extension5|method2<T extends core::Object?, S extends core::String>(lowered final self::Extension5|method2::T% #this) → dynamic {}
+static method Extension5|get#method2<T extends core::Object?>(lowered final self::Extension5|get#method2::T% #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension5|method2<self::Extension5|get#method2::T%, S>(#this);
+static method Extension5|method3<T extends core::Object?, S extends dynamic>(lowered final self::Extension5|method3::T% #this) → dynamic {}
+static method Extension5|get#method3<T extends core::Object?>(lowered final self::Extension5|get#method3::T% #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension5|method3<self::Extension5|get#method3::T%, S%>(#this);
+static method Extension5|method4<T extends core::Object?, S extends core::Object? = dynamic>(lowered final self::Extension5|method4::T% #this) → dynamic {}
+static method Extension5|get#method4<T extends core::Object?>(lowered final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension5|method4<self::Extension5|get#method4::T%, S%>(#this);
-static method Extension5|method5<T extends core::Object? = core::Object?, S extends core::Object? = core::Object?>(lowered final self::Extension5|method5::T% #this) → dynamic {}
-static method Extension5|get#method5<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension5|method5<self::Extension5|get#method5::T%, S%>(#this);
+static method Extension5|method5<T extends core::Object?, S extends core::Object?>(lowered final self::Extension5|method5::T% #this) → dynamic {}
+static method Extension5|get#method5<T extends core::Object?>(lowered final self::Extension5|get#method5::T% #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension5|method5<self::Extension5|get#method5::T%, S%>(#this);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.expect b/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.expect
index c1de6b4..71679c9 100644
--- a/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-extension Extension1<T extends core::Object = core::Object> on T {
+extension Extension1<T extends core::Object> on T {
method method1 = self::Extension1|method1;
tearoff method1 = self::Extension1|get#method1;
method method2 = self::Extension1|method2;
@@ -14,7 +14,7 @@
method method5 = self::Extension1|method5;
tearoff method5 = self::Extension1|get#method5;
}
-extension Extension2<T extends core::String = core::String> on T {
+extension Extension2<T extends core::String> on T {
method method1 = self::Extension2|method1;
tearoff method1 = self::Extension2|get#method1;
method method2 = self::Extension2|method2;
@@ -26,7 +26,7 @@
method method5 = self::Extension2|method5;
tearoff method5 = self::Extension2|get#method5;
}
-extension Extension3<T extends dynamic = dynamic> on T% {
+extension Extension3<T extends dynamic> on T% {
method method1 = self::Extension3|method1;
tearoff method1 = self::Extension3|get#method1;
method method2 = self::Extension3|method2;
@@ -50,7 +50,7 @@
method method5 = self::Extension4|method5;
tearoff method5 = self::Extension4|get#method5;
}
-extension Extension5<T extends core::Object? = core::Object?> on T% {
+extension Extension5<T extends core::Object?> on T% {
method method1 = self::Extension5|method1;
tearoff method1 = self::Extension5|get#method1;
method method2 = self::Extension5|method2;
@@ -62,79 +62,79 @@
method method5 = self::Extension5|method5;
tearoff method5 = self::Extension5|get#method5;
}
-static method Extension1|method1<T extends core::Object = core::Object, S extends core::Object = core::Object>(lowered final self::Extension1|method1::T #this) → dynamic {}
-static method Extension1|get#method1<T extends core::Object = core::Object>(lowered final self::Extension1|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T, S>(#this);
-static method Extension1|method2<T extends core::Object = core::Object, S extends core::String = core::String>(lowered final self::Extension1|method2::T #this) → dynamic {}
-static method Extension1|get#method2<T extends core::Object = core::Object>(lowered final self::Extension1|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T, S>(#this);
-static method Extension1|method3<T extends core::Object = core::Object, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T #this) → dynamic {}
-static method Extension1|get#method3<T extends core::Object = core::Object>(lowered final self::Extension1|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T, S%>(#this);
-static method Extension1|method4<T extends core::Object = core::Object, S extends core::Object? = dynamic>(lowered final self::Extension1|method4::T #this) → dynamic {}
-static method Extension1|get#method4<T extends core::Object = core::Object>(lowered final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension1|method1<T extends core::Object, S extends core::Object>(lowered final self::Extension1|method1::T #this) → dynamic {}
+static method Extension1|get#method1<T extends core::Object>(lowered final self::Extension1|get#method1::T #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T, S>(#this);
+static method Extension1|method2<T extends core::Object, S extends core::String>(lowered final self::Extension1|method2::T #this) → dynamic {}
+static method Extension1|get#method2<T extends core::Object>(lowered final self::Extension1|get#method2::T #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T, S>(#this);
+static method Extension1|method3<T extends core::Object, S extends dynamic>(lowered final self::Extension1|method3::T #this) → dynamic {}
+static method Extension1|get#method3<T extends core::Object>(lowered final self::Extension1|get#method3::T #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T, S%>(#this);
+static method Extension1|method4<T extends core::Object, S extends core::Object? = dynamic>(lowered final self::Extension1|method4::T #this) → dynamic {}
+static method Extension1|get#method4<T extends core::Object>(lowered final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T, S%>(#this);
-static method Extension1|method5<T extends core::Object = core::Object, S extends core::Object? = core::Object?>(lowered final self::Extension1|method5::T #this) → dynamic {}
-static method Extension1|get#method5<T extends core::Object = core::Object>(lowered final self::Extension1|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension1|method5<self::Extension1|get#method5::T, S%>(#this);
-static method Extension2|method1<T extends core::String = core::String, S extends core::Object = core::Object>(lowered final self::Extension2|method1::T #this) → dynamic {}
-static method Extension2|get#method1<T extends core::String = core::String>(lowered final self::Extension2|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T, S>(#this);
-static method Extension2|method2<T extends core::String = core::String, S extends core::String = core::String>(lowered final self::Extension2|method2::T #this) → dynamic {}
-static method Extension2|get#method2<T extends core::String = core::String>(lowered final self::Extension2|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T, S>(#this);
-static method Extension2|method3<T extends core::String = core::String, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T #this) → dynamic {}
-static method Extension2|get#method3<T extends core::String = core::String>(lowered final self::Extension2|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T, S%>(#this);
-static method Extension2|get#method4<T extends core::String = core::String>(lowered final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension1|method5<T extends core::Object, S extends core::Object?>(lowered final self::Extension1|method5::T #this) → dynamic {}
+static method Extension1|get#method5<T extends core::Object>(lowered final self::Extension1|get#method5::T #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension1|method5<self::Extension1|get#method5::T, S%>(#this);
+static method Extension2|method1<T extends core::String, S extends core::Object>(lowered final self::Extension2|method1::T #this) → dynamic {}
+static method Extension2|get#method1<T extends core::String>(lowered final self::Extension2|get#method1::T #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T, S>(#this);
+static method Extension2|method2<T extends core::String, S extends core::String>(lowered final self::Extension2|method2::T #this) → dynamic {}
+static method Extension2|get#method2<T extends core::String>(lowered final self::Extension2|get#method2::T #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T, S>(#this);
+static method Extension2|method3<T extends core::String, S extends dynamic>(lowered final self::Extension2|method3::T #this) → dynamic {}
+static method Extension2|get#method3<T extends core::String>(lowered final self::Extension2|get#method3::T #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T, S%>(#this);
+static method Extension2|get#method4<T extends core::String>(lowered final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T, S%>(#this);
-static method Extension2|method4<T extends core::String = core::String, S extends core::Object? = dynamic>(lowered final self::Extension2|method4::T #this) → dynamic {}
-static method Extension2|method5<T extends core::String = core::String, S extends core::Object? = core::Object?>(lowered final self::Extension2|method5::T #this) → dynamic {}
-static method Extension2|get#method5<T extends core::String = core::String>(lowered final self::Extension2|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension2|method5<self::Extension2|get#method5::T, S%>(#this);
-static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object = core::Object>(lowered final self::Extension3|method1::T% #this) → dynamic {}
-static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S>(#this);
-static method Extension3|method2<T extends dynamic = dynamic, S extends core::String = core::String>(lowered final self::Extension3|method2::T% #this) → dynamic {}
-static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S>(#this);
-static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T% #this) → dynamic {}
-static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
-static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension3|method4::T% #this) → dynamic {}
-static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension2|method4<T extends core::String, S extends core::Object? = dynamic>(lowered final self::Extension2|method4::T #this) → dynamic {}
+static method Extension2|method5<T extends core::String, S extends core::Object?>(lowered final self::Extension2|method5::T #this) → dynamic {}
+static method Extension2|get#method5<T extends core::String>(lowered final self::Extension2|get#method5::T #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension2|method5<self::Extension2|get#method5::T, S%>(#this);
+static method Extension3|method1<T extends dynamic, S extends core::Object>(lowered final self::Extension3|method1::T% #this) → dynamic {}
+static method Extension3|get#method1<T extends dynamic>(lowered final self::Extension3|get#method1::T% #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S>(#this);
+static method Extension3|method2<T extends dynamic, S extends core::String>(lowered final self::Extension3|method2::T% #this) → dynamic {}
+static method Extension3|get#method2<T extends dynamic>(lowered final self::Extension3|get#method2::T% #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S>(#this);
+static method Extension3|method3<T extends dynamic, S extends dynamic>(lowered final self::Extension3|method3::T% #this) → dynamic {}
+static method Extension3|get#method3<T extends dynamic>(lowered final self::Extension3|get#method3::T% #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
+static method Extension3|method4<T extends dynamic, S extends core::Object? = dynamic>(lowered final self::Extension3|method4::T% #this) → dynamic {}
+static method Extension3|get#method4<T extends dynamic>(lowered final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S%>(#this);
-static method Extension3|method5<T extends dynamic = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension3|method5::T% #this) → dynamic {}
-static method Extension3|get#method5<T extends dynamic = dynamic>(lowered final self::Extension3|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension3|method5<self::Extension3|get#method5::T%, S%>(#this);
-static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object = core::Object>(lowered final self::Extension4|method1::T% #this) → dynamic {}
-static method Extension4|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T%, S>(#this);
-static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String = core::String>(lowered final self::Extension4|method2::T% #this) → dynamic {}
-static method Extension4|get#method2<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T%, S>(#this);
-static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T% #this) → dynamic {}
-static method Extension4|get#method3<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T%, S%>(#this);
+static method Extension3|method5<T extends dynamic, S extends core::Object?>(lowered final self::Extension3|method5::T% #this) → dynamic {}
+static method Extension3|get#method5<T extends dynamic>(lowered final self::Extension3|get#method5::T% #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension3|method5<self::Extension3|get#method5::T%, S%>(#this);
+static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object>(lowered final self::Extension4|method1::T% #this) → dynamic {}
+static method Extension4|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method1::T% #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T%, S>(#this);
+static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String>(lowered final self::Extension4|method2::T% #this) → dynamic {}
+static method Extension4|get#method2<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method2::T% #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T%, S>(#this);
+static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic>(lowered final self::Extension4|method3::T% #this) → dynamic {}
+static method Extension4|get#method3<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method3::T% #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T%, S%>(#this);
static method Extension4|method4<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension4|method4::T% #this) → dynamic {}
static method Extension4|get#method4<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T%, S%>(#this);
-static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension4|method5::T% #this) → dynamic {}
-static method Extension4|get#method5<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension4|method5<self::Extension4|get#method5::T%, S%>(#this);
-static method Extension5|method1<T extends core::Object? = core::Object?, S extends core::Object = core::Object>(lowered final self::Extension5|method1::T% #this) → dynamic {}
-static method Extension5|get#method1<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension5|method1<self::Extension5|get#method1::T%, S>(#this);
-static method Extension5|method2<T extends core::Object? = core::Object?, S extends core::String = core::String>(lowered final self::Extension5|method2::T% #this) → dynamic {}
-static method Extension5|get#method2<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension5|method2<self::Extension5|get#method2::T%, S>(#this);
-static method Extension5|method3<T extends core::Object? = core::Object?, S extends dynamic = dynamic>(lowered final self::Extension5|method3::T% #this) → dynamic {}
-static method Extension5|get#method3<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension5|method3<self::Extension5|get#method3::T%, S%>(#this);
-static method Extension5|method4<T extends core::Object? = core::Object?, S extends core::Object? = dynamic>(lowered final self::Extension5|method4::T% #this) → dynamic {}
-static method Extension5|get#method4<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object?>(lowered final self::Extension4|method5::T% #this) → dynamic {}
+static method Extension4|get#method5<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method5::T% #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension4|method5<self::Extension4|get#method5::T%, S%>(#this);
+static method Extension5|method1<T extends core::Object?, S extends core::Object>(lowered final self::Extension5|method1::T% #this) → dynamic {}
+static method Extension5|get#method1<T extends core::Object?>(lowered final self::Extension5|get#method1::T% #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension5|method1<self::Extension5|get#method1::T%, S>(#this);
+static method Extension5|method2<T extends core::Object?, S extends core::String>(lowered final self::Extension5|method2::T% #this) → dynamic {}
+static method Extension5|get#method2<T extends core::Object?>(lowered final self::Extension5|get#method2::T% #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension5|method2<self::Extension5|get#method2::T%, S>(#this);
+static method Extension5|method3<T extends core::Object?, S extends dynamic>(lowered final self::Extension5|method3::T% #this) → dynamic {}
+static method Extension5|get#method3<T extends core::Object?>(lowered final self::Extension5|get#method3::T% #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension5|method3<self::Extension5|get#method3::T%, S%>(#this);
+static method Extension5|method4<T extends core::Object?, S extends core::Object? = dynamic>(lowered final self::Extension5|method4::T% #this) → dynamic {}
+static method Extension5|get#method4<T extends core::Object?>(lowered final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension5|method4<self::Extension5|get#method4::T%, S%>(#this);
-static method Extension5|method5<T extends core::Object? = core::Object?, S extends core::Object? = core::Object?>(lowered final self::Extension5|method5::T% #this) → dynamic {}
-static method Extension5|get#method5<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension5|method5<self::Extension5|get#method5::T%, S%>(#this);
+static method Extension5|method5<T extends core::Object?, S extends core::Object?>(lowered final self::Extension5|method5::T% #this) → dynamic {}
+static method Extension5|get#method5<T extends core::Object?>(lowered final self::Extension5|get#method5::T% #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension5|method5<self::Extension5|get#method5::T%, S%>(#this);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.outline.expect
index 6cec804..848fec8 100644
--- a/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-extension Extension1<T extends core::Object = core::Object> on T {
+extension Extension1<T extends core::Object> on T {
method method1 = self::Extension1|method1;
tearoff method1 = self::Extension1|get#method1;
method method2 = self::Extension1|method2;
@@ -14,7 +14,7 @@
method method5 = self::Extension1|method5;
tearoff method5 = self::Extension1|get#method5;
}
-extension Extension2<T extends core::String = core::String> on T {
+extension Extension2<T extends core::String> on T {
method method1 = self::Extension2|method1;
tearoff method1 = self::Extension2|get#method1;
method method2 = self::Extension2|method2;
@@ -26,7 +26,7 @@
method method5 = self::Extension2|method5;
tearoff method5 = self::Extension2|get#method5;
}
-extension Extension3<T extends dynamic = dynamic> on T% {
+extension Extension3<T extends dynamic> on T% {
method method1 = self::Extension3|method1;
tearoff method1 = self::Extension3|get#method1;
method method2 = self::Extension3|method2;
@@ -50,7 +50,7 @@
method method5 = self::Extension4|method5;
tearoff method5 = self::Extension4|get#method5;
}
-extension Extension5<T extends core::Object? = core::Object?> on T% {
+extension Extension5<T extends core::Object?> on T% {
method method1 = self::Extension5|method1;
tearoff method1 = self::Extension5|get#method1;
method method2 = self::Extension5|method2;
@@ -62,105 +62,105 @@
method method5 = self::Extension5|method5;
tearoff method5 = self::Extension5|get#method5;
}
-static method Extension1|method1<T extends core::Object = core::Object, S extends core::Object = core::Object>(lowered final self::Extension1|method1::T #this) → dynamic
+static method Extension1|method1<T extends core::Object, S extends core::Object>(lowered final self::Extension1|method1::T #this) → dynamic
;
-static method Extension1|get#method1<T extends core::Object = core::Object>(lowered final self::Extension1|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T, S>(#this);
-static method Extension1|method2<T extends core::Object = core::Object, S extends core::String = core::String>(lowered final self::Extension1|method2::T #this) → dynamic
+static method Extension1|get#method1<T extends core::Object>(lowered final self::Extension1|get#method1::T #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T, S>(#this);
+static method Extension1|method2<T extends core::Object, S extends core::String>(lowered final self::Extension1|method2::T #this) → dynamic
;
-static method Extension1|get#method2<T extends core::Object = core::Object>(lowered final self::Extension1|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T, S>(#this);
-static method Extension1|method3<T extends core::Object = core::Object, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T #this) → dynamic
+static method Extension1|get#method2<T extends core::Object>(lowered final self::Extension1|get#method2::T #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T, S>(#this);
+static method Extension1|method3<T extends core::Object, S extends dynamic>(lowered final self::Extension1|method3::T #this) → dynamic
;
-static method Extension1|get#method3<T extends core::Object = core::Object>(lowered final self::Extension1|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T, S%>(#this);
-static method Extension1|method4<T extends core::Object = core::Object, S extends core::Object? = dynamic>(lowered final self::Extension1|method4::T #this) → dynamic
+static method Extension1|get#method3<T extends core::Object>(lowered final self::Extension1|get#method3::T #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T, S%>(#this);
+static method Extension1|method4<T extends core::Object, S extends core::Object? = dynamic>(lowered final self::Extension1|method4::T #this) → dynamic
;
-static method Extension1|get#method4<T extends core::Object = core::Object>(lowered final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension1|get#method4<T extends core::Object>(lowered final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T, S%>(#this);
-static method Extension1|method5<T extends core::Object = core::Object, S extends core::Object? = core::Object?>(lowered final self::Extension1|method5::T #this) → dynamic
+static method Extension1|method5<T extends core::Object, S extends core::Object?>(lowered final self::Extension1|method5::T #this) → dynamic
;
-static method Extension1|get#method5<T extends core::Object = core::Object>(lowered final self::Extension1|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension1|method5<self::Extension1|get#method5::T, S%>(#this);
-static method Extension2|method1<T extends core::String = core::String, S extends core::Object = core::Object>(lowered final self::Extension2|method1::T #this) → dynamic
+static method Extension1|get#method5<T extends core::Object>(lowered final self::Extension1|get#method5::T #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension1|method5<self::Extension1|get#method5::T, S%>(#this);
+static method Extension2|method1<T extends core::String, S extends core::Object>(lowered final self::Extension2|method1::T #this) → dynamic
;
-static method Extension2|get#method1<T extends core::String = core::String>(lowered final self::Extension2|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T, S>(#this);
-static method Extension2|method2<T extends core::String = core::String, S extends core::String = core::String>(lowered final self::Extension2|method2::T #this) → dynamic
+static method Extension2|get#method1<T extends core::String>(lowered final self::Extension2|get#method1::T #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T, S>(#this);
+static method Extension2|method2<T extends core::String, S extends core::String>(lowered final self::Extension2|method2::T #this) → dynamic
;
-static method Extension2|get#method2<T extends core::String = core::String>(lowered final self::Extension2|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T, S>(#this);
-static method Extension2|method3<T extends core::String = core::String, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T #this) → dynamic
+static method Extension2|get#method2<T extends core::String>(lowered final self::Extension2|get#method2::T #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T, S>(#this);
+static method Extension2|method3<T extends core::String, S extends dynamic>(lowered final self::Extension2|method3::T #this) → dynamic
;
-static method Extension2|get#method3<T extends core::String = core::String>(lowered final self::Extension2|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T, S%>(#this);
-static method Extension2|get#method4<T extends core::String = core::String>(lowered final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension2|get#method3<T extends core::String>(lowered final self::Extension2|get#method3::T #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T, S%>(#this);
+static method Extension2|get#method4<T extends core::String>(lowered final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T, S%>(#this);
-static method Extension2|method4<T extends core::String = core::String, S extends core::Object? = dynamic>(lowered final self::Extension2|method4::T #this) → dynamic
+static method Extension2|method4<T extends core::String, S extends core::Object? = dynamic>(lowered final self::Extension2|method4::T #this) → dynamic
;
-static method Extension2|method5<T extends core::String = core::String, S extends core::Object? = core::Object?>(lowered final self::Extension2|method5::T #this) → dynamic
+static method Extension2|method5<T extends core::String, S extends core::Object?>(lowered final self::Extension2|method5::T #this) → dynamic
;
-static method Extension2|get#method5<T extends core::String = core::String>(lowered final self::Extension2|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension2|method5<self::Extension2|get#method5::T, S%>(#this);
-static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object = core::Object>(lowered final self::Extension3|method1::T% #this) → dynamic
+static method Extension2|get#method5<T extends core::String>(lowered final self::Extension2|get#method5::T #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension2|method5<self::Extension2|get#method5::T, S%>(#this);
+static method Extension3|method1<T extends dynamic, S extends core::Object>(lowered final self::Extension3|method1::T% #this) → dynamic
;
-static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S>(#this);
-static method Extension3|method2<T extends dynamic = dynamic, S extends core::String = core::String>(lowered final self::Extension3|method2::T% #this) → dynamic
+static method Extension3|get#method1<T extends dynamic>(lowered final self::Extension3|get#method1::T% #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S>(#this);
+static method Extension3|method2<T extends dynamic, S extends core::String>(lowered final self::Extension3|method2::T% #this) → dynamic
;
-static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S>(#this);
-static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T% #this) → dynamic
+static method Extension3|get#method2<T extends dynamic>(lowered final self::Extension3|get#method2::T% #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S>(#this);
+static method Extension3|method3<T extends dynamic, S extends dynamic>(lowered final self::Extension3|method3::T% #this) → dynamic
;
-static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
-static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension3|method4::T% #this) → dynamic
+static method Extension3|get#method3<T extends dynamic>(lowered final self::Extension3|get#method3::T% #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
+static method Extension3|method4<T extends dynamic, S extends core::Object? = dynamic>(lowered final self::Extension3|method4::T% #this) → dynamic
;
-static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension3|get#method4<T extends dynamic>(lowered final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S%>(#this);
-static method Extension3|method5<T extends dynamic = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension3|method5::T% #this) → dynamic
+static method Extension3|method5<T extends dynamic, S extends core::Object?>(lowered final self::Extension3|method5::T% #this) → dynamic
;
-static method Extension3|get#method5<T extends dynamic = dynamic>(lowered final self::Extension3|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension3|method5<self::Extension3|get#method5::T%, S%>(#this);
-static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object = core::Object>(lowered final self::Extension4|method1::T% #this) → dynamic
+static method Extension3|get#method5<T extends dynamic>(lowered final self::Extension3|get#method5::T% #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension3|method5<self::Extension3|get#method5::T%, S%>(#this);
+static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object>(lowered final self::Extension4|method1::T% #this) → dynamic
;
-static method Extension4|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T%, S>(#this);
-static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String = core::String>(lowered final self::Extension4|method2::T% #this) → dynamic
+static method Extension4|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method1::T% #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T%, S>(#this);
+static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String>(lowered final self::Extension4|method2::T% #this) → dynamic
;
-static method Extension4|get#method2<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T%, S>(#this);
-static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T% #this) → dynamic
+static method Extension4|get#method2<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method2::T% #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T%, S>(#this);
+static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic>(lowered final self::Extension4|method3::T% #this) → dynamic
;
-static method Extension4|get#method3<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T%, S%>(#this);
+static method Extension4|get#method3<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method3::T% #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T%, S%>(#this);
static method Extension4|method4<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension4|method4::T% #this) → dynamic
;
static method Extension4|get#method4<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T%, S%>(#this);
-static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension4|method5::T% #this) → dynamic
+static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object?>(lowered final self::Extension4|method5::T% #this) → dynamic
;
-static method Extension4|get#method5<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension4|method5<self::Extension4|get#method5::T%, S%>(#this);
-static method Extension5|method1<T extends core::Object? = core::Object?, S extends core::Object = core::Object>(lowered final self::Extension5|method1::T% #this) → dynamic
+static method Extension4|get#method5<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method5::T% #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension4|method5<self::Extension4|get#method5::T%, S%>(#this);
+static method Extension5|method1<T extends core::Object?, S extends core::Object>(lowered final self::Extension5|method1::T% #this) → dynamic
;
-static method Extension5|get#method1<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension5|method1<self::Extension5|get#method1::T%, S>(#this);
-static method Extension5|method2<T extends core::Object? = core::Object?, S extends core::String = core::String>(lowered final self::Extension5|method2::T% #this) → dynamic
+static method Extension5|get#method1<T extends core::Object?>(lowered final self::Extension5|get#method1::T% #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension5|method1<self::Extension5|get#method1::T%, S>(#this);
+static method Extension5|method2<T extends core::Object?, S extends core::String>(lowered final self::Extension5|method2::T% #this) → dynamic
;
-static method Extension5|get#method2<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension5|method2<self::Extension5|get#method2::T%, S>(#this);
-static method Extension5|method3<T extends core::Object? = core::Object?, S extends dynamic = dynamic>(lowered final self::Extension5|method3::T% #this) → dynamic
+static method Extension5|get#method2<T extends core::Object?>(lowered final self::Extension5|get#method2::T% #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension5|method2<self::Extension5|get#method2::T%, S>(#this);
+static method Extension5|method3<T extends core::Object?, S extends dynamic>(lowered final self::Extension5|method3::T% #this) → dynamic
;
-static method Extension5|get#method3<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension5|method3<self::Extension5|get#method3::T%, S%>(#this);
-static method Extension5|method4<T extends core::Object? = core::Object?, S extends core::Object? = dynamic>(lowered final self::Extension5|method4::T% #this) → dynamic
+static method Extension5|get#method3<T extends core::Object?>(lowered final self::Extension5|get#method3::T% #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension5|method3<self::Extension5|get#method3::T%, S%>(#this);
+static method Extension5|method4<T extends core::Object?, S extends core::Object? = dynamic>(lowered final self::Extension5|method4::T% #this) → dynamic
;
-static method Extension5|get#method4<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension5|get#method4<T extends core::Object?>(lowered final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension5|method4<self::Extension5|get#method4::T%, S%>(#this);
-static method Extension5|method5<T extends core::Object? = core::Object?, S extends core::Object? = core::Object?>(lowered final self::Extension5|method5::T% #this) → dynamic
+static method Extension5|method5<T extends core::Object?, S extends core::Object?>(lowered final self::Extension5|method5::T% #this) → dynamic
;
-static method Extension5|get#method5<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension5|method5<self::Extension5|get#method5::T%, S%>(#this);
+static method Extension5|get#method5<T extends core::Object?>(lowered final self::Extension5|get#method5::T% #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension5|method5<self::Extension5|get#method5::T%, S%>(#this);
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.transformed.expect
index c1de6b4..71679c9 100644
--- a/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/extension_bounds.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-extension Extension1<T extends core::Object = core::Object> on T {
+extension Extension1<T extends core::Object> on T {
method method1 = self::Extension1|method1;
tearoff method1 = self::Extension1|get#method1;
method method2 = self::Extension1|method2;
@@ -14,7 +14,7 @@
method method5 = self::Extension1|method5;
tearoff method5 = self::Extension1|get#method5;
}
-extension Extension2<T extends core::String = core::String> on T {
+extension Extension2<T extends core::String> on T {
method method1 = self::Extension2|method1;
tearoff method1 = self::Extension2|get#method1;
method method2 = self::Extension2|method2;
@@ -26,7 +26,7 @@
method method5 = self::Extension2|method5;
tearoff method5 = self::Extension2|get#method5;
}
-extension Extension3<T extends dynamic = dynamic> on T% {
+extension Extension3<T extends dynamic> on T% {
method method1 = self::Extension3|method1;
tearoff method1 = self::Extension3|get#method1;
method method2 = self::Extension3|method2;
@@ -50,7 +50,7 @@
method method5 = self::Extension4|method5;
tearoff method5 = self::Extension4|get#method5;
}
-extension Extension5<T extends core::Object? = core::Object?> on T% {
+extension Extension5<T extends core::Object?> on T% {
method method1 = self::Extension5|method1;
tearoff method1 = self::Extension5|get#method1;
method method2 = self::Extension5|method2;
@@ -62,79 +62,79 @@
method method5 = self::Extension5|method5;
tearoff method5 = self::Extension5|get#method5;
}
-static method Extension1|method1<T extends core::Object = core::Object, S extends core::Object = core::Object>(lowered final self::Extension1|method1::T #this) → dynamic {}
-static method Extension1|get#method1<T extends core::Object = core::Object>(lowered final self::Extension1|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T, S>(#this);
-static method Extension1|method2<T extends core::Object = core::Object, S extends core::String = core::String>(lowered final self::Extension1|method2::T #this) → dynamic {}
-static method Extension1|get#method2<T extends core::Object = core::Object>(lowered final self::Extension1|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T, S>(#this);
-static method Extension1|method3<T extends core::Object = core::Object, S extends dynamic = dynamic>(lowered final self::Extension1|method3::T #this) → dynamic {}
-static method Extension1|get#method3<T extends core::Object = core::Object>(lowered final self::Extension1|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T, S%>(#this);
-static method Extension1|method4<T extends core::Object = core::Object, S extends core::Object? = dynamic>(lowered final self::Extension1|method4::T #this) → dynamic {}
-static method Extension1|get#method4<T extends core::Object = core::Object>(lowered final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension1|method1<T extends core::Object, S extends core::Object>(lowered final self::Extension1|method1::T #this) → dynamic {}
+static method Extension1|get#method1<T extends core::Object>(lowered final self::Extension1|get#method1::T #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension1|method1<self::Extension1|get#method1::T, S>(#this);
+static method Extension1|method2<T extends core::Object, S extends core::String>(lowered final self::Extension1|method2::T #this) → dynamic {}
+static method Extension1|get#method2<T extends core::Object>(lowered final self::Extension1|get#method2::T #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension1|method2<self::Extension1|get#method2::T, S>(#this);
+static method Extension1|method3<T extends core::Object, S extends dynamic>(lowered final self::Extension1|method3::T #this) → dynamic {}
+static method Extension1|get#method3<T extends core::Object>(lowered final self::Extension1|get#method3::T #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension1|method3<self::Extension1|get#method3::T, S%>(#this);
+static method Extension1|method4<T extends core::Object, S extends core::Object? = dynamic>(lowered final self::Extension1|method4::T #this) → dynamic {}
+static method Extension1|get#method4<T extends core::Object>(lowered final self::Extension1|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension1|method4<self::Extension1|get#method4::T, S%>(#this);
-static method Extension1|method5<T extends core::Object = core::Object, S extends core::Object? = core::Object?>(lowered final self::Extension1|method5::T #this) → dynamic {}
-static method Extension1|get#method5<T extends core::Object = core::Object>(lowered final self::Extension1|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension1|method5<self::Extension1|get#method5::T, S%>(#this);
-static method Extension2|method1<T extends core::String = core::String, S extends core::Object = core::Object>(lowered final self::Extension2|method1::T #this) → dynamic {}
-static method Extension2|get#method1<T extends core::String = core::String>(lowered final self::Extension2|get#method1::T #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T, S>(#this);
-static method Extension2|method2<T extends core::String = core::String, S extends core::String = core::String>(lowered final self::Extension2|method2::T #this) → dynamic {}
-static method Extension2|get#method2<T extends core::String = core::String>(lowered final self::Extension2|get#method2::T #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T, S>(#this);
-static method Extension2|method3<T extends core::String = core::String, S extends dynamic = dynamic>(lowered final self::Extension2|method3::T #this) → dynamic {}
-static method Extension2|get#method3<T extends core::String = core::String>(lowered final self::Extension2|get#method3::T #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T, S%>(#this);
-static method Extension2|get#method4<T extends core::String = core::String>(lowered final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension1|method5<T extends core::Object, S extends core::Object?>(lowered final self::Extension1|method5::T #this) → dynamic {}
+static method Extension1|get#method5<T extends core::Object>(lowered final self::Extension1|get#method5::T #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension1|method5<self::Extension1|get#method5::T, S%>(#this);
+static method Extension2|method1<T extends core::String, S extends core::Object>(lowered final self::Extension2|method1::T #this) → dynamic {}
+static method Extension2|get#method1<T extends core::String>(lowered final self::Extension2|get#method1::T #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension2|method1<self::Extension2|get#method1::T, S>(#this);
+static method Extension2|method2<T extends core::String, S extends core::String>(lowered final self::Extension2|method2::T #this) → dynamic {}
+static method Extension2|get#method2<T extends core::String>(lowered final self::Extension2|get#method2::T #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension2|method2<self::Extension2|get#method2::T, S>(#this);
+static method Extension2|method3<T extends core::String, S extends dynamic>(lowered final self::Extension2|method3::T #this) → dynamic {}
+static method Extension2|get#method3<T extends core::String>(lowered final self::Extension2|get#method3::T #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension2|method3<self::Extension2|get#method3::T, S%>(#this);
+static method Extension2|get#method4<T extends core::String>(lowered final self::Extension2|get#method4::T #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension2|method4<self::Extension2|get#method4::T, S%>(#this);
-static method Extension2|method4<T extends core::String = core::String, S extends core::Object? = dynamic>(lowered final self::Extension2|method4::T #this) → dynamic {}
-static method Extension2|method5<T extends core::String = core::String, S extends core::Object? = core::Object?>(lowered final self::Extension2|method5::T #this) → dynamic {}
-static method Extension2|get#method5<T extends core::String = core::String>(lowered final self::Extension2|get#method5::T #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension2|method5<self::Extension2|get#method5::T, S%>(#this);
-static method Extension3|method1<T extends dynamic = dynamic, S extends core::Object = core::Object>(lowered final self::Extension3|method1::T% #this) → dynamic {}
-static method Extension3|get#method1<T extends dynamic = dynamic>(lowered final self::Extension3|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S>(#this);
-static method Extension3|method2<T extends dynamic = dynamic, S extends core::String = core::String>(lowered final self::Extension3|method2::T% #this) → dynamic {}
-static method Extension3|get#method2<T extends dynamic = dynamic>(lowered final self::Extension3|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S>(#this);
-static method Extension3|method3<T extends dynamic = dynamic, S extends dynamic = dynamic>(lowered final self::Extension3|method3::T% #this) → dynamic {}
-static method Extension3|get#method3<T extends dynamic = dynamic>(lowered final self::Extension3|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
-static method Extension3|method4<T extends dynamic = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension3|method4::T% #this) → dynamic {}
-static method Extension3|get#method4<T extends dynamic = dynamic>(lowered final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension2|method4<T extends core::String, S extends core::Object? = dynamic>(lowered final self::Extension2|method4::T #this) → dynamic {}
+static method Extension2|method5<T extends core::String, S extends core::Object?>(lowered final self::Extension2|method5::T #this) → dynamic {}
+static method Extension2|get#method5<T extends core::String>(lowered final self::Extension2|get#method5::T #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension2|method5<self::Extension2|get#method5::T, S%>(#this);
+static method Extension3|method1<T extends dynamic, S extends core::Object>(lowered final self::Extension3|method1::T% #this) → dynamic {}
+static method Extension3|get#method1<T extends dynamic>(lowered final self::Extension3|get#method1::T% #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension3|method1<self::Extension3|get#method1::T%, S>(#this);
+static method Extension3|method2<T extends dynamic, S extends core::String>(lowered final self::Extension3|method2::T% #this) → dynamic {}
+static method Extension3|get#method2<T extends dynamic>(lowered final self::Extension3|get#method2::T% #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension3|method2<self::Extension3|get#method2::T%, S>(#this);
+static method Extension3|method3<T extends dynamic, S extends dynamic>(lowered final self::Extension3|method3::T% #this) → dynamic {}
+static method Extension3|get#method3<T extends dynamic>(lowered final self::Extension3|get#method3::T% #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension3|method3<self::Extension3|get#method3::T%, S%>(#this);
+static method Extension3|method4<T extends dynamic, S extends core::Object? = dynamic>(lowered final self::Extension3|method4::T% #this) → dynamic {}
+static method Extension3|get#method4<T extends dynamic>(lowered final self::Extension3|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension3|method4<self::Extension3|get#method4::T%, S%>(#this);
-static method Extension3|method5<T extends dynamic = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension3|method5::T% #this) → dynamic {}
-static method Extension3|get#method5<T extends dynamic = dynamic>(lowered final self::Extension3|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension3|method5<self::Extension3|get#method5::T%, S%>(#this);
-static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object = core::Object>(lowered final self::Extension4|method1::T% #this) → dynamic {}
-static method Extension4|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T%, S>(#this);
-static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String = core::String>(lowered final self::Extension4|method2::T% #this) → dynamic {}
-static method Extension4|get#method2<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T%, S>(#this);
-static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic = dynamic>(lowered final self::Extension4|method3::T% #this) → dynamic {}
-static method Extension4|get#method3<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T%, S%>(#this);
+static method Extension3|method5<T extends dynamic, S extends core::Object?>(lowered final self::Extension3|method5::T% #this) → dynamic {}
+static method Extension3|get#method5<T extends dynamic>(lowered final self::Extension3|get#method5::T% #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension3|method5<self::Extension3|get#method5::T%, S%>(#this);
+static method Extension4|method1<T extends core::Object? = dynamic, S extends core::Object>(lowered final self::Extension4|method1::T% #this) → dynamic {}
+static method Extension4|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method1::T% #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension4|method1<self::Extension4|get#method1::T%, S>(#this);
+static method Extension4|method2<T extends core::Object? = dynamic, S extends core::String>(lowered final self::Extension4|method2::T% #this) → dynamic {}
+static method Extension4|get#method2<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method2::T% #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension4|method2<self::Extension4|get#method2::T%, S>(#this);
+static method Extension4|method3<T extends core::Object? = dynamic, S extends dynamic>(lowered final self::Extension4|method3::T% #this) → dynamic {}
+static method Extension4|get#method3<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method3::T% #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension4|method3<self::Extension4|get#method3::T%, S%>(#this);
static method Extension4|method4<T extends core::Object? = dynamic, S extends core::Object? = dynamic>(lowered final self::Extension4|method4::T% #this) → dynamic {}
static method Extension4|get#method4<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension4|method4<self::Extension4|get#method4::T%, S%>(#this);
-static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object? = core::Object?>(lowered final self::Extension4|method5::T% #this) → dynamic {}
-static method Extension4|get#method5<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension4|method5<self::Extension4|get#method5::T%, S%>(#this);
-static method Extension5|method1<T extends core::Object? = core::Object?, S extends core::Object = core::Object>(lowered final self::Extension5|method1::T% #this) → dynamic {}
-static method Extension5|get#method1<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method1::T% #this) → <S extends core::Object = core::Object>() → dynamic
- return <S extends core::Object = core::Object>() → dynamic => self::Extension5|method1<self::Extension5|get#method1::T%, S>(#this);
-static method Extension5|method2<T extends core::Object? = core::Object?, S extends core::String = core::String>(lowered final self::Extension5|method2::T% #this) → dynamic {}
-static method Extension5|get#method2<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method2::T% #this) → <S extends core::String = core::String>() → dynamic
- return <S extends core::String = core::String>() → dynamic => self::Extension5|method2<self::Extension5|get#method2::T%, S>(#this);
-static method Extension5|method3<T extends core::Object? = core::Object?, S extends dynamic = dynamic>(lowered final self::Extension5|method3::T% #this) → dynamic {}
-static method Extension5|get#method3<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method3::T% #this) → <S extends dynamic = dynamic>() → dynamic
- return <S extends dynamic = dynamic>() → dynamic => self::Extension5|method3<self::Extension5|get#method3::T%, S%>(#this);
-static method Extension5|method4<T extends core::Object? = core::Object?, S extends core::Object? = dynamic>(lowered final self::Extension5|method4::T% #this) → dynamic {}
-static method Extension5|get#method4<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
+static method Extension4|method5<T extends core::Object? = dynamic, S extends core::Object?>(lowered final self::Extension4|method5::T% #this) → dynamic {}
+static method Extension4|get#method5<T extends core::Object? = dynamic>(lowered final self::Extension4|get#method5::T% #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension4|method5<self::Extension4|get#method5::T%, S%>(#this);
+static method Extension5|method1<T extends core::Object?, S extends core::Object>(lowered final self::Extension5|method1::T% #this) → dynamic {}
+static method Extension5|get#method1<T extends core::Object?>(lowered final self::Extension5|get#method1::T% #this) → <S extends core::Object>() → dynamic
+ return <S extends core::Object>() → dynamic => self::Extension5|method1<self::Extension5|get#method1::T%, S>(#this);
+static method Extension5|method2<T extends core::Object?, S extends core::String>(lowered final self::Extension5|method2::T% #this) → dynamic {}
+static method Extension5|get#method2<T extends core::Object?>(lowered final self::Extension5|get#method2::T% #this) → <S extends core::String>() → dynamic
+ return <S extends core::String>() → dynamic => self::Extension5|method2<self::Extension5|get#method2::T%, S>(#this);
+static method Extension5|method3<T extends core::Object?, S extends dynamic>(lowered final self::Extension5|method3::T% #this) → dynamic {}
+static method Extension5|get#method3<T extends core::Object?>(lowered final self::Extension5|get#method3::T% #this) → <S extends dynamic>() → dynamic
+ return <S extends dynamic>() → dynamic => self::Extension5|method3<self::Extension5|get#method3::T%, S%>(#this);
+static method Extension5|method4<T extends core::Object?, S extends core::Object? = dynamic>(lowered final self::Extension5|method4::T% #this) → dynamic {}
+static method Extension5|get#method4<T extends core::Object?>(lowered final self::Extension5|get#method4::T% #this) → <S extends core::Object? = dynamic>() → dynamic
return <S extends core::Object? = dynamic>() → dynamic => self::Extension5|method4<self::Extension5|get#method4::T%, S%>(#this);
-static method Extension5|method5<T extends core::Object? = core::Object?, S extends core::Object? = core::Object?>(lowered final self::Extension5|method5::T% #this) → dynamic {}
-static method Extension5|get#method5<T extends core::Object? = core::Object?>(lowered final self::Extension5|get#method5::T% #this) → <S extends core::Object? = core::Object?>() → dynamic
- return <S extends core::Object? = core::Object?>() → dynamic => self::Extension5|method5<self::Extension5|get#method5::T%, S%>(#this);
+static method Extension5|method5<T extends core::Object?, S extends core::Object?>(lowered final self::Extension5|method5::T% #this) → dynamic {}
+static method Extension5|get#method5<T extends core::Object?>(lowered final self::Extension5|get#method5::T% #this) → <S extends core::Object?>() → dynamic
+ return <S extends core::Object?>() → dynamic => self::Extension5|method5<self::Extension5|get#method5::T%, S%>(#this);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.strong.expect b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.strong.expect
index b4f5d7a..9eabe2c 100644
--- a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.strong.expect
@@ -35,7 +35,7 @@
method method1 = self::Extension|method1;
tearoff method1 = self::Extension|get#method1;
}
-extension BoundExtension<T extends self::Class = self::Class> on T {
+extension BoundExtension<T extends self::Class> on T {
method method2 = self::BoundExtension|method2;
tearoff method2 = self::BoundExtension|get#method2;
}
@@ -43,9 +43,9 @@
return #this;
static method Extension|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension|get#method1::T% #this) → () → self::Extension|get#method1::T%
return () → self::Extension|get#method1::T% => self::Extension|method1<self::Extension|get#method1::T%>(#this);
-static method BoundExtension|method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
+static method BoundExtension|method2<T extends self::Class>(lowered final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
return #this;
-static method BoundExtension|get#method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
+static method BoundExtension|get#method2<T extends self::Class>(lowered final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
return () → self::BoundExtension|get#method2::T => self::BoundExtension|method2<self::BoundExtension|get#method2::T>(#this);
static method test1<T extends core::Object? = dynamic>(self::test1::T% t1) → self::Class {
if(t1 is{ForNonNullableByDefault} self::SubClass) {
@@ -56,7 +56,7 @@
}
return new self::Class::•();
}
-static method test2<T extends self::Class = self::Class>(self::test2::T t2) → dynamic {
+static method test2<T extends self::Class>(self::test2::T t2) → dynamic {
if(self::test2::T.{core::Type::==}(#C1)) {
self::SubClass subClass = let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart:26:28: Error: A value of type 'T' can't be assigned to a variable of type 'SubClass'.
- 'SubClass' is from 'pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart'.
diff --git a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.strong.transformed.expect
index 19b39bd..3d46c4f 100644
--- a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.strong.transformed.expect
@@ -35,7 +35,7 @@
method method1 = self::Extension|method1;
tearoff method1 = self::Extension|get#method1;
}
-extension BoundExtension<T extends self::Class = self::Class> on T {
+extension BoundExtension<T extends self::Class> on T {
method method2 = self::BoundExtension|method2;
tearoff method2 = self::BoundExtension|get#method2;
}
@@ -43,9 +43,9 @@
return #this;
static method Extension|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension|get#method1::T% #this) → () → self::Extension|get#method1::T%
return () → self::Extension|get#method1::T% => self::Extension|method1<self::Extension|get#method1::T%>(#this);
-static method BoundExtension|method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
+static method BoundExtension|method2<T extends self::Class>(lowered final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
return #this;
-static method BoundExtension|get#method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
+static method BoundExtension|get#method2<T extends self::Class>(lowered final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
return () → self::BoundExtension|get#method2::T => self::BoundExtension|method2<self::BoundExtension|get#method2::T>(#this);
static method test1<T extends core::Object? = dynamic>(self::test1::T% t1) → self::Class {
if(t1 is{ForNonNullableByDefault} self::SubClass) {
@@ -56,7 +56,7 @@
}
return new self::Class::•();
}
-static method test2<T extends self::Class = self::Class>(self::test2::T t2) → dynamic {
+static method test2<T extends self::Class>(self::test2::T t2) → dynamic {
if(self::test2::T.{core::Type::==}(#C1)) {
self::SubClass subClass = let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart:26:28: Error: A value of type 'T' can't be assigned to a variable of type 'SubClass'.
- 'SubClass' is from 'pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart'.
diff --git a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.expect b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.expect
index 826d688..b1bfc74 100644
--- a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.expect
@@ -35,7 +35,7 @@
method method1 = self::Extension|method1;
tearoff method1 = self::Extension|get#method1;
}
-extension BoundExtension<T extends self::Class = self::Class> on T {
+extension BoundExtension<T extends self::Class> on T {
method method2 = self::BoundExtension|method2;
tearoff method2 = self::BoundExtension|get#method2;
}
@@ -43,9 +43,9 @@
return #this;
static method Extension|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension|get#method1::T% #this) → () → self::Extension|get#method1::T%
return () → self::Extension|get#method1::T% => self::Extension|method1<self::Extension|get#method1::T%>(#this);
-static method BoundExtension|method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
+static method BoundExtension|method2<T extends self::Class>(lowered final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
return #this;
-static method BoundExtension|get#method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
+static method BoundExtension|get#method2<T extends self::Class>(lowered final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
return () → self::BoundExtension|get#method2::T => self::BoundExtension|method2<self::BoundExtension|get#method2::T>(#this);
static method test1<T extends core::Object? = dynamic>(self::test1::T% t1) → self::Class {
if(t1 is{ForNonNullableByDefault} self::SubClass) {
@@ -56,7 +56,7 @@
}
return new self::Class::•();
}
-static method test2<T extends self::Class = self::Class>(self::test2::T t2) → dynamic {
+static method test2<T extends self::Class>(self::test2::T t2) → dynamic {
if(self::test2::T.{core::Type::==}(#C1)) {
self::SubClass subClass = let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart:26:28: Error: A value of type 'T' can't be assigned to a variable of type 'SubClass'.
- 'SubClass' is from 'pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart'.
diff --git a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.outline.expect
index 7798a93..1a7ba19 100644
--- a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.outline.expect
@@ -14,7 +14,7 @@
method method1 = self::Extension|method1;
tearoff method1 = self::Extension|get#method1;
}
-extension BoundExtension<T extends self::Class = self::Class> on T {
+extension BoundExtension<T extends self::Class> on T {
method method2 = self::BoundExtension|method2;
tearoff method2 = self::BoundExtension|get#method2;
}
@@ -22,13 +22,13 @@
;
static method Extension|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension|get#method1::T% #this) → () → self::Extension|get#method1::T%
return () → self::Extension|get#method1::T% => self::Extension|method1<self::Extension|get#method1::T%>(#this);
-static method BoundExtension|method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
+static method BoundExtension|method2<T extends self::Class>(lowered final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
;
-static method BoundExtension|get#method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
+static method BoundExtension|get#method2<T extends self::Class>(lowered final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
return () → self::BoundExtension|get#method2::T => self::BoundExtension|method2<self::BoundExtension|get#method2::T>(#this);
static method test1<T extends core::Object? = dynamic>(self::test1::T% t1) → self::Class
;
-static method test2<T extends self::Class = self::Class>(self::test2::T t2) → dynamic
+static method test2<T extends self::Class>(self::test2::T t2) → dynamic
;
static method test3<T extends core::Object? = dynamic>(self::test3::T% t3) → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.transformed.expect
index fb35bc5..ae9d534 100644
--- a/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart.weak.transformed.expect
@@ -35,7 +35,7 @@
method method1 = self::Extension|method1;
tearoff method1 = self::Extension|get#method1;
}
-extension BoundExtension<T extends self::Class = self::Class> on T {
+extension BoundExtension<T extends self::Class> on T {
method method2 = self::BoundExtension|method2;
tearoff method2 = self::BoundExtension|get#method2;
}
@@ -43,9 +43,9 @@
return #this;
static method Extension|get#method1<T extends core::Object? = dynamic>(lowered final self::Extension|get#method1::T% #this) → () → self::Extension|get#method1::T%
return () → self::Extension|get#method1::T% => self::Extension|method1<self::Extension|get#method1::T%>(#this);
-static method BoundExtension|method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
+static method BoundExtension|method2<T extends self::Class>(lowered final self::BoundExtension|method2::T #this) → self::BoundExtension|method2::T
return #this;
-static method BoundExtension|get#method2<T extends self::Class = self::Class>(lowered final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
+static method BoundExtension|get#method2<T extends self::Class>(lowered final self::BoundExtension|get#method2::T #this) → () → self::BoundExtension|get#method2::T
return () → self::BoundExtension|get#method2::T => self::BoundExtension|method2<self::BoundExtension|get#method2::T>(#this);
static method test1<T extends core::Object? = dynamic>(self::test1::T% t1) → self::Class {
if(t1 is{ForNonNullableByDefault} self::SubClass) {
@@ -56,7 +56,7 @@
}
return new self::Class::•();
}
-static method test2<T extends self::Class = self::Class>(self::test2::T t2) → dynamic {
+static method test2<T extends self::Class>(self::test2::T t2) → dynamic {
if(self::test2::T.{core::Type::==}(#C1)) {
self::SubClass subClass = let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart:26:28: Error: A value of type 'T' can't be assigned to a variable of type 'SubClass'.
- 'SubClass' is from 'pkg/front_end/testcases/nnbd/extension_type_variable_bound.dart'.
diff --git a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.strong.expect b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.strong.expect
index 70b4d24..37f68ac 100644
--- a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.strong.expect
@@ -212,7 +212,7 @@
: super core::Object::•()
;
}
-extension Extension<T extends core::num = core::num> on core::int {
+extension Extension<T extends core::num> on core::int {
get property1 = self::Extension|get#property1;
get property2 = self::Extension|get#property2;
get property3 = self::Extension|get#property3;
@@ -243,35 +243,35 @@
static get property3() → core::int?
return 0;
static set property3(core::int value) → void {}
-static method Extension|get#property1<T extends core::num = core::num>(lowered final core::int #this) → core::int
+static method Extension|get#property1<T extends core::num>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property1<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void {}
-static method Extension|get#property2<T extends core::num = core::num>(lowered final core::int #this) → core::int
+static method Extension|set#property1<T extends core::num>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property2<T extends core::num>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property2<T extends core::num = core::num>(lowered final core::int #this, core::int? i) → void {}
-static method Extension|get#property3<T extends core::num = core::num>(lowered final core::int #this) → core::int?
+static method Extension|set#property2<T extends core::num>(lowered final core::int #this, core::int? i) → void {}
+static method Extension|get#property3<T extends core::num>(lowered final core::int #this) → core::int?
return 0;
-static method Extension|set#property3<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void {}
-static method Extension|get#property4a<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4a::T
+static method Extension|set#property3<T extends core::num>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property4a<T extends core::num>(lowered final core::int #this) → self::Extension|get#property4a::T
return let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:134:23: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property4a => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} Never;
-static method Extension|set#property4a<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4a::T i) → void {}
-static method Extension|get#property4b<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4b::T?
+static method Extension|set#property4a<T extends core::num>(lowered final core::int #this, self::Extension|set#property4a::T i) → void {}
+static method Extension|get#property4b<T extends core::num>(lowered final core::int #this) → self::Extension|get#property4b::T?
return let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:137:24: Error: A value of type 'int' can't be returned from a function with return type 'T?'.
T? get property4b => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} Never;
-static method Extension|set#property4b<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4b::T? i) → void {}
-static method Extension|get#property5<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property5::T
+static method Extension|set#property4b<T extends core::num>(lowered final core::int #this, self::Extension|set#property4b::T? i) → void {}
+static method Extension|get#property5<T extends core::num>(lowered final core::int #this) → self::Extension|get#property5::T
return let final Never #t3 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:140:22: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property5 => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} Never;
-static method Extension|set#property5<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property5::T? i) → void {}
-static method Extension|get#property6<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property6::T?
+static method Extension|set#property5<T extends core::num>(lowered final core::int #this, self::Extension|set#property5::T? i) → void {}
+static method Extension|get#property6<T extends core::num>(lowered final core::int #this) → self::Extension|get#property6::T?
return let final Never #t4 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:143:23: Error: A value of type 'int' can't be returned from a function with return type 'T?'.
T? get property6 => 0; // error
^" in 0 as{TypeError,ForNonNullableByDefault} Never;
-static method Extension|set#property6<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property6::T i) → void {}
+static method Extension|set#property6<T extends core::num>(lowered final core::int #this, self::Extension|set#property6::T i) → void {}
static get Extension|property7() → core::int
return 0;
static set Extension|property7(core::int value) → void {}
diff --git a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.strong.transformed.expect
index 70b4d24..37f68ac 100644
--- a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.strong.transformed.expect
@@ -212,7 +212,7 @@
: super core::Object::•()
;
}
-extension Extension<T extends core::num = core::num> on core::int {
+extension Extension<T extends core::num> on core::int {
get property1 = self::Extension|get#property1;
get property2 = self::Extension|get#property2;
get property3 = self::Extension|get#property3;
@@ -243,35 +243,35 @@
static get property3() → core::int?
return 0;
static set property3(core::int value) → void {}
-static method Extension|get#property1<T extends core::num = core::num>(lowered final core::int #this) → core::int
+static method Extension|get#property1<T extends core::num>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property1<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void {}
-static method Extension|get#property2<T extends core::num = core::num>(lowered final core::int #this) → core::int
+static method Extension|set#property1<T extends core::num>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property2<T extends core::num>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property2<T extends core::num = core::num>(lowered final core::int #this, core::int? i) → void {}
-static method Extension|get#property3<T extends core::num = core::num>(lowered final core::int #this) → core::int?
+static method Extension|set#property2<T extends core::num>(lowered final core::int #this, core::int? i) → void {}
+static method Extension|get#property3<T extends core::num>(lowered final core::int #this) → core::int?
return 0;
-static method Extension|set#property3<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void {}
-static method Extension|get#property4a<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4a::T
+static method Extension|set#property3<T extends core::num>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property4a<T extends core::num>(lowered final core::int #this) → self::Extension|get#property4a::T
return let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:134:23: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property4a => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} Never;
-static method Extension|set#property4a<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4a::T i) → void {}
-static method Extension|get#property4b<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4b::T?
+static method Extension|set#property4a<T extends core::num>(lowered final core::int #this, self::Extension|set#property4a::T i) → void {}
+static method Extension|get#property4b<T extends core::num>(lowered final core::int #this) → self::Extension|get#property4b::T?
return let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:137:24: Error: A value of type 'int' can't be returned from a function with return type 'T?'.
T? get property4b => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} Never;
-static method Extension|set#property4b<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4b::T? i) → void {}
-static method Extension|get#property5<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property5::T
+static method Extension|set#property4b<T extends core::num>(lowered final core::int #this, self::Extension|set#property4b::T? i) → void {}
+static method Extension|get#property5<T extends core::num>(lowered final core::int #this) → self::Extension|get#property5::T
return let final Never #t3 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:140:22: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property5 => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} Never;
-static method Extension|set#property5<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property5::T? i) → void {}
-static method Extension|get#property6<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property6::T?
+static method Extension|set#property5<T extends core::num>(lowered final core::int #this, self::Extension|set#property5::T? i) → void {}
+static method Extension|get#property6<T extends core::num>(lowered final core::int #this) → self::Extension|get#property6::T?
return let final Never #t4 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:143:23: Error: A value of type 'int' can't be returned from a function with return type 'T?'.
T? get property6 => 0; // error
^" in 0 as{TypeError,ForNonNullableByDefault} Never;
-static method Extension|set#property6<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property6::T i) → void {}
+static method Extension|set#property6<T extends core::num>(lowered final core::int #this, self::Extension|set#property6::T i) → void {}
static get Extension|property7() → core::int
return 0;
static set Extension|property7(core::int value) → void {}
diff --git a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.expect b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.expect
index 70b4d24..37f68ac 100644
--- a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.expect
@@ -212,7 +212,7 @@
: super core::Object::•()
;
}
-extension Extension<T extends core::num = core::num> on core::int {
+extension Extension<T extends core::num> on core::int {
get property1 = self::Extension|get#property1;
get property2 = self::Extension|get#property2;
get property3 = self::Extension|get#property3;
@@ -243,35 +243,35 @@
static get property3() → core::int?
return 0;
static set property3(core::int value) → void {}
-static method Extension|get#property1<T extends core::num = core::num>(lowered final core::int #this) → core::int
+static method Extension|get#property1<T extends core::num>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property1<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void {}
-static method Extension|get#property2<T extends core::num = core::num>(lowered final core::int #this) → core::int
+static method Extension|set#property1<T extends core::num>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property2<T extends core::num>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property2<T extends core::num = core::num>(lowered final core::int #this, core::int? i) → void {}
-static method Extension|get#property3<T extends core::num = core::num>(lowered final core::int #this) → core::int?
+static method Extension|set#property2<T extends core::num>(lowered final core::int #this, core::int? i) → void {}
+static method Extension|get#property3<T extends core::num>(lowered final core::int #this) → core::int?
return 0;
-static method Extension|set#property3<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void {}
-static method Extension|get#property4a<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4a::T
+static method Extension|set#property3<T extends core::num>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property4a<T extends core::num>(lowered final core::int #this) → self::Extension|get#property4a::T
return let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:134:23: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property4a => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} Never;
-static method Extension|set#property4a<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4a::T i) → void {}
-static method Extension|get#property4b<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4b::T?
+static method Extension|set#property4a<T extends core::num>(lowered final core::int #this, self::Extension|set#property4a::T i) → void {}
+static method Extension|get#property4b<T extends core::num>(lowered final core::int #this) → self::Extension|get#property4b::T?
return let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:137:24: Error: A value of type 'int' can't be returned from a function with return type 'T?'.
T? get property4b => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} Never;
-static method Extension|set#property4b<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4b::T? i) → void {}
-static method Extension|get#property5<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property5::T
+static method Extension|set#property4b<T extends core::num>(lowered final core::int #this, self::Extension|set#property4b::T? i) → void {}
+static method Extension|get#property5<T extends core::num>(lowered final core::int #this) → self::Extension|get#property5::T
return let final Never #t3 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:140:22: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property5 => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} Never;
-static method Extension|set#property5<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property5::T? i) → void {}
-static method Extension|get#property6<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property6::T?
+static method Extension|set#property5<T extends core::num>(lowered final core::int #this, self::Extension|set#property5::T? i) → void {}
+static method Extension|get#property6<T extends core::num>(lowered final core::int #this) → self::Extension|get#property6::T?
return let final Never #t4 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:143:23: Error: A value of type 'int' can't be returned from a function with return type 'T?'.
T? get property6 => 0; // error
^" in 0 as{TypeError,ForNonNullableByDefault} Never;
-static method Extension|set#property6<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property6::T i) → void {}
+static method Extension|set#property6<T extends core::num>(lowered final core::int #this, self::Extension|set#property6::T i) → void {}
static get Extension|property7() → core::int
return 0;
static set Extension|property7(core::int value) → void {}
diff --git a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.outline.expect
index 73e689a..adb8072 100644
--- a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.outline.expect
@@ -190,7 +190,7 @@
synthetic constructor •() → self::D4
;
}
-extension Extension<T extends core::num = core::num> on core::int {
+extension Extension<T extends core::num> on core::int {
get property1 = self::Extension|get#property1;
get property2 = self::Extension|get#property2;
get property3 = self::Extension|get#property3;
@@ -224,33 +224,33 @@
;
static set property3(core::int value) → void
;
-static method Extension|get#property1<T extends core::num = core::num>(lowered final core::int #this) → core::int
+static method Extension|get#property1<T extends core::num>(lowered final core::int #this) → core::int
;
-static method Extension|set#property1<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void
+static method Extension|set#property1<T extends core::num>(lowered final core::int #this, core::int i) → void
;
-static method Extension|get#property2<T extends core::num = core::num>(lowered final core::int #this) → core::int
+static method Extension|get#property2<T extends core::num>(lowered final core::int #this) → core::int
;
-static method Extension|set#property2<T extends core::num = core::num>(lowered final core::int #this, core::int? i) → void
+static method Extension|set#property2<T extends core::num>(lowered final core::int #this, core::int? i) → void
;
-static method Extension|get#property3<T extends core::num = core::num>(lowered final core::int #this) → core::int?
+static method Extension|get#property3<T extends core::num>(lowered final core::int #this) → core::int?
;
-static method Extension|set#property3<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void
+static method Extension|set#property3<T extends core::num>(lowered final core::int #this, core::int i) → void
;
-static method Extension|get#property4a<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4a::T
+static method Extension|get#property4a<T extends core::num>(lowered final core::int #this) → self::Extension|get#property4a::T
;
-static method Extension|set#property4a<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4a::T i) → void
+static method Extension|set#property4a<T extends core::num>(lowered final core::int #this, self::Extension|set#property4a::T i) → void
;
-static method Extension|get#property4b<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4b::T?
+static method Extension|get#property4b<T extends core::num>(lowered final core::int #this) → self::Extension|get#property4b::T?
;
-static method Extension|set#property4b<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4b::T? i) → void
+static method Extension|set#property4b<T extends core::num>(lowered final core::int #this, self::Extension|set#property4b::T? i) → void
;
-static method Extension|get#property5<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property5::T
+static method Extension|get#property5<T extends core::num>(lowered final core::int #this) → self::Extension|get#property5::T
;
-static method Extension|set#property5<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property5::T? i) → void
+static method Extension|set#property5<T extends core::num>(lowered final core::int #this, self::Extension|set#property5::T? i) → void
;
-static method Extension|get#property6<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property6::T?
+static method Extension|get#property6<T extends core::num>(lowered final core::int #this) → self::Extension|get#property6::T?
;
-static method Extension|set#property6<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property6::T i) → void
+static method Extension|set#property6<T extends core::num>(lowered final core::int #this, self::Extension|set#property6::T i) → void
;
static get Extension|property7() → core::int
;
diff --git a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.transformed.expect
index 70b4d24..37f68ac 100644
--- a/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart.weak.transformed.expect
@@ -212,7 +212,7 @@
: super core::Object::•()
;
}
-extension Extension<T extends core::num = core::num> on core::int {
+extension Extension<T extends core::num> on core::int {
get property1 = self::Extension|get#property1;
get property2 = self::Extension|get#property2;
get property3 = self::Extension|get#property3;
@@ -243,35 +243,35 @@
static get property3() → core::int?
return 0;
static set property3(core::int value) → void {}
-static method Extension|get#property1<T extends core::num = core::num>(lowered final core::int #this) → core::int
+static method Extension|get#property1<T extends core::num>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property1<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void {}
-static method Extension|get#property2<T extends core::num = core::num>(lowered final core::int #this) → core::int
+static method Extension|set#property1<T extends core::num>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property2<T extends core::num>(lowered final core::int #this) → core::int
return 0;
-static method Extension|set#property2<T extends core::num = core::num>(lowered final core::int #this, core::int? i) → void {}
-static method Extension|get#property3<T extends core::num = core::num>(lowered final core::int #this) → core::int?
+static method Extension|set#property2<T extends core::num>(lowered final core::int #this, core::int? i) → void {}
+static method Extension|get#property3<T extends core::num>(lowered final core::int #this) → core::int?
return 0;
-static method Extension|set#property3<T extends core::num = core::num>(lowered final core::int #this, core::int i) → void {}
-static method Extension|get#property4a<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4a::T
+static method Extension|set#property3<T extends core::num>(lowered final core::int #this, core::int i) → void {}
+static method Extension|get#property4a<T extends core::num>(lowered final core::int #this) → self::Extension|get#property4a::T
return let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:134:23: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property4a => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} Never;
-static method Extension|set#property4a<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4a::T i) → void {}
-static method Extension|get#property4b<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property4b::T?
+static method Extension|set#property4a<T extends core::num>(lowered final core::int #this, self::Extension|set#property4a::T i) → void {}
+static method Extension|get#property4b<T extends core::num>(lowered final core::int #this) → self::Extension|get#property4b::T?
return let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:137:24: Error: A value of type 'int' can't be returned from a function with return type 'T?'.
T? get property4b => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} Never;
-static method Extension|set#property4b<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property4b::T? i) → void {}
-static method Extension|get#property5<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property5::T
+static method Extension|set#property4b<T extends core::num>(lowered final core::int #this, self::Extension|set#property4b::T? i) → void {}
+static method Extension|get#property5<T extends core::num>(lowered final core::int #this) → self::Extension|get#property5::T
return let final Never #t3 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:140:22: Error: A value of type 'int' can't be returned from a function with return type 'T'.
T get property5 => 0; // ok
^" in 0 as{TypeError,ForNonNullableByDefault} Never;
-static method Extension|set#property5<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property5::T? i) → void {}
-static method Extension|get#property6<T extends core::num = core::num>(lowered final core::int #this) → self::Extension|get#property6::T?
+static method Extension|set#property5<T extends core::num>(lowered final core::int #this, self::Extension|set#property5::T? i) → void {}
+static method Extension|get#property6<T extends core::num>(lowered final core::int #this) → self::Extension|get#property6::T?
return let final Never #t4 = invalid-expression "pkg/front_end/testcases/nnbd/getter_vs_setter_type_nnbd.dart:143:23: Error: A value of type 'int' can't be returned from a function with return type 'T?'.
T? get property6 => 0; // error
^" in 0 as{TypeError,ForNonNullableByDefault} Never;
-static method Extension|set#property6<T extends core::num = core::num>(lowered final core::int #this, self::Extension|set#property6::T i) → void {}
+static method Extension|set#property6<T extends core::num>(lowered final core::int #this, self::Extension|set#property6::T i) → void {}
static get Extension|property7() → core::int
return 0;
static set Extension|property7(core::int value) → void {}
diff --git a/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.strong.expect b/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.strong.expect
index a2932c8..e98b1ac 100644
--- a/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.strong.expect
@@ -17,7 +17,7 @@
return t;
static method g<T extends core::Object? = dynamic>(self::g::T? t) → self::g::T%
return t!;
-static method h<T extends core::Object = core::Object>(self::h::T? t) → self::h::T
+static method h<T extends core::Object>(self::h::T? t) → self::h::T
return t!;
static method foo(dynamic d, void v, core::Object? onull, core::Object o, core::String? snull, core::String s) → dynamic {
self::f<dynamic>(d);
diff --git a/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.strong.transformed.expect
index a2932c8..e98b1ac 100644
--- a/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.strong.transformed.expect
@@ -17,7 +17,7 @@
return t;
static method g<T extends core::Object? = dynamic>(self::g::T? t) → self::g::T%
return t!;
-static method h<T extends core::Object = core::Object>(self::h::T? t) → self::h::T
+static method h<T extends core::Object>(self::h::T? t) → self::h::T
return t!;
static method foo(dynamic d, void v, core::Object? onull, core::Object o, core::String? snull, core::String s) → dynamic {
self::f<dynamic>(d);
diff --git a/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.weak.expect b/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.weak.expect
index a2932c8..e98b1ac 100644
--- a/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.weak.expect
@@ -17,7 +17,7 @@
return t;
static method g<T extends core::Object? = dynamic>(self::g::T? t) → self::g::T%
return t!;
-static method h<T extends core::Object = core::Object>(self::h::T? t) → self::h::T
+static method h<T extends core::Object>(self::h::T? t) → self::h::T
return t!;
static method foo(dynamic d, void v, core::Object? onull, core::Object o, core::String? snull, core::String s) → dynamic {
self::f<dynamic>(d);
diff --git a/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.weak.outline.expect
index 4238908..ed7979e 100644
--- a/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.weak.outline.expect
@@ -6,7 +6,7 @@
;
static method g<T extends core::Object? = dynamic>(self::g::T? t) → self::g::T%
;
-static method h<T extends core::Object = core::Object>(self::h::T? t) → self::h::T
+static method h<T extends core::Object>(self::h::T? t) → self::h::T
;
static method foo(dynamic d, void v, core::Object? onull, core::Object o, core::String? snull, core::String s) → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.weak.transformed.expect
index a2932c8..e98b1ac 100644
--- a/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/infer_object_from_dynamic.dart.weak.transformed.expect
@@ -17,7 +17,7 @@
return t;
static method g<T extends core::Object? = dynamic>(self::g::T? t) → self::g::T%
return t!;
-static method h<T extends core::Object = core::Object>(self::h::T? t) → self::h::T
+static method h<T extends core::Object>(self::h::T? t) → self::h::T
return t!;
static method foo(dynamic d, void v, core::Object? onull, core::Object o, core::String? snull, core::String s) → dynamic {
self::f<dynamic>(d);
diff --git a/pkg/front_end/testcases/nnbd/intersection_types.dart.strong.expect b/pkg/front_end/testcases/nnbd/intersection_types.dart.strong.expect
index 05572ee..aade648 100644
--- a/pkg/front_end/testcases/nnbd/intersection_types.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/intersection_types.dart.strong.expect
@@ -17,7 +17,7 @@
: super self::B::•()
;
}
-class Foo<T extends self::A? = self::A?> extends core::Object {
+class Foo<T extends self::A?> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::T%>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/intersection_types.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/intersection_types.dart.strong.transformed.expect
index 05572ee..aade648 100644
--- a/pkg/front_end/testcases/nnbd/intersection_types.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/intersection_types.dart.strong.transformed.expect
@@ -17,7 +17,7 @@
: super self::B::•()
;
}
-class Foo<T extends self::A? = self::A?> extends core::Object {
+class Foo<T extends self::A?> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::T%>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/intersection_types.dart.weak.expect b/pkg/front_end/testcases/nnbd/intersection_types.dart.weak.expect
index 05572ee..aade648 100644
--- a/pkg/front_end/testcases/nnbd/intersection_types.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/intersection_types.dart.weak.expect
@@ -17,7 +17,7 @@
: super self::B::•()
;
}
-class Foo<T extends self::A? = self::A?> extends core::Object {
+class Foo<T extends self::A?> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::T%>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/intersection_types.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/intersection_types.dart.weak.outline.expect
index 2359ed4..748d6bc 100644
--- a/pkg/front_end/testcases/nnbd/intersection_types.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/intersection_types.dart.weak.outline.expect
@@ -14,7 +14,7 @@
synthetic constructor •() → self::C
;
}
-class Foo<T extends self::A? = self::A?> extends core::Object {
+class Foo<T extends self::A?> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::T%>
;
method doPromotionsToNullable(generic-covariant-impl self::Foo::T% t) → dynamic
diff --git a/pkg/front_end/testcases/nnbd/intersection_types.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/intersection_types.dart.weak.transformed.expect
index 05572ee..aade648 100644
--- a/pkg/front_end/testcases/nnbd/intersection_types.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/intersection_types.dart.weak.transformed.expect
@@ -17,7 +17,7 @@
: super self::B::•()
;
}
-class Foo<T extends self::A? = self::A?> extends core::Object {
+class Foo<T extends self::A?> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::T%>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/issue40134.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue40134.dart.strong.expect
index 0389f74..c313dbe 100644
--- a/pkg/front_end/testcases/nnbd/issue40134.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue40134.dart.strong.expect
@@ -8,18 +8,18 @@
;
get t() → core::Type
return self::GenericMethodBounds::T%;
- method foo<generic-covariant-impl E extends self::GenericMethodBounds::T% = self::GenericMethodBounds::T%>() → self::GenericMethodBounds<self::GenericMethodBounds::foo::E%>
+ method foo<generic-covariant-impl E extends self::GenericMethodBounds::T%>() → self::GenericMethodBounds<self::GenericMethodBounds::foo::E%>
return new self::GenericMethodBounds::•<self::GenericMethodBounds::foo::E%>();
- method bar<E extends (self::GenericMethodBounds::T%) → void = (self::GenericMethodBounds::T%) → void>() → self::GenericMethodBounds<self::GenericMethodBounds::bar::E>
+ method bar<E extends (self::GenericMethodBounds::T%) → void>() → self::GenericMethodBounds<self::GenericMethodBounds::bar::E>
return new self::GenericMethodBounds::•<self::GenericMethodBounds::bar::E>();
}
class GenericMethodBoundsDerived extends self::GenericMethodBounds<core::num> {
synthetic constructor •() → self::GenericMethodBoundsDerived
: super self::GenericMethodBounds::•()
;
- method foo<generic-covariant-impl E extends core::num = core::num>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::foo::E>
+ method foo<generic-covariant-impl E extends core::num>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::foo::E>
return new self::GenericMethodBounds::•<self::GenericMethodBoundsDerived::foo::E>();
- method bar<E extends (core::num) → void = (core::num) → void>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::bar::E>
+ method bar<E extends (core::num) → void>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::bar::E>
return new self::GenericMethodBounds::•<self::GenericMethodBoundsDerived::bar::E>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue40134.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue40134.dart.strong.transformed.expect
index 0389f74..c313dbe 100644
--- a/pkg/front_end/testcases/nnbd/issue40134.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue40134.dart.strong.transformed.expect
@@ -8,18 +8,18 @@
;
get t() → core::Type
return self::GenericMethodBounds::T%;
- method foo<generic-covariant-impl E extends self::GenericMethodBounds::T% = self::GenericMethodBounds::T%>() → self::GenericMethodBounds<self::GenericMethodBounds::foo::E%>
+ method foo<generic-covariant-impl E extends self::GenericMethodBounds::T%>() → self::GenericMethodBounds<self::GenericMethodBounds::foo::E%>
return new self::GenericMethodBounds::•<self::GenericMethodBounds::foo::E%>();
- method bar<E extends (self::GenericMethodBounds::T%) → void = (self::GenericMethodBounds::T%) → void>() → self::GenericMethodBounds<self::GenericMethodBounds::bar::E>
+ method bar<E extends (self::GenericMethodBounds::T%) → void>() → self::GenericMethodBounds<self::GenericMethodBounds::bar::E>
return new self::GenericMethodBounds::•<self::GenericMethodBounds::bar::E>();
}
class GenericMethodBoundsDerived extends self::GenericMethodBounds<core::num> {
synthetic constructor •() → self::GenericMethodBoundsDerived
: super self::GenericMethodBounds::•()
;
- method foo<generic-covariant-impl E extends core::num = core::num>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::foo::E>
+ method foo<generic-covariant-impl E extends core::num>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::foo::E>
return new self::GenericMethodBounds::•<self::GenericMethodBoundsDerived::foo::E>();
- method bar<E extends (core::num) → void = (core::num) → void>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::bar::E>
+ method bar<E extends (core::num) → void>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::bar::E>
return new self::GenericMethodBounds::•<self::GenericMethodBoundsDerived::bar::E>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue40134.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue40134.dart.weak.expect
index 0389f74..c313dbe 100644
--- a/pkg/front_end/testcases/nnbd/issue40134.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue40134.dart.weak.expect
@@ -8,18 +8,18 @@
;
get t() → core::Type
return self::GenericMethodBounds::T%;
- method foo<generic-covariant-impl E extends self::GenericMethodBounds::T% = self::GenericMethodBounds::T%>() → self::GenericMethodBounds<self::GenericMethodBounds::foo::E%>
+ method foo<generic-covariant-impl E extends self::GenericMethodBounds::T%>() → self::GenericMethodBounds<self::GenericMethodBounds::foo::E%>
return new self::GenericMethodBounds::•<self::GenericMethodBounds::foo::E%>();
- method bar<E extends (self::GenericMethodBounds::T%) → void = (self::GenericMethodBounds::T%) → void>() → self::GenericMethodBounds<self::GenericMethodBounds::bar::E>
+ method bar<E extends (self::GenericMethodBounds::T%) → void>() → self::GenericMethodBounds<self::GenericMethodBounds::bar::E>
return new self::GenericMethodBounds::•<self::GenericMethodBounds::bar::E>();
}
class GenericMethodBoundsDerived extends self::GenericMethodBounds<core::num> {
synthetic constructor •() → self::GenericMethodBoundsDerived
: super self::GenericMethodBounds::•()
;
- method foo<generic-covariant-impl E extends core::num = core::num>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::foo::E>
+ method foo<generic-covariant-impl E extends core::num>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::foo::E>
return new self::GenericMethodBounds::•<self::GenericMethodBoundsDerived::foo::E>();
- method bar<E extends (core::num) → void = (core::num) → void>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::bar::E>
+ method bar<E extends (core::num) → void>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::bar::E>
return new self::GenericMethodBounds::•<self::GenericMethodBoundsDerived::bar::E>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue40134.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue40134.dart.weak.outline.expect
index f26dd6e..6c29f77 100644
--- a/pkg/front_end/testcases/nnbd/issue40134.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue40134.dart.weak.outline.expect
@@ -7,17 +7,17 @@
;
get t() → core::Type
;
- method foo<generic-covariant-impl E extends self::GenericMethodBounds::T% = self::GenericMethodBounds::T%>() → self::GenericMethodBounds<self::GenericMethodBounds::foo::E%>
+ method foo<generic-covariant-impl E extends self::GenericMethodBounds::T%>() → self::GenericMethodBounds<self::GenericMethodBounds::foo::E%>
;
- method bar<E extends (self::GenericMethodBounds::T%) → void = (self::GenericMethodBounds::T%) → void>() → self::GenericMethodBounds<self::GenericMethodBounds::bar::E>
+ method bar<E extends (self::GenericMethodBounds::T%) → void>() → self::GenericMethodBounds<self::GenericMethodBounds::bar::E>
;
}
class GenericMethodBoundsDerived extends self::GenericMethodBounds<core::num> {
synthetic constructor •() → self::GenericMethodBoundsDerived
;
- method foo<generic-covariant-impl E extends core::num = core::num>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::foo::E>
+ method foo<generic-covariant-impl E extends core::num>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::foo::E>
;
- method bar<E extends (core::num) → void = (core::num) → void>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::bar::E>
+ method bar<E extends (core::num) → void>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::bar::E>
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/nnbd/issue40134.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue40134.dart.weak.transformed.expect
index 0389f74..c313dbe 100644
--- a/pkg/front_end/testcases/nnbd/issue40134.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue40134.dart.weak.transformed.expect
@@ -8,18 +8,18 @@
;
get t() → core::Type
return self::GenericMethodBounds::T%;
- method foo<generic-covariant-impl E extends self::GenericMethodBounds::T% = self::GenericMethodBounds::T%>() → self::GenericMethodBounds<self::GenericMethodBounds::foo::E%>
+ method foo<generic-covariant-impl E extends self::GenericMethodBounds::T%>() → self::GenericMethodBounds<self::GenericMethodBounds::foo::E%>
return new self::GenericMethodBounds::•<self::GenericMethodBounds::foo::E%>();
- method bar<E extends (self::GenericMethodBounds::T%) → void = (self::GenericMethodBounds::T%) → void>() → self::GenericMethodBounds<self::GenericMethodBounds::bar::E>
+ method bar<E extends (self::GenericMethodBounds::T%) → void>() → self::GenericMethodBounds<self::GenericMethodBounds::bar::E>
return new self::GenericMethodBounds::•<self::GenericMethodBounds::bar::E>();
}
class GenericMethodBoundsDerived extends self::GenericMethodBounds<core::num> {
synthetic constructor •() → self::GenericMethodBoundsDerived
: super self::GenericMethodBounds::•()
;
- method foo<generic-covariant-impl E extends core::num = core::num>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::foo::E>
+ method foo<generic-covariant-impl E extends core::num>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::foo::E>
return new self::GenericMethodBounds::•<self::GenericMethodBoundsDerived::foo::E>();
- method bar<E extends (core::num) → void = (core::num) → void>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::bar::E>
+ method bar<E extends (core::num) → void>() → self::GenericMethodBounds<self::GenericMethodBoundsDerived::bar::E>
return new self::GenericMethodBounds::•<self::GenericMethodBoundsDerived::bar::E>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue40600.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue40600.dart.strong.expect
index 8e9c78d..ff89535 100644
--- a/pkg/front_end/testcases/nnbd/issue40600.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue40600.dart.strong.expect
@@ -26,14 +26,14 @@
synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- method baz<generic-covariant-impl X extends FutureOr<self::C::T%> = FutureOr<self::C::T%>>(generic-covariant-impl FutureOr<self::C::T%>x) → FutureOr<self::C::T%>
+ method baz<generic-covariant-impl X extends FutureOr<self::C::T%>>(generic-covariant-impl FutureOr<self::C::T%>x) → FutureOr<self::C::T%>
return x;
}
class D<T extends core::Object? = dynamic> extends self::C<self::D::T%> {
synthetic constructor •() → self::D<self::D::T%>
: super self::C::•()
;
- method baz<generic-covariant-impl X extends FutureOr<self::D::T%> = FutureOr<self::D::T%>>(generic-covariant-impl FutureOr<self::D::T%>x) → FutureOr<self::D::T%>
+ method baz<generic-covariant-impl X extends FutureOr<self::D::T%>>(generic-covariant-impl FutureOr<self::D::T%>x) → FutureOr<self::D::T%>
return x;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue40600.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue40600.dart.strong.transformed.expect
index cba6e85..15445a8 100644
--- a/pkg/front_end/testcases/nnbd/issue40600.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue40600.dart.strong.transformed.expect
@@ -26,14 +26,14 @@
synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- method baz<generic-covariant-impl X extends FutureOr<self::C::T%> = FutureOr<self::C::T%>>(generic-covariant-impl FutureOr<self::C::T%>x) → FutureOr<self::C::T%>
+ method baz<generic-covariant-impl X extends FutureOr<self::C::T%>>(generic-covariant-impl FutureOr<self::C::T%>x) → FutureOr<self::C::T%>
return x;
}
class D<T extends core::Object? = dynamic> extends self::C<self::D::T%> {
synthetic constructor •() → self::D<self::D::T%>
: super self::C::•()
;
- method baz<generic-covariant-impl X extends FutureOr<self::D::T%> = FutureOr<self::D::T%>>(generic-covariant-impl FutureOr<self::D::T%>x) → FutureOr<self::D::T%>
+ method baz<generic-covariant-impl X extends FutureOr<self::D::T%>>(generic-covariant-impl FutureOr<self::D::T%>x) → FutureOr<self::D::T%>
return x;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue40600.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue40600.dart.weak.expect
index 8e9c78d..ff89535 100644
--- a/pkg/front_end/testcases/nnbd/issue40600.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue40600.dart.weak.expect
@@ -26,14 +26,14 @@
synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- method baz<generic-covariant-impl X extends FutureOr<self::C::T%> = FutureOr<self::C::T%>>(generic-covariant-impl FutureOr<self::C::T%>x) → FutureOr<self::C::T%>
+ method baz<generic-covariant-impl X extends FutureOr<self::C::T%>>(generic-covariant-impl FutureOr<self::C::T%>x) → FutureOr<self::C::T%>
return x;
}
class D<T extends core::Object? = dynamic> extends self::C<self::D::T%> {
synthetic constructor •() → self::D<self::D::T%>
: super self::C::•()
;
- method baz<generic-covariant-impl X extends FutureOr<self::D::T%> = FutureOr<self::D::T%>>(generic-covariant-impl FutureOr<self::D::T%>x) → FutureOr<self::D::T%>
+ method baz<generic-covariant-impl X extends FutureOr<self::D::T%>>(generic-covariant-impl FutureOr<self::D::T%>x) → FutureOr<self::D::T%>
return x;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue40600.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue40600.dart.weak.outline.expect
index 57db9b1..90d1660 100644
--- a/pkg/front_end/testcases/nnbd/issue40600.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue40600.dart.weak.outline.expect
@@ -20,13 +20,13 @@
class C<T extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::T%>
;
- method baz<generic-covariant-impl X extends FutureOr<self::C::T%> = FutureOr<self::C::T%>>(generic-covariant-impl FutureOr<self::C::T%>x) → FutureOr<self::C::T%>
+ method baz<generic-covariant-impl X extends FutureOr<self::C::T%>>(generic-covariant-impl FutureOr<self::C::T%>x) → FutureOr<self::C::T%>
;
}
class D<T extends core::Object? = dynamic> extends self::C<self::D::T%> {
synthetic constructor •() → self::D<self::D::T%>
;
- method baz<generic-covariant-impl X extends FutureOr<self::D::T%> = FutureOr<self::D::T%>>(generic-covariant-impl FutureOr<self::D::T%>x) → FutureOr<self::D::T%>
+ method baz<generic-covariant-impl X extends FutureOr<self::D::T%>>(generic-covariant-impl FutureOr<self::D::T%>x) → FutureOr<self::D::T%>
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/nnbd/issue40600.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue40600.dart.weak.transformed.expect
index cba6e85..15445a8 100644
--- a/pkg/front_end/testcases/nnbd/issue40600.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue40600.dart.weak.transformed.expect
@@ -26,14 +26,14 @@
synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- method baz<generic-covariant-impl X extends FutureOr<self::C::T%> = FutureOr<self::C::T%>>(generic-covariant-impl FutureOr<self::C::T%>x) → FutureOr<self::C::T%>
+ method baz<generic-covariant-impl X extends FutureOr<self::C::T%>>(generic-covariant-impl FutureOr<self::C::T%>x) → FutureOr<self::C::T%>
return x;
}
class D<T extends core::Object? = dynamic> extends self::C<self::D::T%> {
synthetic constructor •() → self::D<self::D::T%>
: super self::C::•()
;
- method baz<generic-covariant-impl X extends FutureOr<self::D::T%> = FutureOr<self::D::T%>>(generic-covariant-impl FutureOr<self::D::T%>x) → FutureOr<self::D::T%>
+ method baz<generic-covariant-impl X extends FutureOr<self::D::T%>>(generic-covariant-impl FutureOr<self::D::T%>x) → FutureOr<self::D::T%>
return x;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue41415.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue41415.dart.strong.expect
index 8a8d3f2..818e367a 100644
--- a/pkg/front_end/testcases/nnbd/issue41415.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue41415.dart.strong.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
static method main() → dynamic {}
-static method test<X extends Null = Null, Y extends Never? = Never?, Z extends Never = Never>() → dynamic {
+static method test<X extends Null, Y extends Never?, Z extends Never>() → dynamic {
(Null) → core::int f = (core::Object? x) → core::int => 1;
(Never) → core::int g = (core::Object? x) → core::int => 1;
(Never?) → core::int h = (core::Object? x) → core::int => 1;
diff --git a/pkg/front_end/testcases/nnbd/issue41415.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41415.dart.strong.transformed.expect
index 8a8d3f2..818e367a 100644
--- a/pkg/front_end/testcases/nnbd/issue41415.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41415.dart.strong.transformed.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
static method main() → dynamic {}
-static method test<X extends Null = Null, Y extends Never? = Never?, Z extends Never = Never>() → dynamic {
+static method test<X extends Null, Y extends Never?, Z extends Never>() → dynamic {
(Null) → core::int f = (core::Object? x) → core::int => 1;
(Never) → core::int g = (core::Object? x) → core::int => 1;
(Never?) → core::int h = (core::Object? x) → core::int => 1;
diff --git a/pkg/front_end/testcases/nnbd/issue41415.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue41415.dart.weak.expect
index 8a8d3f2..818e367a 100644
--- a/pkg/front_end/testcases/nnbd/issue41415.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue41415.dart.weak.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
static method main() → dynamic {}
-static method test<X extends Null = Null, Y extends Never? = Never?, Z extends Never = Never>() → dynamic {
+static method test<X extends Null, Y extends Never?, Z extends Never>() → dynamic {
(Null) → core::int f = (core::Object? x) → core::int => 1;
(Never) → core::int g = (core::Object? x) → core::int => 1;
(Never?) → core::int h = (core::Object? x) → core::int => 1;
diff --git a/pkg/front_end/testcases/nnbd/issue41415.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue41415.dart.weak.outline.expect
index f683084..276ac6a 100644
--- a/pkg/front_end/testcases/nnbd/issue41415.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue41415.dart.weak.outline.expect
@@ -3,5 +3,5 @@
static method main() → dynamic
;
-static method test<X extends Null = Null, Y extends Never? = Never?, Z extends Never = Never>() → dynamic
+static method test<X extends Null, Y extends Never?, Z extends Never>() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/issue41415.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41415.dart.weak.transformed.expect
index 8a8d3f2..818e367a 100644
--- a/pkg/front_end/testcases/nnbd/issue41415.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41415.dart.weak.transformed.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
static method main() → dynamic {}
-static method test<X extends Null = Null, Y extends Never? = Never?, Z extends Never = Never>() → dynamic {
+static method test<X extends Null, Y extends Never?, Z extends Never>() → dynamic {
(Null) → core::int f = (core::Object? x) → core::int => 1;
(Never) → core::int g = (core::Object? x) → core::int => 1;
(Never?) → core::int h = (core::Object? x) → core::int => 1;
diff --git a/pkg/front_end/testcases/nnbd/issue41697.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue41697.dart.strong.expect
index 2094805..f04b2c9 100644
--- a/pkg/front_end/testcases/nnbd/issue41697.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue41697.dart.strong.expect
@@ -30,26 +30,26 @@
;
}
static method test1(self::C<core::num> c) → dynamic {
- <S extends core::num = core::num>(S) → core::num f1 = c.{self::C::field1} = <S extends core::num = core::num>(S s) → core::num {
+ <S extends core::num>(S) → core::num f1 = c.{self::C::field1} = <S extends core::num>(S s) → core::num {
return s.{core::num::+}(1);
};
- <S extends FutureOr<core::num> = FutureOr<core::num>>(S, FutureOr<core::num>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num> = FutureOr<core::num>>(S s, FutureOr<core::num>t) → asy::Future<core::num> async {
+ <S extends FutureOr<core::num>>(S, FutureOr<core::num>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num>>(S s, FutureOr<core::num>t) → asy::Future<core::num> async {
return (await t).{core::num::+}(1);
};
}
static method test2(self::C<core::num?> c) → dynamic {
- <S extends core::num? = core::num?>(S%) → core::num f1 = c.{self::C::field1} = <S extends core::num? = core::num?>(S% s) → core::num {
+ <S extends core::num?>(S%) → core::num f1 = c.{self::C::field1} = <S extends core::num?>(S% s) → core::num {
return let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697.dart:33:14: Error: Operator '+' cannot be called on 'S' because it is potentially null.
return s + 1; // error
^" in s.{core::num::+}(1);
};
- <S extends FutureOr<core::num?> = FutureOr<core::num?>>(S%, FutureOr<core::num?>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num?> = FutureOr<core::num?>>(S% s, FutureOr<core::num?>t) → asy::Future<core::num> async {
+ <S extends FutureOr<core::num?>>(S%, FutureOr<core::num?>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num?>>(S% s, FutureOr<core::num?>t) → asy::Future<core::num> async {
return let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697.dart:36:22: Error: Operator '+' cannot be called on 'num?' because it is potentially null.
return (await t) + 1; // error
^" in (await t).{core::num::+}(1);
};
}
-static method test3<S extends core::num? = core::num?>(self::test3::S% s) → dynamic
+static method test3<S extends core::num?>(self::test3::S% s) → dynamic
return let final Never #t3 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697.dart:40:33: Error: Operator '+' cannot be called on 'S' because it is potentially null.
test3<S extends num?>(S s) => s + 1; // error
^" in s.{core::num::+}(1);
diff --git a/pkg/front_end/testcases/nnbd/issue41697.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41697.dart.strong.transformed.expect
index 8a37343..7d2ec63 100644
--- a/pkg/front_end/testcases/nnbd/issue41697.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41697.dart.strong.transformed.expect
@@ -31,10 +31,10 @@
;
}
static method test1(self::C<core::num> c) → dynamic {
- <S extends core::num = core::num>(S) → core::num f1 = c.{self::C::field1} = <S extends core::num = core::num>(S s) → core::num {
+ <S extends core::num>(S) → core::num f1 = c.{self::C::field1} = <S extends core::num>(S s) → core::num {
return s.{core::num::+}(1);
};
- <S extends FutureOr<core::num> = FutureOr<core::num>>(S, FutureOr<core::num>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num> = FutureOr<core::num>>(S s, FutureOr<core::num>t) → asy::Future<core::num> /* originally async */ {
+ <S extends FutureOr<core::num>>(S, FutureOr<core::num>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num>>(S s, FutureOr<core::num>t) → asy::Future<core::num> /* originally async */ {
final asy::_Future<core::num> :async_future = new asy::_Future::•<core::num>();
core::bool* :is_sync = false;
FutureOr<core::num>? :return_value;
@@ -65,12 +65,12 @@
};
}
static method test2(self::C<core::num?> c) → dynamic {
- <S extends core::num? = core::num?>(S%) → core::num f1 = c.{self::C::field1} = <S extends core::num? = core::num?>(S% s) → core::num {
+ <S extends core::num?>(S%) → core::num f1 = c.{self::C::field1} = <S extends core::num?>(S% s) → core::num {
return let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697.dart:33:14: Error: Operator '+' cannot be called on 'S' because it is potentially null.
return s + 1; // error
^" in s.{core::num::+}(1);
};
- <S extends FutureOr<core::num?> = FutureOr<core::num?>>(S%, FutureOr<core::num?>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num?> = FutureOr<core::num?>>(S% s, FutureOr<core::num?>t) → asy::Future<core::num> /* originally async */ {
+ <S extends FutureOr<core::num?>>(S%, FutureOr<core::num?>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num?>>(S% s, FutureOr<core::num?>t) → asy::Future<core::num> /* originally async */ {
final asy::_Future<core::num> :async_future = new asy::_Future::•<core::num>();
core::bool* :is_sync = false;
FutureOr<core::num>? :return_value;
@@ -103,7 +103,7 @@
return :async_future;
};
}
-static method test3<S extends core::num? = core::num?>(self::test3::S% s) → dynamic
+static method test3<S extends core::num?>(self::test3::S% s) → dynamic
return let final Never #t5 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697.dart:40:33: Error: Operator '+' cannot be called on 'S' because it is potentially null.
test3<S extends num?>(S s) => s + 1; // error
^" in s.{core::num::+}(1);
diff --git a/pkg/front_end/testcases/nnbd/issue41697.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue41697.dart.weak.expect
index 2094805..f04b2c9 100644
--- a/pkg/front_end/testcases/nnbd/issue41697.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue41697.dart.weak.expect
@@ -30,26 +30,26 @@
;
}
static method test1(self::C<core::num> c) → dynamic {
- <S extends core::num = core::num>(S) → core::num f1 = c.{self::C::field1} = <S extends core::num = core::num>(S s) → core::num {
+ <S extends core::num>(S) → core::num f1 = c.{self::C::field1} = <S extends core::num>(S s) → core::num {
return s.{core::num::+}(1);
};
- <S extends FutureOr<core::num> = FutureOr<core::num>>(S, FutureOr<core::num>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num> = FutureOr<core::num>>(S s, FutureOr<core::num>t) → asy::Future<core::num> async {
+ <S extends FutureOr<core::num>>(S, FutureOr<core::num>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num>>(S s, FutureOr<core::num>t) → asy::Future<core::num> async {
return (await t).{core::num::+}(1);
};
}
static method test2(self::C<core::num?> c) → dynamic {
- <S extends core::num? = core::num?>(S%) → core::num f1 = c.{self::C::field1} = <S extends core::num? = core::num?>(S% s) → core::num {
+ <S extends core::num?>(S%) → core::num f1 = c.{self::C::field1} = <S extends core::num?>(S% s) → core::num {
return let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697.dart:33:14: Error: Operator '+' cannot be called on 'S' because it is potentially null.
return s + 1; // error
^" in s.{core::num::+}(1);
};
- <S extends FutureOr<core::num?> = FutureOr<core::num?>>(S%, FutureOr<core::num?>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num?> = FutureOr<core::num?>>(S% s, FutureOr<core::num?>t) → asy::Future<core::num> async {
+ <S extends FutureOr<core::num?>>(S%, FutureOr<core::num?>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num?>>(S% s, FutureOr<core::num?>t) → asy::Future<core::num> async {
return let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697.dart:36:22: Error: Operator '+' cannot be called on 'num?' because it is potentially null.
return (await t) + 1; // error
^" in (await t).{core::num::+}(1);
};
}
-static method test3<S extends core::num? = core::num?>(self::test3::S% s) → dynamic
+static method test3<S extends core::num?>(self::test3::S% s) → dynamic
return let final Never #t3 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697.dart:40:33: Error: Operator '+' cannot be called on 'S' because it is potentially null.
test3<S extends num?>(S s) => s + 1; // error
^" in s.{core::num::+}(1);
diff --git a/pkg/front_end/testcases/nnbd/issue41697.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue41697.dart.weak.outline.expect
index 424dea6..97c9f60 100644
--- a/pkg/front_end/testcases/nnbd/issue41697.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue41697.dart.weak.outline.expect
@@ -16,7 +16,7 @@
;
static method test2(self::C<core::num?> c) → dynamic
;
-static method test3<S extends core::num? = core::num?>(self::test3::S% s) → dynamic
+static method test3<S extends core::num?>(self::test3::S% s) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/issue41697.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41697.dart.weak.transformed.expect
index 8a37343..7d2ec63 100644
--- a/pkg/front_end/testcases/nnbd/issue41697.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41697.dart.weak.transformed.expect
@@ -31,10 +31,10 @@
;
}
static method test1(self::C<core::num> c) → dynamic {
- <S extends core::num = core::num>(S) → core::num f1 = c.{self::C::field1} = <S extends core::num = core::num>(S s) → core::num {
+ <S extends core::num>(S) → core::num f1 = c.{self::C::field1} = <S extends core::num>(S s) → core::num {
return s.{core::num::+}(1);
};
- <S extends FutureOr<core::num> = FutureOr<core::num>>(S, FutureOr<core::num>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num> = FutureOr<core::num>>(S s, FutureOr<core::num>t) → asy::Future<core::num> /* originally async */ {
+ <S extends FutureOr<core::num>>(S, FutureOr<core::num>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num>>(S s, FutureOr<core::num>t) → asy::Future<core::num> /* originally async */ {
final asy::_Future<core::num> :async_future = new asy::_Future::•<core::num>();
core::bool* :is_sync = false;
FutureOr<core::num>? :return_value;
@@ -65,12 +65,12 @@
};
}
static method test2(self::C<core::num?> c) → dynamic {
- <S extends core::num? = core::num?>(S%) → core::num f1 = c.{self::C::field1} = <S extends core::num? = core::num?>(S% s) → core::num {
+ <S extends core::num?>(S%) → core::num f1 = c.{self::C::field1} = <S extends core::num?>(S% s) → core::num {
return let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697.dart:33:14: Error: Operator '+' cannot be called on 'S' because it is potentially null.
return s + 1; // error
^" in s.{core::num::+}(1);
};
- <S extends FutureOr<core::num?> = FutureOr<core::num?>>(S%, FutureOr<core::num?>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num?> = FutureOr<core::num?>>(S% s, FutureOr<core::num?>t) → asy::Future<core::num> /* originally async */ {
+ <S extends FutureOr<core::num?>>(S%, FutureOr<core::num?>) → asy::Future<core::num> f2 = c.{self::C::field2} = <S extends FutureOr<core::num?>>(S% s, FutureOr<core::num?>t) → asy::Future<core::num> /* originally async */ {
final asy::_Future<core::num> :async_future = new asy::_Future::•<core::num>();
core::bool* :is_sync = false;
FutureOr<core::num>? :return_value;
@@ -103,7 +103,7 @@
return :async_future;
};
}
-static method test3<S extends core::num? = core::num?>(self::test3::S% s) → dynamic
+static method test3<S extends core::num?>(self::test3::S% s) → dynamic
return let final Never #t5 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697.dart:40:33: Error: Operator '+' cannot be called on 'S' because it is potentially null.
test3<S extends num?>(S s) => s + 1; // error
^" in s.{core::num::+}(1);
diff --git a/pkg/front_end/testcases/nnbd/issue41697b.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue41697b.dart.strong.expect
index c4d8855..588916e 100644
--- a/pkg/front_end/testcases/nnbd/issue41697b.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue41697b.dart.strong.expect
@@ -13,18 +13,18 @@
import self as self;
import "dart:core" as core;
-static method test1<S extends core::num = core::num>(self::test1::S s) → dynamic {
+static method test1<S extends core::num>(self::test1::S s) → dynamic {
core::num t = s.{core::num::+}(1);
}
-static method test2<S extends core::num? = core::num?>(self::test2::S% s) → dynamic {
+static method test2<S extends core::num?>(self::test2::S% s) → dynamic {
core::num t = let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697b.dart:10:13: Error: Operator '+' cannot be called on 'S' because it is potentially null.
var t = s + 1; // error
^" in s.{core::num::+}(1);
}
-static method test3<S extends core::int = core::int>(self::test3::S s) → dynamic {
+static method test3<S extends core::int>(self::test3::S s) → dynamic {
core::int t = s.{core::num::+}(1);
}
-static method test4<S extends core::int? = core::int?>(self::test4::S% s) → dynamic {
+static method test4<S extends core::int?>(self::test4::S% s) → dynamic {
core::num t = let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697b.dart:18:13: Error: Operator '+' cannot be called on 'S' because it is potentially null.
var t = s + 1; // error
^" in s.{core::num::+}(1);
diff --git a/pkg/front_end/testcases/nnbd/issue41697b.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41697b.dart.strong.transformed.expect
index c4d8855..588916e 100644
--- a/pkg/front_end/testcases/nnbd/issue41697b.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41697b.dart.strong.transformed.expect
@@ -13,18 +13,18 @@
import self as self;
import "dart:core" as core;
-static method test1<S extends core::num = core::num>(self::test1::S s) → dynamic {
+static method test1<S extends core::num>(self::test1::S s) → dynamic {
core::num t = s.{core::num::+}(1);
}
-static method test2<S extends core::num? = core::num?>(self::test2::S% s) → dynamic {
+static method test2<S extends core::num?>(self::test2::S% s) → dynamic {
core::num t = let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697b.dart:10:13: Error: Operator '+' cannot be called on 'S' because it is potentially null.
var t = s + 1; // error
^" in s.{core::num::+}(1);
}
-static method test3<S extends core::int = core::int>(self::test3::S s) → dynamic {
+static method test3<S extends core::int>(self::test3::S s) → dynamic {
core::int t = s.{core::num::+}(1);
}
-static method test4<S extends core::int? = core::int?>(self::test4::S% s) → dynamic {
+static method test4<S extends core::int?>(self::test4::S% s) → dynamic {
core::num t = let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697b.dart:18:13: Error: Operator '+' cannot be called on 'S' because it is potentially null.
var t = s + 1; // error
^" in s.{core::num::+}(1);
diff --git a/pkg/front_end/testcases/nnbd/issue41697b.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue41697b.dart.weak.expect
index c4d8855..588916e 100644
--- a/pkg/front_end/testcases/nnbd/issue41697b.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue41697b.dart.weak.expect
@@ -13,18 +13,18 @@
import self as self;
import "dart:core" as core;
-static method test1<S extends core::num = core::num>(self::test1::S s) → dynamic {
+static method test1<S extends core::num>(self::test1::S s) → dynamic {
core::num t = s.{core::num::+}(1);
}
-static method test2<S extends core::num? = core::num?>(self::test2::S% s) → dynamic {
+static method test2<S extends core::num?>(self::test2::S% s) → dynamic {
core::num t = let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697b.dart:10:13: Error: Operator '+' cannot be called on 'S' because it is potentially null.
var t = s + 1; // error
^" in s.{core::num::+}(1);
}
-static method test3<S extends core::int = core::int>(self::test3::S s) → dynamic {
+static method test3<S extends core::int>(self::test3::S s) → dynamic {
core::int t = s.{core::num::+}(1);
}
-static method test4<S extends core::int? = core::int?>(self::test4::S% s) → dynamic {
+static method test4<S extends core::int?>(self::test4::S% s) → dynamic {
core::num t = let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697b.dart:18:13: Error: Operator '+' cannot be called on 'S' because it is potentially null.
var t = s + 1; // error
^" in s.{core::num::+}(1);
diff --git a/pkg/front_end/testcases/nnbd/issue41697b.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue41697b.dart.weak.outline.expect
index f86a56b..af3a068 100644
--- a/pkg/front_end/testcases/nnbd/issue41697b.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue41697b.dart.weak.outline.expect
@@ -2,13 +2,13 @@
import self as self;
import "dart:core" as core;
-static method test1<S extends core::num = core::num>(self::test1::S s) → dynamic
+static method test1<S extends core::num>(self::test1::S s) → dynamic
;
-static method test2<S extends core::num? = core::num?>(self::test2::S% s) → dynamic
+static method test2<S extends core::num?>(self::test2::S% s) → dynamic
;
-static method test3<S extends core::int = core::int>(self::test3::S s) → dynamic
+static method test3<S extends core::int>(self::test3::S s) → dynamic
;
-static method test4<S extends core::int? = core::int?>(self::test4::S% s) → dynamic
+static method test4<S extends core::int?>(self::test4::S% s) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/issue41697b.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41697b.dart.weak.transformed.expect
index c4d8855..588916e 100644
--- a/pkg/front_end/testcases/nnbd/issue41697b.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41697b.dart.weak.transformed.expect
@@ -13,18 +13,18 @@
import self as self;
import "dart:core" as core;
-static method test1<S extends core::num = core::num>(self::test1::S s) → dynamic {
+static method test1<S extends core::num>(self::test1::S s) → dynamic {
core::num t = s.{core::num::+}(1);
}
-static method test2<S extends core::num? = core::num?>(self::test2::S% s) → dynamic {
+static method test2<S extends core::num?>(self::test2::S% s) → dynamic {
core::num t = let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697b.dart:10:13: Error: Operator '+' cannot be called on 'S' because it is potentially null.
var t = s + 1; // error
^" in s.{core::num::+}(1);
}
-static method test3<S extends core::int = core::int>(self::test3::S s) → dynamic {
+static method test3<S extends core::int>(self::test3::S s) → dynamic {
core::int t = s.{core::num::+}(1);
}
-static method test4<S extends core::int? = core::int?>(self::test4::S% s) → dynamic {
+static method test4<S extends core::int?>(self::test4::S% s) → dynamic {
core::num t = let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/issue41697b.dart:18:13: Error: Operator '+' cannot be called on 'S' because it is potentially null.
var t = s + 1; // error
^" in s.{core::num::+}(1);
diff --git a/pkg/front_end/testcases/nnbd/issue41952.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue41952.dart.strong.expect
index 01926cd..3952efc 100644
--- a/pkg/front_end/testcases/nnbd/issue41952.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue41952.dart.strong.expect
@@ -3,5 +3,5 @@
import "dart:core" as core;
static method i1<R extends core::Object? = dynamic>() → <S2 extends self::i1::R? = dynamic>() → void
- return <S2 extends self::i1::R? = self::i1::R?>() → void {};
+ return <S2 extends self::i1::R?>() → void {};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue41952.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue41952.dart.strong.transformed.expect
index 01926cd..3952efc 100644
--- a/pkg/front_end/testcases/nnbd/issue41952.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41952.dart.strong.transformed.expect
@@ -3,5 +3,5 @@
import "dart:core" as core;
static method i1<R extends core::Object? = dynamic>() → <S2 extends self::i1::R? = dynamic>() → void
- return <S2 extends self::i1::R? = self::i1::R?>() → void {};
+ return <S2 extends self::i1::R?>() → void {};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue41952.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue41952.dart.weak.expect
index 01926cd..3952efc 100644
--- a/pkg/front_end/testcases/nnbd/issue41952.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue41952.dart.weak.expect
@@ -3,5 +3,5 @@
import "dart:core" as core;
static method i1<R extends core::Object? = dynamic>() → <S2 extends self::i1::R? = dynamic>() → void
- return <S2 extends self::i1::R? = self::i1::R?>() → void {};
+ return <S2 extends self::i1::R?>() → void {};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue41952.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue41952.dart.weak.transformed.expect
index 01926cd..3952efc 100644
--- a/pkg/front_end/testcases/nnbd/issue41952.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue41952.dart.weak.transformed.expect
@@ -3,5 +3,5 @@
import "dart:core" as core;
static method i1<R extends core::Object? = dynamic>() → <S2 extends self::i1::R? = dynamic>() → void
- return <S2 extends self::i1::R? = self::i1::R?>() → void {};
+ return <S2 extends self::i1::R?>() → void {};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue42429.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue42429.dart.strong.expect
index 77cfde0..717c859 100644
--- a/pkg/front_end/testcases/nnbd/issue42429.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue42429.dart.strong.expect
@@ -195,11 +195,11 @@
import self as self;
import "dart:core" as core;
-typedef FArgument<contravariant X extends core::num = core::num> = (X) → dynamic;
-typedef FReturn<X extends core::num = core::num> = () → X;
-typedef FBoth<invariant X extends core::num = core::num> = (X) → X;
-typedef FNowhere<unrelated X extends core::num = core::num> = () → dynamic;
-class A<T extends core::num = core::num> extends core::Object {
+typedef FArgument<contravariant X extends core::num> = (X) → dynamic;
+typedef FReturn<X extends core::num> = () → X;
+typedef FBoth<invariant X extends core::num> = (X) → X;
+typedef FNowhere<unrelated X extends core::num> = () → dynamic;
+class A<T extends core::num> extends core::Object {
synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/issue42429.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue42429.dart.strong.transformed.expect
index 77cfde0..717c859 100644
--- a/pkg/front_end/testcases/nnbd/issue42429.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42429.dart.strong.transformed.expect
@@ -195,11 +195,11 @@
import self as self;
import "dart:core" as core;
-typedef FArgument<contravariant X extends core::num = core::num> = (X) → dynamic;
-typedef FReturn<X extends core::num = core::num> = () → X;
-typedef FBoth<invariant X extends core::num = core::num> = (X) → X;
-typedef FNowhere<unrelated X extends core::num = core::num> = () → dynamic;
-class A<T extends core::num = core::num> extends core::Object {
+typedef FArgument<contravariant X extends core::num> = (X) → dynamic;
+typedef FReturn<X extends core::num> = () → X;
+typedef FBoth<invariant X extends core::num> = (X) → X;
+typedef FNowhere<unrelated X extends core::num> = () → dynamic;
+class A<T extends core::num> extends core::Object {
synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/issue42429.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue42429.dart.weak.expect
index 77cfde0..717c859 100644
--- a/pkg/front_end/testcases/nnbd/issue42429.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue42429.dart.weak.expect
@@ -195,11 +195,11 @@
import self as self;
import "dart:core" as core;
-typedef FArgument<contravariant X extends core::num = core::num> = (X) → dynamic;
-typedef FReturn<X extends core::num = core::num> = () → X;
-typedef FBoth<invariant X extends core::num = core::num> = (X) → X;
-typedef FNowhere<unrelated X extends core::num = core::num> = () → dynamic;
-class A<T extends core::num = core::num> extends core::Object {
+typedef FArgument<contravariant X extends core::num> = (X) → dynamic;
+typedef FReturn<X extends core::num> = () → X;
+typedef FBoth<invariant X extends core::num> = (X) → X;
+typedef FNowhere<unrelated X extends core::num> = () → dynamic;
+class A<T extends core::num> extends core::Object {
synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/issue42429.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue42429.dart.weak.outline.expect
index 2034770..d17a02c 100644
--- a/pkg/front_end/testcases/nnbd/issue42429.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue42429.dart.weak.outline.expect
@@ -2,11 +2,11 @@
import self as self;
import "dart:core" as core;
-typedef FArgument<contravariant X extends core::num = core::num> = (X) → dynamic;
-typedef FReturn<X extends core::num = core::num> = () → X;
-typedef FBoth<invariant X extends core::num = core::num> = (X) → X;
-typedef FNowhere<unrelated X extends core::num = core::num> = () → dynamic;
-class A<T extends core::num = core::num> extends core::Object {
+typedef FArgument<contravariant X extends core::num> = (X) → dynamic;
+typedef FReturn<X extends core::num> = () → X;
+typedef FBoth<invariant X extends core::num> = (X) → X;
+typedef FNowhere<unrelated X extends core::num> = () → dynamic;
+class A<T extends core::num> extends core::Object {
synthetic constructor •() → self::A<self::A::T>
;
}
diff --git a/pkg/front_end/testcases/nnbd/issue42429.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue42429.dart.weak.transformed.expect
index 77cfde0..717c859 100644
--- a/pkg/front_end/testcases/nnbd/issue42429.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42429.dart.weak.transformed.expect
@@ -195,11 +195,11 @@
import self as self;
import "dart:core" as core;
-typedef FArgument<contravariant X extends core::num = core::num> = (X) → dynamic;
-typedef FReturn<X extends core::num = core::num> = () → X;
-typedef FBoth<invariant X extends core::num = core::num> = (X) → X;
-typedef FNowhere<unrelated X extends core::num = core::num> = () → dynamic;
-class A<T extends core::num = core::num> extends core::Object {
+typedef FArgument<contravariant X extends core::num> = (X) → dynamic;
+typedef FReturn<X extends core::num> = () → X;
+typedef FBoth<invariant X extends core::num> = (X) → X;
+typedef FNowhere<unrelated X extends core::num> = () → dynamic;
+class A<T extends core::num> extends core::Object {
synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/issue42433.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue42433.dart.strong.expect
index db8fd3e..2d7f2f7 100644
--- a/pkg/front_end/testcases/nnbd/issue42433.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue42433.dart.strong.expect
@@ -2,13 +2,13 @@
import self as self;
import "dart:core" as core;
-typedef Test<contravariant T extends self::X = self::X> = (T?) → dynamic;
+typedef Test<contravariant T extends self::X> = (T?) → dynamic;
class X extends core::Object {
synthetic constructor •() → self::X
: super core::Object::•()
;
}
-static method checkme<T extends self::X = self::X>(self::checkme::T? t) → dynamic {}
+static method checkme<T extends self::X>(self::checkme::T? t) → dynamic {}
static method main() → dynamic {
(self::X?) → dynamic t2 = #C1<self::X>;
}
diff --git a/pkg/front_end/testcases/nnbd/issue42433.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue42433.dart.strong.transformed.expect
index 87a95fd..bb2b62a 100644
--- a/pkg/front_end/testcases/nnbd/issue42433.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42433.dart.strong.transformed.expect
@@ -2,13 +2,13 @@
import self as self;
import "dart:core" as core;
-typedef Test<contravariant T extends self::X = self::X> = (T?) → dynamic;
+typedef Test<contravariant T extends self::X> = (T?) → dynamic;
class X extends core::Object {
synthetic constructor •() → self::X
: super core::Object::•()
;
}
-static method checkme<T extends self::X = self::X>(self::checkme::T? t) → dynamic {}
+static method checkme<T extends self::X>(self::checkme::T? t) → dynamic {}
static method main() → dynamic {
(self::X?) → dynamic t2 = #C1<self::X>;
}
diff --git a/pkg/front_end/testcases/nnbd/issue42433.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue42433.dart.weak.expect
index db8fd3e..2d7f2f7 100644
--- a/pkg/front_end/testcases/nnbd/issue42433.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue42433.dart.weak.expect
@@ -2,13 +2,13 @@
import self as self;
import "dart:core" as core;
-typedef Test<contravariant T extends self::X = self::X> = (T?) → dynamic;
+typedef Test<contravariant T extends self::X> = (T?) → dynamic;
class X extends core::Object {
synthetic constructor •() → self::X
: super core::Object::•()
;
}
-static method checkme<T extends self::X = self::X>(self::checkme::T? t) → dynamic {}
+static method checkme<T extends self::X>(self::checkme::T? t) → dynamic {}
static method main() → dynamic {
(self::X?) → dynamic t2 = #C1<self::X>;
}
diff --git a/pkg/front_end/testcases/nnbd/issue42433.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue42433.dart.weak.outline.expect
index 3c8de2a..ffd1301 100644
--- a/pkg/front_end/testcases/nnbd/issue42433.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue42433.dart.weak.outline.expect
@@ -2,12 +2,12 @@
import self as self;
import "dart:core" as core;
-typedef Test<contravariant T extends self::X = self::X> = (T?) → dynamic;
+typedef Test<contravariant T extends self::X> = (T?) → dynamic;
class X extends core::Object {
synthetic constructor •() → self::X
;
}
-static method checkme<T extends self::X = self::X>(self::checkme::T? t) → dynamic
+static method checkme<T extends self::X>(self::checkme::T? t) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/issue42433.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue42433.dart.weak.transformed.expect
index 7c42561..4754890 100644
--- a/pkg/front_end/testcases/nnbd/issue42433.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42433.dart.weak.transformed.expect
@@ -2,13 +2,13 @@
import self as self;
import "dart:core" as core;
-typedef Test<contravariant T extends self::X = self::X> = (T?) → dynamic;
+typedef Test<contravariant T extends self::X> = (T?) → dynamic;
class X extends core::Object {
synthetic constructor •() → self::X
: super core::Object::•()
;
}
-static method checkme<T extends self::X = self::X>(self::checkme::T? t) → dynamic {}
+static method checkme<T extends self::X>(self::checkme::T? t) → dynamic {}
static method main() → dynamic {
(self::X?) → dynamic t2 = #C1<self::X>;
}
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.expect
index 5370148..d04548d 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.expect
@@ -182,7 +182,7 @@
#t25.{core::Map::[]=}{Invariant}(n1, n1);
} =>#t25;
}
-static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends Null = Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
+static method test2<N1 extends Never, N2 extends Never?, N3 extends Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
core::List<Never> l1 = block {
final core::List<Never> #t28 = core::List::of<Never>(n1);
} =>#t28;
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect
index 58a9aad..57f8fe1 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.strong.transformed.expect
@@ -199,7 +199,7 @@
#t25.{core::Map::[]=}{Invariant}(n1, n1);
} =>#t25;
}
-static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends Null = Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
+static method test2<N1 extends Never, N2 extends Never?, N3 extends Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
core::List<Never> l1 = block {
final core::List<Never> #t28 = core::List::of<Never>(n1);
} =>#t28;
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.expect
index 79c5408..0eb909b 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.expect
@@ -183,7 +183,7 @@
#t47.{core::Map::[]=}{Invariant}(let final Never #t50 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t51 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
} =>#t47;
}
-static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends Null = Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
+static method test2<N1 extends Never, N2 extends Never?, N3 extends Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
core::List<Never> l1 = block {
final core::List<Never> #t52 = core::List::of<Never>(let final self::test2::N1 #t53 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
} =>#t52;
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.outline.expect
index d2e2ef3..f2ca1af 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.outline.expect
@@ -3,7 +3,7 @@
static method test1(Never n1, Never? n2, Null n3) → dynamic
;
-static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends Null = Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic
+static method test2<N1 extends Never, N2 extends Never?, N3 extends Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect
index 6e5b756..645b792 100644
--- a/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue42758.dart.weak.transformed.expect
@@ -200,7 +200,7 @@
#t47.{core::Map::[]=}{Invariant}(let final Never #t50 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."), let final Never #t51 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
} =>#t47;
}
-static method test2<N1 extends Never = Never, N2 extends Never? = Never?, N3 extends Null = Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
+static method test2<N1 extends Never, N2 extends Never?, N3 extends Null>(self::test2::N1 n1, self::test2::N2% n2, self::test2::N3% n3) → dynamic {
core::List<Never> l1 = block {
final core::List<Never> #t52 = core::List::of<Never>(let final self::test2::N1 #t53 = n1 in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`."));
} =>#t52;
diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.strong.expect
index 39c2e9c..19e109d 100644
--- a/pkg/front_end/testcases/nnbd/issue43211.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43211.dart.strong.expect
@@ -202,20 +202,20 @@
: super core::Object::•()
;
}
-class D<X extends core::num = core::num> extends core::Object {
+class D<X extends core::num> extends core::Object {
synthetic constructor •() → self::D<self::D::X>
: super core::Object::•()
;
}
-class B<X extends self::A<Null>? = self::A<Null>?> extends core::Object implements self::A<self::B::X%> {
+class B<X extends self::A<Null>?> extends core::Object implements self::A<self::B::X%> {
synthetic constructor •() → self::B<self::B::X%>
: super core::Object::•()
;
- method method1<Y extends self::A<Null>? = self::A<Null>?>(self::A<self::B::method1::Y%> a, self::A<self::A<Null>>? b) → void {
+ method method1<Y extends self::A<Null>?>(self::A<self::B::method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::B::method1::Y%>? c;
self::A<self::A<Null>>? d;
}
- method method2<Y extends core::String = core::String>(self::D<self::B::method2::Y> a, self::D<core::String>? b) → void {
+ method method2<Y extends core::String>(self::D<self::B::method2::Y> a, self::D<core::String>? b) → void {
self::D<self::B::method2::Y>? c;
self::D<core::String>? d;
}
@@ -241,7 +241,7 @@
method method2 = self::Extension1|method2;
tearoff method2 = self::Extension1|get#method2;
}
-extension ext2<X extends self::A<Null>? = self::A<Null>?> on self::A<X%> {
+extension ext2<X extends self::A<Null>?> on self::A<X%> {
}
static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::Extension1|method1::Y%>? c;
@@ -249,12 +249,12 @@
}
static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<Null>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
-static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(lowered final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
+static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String>(lowered final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
self::D<self::Extension1|method2::Y>? c;
self::D<core::String>? d;
}
-static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
- return <Y extends core::String = core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
+static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String>(self::D<Y>, self::D<core::String>?) → void
+ return <Y extends core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
static method test() → dynamic {
self::A<Null> a = new self::A::•<Null>();
}
diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.strong.transformed.expect
index 0fcf8ea..48a5a0a 100644
--- a/pkg/front_end/testcases/nnbd/issue43211.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43211.dart.strong.transformed.expect
@@ -202,20 +202,20 @@
: super core::Object::•()
;
}
-class D<X extends core::num = core::num> extends core::Object {
+class D<X extends core::num> extends core::Object {
synthetic constructor •() → self::D<self::D::X>
: super core::Object::•()
;
}
-class B<X extends self::A<Null>? = self::A<Null>?> extends core::Object implements self::A<self::B::X%> {
+class B<X extends self::A<Null>?> extends core::Object implements self::A<self::B::X%> {
synthetic constructor •() → self::B<self::B::X%>
: super core::Object::•()
;
- method method1<Y extends self::A<Null>? = self::A<Null>?>(self::A<self::B::method1::Y%> a, self::A<self::A<Null>>? b) → void {
+ method method1<Y extends self::A<Null>?>(self::A<self::B::method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::B::method1::Y%>? c;
self::A<self::A<Null>>? d;
}
- method method2<Y extends core::String = core::String>(self::D<self::B::method2::Y> a, self::D<core::String>? b) → void {
+ method method2<Y extends core::String>(self::D<self::B::method2::Y> a, self::D<core::String>? b) → void {
self::D<self::B::method2::Y>? c;
self::D<core::String>? d;
}
@@ -241,7 +241,7 @@
method method2 = self::Extension1|method2;
tearoff method2 = self::Extension1|get#method2;
}
-extension ext2<X extends self::A<Null>? = self::A<Null>?> on self::A<X%> {
+extension ext2<X extends self::A<Null>?> on self::A<X%> {
}
static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::Extension1|method1::Y%>? c;
@@ -249,12 +249,12 @@
}
static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<Null>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
-static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(lowered final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
+static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String>(lowered final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
self::D<self::Extension1|method2::Y>? c;
self::D<core::String>? d;
}
-static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
- return <Y extends core::String = core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
+static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String>(self::D<Y>, self::D<core::String>?) → void
+ return <Y extends core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
static method test() → dynamic {
self::A<Null> a = new self::A::•<Null>();
}
diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.expect
index 39c2e9c..19e109d 100644
--- a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.expect
@@ -202,20 +202,20 @@
: super core::Object::•()
;
}
-class D<X extends core::num = core::num> extends core::Object {
+class D<X extends core::num> extends core::Object {
synthetic constructor •() → self::D<self::D::X>
: super core::Object::•()
;
}
-class B<X extends self::A<Null>? = self::A<Null>?> extends core::Object implements self::A<self::B::X%> {
+class B<X extends self::A<Null>?> extends core::Object implements self::A<self::B::X%> {
synthetic constructor •() → self::B<self::B::X%>
: super core::Object::•()
;
- method method1<Y extends self::A<Null>? = self::A<Null>?>(self::A<self::B::method1::Y%> a, self::A<self::A<Null>>? b) → void {
+ method method1<Y extends self::A<Null>?>(self::A<self::B::method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::B::method1::Y%>? c;
self::A<self::A<Null>>? d;
}
- method method2<Y extends core::String = core::String>(self::D<self::B::method2::Y> a, self::D<core::String>? b) → void {
+ method method2<Y extends core::String>(self::D<self::B::method2::Y> a, self::D<core::String>? b) → void {
self::D<self::B::method2::Y>? c;
self::D<core::String>? d;
}
@@ -241,7 +241,7 @@
method method2 = self::Extension1|method2;
tearoff method2 = self::Extension1|get#method2;
}
-extension ext2<X extends self::A<Null>? = self::A<Null>?> on self::A<X%> {
+extension ext2<X extends self::A<Null>?> on self::A<X%> {
}
static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::Extension1|method1::Y%>? c;
@@ -249,12 +249,12 @@
}
static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<Null>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
-static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(lowered final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
+static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String>(lowered final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
self::D<self::Extension1|method2::Y>? c;
self::D<core::String>? d;
}
-static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
- return <Y extends core::String = core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
+static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String>(self::D<Y>, self::D<core::String>?) → void
+ return <Y extends core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
static method test() → dynamic {
self::A<Null> a = new self::A::•<Null>();
}
diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.outline.expect
index 02689e0..aef5c33 100644
--- a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.outline.expect
@@ -108,16 +108,16 @@
synthetic constructor •() → self::A<self::A::X%>
;
}
-class D<X extends core::num = core::num> extends core::Object {
+class D<X extends core::num> extends core::Object {
synthetic constructor •() → self::D<self::D::X>
;
}
-class B<X extends self::A<Null>? = self::A<Null>?> extends core::Object implements self::A<self::B::X%> {
+class B<X extends self::A<Null>?> extends core::Object implements self::A<self::B::X%> {
synthetic constructor •() → self::B<self::B::X%>
;
- method method1<Y extends self::A<Null>? = self::A<Null>?>(self::A<self::B::method1::Y%> a, self::A<self::A<Null>>? b) → void
+ method method1<Y extends self::A<Null>?>(self::A<self::B::method1::Y%> a, self::A<self::A<Null>>? b) → void
;
- method method2<Y extends core::String = core::String>(self::D<self::B::method2::Y> a, self::D<core::String>? b) → void
+ method method2<Y extends core::String>(self::D<self::B::method2::Y> a, self::D<core::String>? b) → void
;
}
class C extends core::Object {
@@ -135,16 +135,16 @@
method method2 = self::Extension1|method2;
tearoff method2 = self::Extension1|get#method2;
}
-extension ext2<X extends self::A<Null>? = self::A<Null>?> on self::A<X%> {
+extension ext2<X extends self::A<Null>?> on self::A<X%> {
}
static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void
;
static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<Null>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
-static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(lowered final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void
+static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String>(lowered final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void
;
-static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
- return <Y extends core::String = core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
+static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String>(self::D<Y>, self::D<core::String>?) → void
+ return <Y extends core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
static method test() → dynamic
;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.transformed.expect
index 0fcf8ea..48a5a0a 100644
--- a/pkg/front_end/testcases/nnbd/issue43211.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43211.dart.weak.transformed.expect
@@ -202,20 +202,20 @@
: super core::Object::•()
;
}
-class D<X extends core::num = core::num> extends core::Object {
+class D<X extends core::num> extends core::Object {
synthetic constructor •() → self::D<self::D::X>
: super core::Object::•()
;
}
-class B<X extends self::A<Null>? = self::A<Null>?> extends core::Object implements self::A<self::B::X%> {
+class B<X extends self::A<Null>?> extends core::Object implements self::A<self::B::X%> {
synthetic constructor •() → self::B<self::B::X%>
: super core::Object::•()
;
- method method1<Y extends self::A<Null>? = self::A<Null>?>(self::A<self::B::method1::Y%> a, self::A<self::A<Null>>? b) → void {
+ method method1<Y extends self::A<Null>?>(self::A<self::B::method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::B::method1::Y%>? c;
self::A<self::A<Null>>? d;
}
- method method2<Y extends core::String = core::String>(self::D<self::B::method2::Y> a, self::D<core::String>? b) → void {
+ method method2<Y extends core::String>(self::D<self::B::method2::Y> a, self::D<core::String>? b) → void {
self::D<self::B::method2::Y>? c;
self::D<core::String>? d;
}
@@ -241,7 +241,7 @@
method method2 = self::Extension1|method2;
tearoff method2 = self::Extension1|get#method2;
}
-extension ext2<X extends self::A<Null>? = self::A<Null>?> on self::A<X%> {
+extension ext2<X extends self::A<Null>?> on self::A<X%> {
}
static method Extension1|method1<X extends self::A<self::Extension1|method1::X%>? = self::A<dynamic>?, Y extends self::A<self::Extension1|method1::Y%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|method1::X%> #this, self::A<self::Extension1|method1::Y%> a, self::A<self::A<Null>>? b) → void {
self::A<self::Extension1|method1::Y%>? c;
@@ -249,12 +249,12 @@
}
static method Extension1|get#method1<X extends self::A<self::Extension1|get#method1::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method1::X%> #this) → <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%>, self::A<self::A<Null>>?) → void
return <Y extends self::A<Y%>? = self::A<dynamic>?>(self::A<Y%> a, self::A<self::A<Null>>? b) → void => self::Extension1|method1<self::Extension1|get#method1::X%, Y%>(#this, a, b);
-static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String = core::String>(lowered final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
+static method Extension1|method2<X extends self::A<self::Extension1|method2::X%>? = self::A<dynamic>?, Y extends core::String>(lowered final self::A<self::Extension1|method2::X%> #this, self::D<self::Extension1|method2::Y> a, self::D<core::String>? b) → void {
self::D<self::Extension1|method2::Y>? c;
self::D<core::String>? d;
}
-static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String = core::String>(self::D<Y>, self::D<core::String>?) → void
- return <Y extends core::String = core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
+static method Extension1|get#method2<X extends self::A<self::Extension1|get#method2::X%>? = self::A<dynamic>?>(lowered final self::A<self::Extension1|get#method2::X%> #this) → <Y extends core::String>(self::D<Y>, self::D<core::String>?) → void
+ return <Y extends core::String>(self::D<Y> a, self::D<core::String>? b) → void => self::Extension1|method2<self::Extension1|get#method2::X%, Y>(#this, a, b);
static method test() → dynamic {
self::A<Null> a = new self::A::•<Null>();
}
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.expect
index 3c826d1..a77f5c0 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.expect
@@ -91,7 +91,7 @@
if(self::i.{core::num::>}(0))
#t5.{core::List::addAll}{Invariant}(self::nullableList!);
} =>#t5;
-static method testMap<X extends dynamic = dynamic, Y extends core::Map<core::int, core::String>? = core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String> = core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic {
+static method testMap<X extends dynamic, Y extends core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic {
core::Map<dynamic, dynamic> map2 = block {
final core::Map<dynamic, dynamic> #t6 = <dynamic, dynamic>{};
if(self::i.{core::num::>}(0))
@@ -110,7 +110,7 @@
#t6.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}, #t8.{core::MapEntry::value});
} =>#t6;
}
-static method testIterables<X extends dynamic = dynamic, Y extends core::List<core::int>? = core::List<core::int>?, Z extends core::List<core::int> = core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic {
+static method testIterables<X extends dynamic, Y extends core::List<core::int>?, Z extends core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic {
core::Set<dynamic> set2 = block {
final core::Set<dynamic> #t9 = col::LinkedHashSet::•<dynamic>();
#t9.{core::Set::add}{Invariant}(0);
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect
index afc253c..04e38068 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.strong.transformed.expect
@@ -99,7 +99,7 @@
if(self::i.{core::num::>}(0))
#t5.{core::List::addAll}{Invariant}(self::nullableList!);
} =>#t5;
-static method testMap<X extends dynamic = dynamic, Y extends core::Map<core::int, core::String>? = core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String> = core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic {
+static method testMap<X extends dynamic, Y extends core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic {
core::Map<dynamic, dynamic> map2 = block {
final core::Map<dynamic, dynamic> #t6 = <dynamic, dynamic>{};
if(self::i.{core::num::>}(0))
@@ -126,7 +126,7 @@
}
} =>#t6;
}
-static method testIterables<X extends dynamic = dynamic, Y extends core::List<core::int>? = core::List<core::int>?, Z extends core::List<core::int> = core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic {
+static method testIterables<X extends dynamic, Y extends core::List<core::int>?, Z extends core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic {
core::Set<dynamic> set2 = block {
final core::Set<dynamic> #t9 = new col::_CompactLinkedHashSet::•<dynamic>();
#t9.{core::Set::add}{Invariant}(0);
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.expect
index 3c826d1..a77f5c0 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.expect
@@ -91,7 +91,7 @@
if(self::i.{core::num::>}(0))
#t5.{core::List::addAll}{Invariant}(self::nullableList!);
} =>#t5;
-static method testMap<X extends dynamic = dynamic, Y extends core::Map<core::int, core::String>? = core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String> = core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic {
+static method testMap<X extends dynamic, Y extends core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic {
core::Map<dynamic, dynamic> map2 = block {
final core::Map<dynamic, dynamic> #t6 = <dynamic, dynamic>{};
if(self::i.{core::num::>}(0))
@@ -110,7 +110,7 @@
#t6.{core::Map::[]=}{Invariant}(#t8.{core::MapEntry::key}, #t8.{core::MapEntry::value});
} =>#t6;
}
-static method testIterables<X extends dynamic = dynamic, Y extends core::List<core::int>? = core::List<core::int>?, Z extends core::List<core::int> = core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic {
+static method testIterables<X extends dynamic, Y extends core::List<core::int>?, Z extends core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic {
core::Set<dynamic> set2 = block {
final core::Set<dynamic> #t9 = col::LinkedHashSet::•<dynamic>();
#t9.{core::Set::add}{Invariant}(0);
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.outline.expect
index d008a19..ef444c5 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.outline.expect
@@ -10,9 +10,9 @@
static field core::Map<dynamic, dynamic> map1;
static field core::Set<dynamic> set1;
static field core::List<dynamic> list1;
-static method testMap<X extends dynamic = dynamic, Y extends core::Map<core::int, core::String>? = core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String> = core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic
+static method testMap<X extends dynamic, Y extends core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic
;
-static method testIterables<X extends dynamic = dynamic, Y extends core::List<core::int>? = core::List<core::int>?, Z extends core::List<core::int> = core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic
+static method testIterables<X extends dynamic, Y extends core::List<core::int>?, Z extends core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect
index afc253c..04e38068 100644
--- a/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43256.dart.weak.transformed.expect
@@ -99,7 +99,7 @@
if(self::i.{core::num::>}(0))
#t5.{core::List::addAll}{Invariant}(self::nullableList!);
} =>#t5;
-static method testMap<X extends dynamic = dynamic, Y extends core::Map<core::int, core::String>? = core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String> = core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic {
+static method testMap<X extends dynamic, Y extends core::Map<core::int, core::String>?, Z extends core::Map<core::int, core::String>>(self::testMap::X% x, self::testMap::Y% y, self::testMap::Z z) → dynamic {
core::Map<dynamic, dynamic> map2 = block {
final core::Map<dynamic, dynamic> #t6 = <dynamic, dynamic>{};
if(self::i.{core::num::>}(0))
@@ -126,7 +126,7 @@
}
} =>#t6;
}
-static method testIterables<X extends dynamic = dynamic, Y extends core::List<core::int>? = core::List<core::int>?, Z extends core::List<core::int> = core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic {
+static method testIterables<X extends dynamic, Y extends core::List<core::int>?, Z extends core::List<core::int>>(self::testIterables::X% x, self::testIterables::Y% y, self::testIterables::Z z) → dynamic {
core::Set<dynamic> set2 = block {
final core::Set<dynamic> #t9 = new col::_CompactLinkedHashSet::•<dynamic>();
#t9.{core::Set::add}{Invariant}(0);
diff --git a/pkg/front_end/testcases/nnbd/issue43278.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43278.dart.strong.expect
index 3bfcc52..cd83b1e 100644
--- a/pkg/front_end/testcases/nnbd/issue43278.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43278.dart.strong.expect
@@ -44,7 +44,7 @@
get barExtension = self::Extension|get#barExtension;
set fooExtension = self::Extension|set#fooExtension;
}
-static method test<T extends self::A? = self::A?>(self::A? a, self::test::T% t, dynamic d, core::int x) → dynamic {
+static method test<T extends self::A?>(self::A? a, self::test::T% t, dynamic d, core::int x) → dynamic {
let final self::A? #t1 = a in (let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:13:5: Error: Property 'foo' cannot be accessed on 'A?' because it is potentially null.
- 'A' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
@@ -69,7 +69,7 @@
static method Extension|set#fooExtension(lowered final self::B #this, core::int? value) → void {}
static method Extension|get#barExtension(lowered final self::B #this) → self::B
return new self::B::•();
-static method testExtension<T extends self::B? = self::B?>(self::B? b, self::testExtension::T% t, core::int x) → dynamic {
+static method testExtension<T extends self::B?>(self::B? b, self::testExtension::T% t, core::int x) → dynamic {
let final self::B? #t10 = b in (let final Never #t11 = invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
- 'B' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
diff --git a/pkg/front_end/testcases/nnbd/issue43278.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43278.dart.strong.transformed.expect
index 3bfcc52..cd83b1e 100644
--- a/pkg/front_end/testcases/nnbd/issue43278.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43278.dart.strong.transformed.expect
@@ -44,7 +44,7 @@
get barExtension = self::Extension|get#barExtension;
set fooExtension = self::Extension|set#fooExtension;
}
-static method test<T extends self::A? = self::A?>(self::A? a, self::test::T% t, dynamic d, core::int x) → dynamic {
+static method test<T extends self::A?>(self::A? a, self::test::T% t, dynamic d, core::int x) → dynamic {
let final self::A? #t1 = a in (let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:13:5: Error: Property 'foo' cannot be accessed on 'A?' because it is potentially null.
- 'A' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
@@ -69,7 +69,7 @@
static method Extension|set#fooExtension(lowered final self::B #this, core::int? value) → void {}
static method Extension|get#barExtension(lowered final self::B #this) → self::B
return new self::B::•();
-static method testExtension<T extends self::B? = self::B?>(self::B? b, self::testExtension::T% t, core::int x) → dynamic {
+static method testExtension<T extends self::B?>(self::B? b, self::testExtension::T% t, core::int x) → dynamic {
let final self::B? #t10 = b in (let final Never #t11 = invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
- 'B' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
diff --git a/pkg/front_end/testcases/nnbd/issue43278.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43278.dart.weak.expect
index 3bfcc52..cd83b1e 100644
--- a/pkg/front_end/testcases/nnbd/issue43278.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue43278.dart.weak.expect
@@ -44,7 +44,7 @@
get barExtension = self::Extension|get#barExtension;
set fooExtension = self::Extension|set#fooExtension;
}
-static method test<T extends self::A? = self::A?>(self::A? a, self::test::T% t, dynamic d, core::int x) → dynamic {
+static method test<T extends self::A?>(self::A? a, self::test::T% t, dynamic d, core::int x) → dynamic {
let final self::A? #t1 = a in (let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:13:5: Error: Property 'foo' cannot be accessed on 'A?' because it is potentially null.
- 'A' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
@@ -69,7 +69,7 @@
static method Extension|set#fooExtension(lowered final self::B #this, core::int? value) → void {}
static method Extension|get#barExtension(lowered final self::B #this) → self::B
return new self::B::•();
-static method testExtension<T extends self::B? = self::B?>(self::B? b, self::testExtension::T% t, core::int x) → dynamic {
+static method testExtension<T extends self::B?>(self::B? b, self::testExtension::T% t, core::int x) → dynamic {
let final self::B? #t10 = b in (let final Never #t11 = invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
- 'B' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
diff --git a/pkg/front_end/testcases/nnbd/issue43278.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue43278.dart.weak.outline.expect
index 795331a..cb81d1f 100644
--- a/pkg/front_end/testcases/nnbd/issue43278.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue43278.dart.weak.outline.expect
@@ -17,7 +17,7 @@
get barExtension = self::Extension|get#barExtension;
set fooExtension = self::Extension|set#fooExtension;
}
-static method test<T extends self::A? = self::A?>(self::A? a, self::test::T% t, dynamic d, core::int x) → dynamic
+static method test<T extends self::A?>(self::A? a, self::test::T% t, dynamic d, core::int x) → dynamic
;
static method Extension|get#fooExtension(lowered final self::B #this) → core::int?
;
@@ -25,7 +25,7 @@
;
static method Extension|get#barExtension(lowered final self::B #this) → self::B
;
-static method testExtension<T extends self::B? = self::B?>(self::B? b, self::testExtension::T% t, core::int x) → dynamic
+static method testExtension<T extends self::B?>(self::B? b, self::testExtension::T% t, core::int x) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/issue43278.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43278.dart.weak.transformed.expect
index 3bfcc52..cd83b1e 100644
--- a/pkg/front_end/testcases/nnbd/issue43278.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43278.dart.weak.transformed.expect
@@ -44,7 +44,7 @@
get barExtension = self::Extension|get#barExtension;
set fooExtension = self::Extension|set#fooExtension;
}
-static method test<T extends self::A? = self::A?>(self::A? a, self::test::T% t, dynamic d, core::int x) → dynamic {
+static method test<T extends self::A?>(self::A? a, self::test::T% t, dynamic d, core::int x) → dynamic {
let final self::A? #t1 = a in (let final Never #t2 = invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:13:5: Error: Property 'foo' cannot be accessed on 'A?' because it is potentially null.
- 'A' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
@@ -69,7 +69,7 @@
static method Extension|set#fooExtension(lowered final self::B #this, core::int? value) → void {}
static method Extension|get#barExtension(lowered final self::B #this) → self::B
return new self::B::•();
-static method testExtension<T extends self::B? = self::B?>(self::B? b, self::testExtension::T% t, core::int x) → dynamic {
+static method testExtension<T extends self::B?>(self::B? b, self::testExtension::T% t, core::int x) → dynamic {
let final self::B? #t10 = b in (let final Never #t11 = invalid-expression "pkg/front_end/testcases/nnbd/issue43278.dart:28:5: Error: Property 'fooExtension' cannot be accessed on 'B?' because it is potentially null.
- 'B' is from 'pkg/front_end/testcases/nnbd/issue43278.dart'.
Try accessing using ?. instead.
diff --git a/pkg/front_end/testcases/nnbd/issue43455.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43455.dart.strong.expect
index e6ba91c..9a0b8b5 100644
--- a/pkg/front_end/testcases/nnbd/issue43455.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43455.dart.strong.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
import "dart:collection" as col;
-class C<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object {
+class C<X extends core::Object?, Y extends core::Object> extends core::Object {
synthetic constructor •() → self::C<self::C::X%, self::C::Y>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/issue43455.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43455.dart.strong.transformed.expect
index 47bd5a2..ceddbed 100644
--- a/pkg/front_end/testcases/nnbd/issue43455.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43455.dart.strong.transformed.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
import "dart:collection" as col;
-class C<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object {
+class C<X extends core::Object?, Y extends core::Object> extends core::Object {
synthetic constructor •() → self::C<self::C::X%, self::C::Y>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/issue43455.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43455.dart.weak.expect
index e6ba91c..9a0b8b5 100644
--- a/pkg/front_end/testcases/nnbd/issue43455.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue43455.dart.weak.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
import "dart:collection" as col;
-class C<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object {
+class C<X extends core::Object?, Y extends core::Object> extends core::Object {
synthetic constructor •() → self::C<self::C::X%, self::C::Y>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/issue43455.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue43455.dart.weak.outline.expect
index d9fa31c..dfdf23f 100644
--- a/pkg/front_end/testcases/nnbd/issue43455.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue43455.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class C<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object {
+class C<X extends core::Object?, Y extends core::Object> extends core::Object {
synthetic constructor •() → self::C<self::C::X%, self::C::Y>
;
method test(generic-covariant-impl self::C::X% x, generic-covariant-impl self::C::Y? y) → dynamic
diff --git a/pkg/front_end/testcases/nnbd/issue43455.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43455.dart.weak.transformed.expect
index 47bd5a2..ceddbed 100644
--- a/pkg/front_end/testcases/nnbd/issue43455.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43455.dart.weak.transformed.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
import "dart:collection" as col;
-class C<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object {
+class C<X extends core::Object?, Y extends core::Object> extends core::Object {
synthetic constructor •() → self::C<self::C::X%, self::C::Y>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43495.dart.strong.expect
index 0934075..e5985d6 100644
--- a/pkg/front_end/testcases/nnbd/issue43495.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart.strong.expect
@@ -449,7 +449,7 @@
}
} =>#t98];
}
-static method bar<X extends core::List<core::int>? = core::List<core::int>?, Y extends core::Set<core::int>? = core::Set<core::int>?, Z extends core::Iterable<core::int>? = core::Iterable<core::int>?, W extends core::Map<core::int, core::int>? = core::Map<core::int, core::int>?>(core::bool condition, core::Iterable<dynamic> iterable, self::bar::X% x, self::bar::Y% y, self::bar::Z% z, self::bar::W% w) → dynamic {
+static method bar<X extends core::List<core::int>?, Y extends core::Set<core::int>?, Z extends core::Iterable<core::int>?, W extends core::Map<core::int, core::int>?>(core::bool condition, core::Iterable<dynamic> iterable, self::bar::X% x, self::bar::Y% y, self::bar::Z% z, self::bar::W% w) → dynamic {
return <core::Object>[ block {
final core::Set<core::int> #t101 = col::LinkedHashSet::•<core::int>();
for (final dynamic #t102 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:50:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43495.dart.strong.transformed.expect
index 3162d81..7d89db1 100644
--- a/pkg/front_end/testcases/nnbd/issue43495.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart.strong.transformed.expect
@@ -635,7 +635,7 @@
}
} =>#t98];
}
-static method bar<X extends core::List<core::int>? = core::List<core::int>?, Y extends core::Set<core::int>? = core::Set<core::int>?, Z extends core::Iterable<core::int>? = core::Iterable<core::int>?, W extends core::Map<core::int, core::int>? = core::Map<core::int, core::int>?>(core::bool condition, core::Iterable<dynamic> iterable, self::bar::X% x, self::bar::Y% y, self::bar::Z% z, self::bar::W% w) → dynamic {
+static method bar<X extends core::List<core::int>?, Y extends core::Set<core::int>?, Z extends core::Iterable<core::int>?, W extends core::Map<core::int, core::int>?>(core::bool condition, core::Iterable<dynamic> iterable, self::bar::X% x, self::bar::Y% y, self::bar::Z% z, self::bar::W% w) → dynamic {
return <core::Object>[ block {
final core::Set<core::int> #t101 = new col::_CompactLinkedHashSet::•<core::int>();
{
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43495.dart.weak.expect
index 0934075..e5985d6 100644
--- a/pkg/front_end/testcases/nnbd/issue43495.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart.weak.expect
@@ -449,7 +449,7 @@
}
} =>#t98];
}
-static method bar<X extends core::List<core::int>? = core::List<core::int>?, Y extends core::Set<core::int>? = core::Set<core::int>?, Z extends core::Iterable<core::int>? = core::Iterable<core::int>?, W extends core::Map<core::int, core::int>? = core::Map<core::int, core::int>?>(core::bool condition, core::Iterable<dynamic> iterable, self::bar::X% x, self::bar::Y% y, self::bar::Z% z, self::bar::W% w) → dynamic {
+static method bar<X extends core::List<core::int>?, Y extends core::Set<core::int>?, Z extends core::Iterable<core::int>?, W extends core::Map<core::int, core::int>?>(core::bool condition, core::Iterable<dynamic> iterable, self::bar::X% x, self::bar::Y% y, self::bar::Z% z, self::bar::W% w) → dynamic {
return <core::Object>[ block {
final core::Set<core::int> #t101 = col::LinkedHashSet::•<core::int>();
for (final dynamic #t102 in invalid-expression "pkg/front_end/testcases/nnbd/issue43495.dart:50:9: Error: An expression whose value can be 'null' must be null-checked before it can be dereferenced.
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue43495.dart.weak.outline.expect
index 89dfdbb..3389234 100644
--- a/pkg/front_end/testcases/nnbd/issue43495.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart.weak.outline.expect
@@ -4,7 +4,7 @@
static method foo(core::bool condition, core::Iterable<dynamic> iterable, core::List<core::int>? a, core::Set<core::int>? b, core::Iterable<core::int>? c, core::Map<core::int, core::int>? d) → dynamic
;
-static method bar<X extends core::List<core::int>? = core::List<core::int>?, Y extends core::Set<core::int>? = core::Set<core::int>?, Z extends core::Iterable<core::int>? = core::Iterable<core::int>?, W extends core::Map<core::int, core::int>? = core::Map<core::int, core::int>?>(core::bool condition, core::Iterable<dynamic> iterable, self::bar::X% x, self::bar::Y% y, self::bar::Z% z, self::bar::W% w) → dynamic
+static method bar<X extends core::List<core::int>?, Y extends core::Set<core::int>?, Z extends core::Iterable<core::int>?, W extends core::Map<core::int, core::int>?>(core::bool condition, core::Iterable<dynamic> iterable, self::bar::X% x, self::bar::Y% y, self::bar::Z% z, self::bar::W% w) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/issue43495.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43495.dart.weak.transformed.expect
index 3162d81..7d89db1 100644
--- a/pkg/front_end/testcases/nnbd/issue43495.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43495.dart.weak.transformed.expect
@@ -635,7 +635,7 @@
}
} =>#t98];
}
-static method bar<X extends core::List<core::int>? = core::List<core::int>?, Y extends core::Set<core::int>? = core::Set<core::int>?, Z extends core::Iterable<core::int>? = core::Iterable<core::int>?, W extends core::Map<core::int, core::int>? = core::Map<core::int, core::int>?>(core::bool condition, core::Iterable<dynamic> iterable, self::bar::X% x, self::bar::Y% y, self::bar::Z% z, self::bar::W% w) → dynamic {
+static method bar<X extends core::List<core::int>?, Y extends core::Set<core::int>?, Z extends core::Iterable<core::int>?, W extends core::Map<core::int, core::int>?>(core::bool condition, core::Iterable<dynamic> iterable, self::bar::X% x, self::bar::Y% y, self::bar::Z% z, self::bar::W% w) → dynamic {
return <core::Object>[ block {
final core::Set<core::int> #t101 = new col::_CompactLinkedHashSet::•<core::int>();
{
diff --git a/pkg/front_end/testcases/nnbd/issue43536.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43536.dart.strong.expect
index e22d4b0..de6fdb8 100644
--- a/pkg/front_end/testcases/nnbd/issue43536.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43536.dart.strong.expect
@@ -6,10 +6,10 @@
synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- method foo<generic-covariant-impl E extends self::C::T% = self::C::T%>(core::List<self::C::foo::E%> list) → dynamic {
+ method foo<generic-covariant-impl E extends self::C::T%>(core::List<self::C::foo::E%> list) → dynamic {
core::List<self::C::foo::E%> variable = this.{self::C::method}<self::C::foo::E%>(list);
}
- method method<generic-covariant-impl F extends self::C::T% = self::C::T%>(core::List<self::C::method::F%> list) → core::List<self::C::method::F%>
+ method method<generic-covariant-impl F extends self::C::T%>(core::List<self::C::method::F%> list) → core::List<self::C::method::F%>
return list;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43536.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43536.dart.strong.transformed.expect
index e22d4b0..de6fdb8 100644
--- a/pkg/front_end/testcases/nnbd/issue43536.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43536.dart.strong.transformed.expect
@@ -6,10 +6,10 @@
synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- method foo<generic-covariant-impl E extends self::C::T% = self::C::T%>(core::List<self::C::foo::E%> list) → dynamic {
+ method foo<generic-covariant-impl E extends self::C::T%>(core::List<self::C::foo::E%> list) → dynamic {
core::List<self::C::foo::E%> variable = this.{self::C::method}<self::C::foo::E%>(list);
}
- method method<generic-covariant-impl F extends self::C::T% = self::C::T%>(core::List<self::C::method::F%> list) → core::List<self::C::method::F%>
+ method method<generic-covariant-impl F extends self::C::T%>(core::List<self::C::method::F%> list) → core::List<self::C::method::F%>
return list;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43536.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43536.dart.weak.expect
index e22d4b0..de6fdb8 100644
--- a/pkg/front_end/testcases/nnbd/issue43536.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue43536.dart.weak.expect
@@ -6,10 +6,10 @@
synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- method foo<generic-covariant-impl E extends self::C::T% = self::C::T%>(core::List<self::C::foo::E%> list) → dynamic {
+ method foo<generic-covariant-impl E extends self::C::T%>(core::List<self::C::foo::E%> list) → dynamic {
core::List<self::C::foo::E%> variable = this.{self::C::method}<self::C::foo::E%>(list);
}
- method method<generic-covariant-impl F extends self::C::T% = self::C::T%>(core::List<self::C::method::F%> list) → core::List<self::C::method::F%>
+ method method<generic-covariant-impl F extends self::C::T%>(core::List<self::C::method::F%> list) → core::List<self::C::method::F%>
return list;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43536.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue43536.dart.weak.outline.expect
index 15e7e74..db3198e 100644
--- a/pkg/front_end/testcases/nnbd/issue43536.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue43536.dart.weak.outline.expect
@@ -5,9 +5,9 @@
class C<T extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::T%>
;
- method foo<generic-covariant-impl E extends self::C::T% = self::C::T%>(core::List<self::C::foo::E%> list) → dynamic
+ method foo<generic-covariant-impl E extends self::C::T%>(core::List<self::C::foo::E%> list) → dynamic
;
- method method<generic-covariant-impl F extends self::C::T% = self::C::T%>(core::List<self::C::method::F%> list) → core::List<self::C::method::F%>
+ method method<generic-covariant-impl F extends self::C::T%>(core::List<self::C::method::F%> list) → core::List<self::C::method::F%>
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/nnbd/issue43536.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43536.dart.weak.transformed.expect
index e22d4b0..de6fdb8 100644
--- a/pkg/front_end/testcases/nnbd/issue43536.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43536.dart.weak.transformed.expect
@@ -6,10 +6,10 @@
synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- method foo<generic-covariant-impl E extends self::C::T% = self::C::T%>(core::List<self::C::foo::E%> list) → dynamic {
+ method foo<generic-covariant-impl E extends self::C::T%>(core::List<self::C::foo::E%> list) → dynamic {
core::List<self::C::foo::E%> variable = this.{self::C::method}<self::C::foo::E%>(list);
}
- method method<generic-covariant-impl F extends self::C::T% = self::C::T%>(core::List<self::C::method::F%> list) → core::List<self::C::method::F%>
+ method method<generic-covariant-impl F extends self::C::T%>(core::List<self::C::method::F%> list) → core::List<self::C::method::F%>
return list;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43591.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue43591.dart.strong.expect
index d9bdceb..c09bec5 100644
--- a/pkg/front_end/testcases/nnbd/issue43591.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue43591.dart.strong.expect
@@ -10,7 +10,7 @@
static method method1<S extends core::Object? = dynamic>(self::method1::S% s) → dynamic {
(self::method1::S%) → self::method1::S% f = self::E|get#f<self::method1::S%>(s);
}
-static method method2<S extends dynamic = dynamic>(self::method2::S% s) → dynamic {
+static method method2<S extends dynamic>(self::method2::S% s) → dynamic {
self::throws(() → void => s.f);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43591.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue43591.dart.strong.transformed.expect
index d9bdceb..c09bec5 100644
--- a/pkg/front_end/testcases/nnbd/issue43591.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43591.dart.strong.transformed.expect
@@ -10,7 +10,7 @@
static method method1<S extends core::Object? = dynamic>(self::method1::S% s) → dynamic {
(self::method1::S%) → self::method1::S% f = self::E|get#f<self::method1::S%>(s);
}
-static method method2<S extends dynamic = dynamic>(self::method2::S% s) → dynamic {
+static method method2<S extends dynamic>(self::method2::S% s) → dynamic {
self::throws(() → void => s.f);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43591.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue43591.dart.weak.expect
index d9bdceb..c09bec5 100644
--- a/pkg/front_end/testcases/nnbd/issue43591.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue43591.dart.weak.expect
@@ -10,7 +10,7 @@
static method method1<S extends core::Object? = dynamic>(self::method1::S% s) → dynamic {
(self::method1::S%) → self::method1::S% f = self::E|get#f<self::method1::S%>(s);
}
-static method method2<S extends dynamic = dynamic>(self::method2::S% s) → dynamic {
+static method method2<S extends dynamic>(self::method2::S% s) → dynamic {
self::throws(() → void => s.f);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue43591.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue43591.dart.weak.outline.expect
index f3c723d..9128f85 100644
--- a/pkg/front_end/testcases/nnbd/issue43591.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue43591.dart.weak.outline.expect
@@ -9,7 +9,7 @@
;
static method method1<S extends core::Object? = dynamic>(self::method1::S% s) → dynamic
;
-static method method2<S extends dynamic = dynamic>(self::method2::S% s) → dynamic
+static method method2<S extends dynamic>(self::method2::S% s) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/issue43591.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue43591.dart.weak.transformed.expect
index d9bdceb..c09bec5 100644
--- a/pkg/front_end/testcases/nnbd/issue43591.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue43591.dart.weak.transformed.expect
@@ -10,7 +10,7 @@
static method method1<S extends core::Object? = dynamic>(self::method1::S% s) → dynamic {
(self::method1::S%) → self::method1::S% f = self::E|get#f<self::method1::S%>(s);
}
-static method method2<S extends dynamic = dynamic>(self::method2::S% s) → dynamic {
+static method method2<S extends dynamic>(self::method2::S% s) → dynamic {
self::throws(() → void => s.f);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd/issue44455.dart.strong.expect b/pkg/front_end/testcases/nnbd/issue44455.dart.strong.expect
index 2d1e9e6..d0065b3 100644
--- a/pkg/front_end/testcases/nnbd/issue44455.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/issue44455.dart.strong.expect
@@ -21,8 +21,8 @@
import self as self;
import "dart:core" as core;
-typedef F<Y extends core::num = core::num> = () → Y;
-typedef F2<Y extends core::num = core::num> = () → Y;
+typedef F<Y extends core::num> = () → Y;
+typedef F2<Y extends core::num> = () → Y;
class A<X extends () → self::A::X = () → dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/issue44455.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/issue44455.dart.strong.transformed.expect
index 2d1e9e6..d0065b3 100644
--- a/pkg/front_end/testcases/nnbd/issue44455.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue44455.dart.strong.transformed.expect
@@ -21,8 +21,8 @@
import self as self;
import "dart:core" as core;
-typedef F<Y extends core::num = core::num> = () → Y;
-typedef F2<Y extends core::num = core::num> = () → Y;
+typedef F<Y extends core::num> = () → Y;
+typedef F2<Y extends core::num> = () → Y;
class A<X extends () → self::A::X = () → dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/issue44455.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue44455.dart.weak.expect
index 2d1e9e6..d0065b3 100644
--- a/pkg/front_end/testcases/nnbd/issue44455.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue44455.dart.weak.expect
@@ -21,8 +21,8 @@
import self as self;
import "dart:core" as core;
-typedef F<Y extends core::num = core::num> = () → Y;
-typedef F2<Y extends core::num = core::num> = () → Y;
+typedef F<Y extends core::num> = () → Y;
+typedef F2<Y extends core::num> = () → Y;
class A<X extends () → self::A::X = () → dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/issue44455.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/issue44455.dart.weak.outline.expect
index 6628b32..5fc32cd 100644
--- a/pkg/front_end/testcases/nnbd/issue44455.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/issue44455.dart.weak.outline.expect
@@ -21,8 +21,8 @@
import self as self;
import "dart:core" as core;
-typedef F<Y extends core::num = core::num> = () → Y;
-typedef F2<Y extends core::num = core::num> = () → Y;
+typedef F<Y extends core::num> = () → Y;
+typedef F2<Y extends core::num> = () → Y;
class A<X extends () → self::A::X = () → dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
;
diff --git a/pkg/front_end/testcases/nnbd/issue44455.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue44455.dart.weak.transformed.expect
index 2d1e9e6..d0065b3 100644
--- a/pkg/front_end/testcases/nnbd/issue44455.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue44455.dart.weak.transformed.expect
@@ -21,8 +21,8 @@
import self as self;
import "dart:core" as core;
-typedef F<Y extends core::num = core::num> = () → Y;
-typedef F2<Y extends core::num = core::num> = () → Y;
+typedef F<Y extends core::num> = () → Y;
+typedef F2<Y extends core::num> = () → Y;
class A<X extends () → self::A::X = () → dynamic> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/issue44857.dart.weak.expect b/pkg/front_end/testcases/nnbd/issue44857.dart.weak.expect
index ad063b4..bfb240b 100644
--- a/pkg/front_end/testcases/nnbd/issue44857.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/issue44857.dart.weak.expect
@@ -9,5 +9,5 @@
}
constants {
- #C1 = TypeLiteralConstant((<T extends Never* = Never*>(Never*) →* void) →* Never*)
+ #C1 = TypeLiteralConstant((<T extends Never*>(Never*) →* void) →* Never*)
}
diff --git a/pkg/front_end/testcases/nnbd/issue44857.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/issue44857.dart.weak.transformed.expect
index dd62920..e19c801 100644
--- a/pkg/front_end/testcases/nnbd/issue44857.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/issue44857.dart.weak.transformed.expect
@@ -9,7 +9,7 @@
}
constants {
- #C1 = TypeLiteralConstant((<T extends Never* = Never*>(Never*) →* void) →* Never*)
+ #C1 = TypeLiteralConstant((<T extends Never*>(Never*) →* void) →* Never*)
}
Extra constant evaluation status:
diff --git a/pkg/front_end/testcases/nnbd/language_issue1182.dart.strong.expect b/pkg/front_end/testcases/nnbd/language_issue1182.dart.strong.expect
index 2057990..9ffcc4a 100644
--- a/pkg/front_end/testcases/nnbd/language_issue1182.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/language_issue1182.dart.strong.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class Foo<S extends core::num = core::num> extends core::Object {
+class Foo<S extends core::num> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::S>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/language_issue1182.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/language_issue1182.dart.strong.transformed.expect
index 2057990..9ffcc4a 100644
--- a/pkg/front_end/testcases/nnbd/language_issue1182.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/language_issue1182.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class Foo<S extends core::num = core::num> extends core::Object {
+class Foo<S extends core::num> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::S>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.expect b/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.expect
index 2057990..9ffcc4a 100644
--- a/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class Foo<S extends core::num = core::num> extends core::Object {
+class Foo<S extends core::num> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::S>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.outline.expect
index 3cfc9db..1df50f2 100644
--- a/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class Foo<S extends core::num = core::num> extends core::Object {
+class Foo<S extends core::num> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::S>
;
method test1(generic-covariant-impl self::Foo::S x) → void
diff --git a/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.transformed.expect
index 2057990..9ffcc4a 100644
--- a/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/language_issue1182.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class Foo<S extends core::num = core::num> extends core::Object {
+class Foo<S extends core::num> extends core::Object {
synthetic constructor •() → self::Foo<self::Foo::S>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/list_constructor.dart.strong.expect b/pkg/front_end/testcases/nnbd/list_constructor.dart.strong.expect
index 43662a2..0a42d2b 100644
--- a/pkg/front_end/testcases/nnbd/list_constructor.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/list_constructor.dart.strong.expect
@@ -20,7 +20,7 @@
import self as self;
import "dart:core" as core;
-static method foo<T extends core::Object? = core::Object?>() → dynamic {
+static method foo<T extends core::Object?>() → dynamic {
let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/list_constructor.dart:9:7: Error: Can't use the default List constructor.
Try using List.filled instead.
new List<T>(42);
diff --git a/pkg/front_end/testcases/nnbd/list_constructor.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/list_constructor.dart.strong.transformed.expect
index a585522..540795f 100644
--- a/pkg/front_end/testcases/nnbd/list_constructor.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/list_constructor.dart.strong.transformed.expect
@@ -20,7 +20,7 @@
import self as self;
import "dart:core" as core;
-static method foo<T extends core::Object? = core::Object?>() → dynamic {
+static method foo<T extends core::Object?>() → dynamic {
let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/list_constructor.dart:9:7: Error: Can't use the default List constructor.
Try using List.filled instead.
new List<T>(42);
diff --git a/pkg/front_end/testcases/nnbd/list_constructor.dart.weak.expect b/pkg/front_end/testcases/nnbd/list_constructor.dart.weak.expect
index 43662a2..0a42d2b 100644
--- a/pkg/front_end/testcases/nnbd/list_constructor.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/list_constructor.dart.weak.expect
@@ -20,7 +20,7 @@
import self as self;
import "dart:core" as core;
-static method foo<T extends core::Object? = core::Object?>() → dynamic {
+static method foo<T extends core::Object?>() → dynamic {
let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/list_constructor.dart:9:7: Error: Can't use the default List constructor.
Try using List.filled instead.
new List<T>(42);
diff --git a/pkg/front_end/testcases/nnbd/list_constructor.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/list_constructor.dart.weak.outline.expect
index b622770..174d1e3 100644
--- a/pkg/front_end/testcases/nnbd/list_constructor.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/list_constructor.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-static method foo<T extends core::Object? = core::Object?>() → dynamic
+static method foo<T extends core::Object?>() → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/list_constructor.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/list_constructor.dart.weak.transformed.expect
index a585522..540795f 100644
--- a/pkg/front_end/testcases/nnbd/list_constructor.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/list_constructor.dart.weak.transformed.expect
@@ -20,7 +20,7 @@
import self as self;
import "dart:core" as core;
-static method foo<T extends core::Object? = core::Object?>() → dynamic {
+static method foo<T extends core::Object?>() → dynamic {
let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/list_constructor.dart:9:7: Error: Can't use the default List constructor.
Try using List.filled instead.
new List<T>(42);
diff --git a/pkg/front_end/testcases/nnbd/never_bound.dart.strong.expect b/pkg/front_end/testcases/nnbd/never_bound.dart.strong.expect
index ab8cca2..08602d8 100644
--- a/pkg/front_end/testcases/nnbd/never_bound.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/never_bound.dart.strong.expect
@@ -29,7 +29,7 @@
import self as self;
import "dart:core" as core;
-class GenericNever<T extends Never = Never> extends core::Object {
+class GenericNever<T extends Never> extends core::Object {
synthetic constructor •() → self::GenericNever<self::GenericNever::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/never_bound.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/never_bound.dart.strong.transformed.expect
index ab8cca2..08602d8 100644
--- a/pkg/front_end/testcases/nnbd/never_bound.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/never_bound.dart.strong.transformed.expect
@@ -29,7 +29,7 @@
import self as self;
import "dart:core" as core;
-class GenericNever<T extends Never = Never> extends core::Object {
+class GenericNever<T extends Never> extends core::Object {
synthetic constructor •() → self::GenericNever<self::GenericNever::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/never_bound.dart.weak.expect b/pkg/front_end/testcases/nnbd/never_bound.dart.weak.expect
index ab8cca2..08602d8 100644
--- a/pkg/front_end/testcases/nnbd/never_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/never_bound.dart.weak.expect
@@ -29,7 +29,7 @@
import self as self;
import "dart:core" as core;
-class GenericNever<T extends Never = Never> extends core::Object {
+class GenericNever<T extends Never> extends core::Object {
synthetic constructor •() → self::GenericNever<self::GenericNever::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/never_bound.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/never_bound.dart.weak.outline.expect
index 488d8a3..fce0dc8 100644
--- a/pkg/front_end/testcases/nnbd/never_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/never_bound.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class GenericNever<T extends Never = Never> extends core::Object {
+class GenericNever<T extends Never> extends core::Object {
synthetic constructor •() → self::GenericNever<self::GenericNever::T>
;
method getParamType() → dynamic
diff --git a/pkg/front_end/testcases/nnbd/never_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/never_bound.dart.weak.transformed.expect
index ab8cca2..08602d8 100644
--- a/pkg/front_end/testcases/nnbd/never_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/never_bound.dart.weak.transformed.expect
@@ -29,7 +29,7 @@
import self as self;
import "dart:core" as core;
-class GenericNever<T extends Never = Never> extends core::Object {
+class GenericNever<T extends Never> extends core::Object {
synthetic constructor •() → self::GenericNever<self::GenericNever::T>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.strong.expect b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.strong.expect
index e9ee16a..19a1ec4 100644
--- a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.strong.expect
@@ -69,7 +69,7 @@
: self::A::fieldOfA = fieldOfA, super core::Object::•()
;
}
-class B<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object {
+class B<X extends core::Object?, Y extends core::Object> extends core::Object {
generic-covariant-impl field self::B::X% fieldOfB;
generic-covariant-impl field self::B::Y fieldOfB2;
constructor foo() → self::B<self::B::X%, self::B::Y>
@@ -83,11 +83,11 @@
static field core::int staticFieldOfM = null;
field core::int fieldOfM = null;
}
-abstract class N<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object /*isMixinDeclaration*/ {
+abstract class N<X extends core::Object?, Y extends core::Object> extends core::Object /*isMixinDeclaration*/ {
generic-covariant-impl field self::N::X% fieldOfN = null;
generic-covariant-impl field self::N::Y fieldOfN2 = null;
}
-class C<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object {
+class C<X extends core::Object?, Y extends core::Object> extends core::Object {
static field core::int? staticFieldOfX = null;
static field core::int staticFieldOfXInitialized = 42;
generic-covariant-impl field self::C::X? fieldOfX = null;
@@ -108,7 +108,7 @@
: self::C::fieldOfC10 = fieldOfC10, super core::Object::•()
;
}
-abstract class L<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object /*isMixinDeclaration*/ {
+abstract class L<X extends core::Object?, Y extends core::Object> extends core::Object /*isMixinDeclaration*/ {
static field core::int? staticFieldOfL = null;
static field core::int staticFieldOfLInitialized = 42;
generic-covariant-impl field self::L::X? fieldOfL = null;
diff --git a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.strong.transformed.expect
index e9ee16a..19a1ec4 100644
--- a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.strong.transformed.expect
@@ -69,7 +69,7 @@
: self::A::fieldOfA = fieldOfA, super core::Object::•()
;
}
-class B<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object {
+class B<X extends core::Object?, Y extends core::Object> extends core::Object {
generic-covariant-impl field self::B::X% fieldOfB;
generic-covariant-impl field self::B::Y fieldOfB2;
constructor foo() → self::B<self::B::X%, self::B::Y>
@@ -83,11 +83,11 @@
static field core::int staticFieldOfM = null;
field core::int fieldOfM = null;
}
-abstract class N<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object /*isMixinDeclaration*/ {
+abstract class N<X extends core::Object?, Y extends core::Object> extends core::Object /*isMixinDeclaration*/ {
generic-covariant-impl field self::N::X% fieldOfN = null;
generic-covariant-impl field self::N::Y fieldOfN2 = null;
}
-class C<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object {
+class C<X extends core::Object?, Y extends core::Object> extends core::Object {
static field core::int? staticFieldOfX = null;
static field core::int staticFieldOfXInitialized = 42;
generic-covariant-impl field self::C::X? fieldOfX = null;
@@ -108,7 +108,7 @@
: self::C::fieldOfC10 = fieldOfC10, super core::Object::•()
;
}
-abstract class L<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object /*isMixinDeclaration*/ {
+abstract class L<X extends core::Object?, Y extends core::Object> extends core::Object /*isMixinDeclaration*/ {
static field core::int? staticFieldOfL = null;
static field core::int staticFieldOfLInitialized = 42;
generic-covariant-impl field self::L::X? fieldOfL = null;
diff --git a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.expect b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.expect
index e9ee16a..19a1ec4 100644
--- a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.expect
@@ -69,7 +69,7 @@
: self::A::fieldOfA = fieldOfA, super core::Object::•()
;
}
-class B<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object {
+class B<X extends core::Object?, Y extends core::Object> extends core::Object {
generic-covariant-impl field self::B::X% fieldOfB;
generic-covariant-impl field self::B::Y fieldOfB2;
constructor foo() → self::B<self::B::X%, self::B::Y>
@@ -83,11 +83,11 @@
static field core::int staticFieldOfM = null;
field core::int fieldOfM = null;
}
-abstract class N<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object /*isMixinDeclaration*/ {
+abstract class N<X extends core::Object?, Y extends core::Object> extends core::Object /*isMixinDeclaration*/ {
generic-covariant-impl field self::N::X% fieldOfN = null;
generic-covariant-impl field self::N::Y fieldOfN2 = null;
}
-class C<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object {
+class C<X extends core::Object?, Y extends core::Object> extends core::Object {
static field core::int? staticFieldOfX = null;
static field core::int staticFieldOfXInitialized = 42;
generic-covariant-impl field self::C::X? fieldOfX = null;
@@ -108,7 +108,7 @@
: self::C::fieldOfC10 = fieldOfC10, super core::Object::•()
;
}
-abstract class L<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object /*isMixinDeclaration*/ {
+abstract class L<X extends core::Object?, Y extends core::Object> extends core::Object /*isMixinDeclaration*/ {
static field core::int? staticFieldOfL = null;
static field core::int staticFieldOfLInitialized = 42;
generic-covariant-impl field self::L::X? fieldOfL = null;
diff --git a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.outline.expect
index 03d3614..750e00652 100644
--- a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.outline.expect
@@ -33,7 +33,7 @@
constructor bar(core::int fieldOfA) → self::A
;
}
-class B<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object {
+class B<X extends core::Object?, Y extends core::Object> extends core::Object {
generic-covariant-impl field self::B::X% fieldOfB;
generic-covariant-impl field self::B::Y fieldOfB2;
constructor foo() → self::B<self::B::X%, self::B::Y>
@@ -45,11 +45,11 @@
static field core::int staticFieldOfM;
field core::int fieldOfM;
}
-abstract class N<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object /*isMixinDeclaration*/ {
+abstract class N<X extends core::Object?, Y extends core::Object> extends core::Object /*isMixinDeclaration*/ {
generic-covariant-impl field self::N::X% fieldOfN;
generic-covariant-impl field self::N::Y fieldOfN2;
}
-class C<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object {
+class C<X extends core::Object?, Y extends core::Object> extends core::Object {
static field core::int? staticFieldOfX;
static field core::int staticFieldOfXInitialized;
generic-covariant-impl field self::C::X? fieldOfX;
@@ -68,7 +68,7 @@
constructor bar(core::int fieldOfC10) → self::C<self::C::X%, self::C::Y>
;
}
-abstract class L<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object /*isMixinDeclaration*/ {
+abstract class L<X extends core::Object?, Y extends core::Object> extends core::Object /*isMixinDeclaration*/ {
static field core::int? staticFieldOfL;
static field core::int staticFieldOfLInitialized;
generic-covariant-impl field self::L::X? fieldOfL;
diff --git a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.transformed.expect
index e9ee16a..19a1ec4 100644
--- a/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/non_nullable_field_initialization.dart.weak.transformed.expect
@@ -69,7 +69,7 @@
: self::A::fieldOfA = fieldOfA, super core::Object::•()
;
}
-class B<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object {
+class B<X extends core::Object?, Y extends core::Object> extends core::Object {
generic-covariant-impl field self::B::X% fieldOfB;
generic-covariant-impl field self::B::Y fieldOfB2;
constructor foo() → self::B<self::B::X%, self::B::Y>
@@ -83,11 +83,11 @@
static field core::int staticFieldOfM = null;
field core::int fieldOfM = null;
}
-abstract class N<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object /*isMixinDeclaration*/ {
+abstract class N<X extends core::Object?, Y extends core::Object> extends core::Object /*isMixinDeclaration*/ {
generic-covariant-impl field self::N::X% fieldOfN = null;
generic-covariant-impl field self::N::Y fieldOfN2 = null;
}
-class C<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object {
+class C<X extends core::Object?, Y extends core::Object> extends core::Object {
static field core::int? staticFieldOfX = null;
static field core::int staticFieldOfXInitialized = 42;
generic-covariant-impl field self::C::X? fieldOfX = null;
@@ -108,7 +108,7 @@
: self::C::fieldOfC10 = fieldOfC10, super core::Object::•()
;
}
-abstract class L<X extends core::Object? = core::Object?, Y extends core::Object = core::Object> extends core::Object /*isMixinDeclaration*/ {
+abstract class L<X extends core::Object?, Y extends core::Object> extends core::Object /*isMixinDeclaration*/ {
static field core::int? staticFieldOfL = null;
static field core::int staticFieldOfLInitialized = 42;
generic-covariant-impl field self::L::X? fieldOfL = null;
diff --git a/pkg/front_end/testcases/nnbd/nullable_receiver.dart.strong.expect b/pkg/front_end/testcases/nnbd/nullable_receiver.dart.strong.expect
index 0b89c6b..2c6ff57 100644
--- a/pkg/front_end/testcases/nnbd/nullable_receiver.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_receiver.dart.strong.expect
@@ -116,7 +116,7 @@
void Function()? f3 = a;
^" in a as{TypeError} () →? void;
}
-static method ok<T extends core::Object? = core::Object?>(core::String? s, self::A? a, self::ok::T% t, self::B? b, core::Invocation i) → dynamic {
+static method ok<T extends core::Object?>(core::String? s, self::A? a, self::ok::T% t, self::B? b, core::Invocation i) → dynamic {
s.{core::String::==}(s);
a.{core::Object::==}(a);
t.{core::Object::==}(t);
diff --git a/pkg/front_end/testcases/nnbd/nullable_receiver.dart.weak.expect b/pkg/front_end/testcases/nnbd/nullable_receiver.dart.weak.expect
index 0b89c6b..2c6ff57 100644
--- a/pkg/front_end/testcases/nnbd/nullable_receiver.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_receiver.dart.weak.expect
@@ -116,7 +116,7 @@
void Function()? f3 = a;
^" in a as{TypeError} () →? void;
}
-static method ok<T extends core::Object? = core::Object?>(core::String? s, self::A? a, self::ok::T% t, self::B? b, core::Invocation i) → dynamic {
+static method ok<T extends core::Object?>(core::String? s, self::A? a, self::ok::T% t, self::B? b, core::Invocation i) → dynamic {
s.{core::String::==}(s);
a.{core::Object::==}(a);
t.{core::Object::==}(t);
diff --git a/pkg/front_end/testcases/nnbd/nullable_receiver.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/nullable_receiver.dart.weak.outline.expect
index d88e541e..10a2960 100644
--- a/pkg/front_end/testcases/nnbd/nullable_receiver.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/nullable_receiver.dart.weak.outline.expect
@@ -22,7 +22,7 @@
}
static method error(core::String? s, self::A? a, self::B? b) → dynamic
;
-static method ok<T extends core::Object? = core::Object?>(core::String? s, self::A? a, self::ok::T% t, self::B? b, core::Invocation i) → dynamic
+static method ok<T extends core::Object?>(core::String? s, self::A? a, self::ok::T% t, self::B? b, core::Invocation i) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/numbers.dart.strong.expect b/pkg/front_end/testcases/nnbd/numbers.dart.strong.expect
index c539802..d52aac2 100644
--- a/pkg/front_end/testcases/nnbd/numbers.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/numbers.dart.strong.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-static method add<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic {
+static method add<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic {
core::num n_n = n.{core::num::+}(n);
core::num n_i = n.{core::num::+}(i);
core::double n_d = n.{core::num::+}(d);
@@ -40,7 +40,7 @@
core::double z_y = z.{core::double::+}(y);
core::double z_z = z.{core::double::+}(z);
}
-static method sub<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic {
+static method sub<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic {
core::num n_n = n.{core::num::-}(n);
core::num n_i = n.{core::num::-}(i);
core::double n_d = n.{core::num::-}(d);
@@ -78,7 +78,7 @@
core::double z_y = z.{core::double::-}(y);
core::double z_z = z.{core::double::-}(z);
}
-static method mul<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic {
+static method mul<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic {
core::num n_n = n.{core::num::*}(n);
core::num n_i = n.{core::num::*}(i);
core::double n_d = n.{core::num::*}(d);
@@ -116,7 +116,7 @@
core::double z_y = z.{core::double::*}(y);
core::double z_z = z.{core::double::*}(z);
}
-static method mod<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic {
+static method mod<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic {
core::num n_n = n.{core::num::%}(n);
core::num n_i = n.{core::num::%}(i);
core::double n_d = n.{core::num::%}(d);
@@ -154,7 +154,7 @@
core::double z_y = z.{core::double::%}(y);
core::double z_z = z.{core::double::%}(z);
}
-static method remainder<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic {
+static method remainder<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic {
core::num n_n = n.{core::num::remainder}(n);
core::num n_i = n.{core::num::remainder}(i);
core::double n_d = n.{core::num::remainder}(d);
@@ -192,7 +192,7 @@
core::double z_y = z.{core::double::remainder}(y);
core::double z_z = z.{core::double::remainder}(z);
}
-static method clamp<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic {
+static method clamp<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic {
core::num n_n_n = n.{core::num::clamp}(n, n);
core::num n_i_n = n.{core::num::clamp}(i, n);
core::num n_d_n = n.{core::num::clamp}(d, n);
diff --git a/pkg/front_end/testcases/nnbd/numbers.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/numbers.dart.strong.transformed.expect
index c539802..d52aac2 100644
--- a/pkg/front_end/testcases/nnbd/numbers.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/numbers.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-static method add<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic {
+static method add<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic {
core::num n_n = n.{core::num::+}(n);
core::num n_i = n.{core::num::+}(i);
core::double n_d = n.{core::num::+}(d);
@@ -40,7 +40,7 @@
core::double z_y = z.{core::double::+}(y);
core::double z_z = z.{core::double::+}(z);
}
-static method sub<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic {
+static method sub<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic {
core::num n_n = n.{core::num::-}(n);
core::num n_i = n.{core::num::-}(i);
core::double n_d = n.{core::num::-}(d);
@@ -78,7 +78,7 @@
core::double z_y = z.{core::double::-}(y);
core::double z_z = z.{core::double::-}(z);
}
-static method mul<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic {
+static method mul<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic {
core::num n_n = n.{core::num::*}(n);
core::num n_i = n.{core::num::*}(i);
core::double n_d = n.{core::num::*}(d);
@@ -116,7 +116,7 @@
core::double z_y = z.{core::double::*}(y);
core::double z_z = z.{core::double::*}(z);
}
-static method mod<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic {
+static method mod<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic {
core::num n_n = n.{core::num::%}(n);
core::num n_i = n.{core::num::%}(i);
core::double n_d = n.{core::num::%}(d);
@@ -154,7 +154,7 @@
core::double z_y = z.{core::double::%}(y);
core::double z_z = z.{core::double::%}(z);
}
-static method remainder<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic {
+static method remainder<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic {
core::num n_n = n.{core::num::remainder}(n);
core::num n_i = n.{core::num::remainder}(i);
core::double n_d = n.{core::num::remainder}(d);
@@ -192,7 +192,7 @@
core::double z_y = z.{core::double::remainder}(y);
core::double z_z = z.{core::double::remainder}(z);
}
-static method clamp<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic {
+static method clamp<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic {
core::num n_n_n = n.{core::num::clamp}(n, n);
core::num n_i_n = n.{core::num::clamp}(i, n);
core::num n_d_n = n.{core::num::clamp}(d, n);
diff --git a/pkg/front_end/testcases/nnbd/numbers.dart.weak.expect b/pkg/front_end/testcases/nnbd/numbers.dart.weak.expect
index c539802..d52aac2 100644
--- a/pkg/front_end/testcases/nnbd/numbers.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/numbers.dart.weak.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-static method add<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic {
+static method add<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic {
core::num n_n = n.{core::num::+}(n);
core::num n_i = n.{core::num::+}(i);
core::double n_d = n.{core::num::+}(d);
@@ -40,7 +40,7 @@
core::double z_y = z.{core::double::+}(y);
core::double z_z = z.{core::double::+}(z);
}
-static method sub<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic {
+static method sub<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic {
core::num n_n = n.{core::num::-}(n);
core::num n_i = n.{core::num::-}(i);
core::double n_d = n.{core::num::-}(d);
@@ -78,7 +78,7 @@
core::double z_y = z.{core::double::-}(y);
core::double z_z = z.{core::double::-}(z);
}
-static method mul<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic {
+static method mul<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic {
core::num n_n = n.{core::num::*}(n);
core::num n_i = n.{core::num::*}(i);
core::double n_d = n.{core::num::*}(d);
@@ -116,7 +116,7 @@
core::double z_y = z.{core::double::*}(y);
core::double z_z = z.{core::double::*}(z);
}
-static method mod<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic {
+static method mod<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic {
core::num n_n = n.{core::num::%}(n);
core::num n_i = n.{core::num::%}(i);
core::double n_d = n.{core::num::%}(d);
@@ -154,7 +154,7 @@
core::double z_y = z.{core::double::%}(y);
core::double z_z = z.{core::double::%}(z);
}
-static method remainder<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic {
+static method remainder<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic {
core::num n_n = n.{core::num::remainder}(n);
core::num n_i = n.{core::num::remainder}(i);
core::double n_d = n.{core::num::remainder}(d);
@@ -192,7 +192,7 @@
core::double z_y = z.{core::double::remainder}(y);
core::double z_z = z.{core::double::remainder}(z);
}
-static method clamp<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic {
+static method clamp<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic {
core::num n_n_n = n.{core::num::clamp}(n, n);
core::num n_i_n = n.{core::num::clamp}(i, n);
core::num n_d_n = n.{core::num::clamp}(d, n);
diff --git a/pkg/front_end/testcases/nnbd/numbers.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/numbers.dart.weak.outline.expect
index e9834e0..bfe6473 100644
--- a/pkg/front_end/testcases/nnbd/numbers.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/numbers.dart.weak.outline.expect
@@ -2,17 +2,17 @@
import self as self;
import "dart:core" as core;
-static method add<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic
+static method add<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic
;
-static method sub<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic
+static method sub<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic
;
-static method mul<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic
+static method mul<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic
;
-static method mod<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic
+static method mod<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic
;
-static method remainder<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic
+static method remainder<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic
;
-static method clamp<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic
+static method clamp<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/numbers.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/numbers.dart.weak.transformed.expect
index c539802..d52aac2 100644
--- a/pkg/front_end/testcases/nnbd/numbers.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/numbers.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-static method add<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic {
+static method add<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic {
core::num n_n = n.{core::num::+}(n);
core::num n_i = n.{core::num::+}(i);
core::double n_d = n.{core::num::+}(d);
@@ -40,7 +40,7 @@
core::double z_y = z.{core::double::+}(y);
core::double z_z = z.{core::double::+}(z);
}
-static method sub<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic {
+static method sub<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic {
core::num n_n = n.{core::num::-}(n);
core::num n_i = n.{core::num::-}(i);
core::double n_d = n.{core::num::-}(d);
@@ -78,7 +78,7 @@
core::double z_y = z.{core::double::-}(y);
core::double z_z = z.{core::double::-}(z);
}
-static method mul<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic {
+static method mul<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic {
core::num n_n = n.{core::num::*}(n);
core::num n_i = n.{core::num::*}(i);
core::double n_d = n.{core::num::*}(d);
@@ -116,7 +116,7 @@
core::double z_y = z.{core::double::*}(y);
core::double z_z = z.{core::double::*}(z);
}
-static method mod<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic {
+static method mod<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic {
core::num n_n = n.{core::num::%}(n);
core::num n_i = n.{core::num::%}(i);
core::double n_d = n.{core::num::%}(d);
@@ -154,7 +154,7 @@
core::double z_y = z.{core::double::%}(y);
core::double z_z = z.{core::double::%}(z);
}
-static method remainder<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic {
+static method remainder<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic {
core::num n_n = n.{core::num::remainder}(n);
core::num n_i = n.{core::num::remainder}(i);
core::double n_d = n.{core::num::remainder}(d);
@@ -192,7 +192,7 @@
core::double z_y = z.{core::double::remainder}(y);
core::double z_z = z.{core::double::remainder}(z);
}
-static method clamp<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic {
+static method clamp<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic {
core::num n_n_n = n.{core::num::clamp}(n, n);
core::num n_i_n = n.{core::num::clamp}(i, n);
core::num n_d_n = n.{core::num::clamp}(d, n);
diff --git a/pkg/front_end/testcases/nnbd/numbers_inferred.dart.strong.expect b/pkg/front_end/testcases/nnbd/numbers_inferred.dart.strong.expect
index dd84efc..cdda24f 100644
--- a/pkg/front_end/testcases/nnbd/numbers_inferred.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/numbers_inferred.dart.strong.expect
@@ -551,7 +551,7 @@
static method f<T extends core::Object? = dynamic>() → self::f::T%
return throw "Unsupported";
-static method add<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic {
+static method add<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic {
core::num n_n = n.{core::num::+}(self::f<core::num>());
core::int n_i = let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:10:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n + f();
@@ -633,7 +633,7 @@
Z z_z = z + f();
^" in z.{core::double::+}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method sub<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic {
+static method sub<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic {
core::num n_n = n.{core::num::-}(self::f<core::num>());
core::int n_i = let final Never #t23 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:55:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n - f();
@@ -715,7 +715,7 @@
Z z_z = z - f();
^" in z.{core::double::-}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method mul<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic {
+static method mul<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic {
core::num n_n = n.{core::num::*}(self::f<core::num>());
core::int n_i = let final Never #t45 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:100:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n * f();
@@ -797,7 +797,7 @@
Z z_z = z * f();
^" in z.{core::double::*}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method mod<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic {
+static method mod<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic {
core::num n_n = n.{core::num::%}(self::f<core::num>());
core::int n_i = let final Never #t67 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:145:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n % f();
@@ -879,7 +879,7 @@
Z z_z = z % f();
^" in z.{core::double::%}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method remainder<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic {
+static method remainder<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic {
core::num n_n = n.{core::num::remainder}(self::f<core::num>());
core::int n_i = let final Never #t89 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:190:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n.remainder(f());
@@ -961,7 +961,7 @@
Z z_z = z.remainder(f());
^" in z.{core::double::remainder}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method clamp<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic {
+static method clamp<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic {
core::num n_n = n.{core::num::clamp}(self::f<core::num>(), self::f<core::num>());
core::int n_i = let final Never #t111 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:235:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n.clamp(f(), f());
diff --git a/pkg/front_end/testcases/nnbd/numbers_inferred.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/numbers_inferred.dart.strong.transformed.expect
index dd84efc..cdda24f 100644
--- a/pkg/front_end/testcases/nnbd/numbers_inferred.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/numbers_inferred.dart.strong.transformed.expect
@@ -551,7 +551,7 @@
static method f<T extends core::Object? = dynamic>() → self::f::T%
return throw "Unsupported";
-static method add<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic {
+static method add<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic {
core::num n_n = n.{core::num::+}(self::f<core::num>());
core::int n_i = let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:10:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n + f();
@@ -633,7 +633,7 @@
Z z_z = z + f();
^" in z.{core::double::+}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method sub<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic {
+static method sub<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic {
core::num n_n = n.{core::num::-}(self::f<core::num>());
core::int n_i = let final Never #t23 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:55:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n - f();
@@ -715,7 +715,7 @@
Z z_z = z - f();
^" in z.{core::double::-}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method mul<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic {
+static method mul<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic {
core::num n_n = n.{core::num::*}(self::f<core::num>());
core::int n_i = let final Never #t45 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:100:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n * f();
@@ -797,7 +797,7 @@
Z z_z = z * f();
^" in z.{core::double::*}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method mod<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic {
+static method mod<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic {
core::num n_n = n.{core::num::%}(self::f<core::num>());
core::int n_i = let final Never #t67 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:145:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n % f();
@@ -879,7 +879,7 @@
Z z_z = z % f();
^" in z.{core::double::%}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method remainder<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic {
+static method remainder<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic {
core::num n_n = n.{core::num::remainder}(self::f<core::num>());
core::int n_i = let final Never #t89 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:190:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n.remainder(f());
@@ -961,7 +961,7 @@
Z z_z = z.remainder(f());
^" in z.{core::double::remainder}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method clamp<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic {
+static method clamp<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic {
core::num n_n = n.{core::num::clamp}(self::f<core::num>(), self::f<core::num>());
core::int n_i = let final Never #t111 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:235:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n.clamp(f(), f());
diff --git a/pkg/front_end/testcases/nnbd/numbers_inferred.dart.weak.expect b/pkg/front_end/testcases/nnbd/numbers_inferred.dart.weak.expect
index dd84efc..cdda24f 100644
--- a/pkg/front_end/testcases/nnbd/numbers_inferred.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/numbers_inferred.dart.weak.expect
@@ -551,7 +551,7 @@
static method f<T extends core::Object? = dynamic>() → self::f::T%
return throw "Unsupported";
-static method add<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic {
+static method add<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic {
core::num n_n = n.{core::num::+}(self::f<core::num>());
core::int n_i = let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:10:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n + f();
@@ -633,7 +633,7 @@
Z z_z = z + f();
^" in z.{core::double::+}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method sub<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic {
+static method sub<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic {
core::num n_n = n.{core::num::-}(self::f<core::num>());
core::int n_i = let final Never #t23 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:55:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n - f();
@@ -715,7 +715,7 @@
Z z_z = z - f();
^" in z.{core::double::-}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method mul<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic {
+static method mul<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic {
core::num n_n = n.{core::num::*}(self::f<core::num>());
core::int n_i = let final Never #t45 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:100:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n * f();
@@ -797,7 +797,7 @@
Z z_z = z * f();
^" in z.{core::double::*}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method mod<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic {
+static method mod<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic {
core::num n_n = n.{core::num::%}(self::f<core::num>());
core::int n_i = let final Never #t67 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:145:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n % f();
@@ -879,7 +879,7 @@
Z z_z = z % f();
^" in z.{core::double::%}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method remainder<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic {
+static method remainder<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic {
core::num n_n = n.{core::num::remainder}(self::f<core::num>());
core::int n_i = let final Never #t89 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:190:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n.remainder(f());
@@ -961,7 +961,7 @@
Z z_z = z.remainder(f());
^" in z.{core::double::remainder}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method clamp<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic {
+static method clamp<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic {
core::num n_n = n.{core::num::clamp}(self::f<core::num>(), self::f<core::num>());
core::int n_i = let final Never #t111 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:235:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n.clamp(f(), f());
diff --git a/pkg/front_end/testcases/nnbd/numbers_inferred.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/numbers_inferred.dart.weak.outline.expect
index 8160ab1..f479d6e 100644
--- a/pkg/front_end/testcases/nnbd/numbers_inferred.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/numbers_inferred.dart.weak.outline.expect
@@ -4,17 +4,17 @@
static method f<T extends core::Object? = dynamic>() → self::f::T%
;
-static method add<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic
+static method add<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic
;
-static method sub<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic
+static method sub<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic
;
-static method mul<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic
+static method mul<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic
;
-static method mod<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic
+static method mod<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic
;
-static method remainder<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic
+static method remainder<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic
;
-static method clamp<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic
+static method clamp<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/numbers_inferred.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/numbers_inferred.dart.weak.transformed.expect
index dd84efc..cdda24f 100644
--- a/pkg/front_end/testcases/nnbd/numbers_inferred.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/numbers_inferred.dart.weak.transformed.expect
@@ -551,7 +551,7 @@
static method f<T extends core::Object? = dynamic>() → self::f::T%
return throw "Unsupported";
-static method add<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic {
+static method add<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::add::X x, self::add::Y y, self::add::Z z) → dynamic {
core::num n_n = n.{core::num::+}(self::f<core::num>());
core::int n_i = let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:10:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n + f();
@@ -633,7 +633,7 @@
Z z_z = z + f();
^" in z.{core::double::+}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method sub<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic {
+static method sub<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::sub::X x, self::sub::Y y, self::sub::Z z) → dynamic {
core::num n_n = n.{core::num::-}(self::f<core::num>());
core::int n_i = let final Never #t23 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:55:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n - f();
@@ -715,7 +715,7 @@
Z z_z = z - f();
^" in z.{core::double::-}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method mul<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic {
+static method mul<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mul::X x, self::mul::Y y, self::mul::Z z) → dynamic {
core::num n_n = n.{core::num::*}(self::f<core::num>());
core::int n_i = let final Never #t45 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:100:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n * f();
@@ -797,7 +797,7 @@
Z z_z = z * f();
^" in z.{core::double::*}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method mod<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic {
+static method mod<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::mod::X x, self::mod::Y y, self::mod::Z z) → dynamic {
core::num n_n = n.{core::num::%}(self::f<core::num>());
core::int n_i = let final Never #t67 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:145:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n % f();
@@ -879,7 +879,7 @@
Z z_z = z % f();
^" in z.{core::double::%}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method remainder<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic {
+static method remainder<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::remainder::X x, self::remainder::Y y, self::remainder::Z z) → dynamic {
core::num n_n = n.{core::num::remainder}(self::f<core::num>());
core::int n_i = let final Never #t89 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:190:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n.remainder(f());
@@ -961,7 +961,7 @@
Z z_z = z.remainder(f());
^" in z.{core::double::remainder}(self::f<core::num>()) as{TypeError,ForNonNullableByDefault} Never;
}
-static method clamp<X extends core::num = core::num, Y extends core::int = core::int, Z extends core::double = core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic {
+static method clamp<X extends core::num, Y extends core::int, Z extends core::double>(core::num n, core::int i, core::double d, self::clamp::X x, self::clamp::Y y, self::clamp::Z z) → dynamic {
core::num n_n = n.{core::num::clamp}(self::f<core::num>(), self::f<core::num>());
core::int n_i = let final Never #t111 = invalid-expression "pkg/front_end/testcases/nnbd/numbers_inferred.dart:235:15: Error: A value of type 'num' can't be assigned to a variable of type 'int'.
int n_i = n.clamp(f(), f());
diff --git a/pkg/front_end/testcases/nnbd/override_checks.dart.strong.expect b/pkg/front_end/testcases/nnbd/override_checks.dart.strong.expect
index 6721314..661f38d 100644
--- a/pkg/front_end/testcases/nnbd/override_checks.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/override_checks.dart.strong.expect
@@ -38,7 +38,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::num = core::num> extends core::Object {
+class A<X extends core::num> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
;
@@ -66,7 +66,7 @@
static factory •() → self::C1
let dynamic #redirecting_factory = self::C2::• in let core::int? #typeArg0 = null in invalid-expression;
}
-class C2<X extends core::int = core::int> extends core::Object implements self::C1 {
+class C2<X extends core::int> extends core::Object implements self::C1 {
synthetic constructor •() → self::C2<self::C2::X>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/override_checks.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/override_checks.dart.strong.transformed.expect
index 8c716e6..1ac0b20 100644
--- a/pkg/front_end/testcases/nnbd/override_checks.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/override_checks.dart.strong.transformed.expect
@@ -38,7 +38,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::num = core::num> extends core::Object {
+class A<X extends core::num> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
;
@@ -66,7 +66,7 @@
static factory •() → self::C1
let Never #redirecting_factory = self::C2::• in let core::int? #typeArg0 = null in invalid-expression;
}
-class C2<X extends core::int = core::int> extends core::Object implements self::C1 {
+class C2<X extends core::int> extends core::Object implements self::C1 {
synthetic constructor •() → self::C2<self::C2::X>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/override_checks.dart.weak.expect b/pkg/front_end/testcases/nnbd/override_checks.dart.weak.expect
index 6721314..661f38d 100644
--- a/pkg/front_end/testcases/nnbd/override_checks.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/override_checks.dart.weak.expect
@@ -38,7 +38,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::num = core::num> extends core::Object {
+class A<X extends core::num> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
;
@@ -66,7 +66,7 @@
static factory •() → self::C1
let dynamic #redirecting_factory = self::C2::• in let core::int? #typeArg0 = null in invalid-expression;
}
-class C2<X extends core::int = core::int> extends core::Object implements self::C1 {
+class C2<X extends core::int> extends core::Object implements self::C1 {
synthetic constructor •() → self::C2<self::C2::X>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/override_checks.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/override_checks.dart.weak.outline.expect
index ece5e4e..c5c7f90 100644
--- a/pkg/front_end/testcases/nnbd/override_checks.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/override_checks.dart.weak.outline.expect
@@ -38,7 +38,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::num = core::num> extends core::Object {
+class A<X extends core::num> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
;
}
@@ -66,7 +66,7 @@
static factory •() → self::C1
let dynamic #redirecting_factory = self::C2::• in let core::int? #typeArg0 = null in invalid-expression;
}
-class C2<X extends core::int = core::int> extends core::Object implements self::C1 {
+class C2<X extends core::int> extends core::Object implements self::C1 {
synthetic constructor •() → self::C2<self::C2::X>
;
}
diff --git a/pkg/front_end/testcases/nnbd/override_checks.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/override_checks.dart.weak.transformed.expect
index 8c716e6..1ac0b20 100644
--- a/pkg/front_end/testcases/nnbd/override_checks.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/override_checks.dart.weak.transformed.expect
@@ -38,7 +38,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::num = core::num> extends core::Object {
+class A<X extends core::num> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
;
@@ -66,7 +66,7 @@
static factory •() → self::C1
let Never #redirecting_factory = self::C2::• in let core::int? #typeArg0 = null in invalid-expression;
}
-class C2<X extends core::int = core::int> extends core::Object implements self::C1 {
+class C2<X extends core::int> extends core::Object implements self::C1 {
synthetic constructor •() → self::C2<self::C2::X>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.strong.expect b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.strong.expect
index 32a8f57..631f443 100644
--- a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.strong.expect
@@ -52,7 +52,7 @@
import "dart:_internal";
@#C1
-class Class<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class Class<T extends core::num> extends core::Object /*hasConstConstructor*/ {
final field core::int a;
final field test::Class::T b;
const constructor constConstructor(core::int a, test::Class::T b) → test::Class<test::Class::T>
diff --git a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.strong.transformed.expect
index 32a8f57..631f443 100644
--- a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.strong.transformed.expect
@@ -52,7 +52,7 @@
import "dart:_internal";
@#C1
-class Class<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class Class<T extends core::num> extends core::Object /*hasConstConstructor*/ {
final field core::int a;
final field test::Class::T b;
const constructor constConstructor(core::int a, test::Class::T b) → test::Class<test::Class::T>
diff --git a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.expect b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.expect
index 32a8f57..631f443 100644
--- a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.expect
@@ -52,7 +52,7 @@
import "dart:_internal";
@#C1
-class Class<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class Class<T extends core::num> extends core::Object /*hasConstConstructor*/ {
final field core::int a;
final field test::Class::T b;
const constructor constConstructor(core::int a, test::Class::T b) → test::Class<test::Class::T>
diff --git a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.outline.expect
index f5a5f71..079de64 100644
--- a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.outline.expect
@@ -14,7 +14,7 @@
import "dart:_internal";
@_in::patch
-class Class<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class Class<T extends core::num> extends core::Object /*hasConstConstructor*/ {
final field core::int a;
final field self2::Class::T b;
const constructor constConstructor(core::int a, self2::Class::T b) → self2::Class<self2::Class::T>
diff --git a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.transformed.expect
index 32a8f57..631f443 100644
--- a/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/platform_definite_assignment/main.dart.weak.transformed.expect
@@ -52,7 +52,7 @@
import "dart:_internal";
@#C1
-class Class<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class Class<T extends core::num> extends core::Object /*hasConstConstructor*/ {
final field core::int a;
final field test::Class::T b;
const constructor constConstructor(core::int a, test::Class::T b) → test::Class<test::Class::T>
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.strong.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.strong.expect
index d067529..5612a60 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.strong.expect
@@ -143,7 +143,7 @@
: self::Class::field = value as{ForNonNullableByDefault} self::Class::T%, super core::Object::•()
;
}
-class ClassWithBound<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class ClassWithBound<T extends core::num> extends core::Object /*hasConstConstructor*/ {
final field self::ClassWithBound::T field;
const constructor •() → self::ClassWithBound<self::ClassWithBound::T>
: self::ClassWithBound::field = (#C1) as{ForNonNullableByDefault} self::ClassWithBound::T, super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.strong.transformed.expect
index d067529..5612a60 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.strong.transformed.expect
@@ -143,7 +143,7 @@
: self::Class::field = value as{ForNonNullableByDefault} self::Class::T%, super core::Object::•()
;
}
-class ClassWithBound<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class ClassWithBound<T extends core::num> extends core::Object /*hasConstConstructor*/ {
final field self::ClassWithBound::T field;
const constructor •() → self::ClassWithBound<self::ClassWithBound::T>
: self::ClassWithBound::field = (#C1) as{ForNonNullableByDefault} self::ClassWithBound::T, super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.expect
index 9abe043..ff4ef6e 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.expect
@@ -135,7 +135,7 @@
: self::Class::field = value as{ForNonNullableByDefault} self::Class::T%, super core::Object::•()
;
}
-class ClassWithBound<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class ClassWithBound<T extends core::num> extends core::Object /*hasConstConstructor*/ {
final field self::ClassWithBound::T field;
const constructor •() → self::ClassWithBound<self::ClassWithBound::T>
: self::ClassWithBound::field = (#C1) as{ForNonNullableByDefault} self::ClassWithBound::T, super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.outline.expect
index 391e7e9..b3e41d5 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.outline.expect
@@ -8,7 +8,7 @@
: self::Class::field = value as{ForNonNullableByDefault} self::Class::T%, super core::Object::•()
;
}
-class ClassWithBound<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class ClassWithBound<T extends core::num> extends core::Object /*hasConstConstructor*/ {
final field self::ClassWithBound::T field;
const constructor •() → self::ClassWithBound<self::ClassWithBound::T>
: self::ClassWithBound::field = self::three as{ForNonNullableByDefault} self::ClassWithBound::T, super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.transformed.expect
index 9abe043..ff4ef6e 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_as.dart.weak.transformed.expect
@@ -135,7 +135,7 @@
: self::Class::field = value as{ForNonNullableByDefault} self::Class::T%, super core::Object::•()
;
}
-class ClassWithBound<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class ClassWithBound<T extends core::num> extends core::Object /*hasConstConstructor*/ {
final field self::ClassWithBound::T field;
const constructor •() → self::ClassWithBound<self::ClassWithBound::T>
: self::ClassWithBound::field = (#C1) as{ForNonNullableByDefault} self::ClassWithBound::T, super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.strong.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.strong.expect
index dd71e24..c131260 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.strong.expect
@@ -8,7 +8,7 @@
: self::Class::field = value is{ForNonNullableByDefault} self::Class::T%, super core::Object::•()
;
}
-class ClassWithBound<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class ClassWithBound<T extends core::num> extends core::Object /*hasConstConstructor*/ {
final field core::bool field;
const constructor •() → self::ClassWithBound<self::ClassWithBound::T>
: self::ClassWithBound::field = (#C1) is{ForNonNullableByDefault} self::ClassWithBound::T, super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.strong.transformed.expect
index dd71e24..c131260 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.strong.transformed.expect
@@ -8,7 +8,7 @@
: self::Class::field = value is{ForNonNullableByDefault} self::Class::T%, super core::Object::•()
;
}
-class ClassWithBound<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class ClassWithBound<T extends core::num> extends core::Object /*hasConstConstructor*/ {
final field core::bool field;
const constructor •() → self::ClassWithBound<self::ClassWithBound::T>
: self::ClassWithBound::field = (#C1) is{ForNonNullableByDefault} self::ClassWithBound::T, super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.expect
index da6412f..d959fa2 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.expect
@@ -8,7 +8,7 @@
: self::Class::field = value is{ForNonNullableByDefault} self::Class::T%, super core::Object::•()
;
}
-class ClassWithBound<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class ClassWithBound<T extends core::num> extends core::Object /*hasConstConstructor*/ {
final field core::bool field;
const constructor •() → self::ClassWithBound<self::ClassWithBound::T>
: self::ClassWithBound::field = (#C1) is{ForNonNullableByDefault} self::ClassWithBound::T, super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.outline.expect
index 90a132b..ba55100 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.outline.expect
@@ -8,7 +8,7 @@
: self::Class::field = value is{ForNonNullableByDefault} self::Class::T%, super core::Object::•()
;
}
-class ClassWithBound<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class ClassWithBound<T extends core::num> extends core::Object /*hasConstConstructor*/ {
final field core::bool field;
const constructor •() → self::ClassWithBound<self::ClassWithBound::T>
: self::ClassWithBound::field = self::three is{ForNonNullableByDefault} self::ClassWithBound::T, super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.transformed.expect
index da6412f..d959fa2 100644
--- a/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_constant_type_is.dart.weak.transformed.expect
@@ -8,7 +8,7 @@
: self::Class::field = value is{ForNonNullableByDefault} self::Class::T%, super core::Object::•()
;
}
-class ClassWithBound<T extends core::num = core::num> extends core::Object /*hasConstConstructor*/ {
+class ClassWithBound<T extends core::num> extends core::Object /*hasConstConstructor*/ {
final field core::bool field;
const constructor •() → self::ClassWithBound<self::ClassWithBound::T>
: self::ClassWithBound::field = (#C1) is{ForNonNullableByDefault} self::ClassWithBound::T, super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.strong.expect b/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.strong.expect
index ac1c56b..a39f6c2 100644
--- a/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.strong.expect
@@ -21,7 +21,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object? = core::Object?> extends core::Object {
+class A<T extends core::Object?> extends core::Object {
static field core::int x = null;
static field core::int? y = null;
late static field core::int z;
diff --git a/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.strong.transformed.expect
index ac1c56b..a39f6c2 100644
--- a/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.strong.transformed.expect
@@ -21,7 +21,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object? = core::Object?> extends core::Object {
+class A<T extends core::Object?> extends core::Object {
static field core::int x = null;
static field core::int? y = null;
late static field core::int z;
diff --git a/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.weak.expect b/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.weak.expect
index ac1c56b..a39f6c2 100644
--- a/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.weak.expect
@@ -21,7 +21,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object? = core::Object?> extends core::Object {
+class A<T extends core::Object?> extends core::Object {
static field core::int x = null;
static field core::int? y = null;
late static field core::int z;
diff --git a/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.weak.outline.expect
index 5f5e178..088b4c8 100644
--- a/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.weak.outline.expect
@@ -13,7 +13,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object? = core::Object?> extends core::Object {
+class A<T extends core::Object?> extends core::Object {
static field core::int x;
static field core::int? y;
late static field core::int z;
diff --git a/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.weak.transformed.expect
index ac1c56b..a39f6c2 100644
--- a/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/potentially_non_nullable_field.dart.weak.transformed.expect
@@ -21,7 +21,7 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object? = core::Object?> extends core::Object {
+class A<T extends core::Object?> extends core::Object {
static field core::int x = null;
static field core::int? y = null;
late static field core::int z;
diff --git a/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.strong.expect b/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.strong.expect
index afd873e..7dda588 100644
--- a/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.strong.expect
@@ -2,20 +2,20 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object? = core::Object?, S extends core::Object = core::Object> extends core::Object {
+class A<T extends core::Object?, S extends core::Object> extends core::Object {
synthetic constructor •() → self::A<self::A::T%, self::A::S>
: super core::Object::•()
;
- method hest<generic-covariant-impl X extends self::A::T% = self::A::T%, Y extends core::List<self::A::hest::X%> = core::List<self::A::T%>, Z extends core::List<self::A::hest::X?> = core::List<self::A::T?>>() → dynamic
+ method hest<generic-covariant-impl X extends self::A::T%, Y extends core::List<self::A::hest::X%> = core::List<self::A::T%>, Z extends core::List<self::A::hest::X?> = core::List<self::A::T?>>() → dynamic
return null;
- method fisk<generic-covariant-impl X extends self::A::S = self::A::S, Y extends core::List<self::A::fisk::X> = core::List<self::A::S>, Z extends core::List<self::A::fisk::X?> = core::List<self::A::S?>>() → dynamic
+ method fisk<generic-covariant-impl X extends self::A::S, Y extends core::List<self::A::fisk::X> = core::List<self::A::S>, Z extends core::List<self::A::fisk::X?> = core::List<self::A::S?>>() → dynamic
return null;
- method mus<X extends core::Object? = core::Object?, Y extends core::List<self::A::mus::X%> = core::List<core::Object?>, Z extends core::List<self::A::mus::X?> = core::List<core::Object?>>() → dynamic
+ method mus<X extends core::Object?, Y extends core::List<self::A::mus::X%> = core::List<core::Object?>, Z extends core::List<self::A::mus::X?> = core::List<core::Object?>>() → dynamic
return null;
}
-static method foo<T extends core::Object? = core::Object?, S extends core::List<self::foo::T%> = core::List<core::Object?>>(self::foo::T% t) → dynamic
+static method foo<T extends core::Object?, S extends core::List<self::foo::T%> = core::List<core::Object?>>(self::foo::T% t) → dynamic
return null;
-static method bar<T extends core::Object? = core::Object?, S extends core::List<self::bar::T?> = core::List<core::Object?>>(self::bar::T% t) → dynamic
+static method bar<T extends core::Object?, S extends core::List<self::bar::T?> = core::List<core::Object?>>(self::bar::T% t) → dynamic
return null;
static method baz(core::int? x, core::int y) → dynamic {
self::foo<core::int?, core::List<core::int?>>(x);
diff --git a/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.strong.transformed.expect
index afd873e..7dda588 100644
--- a/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.strong.transformed.expect
@@ -2,20 +2,20 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object? = core::Object?, S extends core::Object = core::Object> extends core::Object {
+class A<T extends core::Object?, S extends core::Object> extends core::Object {
synthetic constructor •() → self::A<self::A::T%, self::A::S>
: super core::Object::•()
;
- method hest<generic-covariant-impl X extends self::A::T% = self::A::T%, Y extends core::List<self::A::hest::X%> = core::List<self::A::T%>, Z extends core::List<self::A::hest::X?> = core::List<self::A::T?>>() → dynamic
+ method hest<generic-covariant-impl X extends self::A::T%, Y extends core::List<self::A::hest::X%> = core::List<self::A::T%>, Z extends core::List<self::A::hest::X?> = core::List<self::A::T?>>() → dynamic
return null;
- method fisk<generic-covariant-impl X extends self::A::S = self::A::S, Y extends core::List<self::A::fisk::X> = core::List<self::A::S>, Z extends core::List<self::A::fisk::X?> = core::List<self::A::S?>>() → dynamic
+ method fisk<generic-covariant-impl X extends self::A::S, Y extends core::List<self::A::fisk::X> = core::List<self::A::S>, Z extends core::List<self::A::fisk::X?> = core::List<self::A::S?>>() → dynamic
return null;
- method mus<X extends core::Object? = core::Object?, Y extends core::List<self::A::mus::X%> = core::List<core::Object?>, Z extends core::List<self::A::mus::X?> = core::List<core::Object?>>() → dynamic
+ method mus<X extends core::Object?, Y extends core::List<self::A::mus::X%> = core::List<core::Object?>, Z extends core::List<self::A::mus::X?> = core::List<core::Object?>>() → dynamic
return null;
}
-static method foo<T extends core::Object? = core::Object?, S extends core::List<self::foo::T%> = core::List<core::Object?>>(self::foo::T% t) → dynamic
+static method foo<T extends core::Object?, S extends core::List<self::foo::T%> = core::List<core::Object?>>(self::foo::T% t) → dynamic
return null;
-static method bar<T extends core::Object? = core::Object?, S extends core::List<self::bar::T?> = core::List<core::Object?>>(self::bar::T% t) → dynamic
+static method bar<T extends core::Object?, S extends core::List<self::bar::T?> = core::List<core::Object?>>(self::bar::T% t) → dynamic
return null;
static method baz(core::int? x, core::int y) → dynamic {
self::foo<core::int?, core::List<core::int?>>(x);
diff --git a/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.weak.expect b/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.weak.expect
index afd873e..7dda588 100644
--- a/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.weak.expect
@@ -2,20 +2,20 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object? = core::Object?, S extends core::Object = core::Object> extends core::Object {
+class A<T extends core::Object?, S extends core::Object> extends core::Object {
synthetic constructor •() → self::A<self::A::T%, self::A::S>
: super core::Object::•()
;
- method hest<generic-covariant-impl X extends self::A::T% = self::A::T%, Y extends core::List<self::A::hest::X%> = core::List<self::A::T%>, Z extends core::List<self::A::hest::X?> = core::List<self::A::T?>>() → dynamic
+ method hest<generic-covariant-impl X extends self::A::T%, Y extends core::List<self::A::hest::X%> = core::List<self::A::T%>, Z extends core::List<self::A::hest::X?> = core::List<self::A::T?>>() → dynamic
return null;
- method fisk<generic-covariant-impl X extends self::A::S = self::A::S, Y extends core::List<self::A::fisk::X> = core::List<self::A::S>, Z extends core::List<self::A::fisk::X?> = core::List<self::A::S?>>() → dynamic
+ method fisk<generic-covariant-impl X extends self::A::S, Y extends core::List<self::A::fisk::X> = core::List<self::A::S>, Z extends core::List<self::A::fisk::X?> = core::List<self::A::S?>>() → dynamic
return null;
- method mus<X extends core::Object? = core::Object?, Y extends core::List<self::A::mus::X%> = core::List<core::Object?>, Z extends core::List<self::A::mus::X?> = core::List<core::Object?>>() → dynamic
+ method mus<X extends core::Object?, Y extends core::List<self::A::mus::X%> = core::List<core::Object?>, Z extends core::List<self::A::mus::X?> = core::List<core::Object?>>() → dynamic
return null;
}
-static method foo<T extends core::Object? = core::Object?, S extends core::List<self::foo::T%> = core::List<core::Object?>>(self::foo::T% t) → dynamic
+static method foo<T extends core::Object?, S extends core::List<self::foo::T%> = core::List<core::Object?>>(self::foo::T% t) → dynamic
return null;
-static method bar<T extends core::Object? = core::Object?, S extends core::List<self::bar::T?> = core::List<core::Object?>>(self::bar::T% t) → dynamic
+static method bar<T extends core::Object?, S extends core::List<self::bar::T?> = core::List<core::Object?>>(self::bar::T% t) → dynamic
return null;
static method baz(core::int? x, core::int y) → dynamic {
self::foo<core::int?, core::List<core::int?>>(x);
diff --git a/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.weak.outline.expect
index afffc19..091ebb6 100644
--- a/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.weak.outline.expect
@@ -2,19 +2,19 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object? = core::Object?, S extends core::Object = core::Object> extends core::Object {
+class A<T extends core::Object?, S extends core::Object> extends core::Object {
synthetic constructor •() → self::A<self::A::T%, self::A::S>
;
- method hest<generic-covariant-impl X extends self::A::T% = self::A::T%, Y extends core::List<self::A::hest::X%> = core::List<self::A::T%>, Z extends core::List<self::A::hest::X?> = core::List<self::A::T?>>() → dynamic
+ method hest<generic-covariant-impl X extends self::A::T%, Y extends core::List<self::A::hest::X%> = core::List<self::A::T%>, Z extends core::List<self::A::hest::X?> = core::List<self::A::T?>>() → dynamic
;
- method fisk<generic-covariant-impl X extends self::A::S = self::A::S, Y extends core::List<self::A::fisk::X> = core::List<self::A::S>, Z extends core::List<self::A::fisk::X?> = core::List<self::A::S?>>() → dynamic
+ method fisk<generic-covariant-impl X extends self::A::S, Y extends core::List<self::A::fisk::X> = core::List<self::A::S>, Z extends core::List<self::A::fisk::X?> = core::List<self::A::S?>>() → dynamic
;
- method mus<X extends core::Object? = core::Object?, Y extends core::List<self::A::mus::X%> = core::List<core::Object?>, Z extends core::List<self::A::mus::X?> = core::List<core::Object?>>() → dynamic
+ method mus<X extends core::Object?, Y extends core::List<self::A::mus::X%> = core::List<core::Object?>, Z extends core::List<self::A::mus::X?> = core::List<core::Object?>>() → dynamic
;
}
-static method foo<T extends core::Object? = core::Object?, S extends core::List<self::foo::T%> = core::List<core::Object?>>(self::foo::T% t) → dynamic
+static method foo<T extends core::Object?, S extends core::List<self::foo::T%> = core::List<core::Object?>>(self::foo::T% t) → dynamic
;
-static method bar<T extends core::Object? = core::Object?, S extends core::List<self::bar::T?> = core::List<core::Object?>>(self::bar::T% t) → dynamic
+static method bar<T extends core::Object?, S extends core::List<self::bar::T?> = core::List<core::Object?>>(self::bar::T% t) → dynamic
;
static method baz(core::int? x, core::int y) → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.weak.transformed.expect
index afd873e..7dda588 100644
--- a/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/substitution_in_inference.dart.weak.transformed.expect
@@ -2,20 +2,20 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object? = core::Object?, S extends core::Object = core::Object> extends core::Object {
+class A<T extends core::Object?, S extends core::Object> extends core::Object {
synthetic constructor •() → self::A<self::A::T%, self::A::S>
: super core::Object::•()
;
- method hest<generic-covariant-impl X extends self::A::T% = self::A::T%, Y extends core::List<self::A::hest::X%> = core::List<self::A::T%>, Z extends core::List<self::A::hest::X?> = core::List<self::A::T?>>() → dynamic
+ method hest<generic-covariant-impl X extends self::A::T%, Y extends core::List<self::A::hest::X%> = core::List<self::A::T%>, Z extends core::List<self::A::hest::X?> = core::List<self::A::T?>>() → dynamic
return null;
- method fisk<generic-covariant-impl X extends self::A::S = self::A::S, Y extends core::List<self::A::fisk::X> = core::List<self::A::S>, Z extends core::List<self::A::fisk::X?> = core::List<self::A::S?>>() → dynamic
+ method fisk<generic-covariant-impl X extends self::A::S, Y extends core::List<self::A::fisk::X> = core::List<self::A::S>, Z extends core::List<self::A::fisk::X?> = core::List<self::A::S?>>() → dynamic
return null;
- method mus<X extends core::Object? = core::Object?, Y extends core::List<self::A::mus::X%> = core::List<core::Object?>, Z extends core::List<self::A::mus::X?> = core::List<core::Object?>>() → dynamic
+ method mus<X extends core::Object?, Y extends core::List<self::A::mus::X%> = core::List<core::Object?>, Z extends core::List<self::A::mus::X?> = core::List<core::Object?>>() → dynamic
return null;
}
-static method foo<T extends core::Object? = core::Object?, S extends core::List<self::foo::T%> = core::List<core::Object?>>(self::foo::T% t) → dynamic
+static method foo<T extends core::Object?, S extends core::List<self::foo::T%> = core::List<core::Object?>>(self::foo::T% t) → dynamic
return null;
-static method bar<T extends core::Object? = core::Object?, S extends core::List<self::bar::T?> = core::List<core::Object?>>(self::bar::T% t) → dynamic
+static method bar<T extends core::Object?, S extends core::List<self::bar::T?> = core::List<core::Object?>>(self::bar::T% t) → dynamic
return null;
static method baz(core::int? x, core::int y) → dynamic {
self::foo<core::int?, core::List<core::int?>>(x);
diff --git a/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.strong.expect b/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.strong.expect
index 98725b8..5537cc3 100644
--- a/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.strong.expect
@@ -533,7 +533,7 @@
: super core::Object::•()
;
}
-class Foo3a<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>> extends core::Object {
+class Foo3a<X extends (self::A<Never>) → self::A<dynamic>> extends core::Object {
synthetic constructor •() → self::Foo3a<self::Foo3a::X>
: super core::Object::•()
;
@@ -543,12 +543,12 @@
: super core::Object::•()
;
}
-class B<X extends core::int = core::int> extends core::Object {
+class B<X extends core::int> extends core::Object {
synthetic constructor •() → self::B<self::B::X>
: super core::Object::•()
;
}
-class Bar3<X extends self::B<core::num> = self::B<core::num>> extends core::Object {
+class Bar3<X extends self::B<core::num>> extends core::Object {
synthetic constructor •() → self::Bar3<self::Bar3::X>
: super core::Object::•()
;
@@ -560,7 +560,7 @@
}
static method foo1a((self::A<Never>) → self::A<dynamic> x) → dynamic {}
static method foo1b((self::A<Never>) → self::A<dynamic> x) → dynamic {}
-static method foo2a<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>>() → dynamic {}
+static method foo2a<X extends (self::A<Never>) → self::A<dynamic>>() → dynamic {}
static method foo2b<X extends (self::A<Never>) → self::A<dynamic> = dynamic>() → dynamic {}
static method foo4a() → (self::A<Never>) → self::A<dynamic>
return throw 42;
@@ -573,7 +573,7 @@
for ((self::A<Never>) → self::A<dynamic> x in <(self::A<Never>) → self::A<dynamic>>[]) {
}
function fooFoo1((self::A<Never>) → self::A<dynamic> x) → Null {}
- function fooFoo2<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>>() → Null {}
+ function fooFoo2<X extends (self::A<Never>) → self::A<dynamic>>() → Null {}
function fooFoo4() → (self::A<Never>) → self::A<dynamic>
return throw 42;
function fooFoo5({required (self::A<Never>) → self::A<dynamic> x = #C1}) → Null {}
@@ -584,7 +584,7 @@
for ((self::A<Never>) → self::A<dynamic> x in <(self::A<Never>) → self::A<dynamic>>[]) {
}
function fooFoo1((self::A<Never>) → self::A<dynamic> x) → Null {}
- function fooFoo2<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>>() → Null {}
+ function fooFoo2<X extends (self::A<Never>) → self::A<dynamic>>() → Null {}
function fooFoo4() → (self::A<Never>) → self::A<dynamic>
return throw 42;
function fooFoo5({required (self::A<Never>) → self::A<dynamic> x = #C1}) → Null {}
@@ -593,7 +593,7 @@
static method foo7a([(self::A<Never>) →? self::A<dynamic> x = #C1]) → dynamic {}
static method foo7b([(self::A<Never>) →? self::A<dynamic> x = #C1]) → dynamic {}
static method bar1(self::B<core::num> x) → dynamic {}
-static method bar2<X extends self::B<core::num> = self::B<core::num>>() → dynamic {}
+static method bar2<X extends self::B<core::num>>() → dynamic {}
static method bar4() → self::B<core::num>
return throw 42;
static method bar5({required self::B<core::num> x = #C1}) → dynamic {}
@@ -602,7 +602,7 @@
for (self::B<core::num> x in <self::B<core::num>>[]) {
}
function barBar1(self::B<core::num> x) → Null {}
- function barBar2<X extends self::B<core::num> = self::B<core::num>>() → Null {}
+ function barBar2<X extends self::B<core::num>>() → Null {}
function barBar4() → self::B<core::num>
return throw 42;
function barBar5({required self::B<core::num> x = #C1}) → Null {}
diff --git a/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.strong.transformed.expect
index edb2e83..3a904fc 100644
--- a/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.strong.transformed.expect
@@ -533,7 +533,7 @@
: super core::Object::•()
;
}
-class Foo3a<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>> extends core::Object {
+class Foo3a<X extends (self::A<Never>) → self::A<dynamic>> extends core::Object {
synthetic constructor •() → self::Foo3a<self::Foo3a::X>
: super core::Object::•()
;
@@ -543,12 +543,12 @@
: super core::Object::•()
;
}
-class B<X extends core::int = core::int> extends core::Object {
+class B<X extends core::int> extends core::Object {
synthetic constructor •() → self::B<self::B::X>
: super core::Object::•()
;
}
-class Bar3<X extends self::B<core::num> = self::B<core::num>> extends core::Object {
+class Bar3<X extends self::B<core::num>> extends core::Object {
synthetic constructor •() → self::Bar3<self::Bar3::X>
: super core::Object::•()
;
@@ -560,7 +560,7 @@
}
static method foo1a((self::A<Never>) → self::A<dynamic> x) → dynamic {}
static method foo1b((self::A<Never>) → self::A<dynamic> x) → dynamic {}
-static method foo2a<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>>() → dynamic {}
+static method foo2a<X extends (self::A<Never>) → self::A<dynamic>>() → dynamic {}
static method foo2b<X extends (self::A<Never>) → self::A<dynamic> = dynamic>() → dynamic {}
static method foo4a() → (self::A<Never>) → self::A<dynamic>
return throw 42;
@@ -578,7 +578,7 @@
}
}
function fooFoo1((self::A<Never>) → self::A<dynamic> x) → Null {}
- function fooFoo2<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>>() → Null {}
+ function fooFoo2<X extends (self::A<Never>) → self::A<dynamic>>() → Null {}
function fooFoo4() → (self::A<Never>) → self::A<dynamic>
return throw 42;
function fooFoo5({required (self::A<Never>) → self::A<dynamic> x = #C1}) → Null {}
@@ -594,7 +594,7 @@
}
}
function fooFoo1((self::A<Never>) → self::A<dynamic> x) → Null {}
- function fooFoo2<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>>() → Null {}
+ function fooFoo2<X extends (self::A<Never>) → self::A<dynamic>>() → Null {}
function fooFoo4() → (self::A<Never>) → self::A<dynamic>
return throw 42;
function fooFoo5({required (self::A<Never>) → self::A<dynamic> x = #C1}) → Null {}
@@ -603,7 +603,7 @@
static method foo7a([(self::A<Never>) →? self::A<dynamic> x = #C1]) → dynamic {}
static method foo7b([(self::A<Never>) →? self::A<dynamic> x = #C1]) → dynamic {}
static method bar1(self::B<core::num> x) → dynamic {}
-static method bar2<X extends self::B<core::num> = self::B<core::num>>() → dynamic {}
+static method bar2<X extends self::B<core::num>>() → dynamic {}
static method bar4() → self::B<core::num>
return throw 42;
static method bar5({required self::B<core::num> x = #C1}) → dynamic {}
@@ -617,7 +617,7 @@
}
}
function barBar1(self::B<core::num> x) → Null {}
- function barBar2<X extends self::B<core::num> = self::B<core::num>>() → Null {}
+ function barBar2<X extends self::B<core::num>>() → Null {}
function barBar4() → self::B<core::num>
return throw 42;
function barBar5({required self::B<core::num> x = #C1}) → Null {}
diff --git a/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.weak.expect b/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.weak.expect
index 98725b8..5537cc3 100644
--- a/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.weak.expect
@@ -533,7 +533,7 @@
: super core::Object::•()
;
}
-class Foo3a<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>> extends core::Object {
+class Foo3a<X extends (self::A<Never>) → self::A<dynamic>> extends core::Object {
synthetic constructor •() → self::Foo3a<self::Foo3a::X>
: super core::Object::•()
;
@@ -543,12 +543,12 @@
: super core::Object::•()
;
}
-class B<X extends core::int = core::int> extends core::Object {
+class B<X extends core::int> extends core::Object {
synthetic constructor •() → self::B<self::B::X>
: super core::Object::•()
;
}
-class Bar3<X extends self::B<core::num> = self::B<core::num>> extends core::Object {
+class Bar3<X extends self::B<core::num>> extends core::Object {
synthetic constructor •() → self::Bar3<self::Bar3::X>
: super core::Object::•()
;
@@ -560,7 +560,7 @@
}
static method foo1a((self::A<Never>) → self::A<dynamic> x) → dynamic {}
static method foo1b((self::A<Never>) → self::A<dynamic> x) → dynamic {}
-static method foo2a<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>>() → dynamic {}
+static method foo2a<X extends (self::A<Never>) → self::A<dynamic>>() → dynamic {}
static method foo2b<X extends (self::A<Never>) → self::A<dynamic> = dynamic>() → dynamic {}
static method foo4a() → (self::A<Never>) → self::A<dynamic>
return throw 42;
@@ -573,7 +573,7 @@
for ((self::A<Never>) → self::A<dynamic> x in <(self::A<Never>) → self::A<dynamic>>[]) {
}
function fooFoo1((self::A<Never>) → self::A<dynamic> x) → Null {}
- function fooFoo2<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>>() → Null {}
+ function fooFoo2<X extends (self::A<Never>) → self::A<dynamic>>() → Null {}
function fooFoo4() → (self::A<Never>) → self::A<dynamic>
return throw 42;
function fooFoo5({required (self::A<Never>) → self::A<dynamic> x = #C1}) → Null {}
@@ -584,7 +584,7 @@
for ((self::A<Never>) → self::A<dynamic> x in <(self::A<Never>) → self::A<dynamic>>[]) {
}
function fooFoo1((self::A<Never>) → self::A<dynamic> x) → Null {}
- function fooFoo2<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>>() → Null {}
+ function fooFoo2<X extends (self::A<Never>) → self::A<dynamic>>() → Null {}
function fooFoo4() → (self::A<Never>) → self::A<dynamic>
return throw 42;
function fooFoo5({required (self::A<Never>) → self::A<dynamic> x = #C1}) → Null {}
@@ -593,7 +593,7 @@
static method foo7a([(self::A<Never>) →? self::A<dynamic> x = #C1]) → dynamic {}
static method foo7b([(self::A<Never>) →? self::A<dynamic> x = #C1]) → dynamic {}
static method bar1(self::B<core::num> x) → dynamic {}
-static method bar2<X extends self::B<core::num> = self::B<core::num>>() → dynamic {}
+static method bar2<X extends self::B<core::num>>() → dynamic {}
static method bar4() → self::B<core::num>
return throw 42;
static method bar5({required self::B<core::num> x = #C1}) → dynamic {}
@@ -602,7 +602,7 @@
for (self::B<core::num> x in <self::B<core::num>>[]) {
}
function barBar1(self::B<core::num> x) → Null {}
- function barBar2<X extends self::B<core::num> = self::B<core::num>>() → Null {}
+ function barBar2<X extends self::B<core::num>>() → Null {}
function barBar4() → self::B<core::num>
return throw 42;
function barBar5({required self::B<core::num> x = #C1}) → Null {}
diff --git a/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.weak.outline.expect
index 1d220b5..155fe0cd 100644
--- a/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.weak.outline.expect
@@ -236,7 +236,7 @@
synthetic constructor •() → self::A<self::A::X%>
;
}
-class Foo3a<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>> extends core::Object {
+class Foo3a<X extends (self::A<Never>) → self::A<dynamic>> extends core::Object {
synthetic constructor •() → self::Foo3a<self::Foo3a::X>
;
}
@@ -244,11 +244,11 @@
synthetic constructor •() → self::Foo3b<self::Foo3b::X>
;
}
-class B<X extends core::int = core::int> extends core::Object {
+class B<X extends core::int> extends core::Object {
synthetic constructor •() → self::B<self::B::X>
;
}
-class Bar3<X extends self::B<core::num> = self::B<core::num>> extends core::Object {
+class Bar3<X extends self::B<core::num>> extends core::Object {
synthetic constructor •() → self::Bar3<self::Bar3::X>
;
}
@@ -260,7 +260,7 @@
;
static method foo1b((self::A<Never>) → self::A<dynamic> x) → dynamic
;
-static method foo2a<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>>() → dynamic
+static method foo2a<X extends (self::A<Never>) → self::A<dynamic>>() → dynamic
;
static method foo2b<X extends (self::A<Never>) → self::A<dynamic> = dynamic>() → dynamic
;
@@ -282,7 +282,7 @@
;
static method bar1(self::B<core::num> x) → dynamic
;
-static method bar2<X extends self::B<core::num> = self::B<core::num>>() → dynamic
+static method bar2<X extends self::B<core::num>>() → dynamic
;
static method bar4() → self::B<core::num>
;
diff --git a/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.weak.transformed.expect
index edb2e83..3a904fc 100644
--- a/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/super_bounded_hint.dart.weak.transformed.expect
@@ -533,7 +533,7 @@
: super core::Object::•()
;
}
-class Foo3a<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>> extends core::Object {
+class Foo3a<X extends (self::A<Never>) → self::A<dynamic>> extends core::Object {
synthetic constructor •() → self::Foo3a<self::Foo3a::X>
: super core::Object::•()
;
@@ -543,12 +543,12 @@
: super core::Object::•()
;
}
-class B<X extends core::int = core::int> extends core::Object {
+class B<X extends core::int> extends core::Object {
synthetic constructor •() → self::B<self::B::X>
: super core::Object::•()
;
}
-class Bar3<X extends self::B<core::num> = self::B<core::num>> extends core::Object {
+class Bar3<X extends self::B<core::num>> extends core::Object {
synthetic constructor •() → self::Bar3<self::Bar3::X>
: super core::Object::•()
;
@@ -560,7 +560,7 @@
}
static method foo1a((self::A<Never>) → self::A<dynamic> x) → dynamic {}
static method foo1b((self::A<Never>) → self::A<dynamic> x) → dynamic {}
-static method foo2a<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>>() → dynamic {}
+static method foo2a<X extends (self::A<Never>) → self::A<dynamic>>() → dynamic {}
static method foo2b<X extends (self::A<Never>) → self::A<dynamic> = dynamic>() → dynamic {}
static method foo4a() → (self::A<Never>) → self::A<dynamic>
return throw 42;
@@ -578,7 +578,7 @@
}
}
function fooFoo1((self::A<Never>) → self::A<dynamic> x) → Null {}
- function fooFoo2<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>>() → Null {}
+ function fooFoo2<X extends (self::A<Never>) → self::A<dynamic>>() → Null {}
function fooFoo4() → (self::A<Never>) → self::A<dynamic>
return throw 42;
function fooFoo5({required (self::A<Never>) → self::A<dynamic> x = #C1}) → Null {}
@@ -594,7 +594,7 @@
}
}
function fooFoo1((self::A<Never>) → self::A<dynamic> x) → Null {}
- function fooFoo2<X extends (self::A<Never>) → self::A<dynamic> = (self::A<Never>) → self::A<dynamic>>() → Null {}
+ function fooFoo2<X extends (self::A<Never>) → self::A<dynamic>>() → Null {}
function fooFoo4() → (self::A<Never>) → self::A<dynamic>
return throw 42;
function fooFoo5({required (self::A<Never>) → self::A<dynamic> x = #C1}) → Null {}
@@ -603,7 +603,7 @@
static method foo7a([(self::A<Never>) →? self::A<dynamic> x = #C1]) → dynamic {}
static method foo7b([(self::A<Never>) →? self::A<dynamic> x = #C1]) → dynamic {}
static method bar1(self::B<core::num> x) → dynamic {}
-static method bar2<X extends self::B<core::num> = self::B<core::num>>() → dynamic {}
+static method bar2<X extends self::B<core::num>>() → dynamic {}
static method bar4() → self::B<core::num>
return throw 42;
static method bar5({required self::B<core::num> x = #C1}) → dynamic {}
@@ -617,7 +617,7 @@
}
}
function barBar1(self::B<core::num> x) → Null {}
- function barBar2<X extends self::B<core::num> = self::B<core::num>>() → Null {}
+ function barBar2<X extends self::B<core::num>>() → Null {}
function barBar4() → self::B<core::num>
return throw 42;
function barBar5({required self::B<core::num> x = #C1}) → Null {}
diff --git a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.expect b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.expect
index 95d9965..200bf55 100644
--- a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.expect
@@ -54,7 +54,7 @@
}
static method functionContext(() → core::int f) → dynamic {}
static method nullableFunctionContext(() →? core::int f) → dynamic {}
-static method foo<T extends self::C? = self::C?>(self::C? c, self::foo::T% t, self::foo::T? nt) → dynamic {
+static method foo<T extends self::C?>(self::C? c, self::foo::T% t, self::foo::T? nt) → dynamic {
self::functionContext(let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart:14:24: Error: Can't tear off method 'call' from a potentially null value.
functionContext(null as C?); // Error.
^" in (null as{ForNonNullableByDefault} self::C?) as{TypeError} () → core::int);
@@ -80,7 +80,7 @@
nullableFunctionContext(nt); // Error.
^" in nt as{TypeError,ForNonNullableByDefault} () →? core::int);
}
-static method bar<T extends self::C = self::C>(self::C c, self::bar::T t) → dynamic {
+static method bar<T extends self::C>(self::C c, self::bar::T t) → dynamic {
self::functionContext(let final self::C #t9 = c in #t9.==(null) ?{() → core::int} null : #t9.{self::C::call});
self::nullableFunctionContext(let final self::C #t10 = c in #t10.==(null) ?{() → core::int} null : #t10.{self::C::call});
self::functionContext(let final Never #t11 = invalid-expression "pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart:27:19: Error: The argument type 'T' can't be assigned to the parameter type 'int Function()'.
diff --git a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.transformed.expect
index 116b424..ea7c975 100644
--- a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.strong.transformed.expect
@@ -54,7 +54,7 @@
}
static method functionContext(() → core::int f) → dynamic {}
static method nullableFunctionContext(() →? core::int f) → dynamic {}
-static method foo<T extends self::C? = self::C?>(self::C? c, self::foo::T% t, self::foo::T? nt) → dynamic {
+static method foo<T extends self::C?>(self::C? c, self::foo::T% t, self::foo::T? nt) → dynamic {
self::functionContext(let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart:14:24: Error: Can't tear off method 'call' from a potentially null value.
functionContext(null as C?); // Error.
^" in let Null #t2 = null in #t2.==(null) ?{() → core::int} #t2 as{TypeError} () → core::int : #t2{() → core::int});
@@ -80,7 +80,7 @@
nullableFunctionContext(nt); // Error.
^" in nt as{TypeError,ForNonNullableByDefault} () →? core::int);
}
-static method bar<T extends self::C = self::C>(self::C c, self::bar::T t) → dynamic {
+static method bar<T extends self::C>(self::C c, self::bar::T t) → dynamic {
self::functionContext(let final self::C #t10 = c in #t10.==(null) ?{() → core::int} null : #t10.{self::C::call});
self::nullableFunctionContext(let final self::C #t11 = c in #t11.==(null) ?{() → core::int} null : #t11.{self::C::call});
self::functionContext(let final Never #t12 = invalid-expression "pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart:27:19: Error: The argument type 'T' can't be assigned to the parameter type 'int Function()'.
diff --git a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.expect b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.expect
index 95d9965..200bf55 100644
--- a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.expect
@@ -54,7 +54,7 @@
}
static method functionContext(() → core::int f) → dynamic {}
static method nullableFunctionContext(() →? core::int f) → dynamic {}
-static method foo<T extends self::C? = self::C?>(self::C? c, self::foo::T% t, self::foo::T? nt) → dynamic {
+static method foo<T extends self::C?>(self::C? c, self::foo::T% t, self::foo::T? nt) → dynamic {
self::functionContext(let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart:14:24: Error: Can't tear off method 'call' from a potentially null value.
functionContext(null as C?); // Error.
^" in (null as{ForNonNullableByDefault} self::C?) as{TypeError} () → core::int);
@@ -80,7 +80,7 @@
nullableFunctionContext(nt); // Error.
^" in nt as{TypeError,ForNonNullableByDefault} () →? core::int);
}
-static method bar<T extends self::C = self::C>(self::C c, self::bar::T t) → dynamic {
+static method bar<T extends self::C>(self::C c, self::bar::T t) → dynamic {
self::functionContext(let final self::C #t9 = c in #t9.==(null) ?{() → core::int} null : #t9.{self::C::call});
self::nullableFunctionContext(let final self::C #t10 = c in #t10.==(null) ?{() → core::int} null : #t10.{self::C::call});
self::functionContext(let final Never #t11 = invalid-expression "pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart:27:19: Error: The argument type 'T' can't be assigned to the parameter type 'int Function()'.
diff --git a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.outline.expect
index bb20d27..cb5a9ee 100644
--- a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.outline.expect
@@ -12,9 +12,9 @@
;
static method nullableFunctionContext(() →? core::int f) → dynamic
;
-static method foo<T extends self::C? = self::C?>(self::C? c, self::foo::T% t, self::foo::T? nt) → dynamic
+static method foo<T extends self::C?>(self::C? c, self::foo::T% t, self::foo::T? nt) → dynamic
;
-static method bar<T extends self::C = self::C>(self::C c, self::bar::T t) → dynamic
+static method bar<T extends self::C>(self::C c, self::bar::T t) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.transformed.expect
index e84755e..651b955 100644
--- a/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart.weak.transformed.expect
@@ -54,7 +54,7 @@
}
static method functionContext(() → core::int f) → dynamic {}
static method nullableFunctionContext(() →? core::int f) → dynamic {}
-static method foo<T extends self::C? = self::C?>(self::C? c, self::foo::T% t, self::foo::T? nt) → dynamic {
+static method foo<T extends self::C?>(self::C? c, self::foo::T% t, self::foo::T? nt) → dynamic {
self::functionContext(let final Never #t1 = invalid-expression "pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart:14:24: Error: Can't tear off method 'call' from a potentially null value.
functionContext(null as C?); // Error.
^" in null);
@@ -80,7 +80,7 @@
nullableFunctionContext(nt); // Error.
^" in nt as{TypeError,ForNonNullableByDefault} () →? core::int);
}
-static method bar<T extends self::C = self::C>(self::C c, self::bar::T t) → dynamic {
+static method bar<T extends self::C>(self::C c, self::bar::T t) → dynamic {
self::functionContext(let final self::C #t9 = c in #t9.==(null) ?{() → core::int} null : #t9.{self::C::call});
self::nullableFunctionContext(let final self::C #t10 = c in #t10.==(null) ?{() → core::int} null : #t10.{self::C::call});
self::functionContext(let final Never #t11 = invalid-expression "pkg/front_end/testcases/nnbd/tearoff_from_nullable_receiver.dart:27:19: Error: The argument type 'T' can't be assigned to the parameter type 'int Function()'.
diff --git a/pkg/front_end/testcases/nnbd/type_parameter_types.dart.strong.expect b/pkg/front_end/testcases/nnbd/type_parameter_types.dart.strong.expect
index 4db6f6e..9f2387d 100644
--- a/pkg/front_end/testcases/nnbd/type_parameter_types.dart.strong.expect
+++ b/pkg/front_end/testcases/nnbd/type_parameter_types.dart.strong.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::Object = core::Object, Y extends core::Object? = core::Object?> extends core::Object {
+class A<X extends core::Object, Y extends core::Object?> extends core::Object {
synthetic constructor •() → self::A<self::A::X, self::A::Y%>
: super core::Object::•()
;
@@ -13,7 +13,7 @@
method baz() → self::A::Y%
return self::never();
}
-class B<X extends core::List<self::B::Y%> = core::List<core::Object?>, Y extends core::Object? = core::Object?> extends core::Object {
+class B<X extends core::List<self::B::Y%> = core::List<core::Object?>, Y extends core::Object?> extends core::Object {
synthetic constructor •() → self::B<self::B::X, self::B::Y%>
: super core::Object::•()
;
@@ -34,13 +34,13 @@
static method never() → Never
return throw "Never";
static method main() → dynamic {
- function fun1<X extends core::Object = core::Object, Y extends core::Object? = core::Object?>() → X
+ function fun1<X extends core::Object, Y extends core::Object?>() → X
return self::never();
- function fun2<X extends core::Object = core::Object, Y extends core::Object? = core::Object?>() → Y%
+ function fun2<X extends core::Object, Y extends core::Object?>() → Y%
return self::never();
- function fun3<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object? = core::Object?>() → X
+ function fun3<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object?>() → X
return self::never();
- function fun4<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object? = core::Object?>() → Y%
+ function fun4<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object?>() → Y%
return self::never();
function fun5<X extends core::List<Y%>? = core::List<dynamic>?, Y extends core::List<X%>? = core::List<dynamic>?>() → X%
return self::never();
diff --git a/pkg/front_end/testcases/nnbd/type_parameter_types.dart.strong.transformed.expect b/pkg/front_end/testcases/nnbd/type_parameter_types.dart.strong.transformed.expect
index 4db6f6e..9f2387d 100644
--- a/pkg/front_end/testcases/nnbd/type_parameter_types.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/type_parameter_types.dart.strong.transformed.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::Object = core::Object, Y extends core::Object? = core::Object?> extends core::Object {
+class A<X extends core::Object, Y extends core::Object?> extends core::Object {
synthetic constructor •() → self::A<self::A::X, self::A::Y%>
: super core::Object::•()
;
@@ -13,7 +13,7 @@
method baz() → self::A::Y%
return self::never();
}
-class B<X extends core::List<self::B::Y%> = core::List<core::Object?>, Y extends core::Object? = core::Object?> extends core::Object {
+class B<X extends core::List<self::B::Y%> = core::List<core::Object?>, Y extends core::Object?> extends core::Object {
synthetic constructor •() → self::B<self::B::X, self::B::Y%>
: super core::Object::•()
;
@@ -34,13 +34,13 @@
static method never() → Never
return throw "Never";
static method main() → dynamic {
- function fun1<X extends core::Object = core::Object, Y extends core::Object? = core::Object?>() → X
+ function fun1<X extends core::Object, Y extends core::Object?>() → X
return self::never();
- function fun2<X extends core::Object = core::Object, Y extends core::Object? = core::Object?>() → Y%
+ function fun2<X extends core::Object, Y extends core::Object?>() → Y%
return self::never();
- function fun3<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object? = core::Object?>() → X
+ function fun3<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object?>() → X
return self::never();
- function fun4<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object? = core::Object?>() → Y%
+ function fun4<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object?>() → Y%
return self::never();
function fun5<X extends core::List<Y%>? = core::List<dynamic>?, Y extends core::List<X%>? = core::List<dynamic>?>() → X%
return self::never();
diff --git a/pkg/front_end/testcases/nnbd/type_parameter_types.dart.weak.expect b/pkg/front_end/testcases/nnbd/type_parameter_types.dart.weak.expect
index 8762f10..5992af3 100644
--- a/pkg/front_end/testcases/nnbd/type_parameter_types.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd/type_parameter_types.dart.weak.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
import "dart:_internal" as _in;
-class A<X extends core::Object = core::Object, Y extends core::Object? = core::Object?> extends core::Object {
+class A<X extends core::Object, Y extends core::Object?> extends core::Object {
synthetic constructor •() → self::A<self::A::X, self::A::Y%>
: super core::Object::•()
;
@@ -14,7 +14,7 @@
method baz() → self::A::Y%
return let final Never #t2 = self::never() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
}
-class B<X extends core::List<self::B::Y%> = core::List<core::Object?>, Y extends core::Object? = core::Object?> extends core::Object {
+class B<X extends core::List<self::B::Y%> = core::List<core::Object?>, Y extends core::Object?> extends core::Object {
synthetic constructor •() → self::B<self::B::X, self::B::Y%>
: super core::Object::•()
;
@@ -35,13 +35,13 @@
static method never() → Never
return throw "Never";
static method main() → dynamic {
- function fun1<X extends core::Object = core::Object, Y extends core::Object? = core::Object?>() → X
+ function fun1<X extends core::Object, Y extends core::Object?>() → X
return let final Never #t3 = self::never() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
- function fun2<X extends core::Object = core::Object, Y extends core::Object? = core::Object?>() → Y%
+ function fun2<X extends core::Object, Y extends core::Object?>() → Y%
return let final Never #t4 = self::never() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
- function fun3<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object? = core::Object?>() → X
+ function fun3<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object?>() → X
return let final Never #t5 = self::never() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
- function fun4<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object? = core::Object?>() → Y%
+ function fun4<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object?>() → Y%
return let final Never #t6 = self::never() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
function fun5<X extends core::List<Y%>? = core::List<dynamic>?, Y extends core::List<X%>? = core::List<dynamic>?>() → X%
return let final Never #t7 = self::never() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
diff --git a/pkg/front_end/testcases/nnbd/type_parameter_types.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd/type_parameter_types.dart.weak.outline.expect
index 9c418ba..e50ba48 100644
--- a/pkg/front_end/testcases/nnbd/type_parameter_types.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd/type_parameter_types.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::Object = core::Object, Y extends core::Object? = core::Object?> extends core::Object {
+class A<X extends core::Object, Y extends core::Object?> extends core::Object {
synthetic constructor •() → self::A<self::A::X, self::A::Y%>
;
method foo() → self::A::X
@@ -12,7 +12,7 @@
method baz() → self::A::Y%
;
}
-class B<X extends core::List<self::B::Y%> = core::List<core::Object?>, Y extends core::Object? = core::Object?> extends core::Object {
+class B<X extends core::List<self::B::Y%> = core::List<core::Object?>, Y extends core::Object?> extends core::Object {
synthetic constructor •() → self::B<self::B::X, self::B::Y%>
;
method foo(generic-covariant-impl self::B::X x, generic-covariant-impl self::B::Y% y) → dynamic
diff --git a/pkg/front_end/testcases/nnbd/type_parameter_types.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd/type_parameter_types.dart.weak.transformed.expect
index 8762f10..5992af3 100644
--- a/pkg/front_end/testcases/nnbd/type_parameter_types.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd/type_parameter_types.dart.weak.transformed.expect
@@ -3,7 +3,7 @@
import "dart:core" as core;
import "dart:_internal" as _in;
-class A<X extends core::Object = core::Object, Y extends core::Object? = core::Object?> extends core::Object {
+class A<X extends core::Object, Y extends core::Object?> extends core::Object {
synthetic constructor •() → self::A<self::A::X, self::A::Y%>
: super core::Object::•()
;
@@ -14,7 +14,7 @@
method baz() → self::A::Y%
return let final Never #t2 = self::never() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
}
-class B<X extends core::List<self::B::Y%> = core::List<core::Object?>, Y extends core::Object? = core::Object?> extends core::Object {
+class B<X extends core::List<self::B::Y%> = core::List<core::Object?>, Y extends core::Object?> extends core::Object {
synthetic constructor •() → self::B<self::B::X, self::B::Y%>
: super core::Object::•()
;
@@ -35,13 +35,13 @@
static method never() → Never
return throw "Never";
static method main() → dynamic {
- function fun1<X extends core::Object = core::Object, Y extends core::Object? = core::Object?>() → X
+ function fun1<X extends core::Object, Y extends core::Object?>() → X
return let final Never #t3 = self::never() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
- function fun2<X extends core::Object = core::Object, Y extends core::Object? = core::Object?>() → Y%
+ function fun2<X extends core::Object, Y extends core::Object?>() → Y%
return let final Never #t4 = self::never() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
- function fun3<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object? = core::Object?>() → X
+ function fun3<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object?>() → X
return let final Never #t5 = self::never() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
- function fun4<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object? = core::Object?>() → Y%
+ function fun4<X extends core::List<Y%> = core::List<core::Object?>, Y extends core::Object?>() → Y%
return let final Never #t6 = self::never() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
function fun5<X extends core::List<Y%>? = core::List<dynamic>?, Y extends core::List<X%>? = core::List<dynamic>?>() → X%
return let final Never #t7 = self::never() in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
diff --git a/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.expect
index f315bb6..847ce35 100644
--- a/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.expect
@@ -5,11 +5,11 @@
import "org-dartlang-testcase:///bounds_from_opt_in_lib.dart";
-class LegacyClass<T extends Null = Null> extends bou::Class<self::LegacyClass::T*> {
+class LegacyClass<T extends Null> extends bou::Class<self::LegacyClass::T*> {
synthetic constructor •() → self::LegacyClass<self::LegacyClass::T*>*
: super bou::Class::•()
;
- method method<T extends Null = Null>() → dynamic {}
+ method method<T extends Null>() → 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
@@ -32,10 +32,10 @@
import self as bou;
import "dart:core" as core;
-class Class<T extends Never = Never> extends core::Object {
+class Class<T extends Never> extends core::Object {
synthetic constructor •() → bou::Class<bou::Class::T>
: super core::Object::•()
;
- method method<T extends Never = Never>() → dynamic {}
+ method method<T extends Never>() → dynamic {}
}
-static method method<T extends Never = Never>() → dynamic {}
+static method method<T extends Never>() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.outline.expect
index e35c602..ca337ee 100644
--- a/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.outline.expect
@@ -5,10 +5,10 @@
import "org-dartlang-testcase:///bounds_from_opt_in_lib.dart";
-class LegacyClass<T extends Null = Null> extends bou::Class<self::LegacyClass::T*> {
+class LegacyClass<T extends Null> extends bou::Class<self::LegacyClass::T*> {
synthetic constructor •() → self::LegacyClass<self::LegacyClass::T*>*
;
- method method<T extends Null = Null>() → dynamic
+ method method<T extends Null>() → 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
@@ -30,11 +30,11 @@
import self as bou;
import "dart:core" as core;
-class Class<T extends Never = Never> extends core::Object {
+class Class<T extends Never> extends core::Object {
synthetic constructor •() → bou::Class<bou::Class::T>
;
- method method<T extends Never = Never>() → dynamic
+ method method<T extends Never>() → dynamic
;
}
-static method method<T extends Never = Never>() → dynamic
+static method method<T extends Never>() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.transformed.expect
index f315bb6..847ce35 100644
--- a/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/bounds_from_opt_in.dart.weak.transformed.expect
@@ -5,11 +5,11 @@
import "org-dartlang-testcase:///bounds_from_opt_in_lib.dart";
-class LegacyClass<T extends Null = Null> extends bou::Class<self::LegacyClass::T*> {
+class LegacyClass<T extends Null> extends bou::Class<self::LegacyClass::T*> {
synthetic constructor •() → self::LegacyClass<self::LegacyClass::T*>*
: super bou::Class::•()
;
- method method<T extends Null = Null>() → dynamic {}
+ method method<T extends Null>() → 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
@@ -32,10 +32,10 @@
import self as bou;
import "dart:core" as core;
-class Class<T extends Never = Never> extends core::Object {
+class Class<T extends Never> extends core::Object {
synthetic constructor •() → bou::Class<bou::Class::T>
: super core::Object::•()
;
- method method<T extends Never = Never>() → dynamic {}
+ method method<T extends Never>() → dynamic {}
}
-static method method<T extends Never = Never>() → dynamic {}
+static method method<T extends Never>() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.expect
index bdcfe75..90ee935 100644
--- a/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.expect
@@ -5,7 +5,7 @@
import "org-dartlang-testcase:///const_is_lib.dart";
static method main() → dynamic {
- self::expect(true, (#C1) is{ForNonNullableByDefault} <T extends core::Object? = core::Object?>() → void);
+ self::expect(true, (#C1) is{ForNonNullableByDefault} <T extends core::Object?>() → void);
self::expect(true, #C2);
self::expect(true, (#C3) is{ForNonNullableByDefault} <T extends Never = dynamic>() → void);
self::expect(true, #C2);
@@ -19,11 +19,11 @@
import self as self2;
import "dart:core" as core;
-typedef fnTypeWithNullableObjectBound = <T extends core::Object? = core::Object?>() → void;
+typedef fnTypeWithNullableObjectBound = <T extends core::Object?>() → void;
typedef fnTypeWithNeverBound = <T extends Never = dynamic>() → void;
-static method fnWithNonNullObjectBound<T extends core::Object = core::Object>() → void
+static method fnWithNonNullObjectBound<T extends core::Object>() → void
return null;
-static method fnWithNullBound<T extends Null = Null>() → void
+static method fnWithNullBound<T extends Null>() → void
return null;
constants {
diff --git a/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.outline.expect
index a26ee06..928c19a 100644
--- a/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.outline.expect
@@ -12,9 +12,9 @@
import self as self2;
import "dart:core" as core;
-typedef fnTypeWithNullableObjectBound = <T extends core::Object? = core::Object?>() → void;
+typedef fnTypeWithNullableObjectBound = <T extends core::Object?>() → void;
typedef fnTypeWithNeverBound = <T extends Never = dynamic>() → void;
-static method fnWithNonNullObjectBound<T extends core::Object = core::Object>() → void
+static method fnWithNonNullObjectBound<T extends core::Object>() → void
;
-static method fnWithNullBound<T extends Null = Null>() → void
+static method fnWithNullBound<T extends Null>() → void
;
diff --git a/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.transformed.expect
index a2670ba..d198bb9 100644
--- a/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/const_is.dart.weak.transformed.expect
@@ -5,7 +5,7 @@
import "org-dartlang-testcase:///const_is_lib.dart";
static method main() → dynamic {
- self::expect(true, (#C1) is{ForNonNullableByDefault} <T extends core::Object? = core::Object?>() → void);
+ self::expect(true, (#C1) is{ForNonNullableByDefault} <T extends core::Object?>() → void);
self::expect(true, #C2);
self::expect(true, (#C3) is{ForNonNullableByDefault} <T extends Never = dynamic>() → void);
self::expect(true, #C2);
@@ -19,11 +19,11 @@
import self as self2;
import "dart:core" as core;
-typedef fnTypeWithNullableObjectBound = <T extends core::Object? = core::Object?>() → void;
+typedef fnTypeWithNullableObjectBound = <T extends core::Object?>() → void;
typedef fnTypeWithNeverBound = <T extends Never = dynamic>() → void;
-static method fnWithNonNullObjectBound<T extends core::Object = core::Object>() → void
+static method fnWithNonNullObjectBound<T extends core::Object>() → void
return null;
-static method fnWithNullBound<T extends Null = Null>() → void
+static method fnWithNullBound<T extends Null>() → void
return null;
constants {
diff --git a/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.expect
index 91bdcec..ab022ec 100644
--- a/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.expect
@@ -34,7 +34,7 @@
: super core::Object::•()
;
}
-abstract class B<T extends flu::A = flu::A> extends core::Object {
+abstract class B<T extends flu::A> extends core::Object {
synthetic constructor •() → flu::B<flu::B::T>
: super core::Object::•()
;
@@ -62,7 +62,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class D<T extends flu::A* = flu::A*> extends flu::B<flu2::D::T*> implements flu2::C /*isMixinDeclaration*/ {
+abstract class D<T extends flu::A*> extends flu::B<flu2::D::T*> implements flu2::C /*isMixinDeclaration*/ {
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
diff --git a/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.outline.expect
index d6c1469..3bad5bd 100644
--- a/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.outline.expect
@@ -32,7 +32,7 @@
synthetic constructor •() → flu::A
;
}
-abstract class B<T extends flu::A = flu::A> extends core::Object {
+abstract class B<T extends flu::A> extends core::Object {
synthetic constructor •() → flu::B<flu::B::T>
;
}
@@ -58,7 +58,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class D<T extends flu::A* = flu::A*> extends flu::B<flu2::D::T*> implements flu2::C /*isMixinDeclaration*/ {
+abstract class D<T extends flu::A*> extends flu::B<flu2::D::T*> implements flu2::C /*isMixinDeclaration*/ {
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
diff --git a/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.transformed.expect
index 1009eb9..009be62 100644
--- a/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/flutter_issue_63029/flutter_issue_63029.dart.weak.transformed.expect
@@ -34,7 +34,7 @@
: super core::Object::•()
;
}
-abstract class B<T extends flu::A = flu::A> extends core::Object {
+abstract class B<T extends flu::A> extends core::Object {
synthetic constructor •() → flu::B<flu::B::T>
: super core::Object::•()
;
@@ -62,7 +62,7 @@
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class D<T extends flu::A* = flu::A*> extends flu::B<flu2::D::T*> implements flu2::C /*isMixinDeclaration*/ {
+abstract class D<T extends flu::A*> extends flu::B<flu2::D::T*> implements flu2::C /*isMixinDeclaration*/ {
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
diff --git a/pkg/front_end/testcases/nnbd_mixed/generic_override.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/generic_override.dart.weak.expect
index 30674ab..71759ac 100644
--- a/pkg/front_end/testcases/nnbd_mixed/generic_override.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/generic_override.dart.weak.expect
@@ -47,58 +47,58 @@
abstract method method1a<T extends core::Object? = dynamic>() → void;
abstract method method1b<T extends core::Object? = dynamic>() → void;
abstract method method1c<T extends core::Object? = dynamic>() → void;
- abstract method method2a<T extends core::Object? = core::Object?>() → void;
- abstract method method2b<T extends core::Object? = core::Object?>() → void;
- abstract method method2c<T extends core::Object? = core::Object?>() → void;
- abstract method method3a<T extends dynamic = dynamic>() → void;
- abstract method method3b<T extends dynamic = dynamic>() → void;
- abstract method method3c<T extends dynamic = dynamic>() → void;
- abstract method method4a<T extends core::Object = core::Object>() → void;
- abstract method method4b<T extends core::Object = core::Object>() → void;
- abstract method method4c<T extends core::Object? = core::Object?>() → void;
- abstract method method5a<T extends self::Class1 = self::Class1>() → void;
- abstract method method5b<T extends self::Class1 = self::Class1>() → void;
- abstract method method5c<T extends self::Class1? = self::Class1?>() → void;
+ abstract method method2a<T extends core::Object?>() → void;
+ abstract method method2b<T extends core::Object?>() → void;
+ abstract method method2c<T extends core::Object?>() → void;
+ abstract method method3a<T extends dynamic>() → void;
+ abstract method method3b<T extends dynamic>() → void;
+ abstract method method3c<T extends dynamic>() → void;
+ abstract method method4a<T extends core::Object>() → void;
+ abstract method method4b<T extends core::Object>() → void;
+ abstract method method4c<T extends core::Object?>() → void;
+ abstract method method5a<T extends self::Class1>() → void;
+ abstract method method5b<T extends self::Class1>() → void;
+ abstract method method5c<T extends self::Class1?>() → void;
}
abstract class Class2 extends self::Class1 {
synthetic constructor •() → self::Class2
: super self::Class1::•()
;
abstract method method1a<T extends core::Object? = dynamic>() → void;
- abstract method method1b<T extends core::Object? = core::Object?>() → void;
- abstract method method1c<T extends dynamic = dynamic>() → void;
+ abstract method method1b<T extends core::Object?>() → void;
+ abstract method method1c<T extends dynamic>() → void;
abstract method method2a<T extends core::Object? = dynamic>() → void;
- abstract method method2b<T extends core::Object? = core::Object?>() → void;
- abstract method method2c<T extends dynamic = dynamic>() → void;
+ abstract method method2b<T extends core::Object?>() → void;
+ abstract method method2c<T extends dynamic>() → void;
abstract method method3a<T extends core::Object? = dynamic>() → void;
- abstract method method3b<T extends core::Object? = core::Object?>() → void;
- abstract method method3c<T extends dynamic = dynamic>() → void;
- abstract method method4a<T extends core::Object = core::Object>() → void;
- abstract method method4b<T extends core::Object? = core::Object?>() → void;
- abstract method method4c<T extends core::Object = core::Object>() → void;
- abstract method method5a<T extends self::Class1 = self::Class1>() → void;
- abstract method method5b<T extends self::Class1? = self::Class1?>() → void;
- abstract method method5c<T extends self::Class1 = self::Class1>() → void;
+ abstract method method3b<T extends core::Object?>() → void;
+ abstract method method3c<T extends dynamic>() → void;
+ abstract method method4a<T extends core::Object>() → void;
+ abstract method method4b<T extends core::Object?>() → void;
+ abstract method method4c<T extends core::Object>() → void;
+ abstract method method5a<T extends self::Class1>() → void;
+ abstract method method5b<T extends self::Class1?>() → void;
+ abstract method method5c<T extends self::Class1>() → void;
}
abstract class Class3 extends gen::LegacyClass1 {
synthetic constructor •() → self::Class3
: super gen::LegacyClass1::•()
;
abstract method method1a<T extends core::Object? = dynamic>() → void;
- abstract method method1b<T extends core::Object? = core::Object?>() → void;
- abstract method method1c<T extends dynamic = dynamic>() → void;
+ abstract method method1b<T extends core::Object?>() → void;
+ abstract method method1c<T extends dynamic>() → void;
abstract method method2a<T extends core::Object? = dynamic>() → void;
- abstract method method2b<T extends core::Object? = core::Object?>() → void;
- abstract method method2c<T extends dynamic = dynamic>() → void;
+ abstract method method2b<T extends core::Object?>() → void;
+ abstract method method2c<T extends dynamic>() → void;
abstract method method3a<T extends core::Object? = dynamic>() → void;
- abstract method method3b<T extends core::Object? = core::Object?>() → void;
- abstract method method3c<T extends dynamic = dynamic>() → void;
- abstract method method4a<T extends core::Object = core::Object>() → void;
- abstract method method4b<T extends core::Object? = core::Object?>() → void;
- abstract method method4c<T extends core::Object = core::Object>() → void;
- abstract method method5a<T extends self::Class1 = self::Class1>() → void;
- abstract method method5b<T extends self::Class1? = self::Class1?>() → void;
- abstract method method5c<T extends self::Class1 = self::Class1>() → void;
+ abstract method method3b<T extends core::Object?>() → void;
+ abstract method method3c<T extends dynamic>() → void;
+ abstract method method4a<T extends core::Object>() → void;
+ abstract method method4b<T extends core::Object?>() → void;
+ abstract method method4c<T extends core::Object>() → void;
+ abstract method method5a<T extends self::Class1>() → void;
+ abstract method method5b<T extends self::Class1?>() → void;
+ abstract method method5c<T extends self::Class1>() → void;
}
static method main() → dynamic {}
@@ -116,18 +116,18 @@
abstract method method1a<T extends core::Object* = dynamic>() → void;
abstract method method1b<T extends core::Object* = dynamic>() → void;
abstract method method1c<T extends core::Object* = dynamic>() → void;
- abstract method method2a<T extends core::Object* = core::Object*>() → void;
- abstract method method2b<T extends core::Object* = core::Object*>() → void;
- abstract method method2c<T extends core::Object* = core::Object*>() → void;
- abstract method method3a<T extends dynamic = dynamic>() → void;
- abstract method method3b<T extends dynamic = dynamic>() → void;
- abstract method method3c<T extends dynamic = dynamic>() → void;
- abstract method method4a<T extends core::Object* = core::Object*>() → void;
- abstract method method4b<T extends core::Object* = core::Object*>() → void;
- abstract method method4c<T extends core::Object* = core::Object*>() → void;
- abstract method method5a<T extends self::Class1* = self::Class1*>() → void;
- abstract method method5b<T extends self::Class1* = self::Class1*>() → void;
- abstract method method5c<T extends self::Class1* = self::Class1*>() → void;
+ abstract method method2a<T extends core::Object*>() → void;
+ abstract method method2b<T extends core::Object*>() → void;
+ abstract method method2c<T extends core::Object*>() → void;
+ abstract method method3a<T extends dynamic>() → void;
+ abstract method method3b<T extends dynamic>() → void;
+ abstract method method3c<T extends dynamic>() → void;
+ abstract method method4a<T extends core::Object*>() → void;
+ abstract method method4b<T extends core::Object*>() → void;
+ abstract method method4c<T extends core::Object*>() → void;
+ abstract method method5a<T extends self::Class1*>() → void;
+ abstract method method5b<T extends self::Class1*>() → void;
+ abstract method method5c<T extends self::Class1*>() → 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
@@ -144,20 +144,20 @@
: super self::Class1::•()
;
abstract method method1a<T extends core::Object* = dynamic>() → void;
- abstract method method1b<T extends core::Object* = core::Object*>() → void;
- abstract method method1c<T extends dynamic = dynamic>() → void;
+ abstract method method1b<T extends core::Object*>() → void;
+ abstract method method1c<T extends dynamic>() → void;
abstract method method2a<T extends core::Object* = dynamic>() → void;
- abstract method method2b<T extends core::Object* = core::Object*>() → void;
- abstract method method2c<T extends dynamic = dynamic>() → void;
+ abstract method method2b<T extends core::Object*>() → void;
+ abstract method method2c<T extends dynamic>() → void;
abstract method method3a<T extends core::Object* = dynamic>() → void;
- abstract method method3b<T extends core::Object* = core::Object*>() → void;
- abstract method method3c<T extends dynamic = dynamic>() → void;
- abstract method method4a<T extends core::Object* = core::Object*>() → void;
- abstract method method4b<T extends core::Object* = core::Object*>() → void;
- abstract method method4c<T extends core::Object* = core::Object*>() → void;
- abstract method method5a<T extends self::Class1* = self::Class1*>() → void;
- abstract method method5b<T extends self::Class1* = self::Class1*>() → void;
- abstract method method5c<T extends self::Class1* = self::Class1*>() → void;
+ abstract method method3b<T extends core::Object*>() → void;
+ abstract method method3c<T extends dynamic>() → void;
+ abstract method method4a<T extends core::Object*>() → void;
+ abstract method method4b<T extends core::Object*>() → void;
+ abstract method method4c<T extends core::Object*>() → void;
+ abstract method method5a<T extends self::Class1*>() → void;
+ abstract method method5b<T extends self::Class1*>() → void;
+ abstract method method5c<T extends self::Class1*>() → 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
@@ -186,14 +186,14 @@
abstract member-signature method method1a<T extends core::Object* = dynamic>() → void; -> self::Class1::method1a
abstract member-signature method method1b<T extends core::Object* = dynamic>() → void; -> self::Class1::method1b
abstract member-signature method method1c<T extends core::Object* = dynamic>() → void; -> self::Class1::method1c
- abstract member-signature method method2a<T extends core::Object* = core::Object*>() → void; -> self::Class1::method2a
- abstract member-signature method method2b<T extends core::Object* = core::Object*>() → void; -> self::Class1::method2b
- abstract member-signature method method2c<T extends core::Object* = core::Object*>() → void; -> self::Class1::method2c
- abstract member-signature method method4a<T extends core::Object* = core::Object*>() → void; -> self::Class1::method4a
- abstract member-signature method method4b<T extends core::Object* = core::Object*>() → void; -> self::Class1::method4b
- abstract member-signature method method4c<T extends core::Object* = core::Object*>() → void; -> self::Class1::method4c
- abstract member-signature method method5a<T extends self::Class1* = self::Class1*>() → void; -> self::Class1::method5a
- abstract member-signature method method5b<T extends self::Class1* = self::Class1*>() → void; -> self::Class1::method5b
- abstract member-signature method method5c<T extends self::Class1* = self::Class1*>() → void; -> self::Class1::method5c
+ abstract member-signature method method2a<T extends core::Object*>() → void; -> self::Class1::method2a
+ abstract member-signature method method2b<T extends core::Object*>() → void; -> self::Class1::method2b
+ abstract member-signature method method2c<T extends core::Object*>() → void; -> self::Class1::method2c
+ abstract member-signature method method4a<T extends core::Object*>() → void; -> self::Class1::method4a
+ abstract member-signature method method4b<T extends core::Object*>() → void; -> self::Class1::method4b
+ abstract member-signature method method4c<T extends core::Object*>() → void; -> self::Class1::method4c
+ abstract member-signature method method5a<T extends self::Class1*>() → void; -> self::Class1::method5a
+ abstract member-signature method method5b<T extends self::Class1*>() → void; -> self::Class1::method5b
+ abstract member-signature method method5c<T extends self::Class1*>() → void; -> self::Class1::method5c
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/generic_override.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/generic_override.dart.weak.outline.expect
index ab28d4e..11a11bb 100644
--- a/pkg/front_end/testcases/nnbd_mixed/generic_override.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/generic_override.dart.weak.outline.expect
@@ -46,56 +46,56 @@
abstract method method1a<T extends core::Object? = dynamic>() → void;
abstract method method1b<T extends core::Object? = dynamic>() → void;
abstract method method1c<T extends core::Object? = dynamic>() → void;
- abstract method method2a<T extends core::Object? = core::Object?>() → void;
- abstract method method2b<T extends core::Object? = core::Object?>() → void;
- abstract method method2c<T extends core::Object? = core::Object?>() → void;
- abstract method method3a<T extends dynamic = dynamic>() → void;
- abstract method method3b<T extends dynamic = dynamic>() → void;
- abstract method method3c<T extends dynamic = dynamic>() → void;
- abstract method method4a<T extends core::Object = core::Object>() → void;
- abstract method method4b<T extends core::Object = core::Object>() → void;
- abstract method method4c<T extends core::Object? = core::Object?>() → void;
- abstract method method5a<T extends self::Class1 = self::Class1>() → void;
- abstract method method5b<T extends self::Class1 = self::Class1>() → void;
- abstract method method5c<T extends self::Class1? = self::Class1?>() → void;
+ abstract method method2a<T extends core::Object?>() → void;
+ abstract method method2b<T extends core::Object?>() → void;
+ abstract method method2c<T extends core::Object?>() → void;
+ abstract method method3a<T extends dynamic>() → void;
+ abstract method method3b<T extends dynamic>() → void;
+ abstract method method3c<T extends dynamic>() → void;
+ abstract method method4a<T extends core::Object>() → void;
+ abstract method method4b<T extends core::Object>() → void;
+ abstract method method4c<T extends core::Object?>() → void;
+ abstract method method5a<T extends self::Class1>() → void;
+ abstract method method5b<T extends self::Class1>() → void;
+ abstract method method5c<T extends self::Class1?>() → void;
}
abstract class Class2 extends self::Class1 {
synthetic constructor •() → self::Class2
;
abstract method method1a<T extends core::Object? = dynamic>() → void;
- abstract method method1b<T extends core::Object? = core::Object?>() → void;
- abstract method method1c<T extends dynamic = dynamic>() → void;
+ abstract method method1b<T extends core::Object?>() → void;
+ abstract method method1c<T extends dynamic>() → void;
abstract method method2a<T extends core::Object? = dynamic>() → void;
- abstract method method2b<T extends core::Object? = core::Object?>() → void;
- abstract method method2c<T extends dynamic = dynamic>() → void;
+ abstract method method2b<T extends core::Object?>() → void;
+ abstract method method2c<T extends dynamic>() → void;
abstract method method3a<T extends core::Object? = dynamic>() → void;
- abstract method method3b<T extends core::Object? = core::Object?>() → void;
- abstract method method3c<T extends dynamic = dynamic>() → void;
- abstract method method4a<T extends core::Object = core::Object>() → void;
- abstract method method4b<T extends core::Object? = core::Object?>() → void;
- abstract method method4c<T extends core::Object = core::Object>() → void;
- abstract method method5a<T extends self::Class1 = self::Class1>() → void;
- abstract method method5b<T extends self::Class1? = self::Class1?>() → void;
- abstract method method5c<T extends self::Class1 = self::Class1>() → void;
+ abstract method method3b<T extends core::Object?>() → void;
+ abstract method method3c<T extends dynamic>() → void;
+ abstract method method4a<T extends core::Object>() → void;
+ abstract method method4b<T extends core::Object?>() → void;
+ abstract method method4c<T extends core::Object>() → void;
+ abstract method method5a<T extends self::Class1>() → void;
+ abstract method method5b<T extends self::Class1?>() → void;
+ abstract method method5c<T extends self::Class1>() → void;
}
abstract class Class3 extends gen::LegacyClass1 {
synthetic constructor •() → self::Class3
;
abstract method method1a<T extends core::Object? = dynamic>() → void;
- abstract method method1b<T extends core::Object? = core::Object?>() → void;
- abstract method method1c<T extends dynamic = dynamic>() → void;
+ abstract method method1b<T extends core::Object?>() → void;
+ abstract method method1c<T extends dynamic>() → void;
abstract method method2a<T extends core::Object? = dynamic>() → void;
- abstract method method2b<T extends core::Object? = core::Object?>() → void;
- abstract method method2c<T extends dynamic = dynamic>() → void;
+ abstract method method2b<T extends core::Object?>() → void;
+ abstract method method2c<T extends dynamic>() → void;
abstract method method3a<T extends core::Object? = dynamic>() → void;
- abstract method method3b<T extends core::Object? = core::Object?>() → void;
- abstract method method3c<T extends dynamic = dynamic>() → void;
- abstract method method4a<T extends core::Object = core::Object>() → void;
- abstract method method4b<T extends core::Object? = core::Object?>() → void;
- abstract method method4c<T extends core::Object = core::Object>() → void;
- abstract method method5a<T extends self::Class1 = self::Class1>() → void;
- abstract method method5b<T extends self::Class1? = self::Class1?>() → void;
- abstract method method5c<T extends self::Class1 = self::Class1>() → void;
+ abstract method method3b<T extends core::Object?>() → void;
+ abstract method method3c<T extends dynamic>() → void;
+ abstract method method4a<T extends core::Object>() → void;
+ abstract method method4b<T extends core::Object?>() → void;
+ abstract method method4c<T extends core::Object>() → void;
+ abstract method method5a<T extends self::Class1>() → void;
+ abstract method method5b<T extends self::Class1?>() → void;
+ abstract method method5c<T extends self::Class1>() → void;
}
static method main() → dynamic
;
@@ -113,18 +113,18 @@
abstract method method1a<T extends core::Object* = dynamic>() → void;
abstract method method1b<T extends core::Object* = dynamic>() → void;
abstract method method1c<T extends core::Object* = dynamic>() → void;
- abstract method method2a<T extends core::Object* = core::Object*>() → void;
- abstract method method2b<T extends core::Object* = core::Object*>() → void;
- abstract method method2c<T extends core::Object* = core::Object*>() → void;
- abstract method method3a<T extends dynamic = dynamic>() → void;
- abstract method method3b<T extends dynamic = dynamic>() → void;
- abstract method method3c<T extends dynamic = dynamic>() → void;
- abstract method method4a<T extends core::Object* = core::Object*>() → void;
- abstract method method4b<T extends core::Object* = core::Object*>() → void;
- abstract method method4c<T extends core::Object* = core::Object*>() → void;
- abstract method method5a<T extends self::Class1* = self::Class1*>() → void;
- abstract method method5b<T extends self::Class1* = self::Class1*>() → void;
- abstract method method5c<T extends self::Class1* = self::Class1*>() → void;
+ abstract method method2a<T extends core::Object*>() → void;
+ abstract method method2b<T extends core::Object*>() → void;
+ abstract method method2c<T extends core::Object*>() → void;
+ abstract method method3a<T extends dynamic>() → void;
+ abstract method method3b<T extends dynamic>() → void;
+ abstract method method3c<T extends dynamic>() → void;
+ abstract method method4a<T extends core::Object*>() → void;
+ abstract method method4b<T extends core::Object*>() → void;
+ abstract method method4c<T extends core::Object*>() → void;
+ abstract method method5a<T extends self::Class1*>() → void;
+ abstract method method5b<T extends self::Class1*>() → void;
+ abstract method method5c<T extends self::Class1*>() → 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
@@ -140,20 +140,20 @@
synthetic constructor •() → gen::LegacyClass2*
;
abstract method method1a<T extends core::Object* = dynamic>() → void;
- abstract method method1b<T extends core::Object* = core::Object*>() → void;
- abstract method method1c<T extends dynamic = dynamic>() → void;
+ abstract method method1b<T extends core::Object*>() → void;
+ abstract method method1c<T extends dynamic>() → void;
abstract method method2a<T extends core::Object* = dynamic>() → void;
- abstract method method2b<T extends core::Object* = core::Object*>() → void;
- abstract method method2c<T extends dynamic = dynamic>() → void;
+ abstract method method2b<T extends core::Object*>() → void;
+ abstract method method2c<T extends dynamic>() → void;
abstract method method3a<T extends core::Object* = dynamic>() → void;
- abstract method method3b<T extends core::Object* = core::Object*>() → void;
- abstract method method3c<T extends dynamic = dynamic>() → void;
- abstract method method4a<T extends core::Object* = core::Object*>() → void;
- abstract method method4b<T extends core::Object* = core::Object*>() → void;
- abstract method method4c<T extends core::Object* = core::Object*>() → void;
- abstract method method5a<T extends self::Class1* = self::Class1*>() → void;
- abstract method method5b<T extends self::Class1* = self::Class1*>() → void;
- abstract method method5c<T extends self::Class1* = self::Class1*>() → void;
+ abstract method method3b<T extends core::Object*>() → void;
+ abstract method method3c<T extends dynamic>() → void;
+ abstract method method4a<T extends core::Object*>() → void;
+ abstract method method4b<T extends core::Object*>() → void;
+ abstract method method4c<T extends core::Object*>() → void;
+ abstract method method5a<T extends self::Class1*>() → void;
+ abstract method method5b<T extends self::Class1*>() → void;
+ abstract method method5c<T extends self::Class1*>() → 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
@@ -181,15 +181,15 @@
abstract member-signature method method1a<T extends core::Object* = dynamic>() → void; -> self::Class1::method1a
abstract member-signature method method1b<T extends core::Object* = dynamic>() → void; -> self::Class1::method1b
abstract member-signature method method1c<T extends core::Object* = dynamic>() → void; -> self::Class1::method1c
- abstract member-signature method method2a<T extends core::Object* = core::Object*>() → void; -> self::Class1::method2a
- abstract member-signature method method2b<T extends core::Object* = core::Object*>() → void; -> self::Class1::method2b
- abstract member-signature method method2c<T extends core::Object* = core::Object*>() → void; -> self::Class1::method2c
- abstract member-signature method method4a<T extends core::Object* = core::Object*>() → void; -> self::Class1::method4a
- abstract member-signature method method4b<T extends core::Object* = core::Object*>() → void; -> self::Class1::method4b
- abstract member-signature method method4c<T extends core::Object* = core::Object*>() → void; -> self::Class1::method4c
- abstract member-signature method method5a<T extends self::Class1* = self::Class1*>() → void; -> self::Class1::method5a
- abstract member-signature method method5b<T extends self::Class1* = self::Class1*>() → void; -> self::Class1::method5b
- abstract member-signature method method5c<T extends self::Class1* = self::Class1*>() → void; -> self::Class1::method5c
+ abstract member-signature method method2a<T extends core::Object*>() → void; -> self::Class1::method2a
+ abstract member-signature method method2b<T extends core::Object*>() → void; -> self::Class1::method2b
+ abstract member-signature method method2c<T extends core::Object*>() → void; -> self::Class1::method2c
+ abstract member-signature method method4a<T extends core::Object*>() → void; -> self::Class1::method4a
+ abstract member-signature method method4b<T extends core::Object*>() → void; -> self::Class1::method4b
+ abstract member-signature method method4c<T extends core::Object*>() → void; -> self::Class1::method4c
+ abstract member-signature method method5a<T extends self::Class1*>() → void; -> self::Class1::method5a
+ abstract member-signature method method5b<T extends self::Class1*>() → void; -> self::Class1::method5b
+ abstract member-signature method method5c<T extends self::Class1*>() → void; -> self::Class1::method5c
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd_mixed/generic_override.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/generic_override.dart.weak.transformed.expect
index 30674ab..71759ac 100644
--- a/pkg/front_end/testcases/nnbd_mixed/generic_override.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/generic_override.dart.weak.transformed.expect
@@ -47,58 +47,58 @@
abstract method method1a<T extends core::Object? = dynamic>() → void;
abstract method method1b<T extends core::Object? = dynamic>() → void;
abstract method method1c<T extends core::Object? = dynamic>() → void;
- abstract method method2a<T extends core::Object? = core::Object?>() → void;
- abstract method method2b<T extends core::Object? = core::Object?>() → void;
- abstract method method2c<T extends core::Object? = core::Object?>() → void;
- abstract method method3a<T extends dynamic = dynamic>() → void;
- abstract method method3b<T extends dynamic = dynamic>() → void;
- abstract method method3c<T extends dynamic = dynamic>() → void;
- abstract method method4a<T extends core::Object = core::Object>() → void;
- abstract method method4b<T extends core::Object = core::Object>() → void;
- abstract method method4c<T extends core::Object? = core::Object?>() → void;
- abstract method method5a<T extends self::Class1 = self::Class1>() → void;
- abstract method method5b<T extends self::Class1 = self::Class1>() → void;
- abstract method method5c<T extends self::Class1? = self::Class1?>() → void;
+ abstract method method2a<T extends core::Object?>() → void;
+ abstract method method2b<T extends core::Object?>() → void;
+ abstract method method2c<T extends core::Object?>() → void;
+ abstract method method3a<T extends dynamic>() → void;
+ abstract method method3b<T extends dynamic>() → void;
+ abstract method method3c<T extends dynamic>() → void;
+ abstract method method4a<T extends core::Object>() → void;
+ abstract method method4b<T extends core::Object>() → void;
+ abstract method method4c<T extends core::Object?>() → void;
+ abstract method method5a<T extends self::Class1>() → void;
+ abstract method method5b<T extends self::Class1>() → void;
+ abstract method method5c<T extends self::Class1?>() → void;
}
abstract class Class2 extends self::Class1 {
synthetic constructor •() → self::Class2
: super self::Class1::•()
;
abstract method method1a<T extends core::Object? = dynamic>() → void;
- abstract method method1b<T extends core::Object? = core::Object?>() → void;
- abstract method method1c<T extends dynamic = dynamic>() → void;
+ abstract method method1b<T extends core::Object?>() → void;
+ abstract method method1c<T extends dynamic>() → void;
abstract method method2a<T extends core::Object? = dynamic>() → void;
- abstract method method2b<T extends core::Object? = core::Object?>() → void;
- abstract method method2c<T extends dynamic = dynamic>() → void;
+ abstract method method2b<T extends core::Object?>() → void;
+ abstract method method2c<T extends dynamic>() → void;
abstract method method3a<T extends core::Object? = dynamic>() → void;
- abstract method method3b<T extends core::Object? = core::Object?>() → void;
- abstract method method3c<T extends dynamic = dynamic>() → void;
- abstract method method4a<T extends core::Object = core::Object>() → void;
- abstract method method4b<T extends core::Object? = core::Object?>() → void;
- abstract method method4c<T extends core::Object = core::Object>() → void;
- abstract method method5a<T extends self::Class1 = self::Class1>() → void;
- abstract method method5b<T extends self::Class1? = self::Class1?>() → void;
- abstract method method5c<T extends self::Class1 = self::Class1>() → void;
+ abstract method method3b<T extends core::Object?>() → void;
+ abstract method method3c<T extends dynamic>() → void;
+ abstract method method4a<T extends core::Object>() → void;
+ abstract method method4b<T extends core::Object?>() → void;
+ abstract method method4c<T extends core::Object>() → void;
+ abstract method method5a<T extends self::Class1>() → void;
+ abstract method method5b<T extends self::Class1?>() → void;
+ abstract method method5c<T extends self::Class1>() → void;
}
abstract class Class3 extends gen::LegacyClass1 {
synthetic constructor •() → self::Class3
: super gen::LegacyClass1::•()
;
abstract method method1a<T extends core::Object? = dynamic>() → void;
- abstract method method1b<T extends core::Object? = core::Object?>() → void;
- abstract method method1c<T extends dynamic = dynamic>() → void;
+ abstract method method1b<T extends core::Object?>() → void;
+ abstract method method1c<T extends dynamic>() → void;
abstract method method2a<T extends core::Object? = dynamic>() → void;
- abstract method method2b<T extends core::Object? = core::Object?>() → void;
- abstract method method2c<T extends dynamic = dynamic>() → void;
+ abstract method method2b<T extends core::Object?>() → void;
+ abstract method method2c<T extends dynamic>() → void;
abstract method method3a<T extends core::Object? = dynamic>() → void;
- abstract method method3b<T extends core::Object? = core::Object?>() → void;
- abstract method method3c<T extends dynamic = dynamic>() → void;
- abstract method method4a<T extends core::Object = core::Object>() → void;
- abstract method method4b<T extends core::Object? = core::Object?>() → void;
- abstract method method4c<T extends core::Object = core::Object>() → void;
- abstract method method5a<T extends self::Class1 = self::Class1>() → void;
- abstract method method5b<T extends self::Class1? = self::Class1?>() → void;
- abstract method method5c<T extends self::Class1 = self::Class1>() → void;
+ abstract method method3b<T extends core::Object?>() → void;
+ abstract method method3c<T extends dynamic>() → void;
+ abstract method method4a<T extends core::Object>() → void;
+ abstract method method4b<T extends core::Object?>() → void;
+ abstract method method4c<T extends core::Object>() → void;
+ abstract method method5a<T extends self::Class1>() → void;
+ abstract method method5b<T extends self::Class1?>() → void;
+ abstract method method5c<T extends self::Class1>() → void;
}
static method main() → dynamic {}
@@ -116,18 +116,18 @@
abstract method method1a<T extends core::Object* = dynamic>() → void;
abstract method method1b<T extends core::Object* = dynamic>() → void;
abstract method method1c<T extends core::Object* = dynamic>() → void;
- abstract method method2a<T extends core::Object* = core::Object*>() → void;
- abstract method method2b<T extends core::Object* = core::Object*>() → void;
- abstract method method2c<T extends core::Object* = core::Object*>() → void;
- abstract method method3a<T extends dynamic = dynamic>() → void;
- abstract method method3b<T extends dynamic = dynamic>() → void;
- abstract method method3c<T extends dynamic = dynamic>() → void;
- abstract method method4a<T extends core::Object* = core::Object*>() → void;
- abstract method method4b<T extends core::Object* = core::Object*>() → void;
- abstract method method4c<T extends core::Object* = core::Object*>() → void;
- abstract method method5a<T extends self::Class1* = self::Class1*>() → void;
- abstract method method5b<T extends self::Class1* = self::Class1*>() → void;
- abstract method method5c<T extends self::Class1* = self::Class1*>() → void;
+ abstract method method2a<T extends core::Object*>() → void;
+ abstract method method2b<T extends core::Object*>() → void;
+ abstract method method2c<T extends core::Object*>() → void;
+ abstract method method3a<T extends dynamic>() → void;
+ abstract method method3b<T extends dynamic>() → void;
+ abstract method method3c<T extends dynamic>() → void;
+ abstract method method4a<T extends core::Object*>() → void;
+ abstract method method4b<T extends core::Object*>() → void;
+ abstract method method4c<T extends core::Object*>() → void;
+ abstract method method5a<T extends self::Class1*>() → void;
+ abstract method method5b<T extends self::Class1*>() → void;
+ abstract method method5c<T extends self::Class1*>() → 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
@@ -144,20 +144,20 @@
: super self::Class1::•()
;
abstract method method1a<T extends core::Object* = dynamic>() → void;
- abstract method method1b<T extends core::Object* = core::Object*>() → void;
- abstract method method1c<T extends dynamic = dynamic>() → void;
+ abstract method method1b<T extends core::Object*>() → void;
+ abstract method method1c<T extends dynamic>() → void;
abstract method method2a<T extends core::Object* = dynamic>() → void;
- abstract method method2b<T extends core::Object* = core::Object*>() → void;
- abstract method method2c<T extends dynamic = dynamic>() → void;
+ abstract method method2b<T extends core::Object*>() → void;
+ abstract method method2c<T extends dynamic>() → void;
abstract method method3a<T extends core::Object* = dynamic>() → void;
- abstract method method3b<T extends core::Object* = core::Object*>() → void;
- abstract method method3c<T extends dynamic = dynamic>() → void;
- abstract method method4a<T extends core::Object* = core::Object*>() → void;
- abstract method method4b<T extends core::Object* = core::Object*>() → void;
- abstract method method4c<T extends core::Object* = core::Object*>() → void;
- abstract method method5a<T extends self::Class1* = self::Class1*>() → void;
- abstract method method5b<T extends self::Class1* = self::Class1*>() → void;
- abstract method method5c<T extends self::Class1* = self::Class1*>() → void;
+ abstract method method3b<T extends core::Object*>() → void;
+ abstract method method3c<T extends dynamic>() → void;
+ abstract method method4a<T extends core::Object*>() → void;
+ abstract method method4b<T extends core::Object*>() → void;
+ abstract method method4c<T extends core::Object*>() → void;
+ abstract method method5a<T extends self::Class1*>() → void;
+ abstract method method5b<T extends self::Class1*>() → void;
+ abstract method method5c<T extends self::Class1*>() → 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
@@ -186,14 +186,14 @@
abstract member-signature method method1a<T extends core::Object* = dynamic>() → void; -> self::Class1::method1a
abstract member-signature method method1b<T extends core::Object* = dynamic>() → void; -> self::Class1::method1b
abstract member-signature method method1c<T extends core::Object* = dynamic>() → void; -> self::Class1::method1c
- abstract member-signature method method2a<T extends core::Object* = core::Object*>() → void; -> self::Class1::method2a
- abstract member-signature method method2b<T extends core::Object* = core::Object*>() → void; -> self::Class1::method2b
- abstract member-signature method method2c<T extends core::Object* = core::Object*>() → void; -> self::Class1::method2c
- abstract member-signature method method4a<T extends core::Object* = core::Object*>() → void; -> self::Class1::method4a
- abstract member-signature method method4b<T extends core::Object* = core::Object*>() → void; -> self::Class1::method4b
- abstract member-signature method method4c<T extends core::Object* = core::Object*>() → void; -> self::Class1::method4c
- abstract member-signature method method5a<T extends self::Class1* = self::Class1*>() → void; -> self::Class1::method5a
- abstract member-signature method method5b<T extends self::Class1* = self::Class1*>() → void; -> self::Class1::method5b
- abstract member-signature method method5c<T extends self::Class1* = self::Class1*>() → void; -> self::Class1::method5c
+ abstract member-signature method method2a<T extends core::Object*>() → void; -> self::Class1::method2a
+ abstract member-signature method method2b<T extends core::Object*>() → void; -> self::Class1::method2b
+ abstract member-signature method method2c<T extends core::Object*>() → void; -> self::Class1::method2c
+ abstract member-signature method method4a<T extends core::Object*>() → void; -> self::Class1::method4a
+ abstract member-signature method method4b<T extends core::Object*>() → void; -> self::Class1::method4b
+ abstract member-signature method method4c<T extends core::Object*>() → void; -> self::Class1::method4c
+ abstract member-signature method method5a<T extends self::Class1*>() → void; -> self::Class1::method5a
+ abstract member-signature method method5b<T extends self::Class1*>() → void; -> self::Class1::method5b
+ abstract member-signature method method5c<T extends self::Class1*>() → void; -> self::Class1::method5c
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.expect
index e4cfa36..c66b3a9 100644
--- a/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.expect
@@ -143,7 +143,7 @@
synthetic constructor •() → inf::B
: super core::Object::•()
;
- abstract method bar<X extends core::List<core::int?>? = core::List<core::int?>?>() → inf::B::bar::X%;
+ abstract method bar<X extends core::List<core::int?>?>() → inf::B::bar::X%;
abstract method foo(core::List<core::int> list) → dynamic;
}
static field inf::C<dynamic> field1 = new inf::C::•<dynamic>();
diff --git a/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.outline.expect
index b6062b8..363fbfb 100644
--- a/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.outline.expect
@@ -47,7 +47,7 @@
abstract class B extends core::Object {
synthetic constructor •() → inf::B
;
- abstract method bar<X extends core::List<core::int?>? = core::List<core::int?>?>() → inf::B::bar::X%;
+ abstract method bar<X extends core::List<core::int?>?>() → inf::B::bar::X%;
abstract method foo(core::List<core::int> list) → dynamic;
}
static field inf::C<dynamic> field1;
diff --git a/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.transformed.expect
index d9beb51..97b6ea6 100644
--- a/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/infer_constraints_from_opt_in.dart.weak.transformed.expect
@@ -143,7 +143,7 @@
synthetic constructor •() → inf::B
: super core::Object::•()
;
- abstract method bar<X extends core::List<core::int?>? = core::List<core::int?>?>() → inf::B::bar::X%;
+ abstract method bar<X extends core::List<core::int?>?>() → inf::B::bar::X%;
abstract method foo(core::List<core::int> list) → dynamic;
}
static field inf::C<dynamic> field1 = new inf::C::•<dynamic>();
diff --git a/pkg/front_end/testcases/nnbd_mixed/infer_in_legacy_from_opted_in.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/infer_in_legacy_from_opted_in.dart.weak.expect
index 52dc9a8..2ae2d77 100644
--- a/pkg/front_end/testcases/nnbd_mixed/infer_in_legacy_from_opted_in.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/infer_in_legacy_from_opted_in.dart.weak.expect
@@ -15,6 +15,6 @@
import "dart:core" as core;
static field core::int y = 42;
-static method foo<T extends core::num = core::num>(inf::foo::T t1, inf::foo::T t2) → inf::foo::T
+static method foo<T extends core::num>(inf::foo::T t1, inf::foo::T t2) → inf::foo::T
return t1;
static method baz(core::int? v) → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/infer_in_legacy_from_opted_in.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/infer_in_legacy_from_opted_in.dart.weak.outline.expect
index f226132..d760b98 100644
--- a/pkg/front_end/testcases/nnbd_mixed/infer_in_legacy_from_opted_in.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/infer_in_legacy_from_opted_in.dart.weak.outline.expect
@@ -14,7 +14,7 @@
import "dart:core" as core;
static field core::int y;
-static method foo<T extends core::num = core::num>(self2::foo::T t1, self2::foo::T t2) → self2::foo::T
+static method foo<T extends core::num>(self2::foo::T t1, self2::foo::T t2) → self2::foo::T
;
static method baz(core::int? v) → dynamic
;
diff --git a/pkg/front_end/testcases/nnbd_mixed/infer_in_legacy_from_opted_in.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/infer_in_legacy_from_opted_in.dart.weak.transformed.expect
index 52dc9a8..2ae2d77 100644
--- a/pkg/front_end/testcases/nnbd_mixed/infer_in_legacy_from_opted_in.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/infer_in_legacy_from_opted_in.dart.weak.transformed.expect
@@ -15,6 +15,6 @@
import "dart:core" as core;
static field core::int y = 42;
-static method foo<T extends core::num = core::num>(inf::foo::T t1, inf::foo::T t2) → inf::foo::T
+static method foo<T extends core::num>(inf::foo::T t1, inf::foo::T t2) → inf::foo::T
return t1;
static method baz(core::int? v) → dynamic {}
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue39666.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/issue39666.dart.weak.expect
index 42dde26..779a4e3 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue39666.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue39666.dart.weak.expect
@@ -5,7 +5,7 @@
import "dart:async";
import "org-dartlang-testcase:///issue39666_lib.dart";
-class A<X extends FutureOr<core::List<dynamic>> = FutureOr<core::List<dynamic>>> extends core::Object {
+class A<X extends FutureOr<core::List<dynamic>>> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
;
@@ -18,7 +18,7 @@
import "dart:async";
-class A<X extends FutureOr<core::List<dynamic>*>* = FutureOr<core::List<dynamic>*>*> extends core::Object {
+class A<X extends FutureOr<core::List<dynamic>*>*> extends core::Object {
synthetic constructor •() → self2::A<self2::A::X*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue39666.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/issue39666.dart.weak.outline.expect
index e703226..262d2a5 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue39666.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue39666.dart.weak.outline.expect
@@ -5,7 +5,7 @@
import "dart:async";
import "org-dartlang-testcase:///issue39666_lib.dart";
-class A<X extends FutureOr<core::List<dynamic>> = FutureOr<core::List<dynamic>>> extends core::Object {
+class A<X extends FutureOr<core::List<dynamic>>> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
;
}
@@ -18,7 +18,7 @@
import "dart:async";
-class A<X extends FutureOr<core::List<dynamic>*>* = FutureOr<core::List<dynamic>*>*> extends core::Object {
+class A<X extends FutureOr<core::List<dynamic>*>*> extends core::Object {
synthetic constructor •() → self2::A<self2::A::X*>*
;
abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
diff --git a/pkg/front_end/testcases/nnbd_mixed/issue39666.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/issue39666.dart.weak.transformed.expect
index 42dde26..779a4e3 100644
--- a/pkg/front_end/testcases/nnbd_mixed/issue39666.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/issue39666.dart.weak.transformed.expect
@@ -5,7 +5,7 @@
import "dart:async";
import "org-dartlang-testcase:///issue39666_lib.dart";
-class A<X extends FutureOr<core::List<dynamic>> = FutureOr<core::List<dynamic>>> extends core::Object {
+class A<X extends FutureOr<core::List<dynamic>>> extends core::Object {
synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
;
@@ -18,7 +18,7 @@
import "dart:async";
-class A<X extends FutureOr<core::List<dynamic>*>* = FutureOr<core::List<dynamic>*>*> extends core::Object {
+class A<X extends FutureOr<core::List<dynamic>*>*> extends core::Object {
synthetic constructor •() → self2::A<self2::A::X*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_dill2/main.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/mixin_from_dill2/main.dart.weak.expect
index 8bc2add..39658bf 100644
--- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_dill2/main.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_dill2/main.dart.weak.expect
@@ -5,7 +5,7 @@
import "org-dartlang-testcase:///main_lib.dart";
-abstract class RenderAnimatedOpacityMixin<T extends mai::RenderObject = mai::RenderObject> extends mai::RenderObjectWithChildMixin<self::RenderAnimatedOpacityMixin::T> /*isMixinDeclaration*/ {
+abstract class RenderAnimatedOpacityMixin<T extends mai::RenderObject> extends mai::RenderObjectWithChildMixin<self::RenderAnimatedOpacityMixin::T> /*isMixinDeclaration*/ {
}
abstract class _RenderAnimatedOpacity&RenderProxyBox&RenderProxyBoxMixin = mai::RenderProxyBox with mai::RenderProxyBoxMixin<mai::RenderBox> /*isAnonymousMixin*/ {
synthetic constructor •() → self::_RenderAnimatedOpacity&RenderProxyBox&RenderProxyBoxMixin
@@ -78,17 +78,17 @@
method hitTestChildren(mai::BoxHitTestResult result, {required mai::Offset position = #C1}) → core::bool
return false;
}
-abstract class RenderObjectWithChildMixin<ChildType extends mai::RenderObject = mai::RenderObject> extends mai::RenderObject /*isMixinDeclaration*/ {
+abstract class RenderObjectWithChildMixin<ChildType extends mai::RenderObject> extends mai::RenderObject /*isMixinDeclaration*/ {
generic-covariant-impl field mai::RenderObjectWithChildMixin::ChildType? _child = null;
get child() → mai::RenderObjectWithChildMixin::ChildType?
return this.{mai::RenderObjectWithChildMixin::_child};
}
-abstract class _RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin<T extends mai::RenderBox = mai::RenderBox> extends core::Object implements mai::RenderBox, mai::RenderObjectWithChildMixin<mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin::T> /*isAnonymousMixin*/ {
+abstract class _RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin<T extends mai::RenderBox> extends core::Object implements mai::RenderBox, mai::RenderObjectWithChildMixin<mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin::T> /*isAnonymousMixin*/ {
synthetic constructor •() → mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin<mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin::T>
: super core::Object::•()
;
}
-abstract class RenderProxyBoxMixin<T extends mai::RenderBox = mai::RenderBox> extends mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin<mai::RenderProxyBoxMixin::T> /*isMixinDeclaration*/ {
+abstract class RenderProxyBoxMixin<T extends mai::RenderBox> extends mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin<mai::RenderProxyBoxMixin::T> /*isMixinDeclaration*/ {
@#C2
method hitTestChildren(mai::BoxHitTestResult result, {required mai::Offset position = #C1}) → core::bool {
return let final core::bool? #t1 = let final mai::RenderProxyBoxMixin::T? #t2 = this.{mai::RenderObjectWithChildMixin::child} in #t2.{core::Object::==}(null) ?{core::bool?} null : #t2{mai::RenderProxyBoxMixin::T}.{mai::RenderBox::hitTest}(result, position: position) in #t1.{core::Object::==}(null) ?{core::bool} false : #t1{core::bool};
diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_dill2/main.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/mixin_from_dill2/main.dart.weak.outline.expect
index a221d7d..9cec757 100644
--- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_dill2/main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_dill2/main.dart.weak.outline.expect
@@ -5,7 +5,7 @@
import "org-dartlang-testcase:///main_lib.dart";
-abstract class RenderAnimatedOpacityMixin<T extends mai::RenderObject = mai::RenderObject> extends mai::RenderObjectWithChildMixin<self::RenderAnimatedOpacityMixin::T> /*isMixinDeclaration*/ {
+abstract class RenderAnimatedOpacityMixin<T extends mai::RenderObject> extends mai::RenderObjectWithChildMixin<self::RenderAnimatedOpacityMixin::T> /*isMixinDeclaration*/ {
}
abstract class _RenderAnimatedOpacity&RenderProxyBox&RenderProxyBoxMixin = mai::RenderProxyBox with mai::RenderProxyBoxMixin<mai::RenderBox> /*isAnonymousMixin*/ {
synthetic constructor •() → self::_RenderAnimatedOpacity&RenderProxyBox&RenderProxyBoxMixin
@@ -69,16 +69,16 @@
method hitTestChildren(mai::BoxHitTestResult result, {required mai::Offset position}) → core::bool
;
}
-abstract class RenderObjectWithChildMixin<ChildType extends mai::RenderObject = mai::RenderObject> extends mai::RenderObject /*isMixinDeclaration*/ {
+abstract class RenderObjectWithChildMixin<ChildType extends mai::RenderObject> extends mai::RenderObject /*isMixinDeclaration*/ {
generic-covariant-impl field mai::RenderObjectWithChildMixin::ChildType? _child;
get child() → mai::RenderObjectWithChildMixin::ChildType?
;
}
-abstract class _RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin<T extends mai::RenderBox = mai::RenderBox> extends core::Object implements mai::RenderBox, mai::RenderObjectWithChildMixin<mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin::T> /*isAnonymousMixin*/ {
+abstract class _RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin<T extends mai::RenderBox> extends core::Object implements mai::RenderBox, mai::RenderObjectWithChildMixin<mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin::T> /*isAnonymousMixin*/ {
synthetic constructor •() → mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin<mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin::T>
;
}
-abstract class RenderProxyBoxMixin<T extends mai::RenderBox = mai::RenderBox> extends mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin<mai::RenderProxyBoxMixin::T> /*isMixinDeclaration*/ {
+abstract class RenderProxyBoxMixin<T extends mai::RenderBox> extends mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin<mai::RenderProxyBoxMixin::T> /*isMixinDeclaration*/ {
@#C1
method hitTestChildren(mai::BoxHitTestResult result, {required mai::Offset position}) → core::bool
;
diff --git a/pkg/front_end/testcases/nnbd_mixed/mixin_from_dill2/main.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/mixin_from_dill2/main.dart.weak.transformed.expect
index 979cddb..d142fe2 100644
--- a/pkg/front_end/testcases/nnbd_mixed/mixin_from_dill2/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/mixin_from_dill2/main.dart.weak.transformed.expect
@@ -5,7 +5,7 @@
import "org-dartlang-testcase:///main_lib.dart";
-abstract class RenderAnimatedOpacityMixin<T extends mai::RenderObject = mai::RenderObject> extends mai::RenderObjectWithChildMixin<self::RenderAnimatedOpacityMixin::T> /*isMixinDeclaration*/ {
+abstract class RenderAnimatedOpacityMixin<T extends mai::RenderObject> extends mai::RenderObjectWithChildMixin<self::RenderAnimatedOpacityMixin::T> /*isMixinDeclaration*/ {
}
abstract class _RenderAnimatedOpacity&RenderProxyBox&RenderProxyBoxMixin extends mai::RenderProxyBox implements mai::RenderProxyBoxMixin<mai::RenderBox> /*isAnonymousMixin,isEliminatedMixin*/ {
synthetic constructor •() → self::_RenderAnimatedOpacity&RenderProxyBox&RenderProxyBoxMixin
@@ -80,17 +80,17 @@
method hitTestChildren(mai::BoxHitTestResult result, {required mai::Offset position = #C2}) → core::bool
return false;
}
-abstract class RenderObjectWithChildMixin<ChildType extends mai::RenderObject = mai::RenderObject> extends mai::RenderObject /*isMixinDeclaration*/ {
+abstract class RenderObjectWithChildMixin<ChildType extends mai::RenderObject> extends mai::RenderObject /*isMixinDeclaration*/ {
generic-covariant-impl field mai::RenderObjectWithChildMixin::ChildType? _child = null;
get child() → mai::RenderObjectWithChildMixin::ChildType?
return this.{mai::RenderObjectWithChildMixin::_child};
}
-abstract class _RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin<T extends mai::RenderBox = mai::RenderBox> extends core::Object implements mai::RenderBox, mai::RenderObjectWithChildMixin<mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin::T> /*isAnonymousMixin*/ {
+abstract class _RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin<T extends mai::RenderBox> extends core::Object implements mai::RenderBox, mai::RenderObjectWithChildMixin<mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin::T> /*isAnonymousMixin*/ {
synthetic constructor •() → mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin<mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin::T>
: super core::Object::•()
;
}
-abstract class RenderProxyBoxMixin<T extends mai::RenderBox = mai::RenderBox> extends mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin<mai::RenderProxyBoxMixin::T> /*isMixinDeclaration*/ {
+abstract class RenderProxyBoxMixin<T extends mai::RenderBox> extends mai::_RenderProxyBoxMixin&RenderBox&RenderObjectWithChildMixin<mai::RenderProxyBoxMixin::T> /*isMixinDeclaration*/ {
@#C1
method hitTestChildren(mai::BoxHitTestResult result, {required mai::Offset position = #C2}) → core::bool {
return let final core::bool? #t3 = let final mai::RenderProxyBoxMixin::T? #t4 = this.{mai::RenderObjectWithChildMixin::child} in #t4.{core::Object::==}(null) ?{core::bool?} null : #t4{mai::RenderProxyBoxMixin::T}.{mai::RenderBox::hitTest}(result, position: position) in #t3.{core::Object::==}(null) ?{core::bool} false : #t3{core::bool};
diff --git a/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.expect
index 2572b51..2617678 100644
--- a/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.expect
@@ -169,7 +169,7 @@
return null;
set nullProperty(Null value) → void {}
}
-class BoundedGenericClass<T extends Never = Never> extends core::Object {
+class BoundedGenericClass<T extends Never> extends core::Object {
synthetic constructor •() → nev::BoundedGenericClass<nev::BoundedGenericClass::T>
: super core::Object::•()
;
@@ -177,9 +177,9 @@
late static field Never optInNever;
static method throwing() → Never
return throw "Never!";
-static method boundedGenericMethod1<T extends Never = Never>() → nev::boundedGenericMethod1::T
+static method boundedGenericMethod1<T extends Never>() → nev::boundedGenericMethod1::T
return throw "Should never return";
-static method boundedGenericMethod2<T extends Never = Never>() → core::List<nev::boundedGenericMethod2::T>
+static method boundedGenericMethod2<T extends Never>() → core::List<nev::boundedGenericMethod2::T>
return <nev::boundedGenericMethod2::T>[];
constants {
diff --git a/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.outline.expect
index 32b770e..689fd991 100644
--- a/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.outline.expect
@@ -108,14 +108,14 @@
set nullProperty(Null value) → void
;
}
-class BoundedGenericClass<T extends Never = Never> extends core::Object {
+class BoundedGenericClass<T extends Never> extends core::Object {
synthetic constructor •() → nev::BoundedGenericClass<nev::BoundedGenericClass::T>
;
}
late static field Never optInNever;
static method throwing() → Never
;
-static method boundedGenericMethod1<T extends Never = Never>() → nev::boundedGenericMethod1::T
+static method boundedGenericMethod1<T extends Never>() → nev::boundedGenericMethod1::T
;
-static method boundedGenericMethod2<T extends Never = Never>() → core::List<nev::boundedGenericMethod2::T>
+static method boundedGenericMethod2<T extends Never>() → core::List<nev::boundedGenericMethod2::T>
;
diff --git a/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.transformed.expect
index ce6f78a..fbb85cb 100644
--- a/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/never_opt_out.dart.weak.transformed.expect
@@ -169,7 +169,7 @@
return null;
set nullProperty(Null value) → void {}
}
-class BoundedGenericClass<T extends Never = Never> extends core::Object {
+class BoundedGenericClass<T extends Never> extends core::Object {
synthetic constructor •() → nev::BoundedGenericClass<nev::BoundedGenericClass::T>
: super core::Object::•()
;
@@ -177,9 +177,9 @@
late static field Never optInNever;
static method throwing() → Never
return throw "Never!";
-static method boundedGenericMethod1<T extends Never = Never>() → nev::boundedGenericMethod1::T
+static method boundedGenericMethod1<T extends Never>() → nev::boundedGenericMethod1::T
return throw "Should never return";
-static method boundedGenericMethod2<T extends Never = Never>() → core::List<nev::boundedGenericMethod2::T>
+static method boundedGenericMethod2<T extends Never>() → core::List<nev::boundedGenericMethod2::T>
return core::_GrowableList::•<nev::boundedGenericMethod2::T>(0);
constants {
diff --git a/pkg/front_end/testcases/nnbd_mixed/nsm_from_opt_in.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/nsm_from_opt_in.dart.weak.expect
index 561c9cb..16c5070 100644
--- a/pkg/front_end/testcases/nnbd_mixed/nsm_from_opt_in.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/nsm_from_opt_in.dart.weak.expect
@@ -24,8 +24,8 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
abstract member-signature method method(core::int* i) → core::int*; -> nsm::A::method
abstract member-signature method genericMethod1<T extends core::Object* = dynamic>(self::A2::genericMethod1::T* t) → self::A2::genericMethod1::T*; -> nsm::A::genericMethod1
- abstract member-signature method genericMethod2<T extends core::Object* = core::Object*>(self::A2::genericMethod2::T* t) → self::A2::genericMethod2::T*; -> nsm::A::genericMethod2
- abstract member-signature method genericMethod3<T extends core::Object* = core::Object*>(self::A2::genericMethod3::T* t) → self::A2::genericMethod3::T*; -> nsm::A::genericMethod3
+ abstract member-signature method genericMethod2<T extends core::Object*>(self::A2::genericMethod2::T* t) → self::A2::genericMethod2::T*; -> nsm::A::genericMethod2
+ abstract member-signature method genericMethod3<T extends core::Object*>(self::A2::genericMethod3::T* t) → self::A2::genericMethod3::T*; -> nsm::A::genericMethod3
}
abstract class B2 extends nsm::A implements self::C2 {
synthetic constructor •() → self::B2*
@@ -37,8 +37,8 @@
}
abstract member-signature method method(core::int* i, {dynamic optional = #C2}) → core::int*; -> self::C2::method
abstract member-signature method genericMethod1<T extends core::Object* = dynamic>(self::B2::genericMethod1::T* t) → self::B2::genericMethod1::T*; -> nsm::A::genericMethod1
- abstract member-signature method genericMethod2<T extends core::Object* = core::Object*>(self::B2::genericMethod2::T* t) → self::B2::genericMethod2::T*; -> nsm::A::genericMethod2
- abstract member-signature method genericMethod3<T extends core::Object* = core::Object*>(self::B2::genericMethod3::T* t) → self::B2::genericMethod3::T*; -> nsm::A::genericMethod3
+ abstract member-signature method genericMethod2<T extends core::Object*>(self::B2::genericMethod2::T* t) → self::B2::genericMethod2::T*; -> nsm::A::genericMethod2
+ abstract member-signature method genericMethod3<T extends core::Object*>(self::B2::genericMethod3::T* t) → self::B2::genericMethod3::T*; -> nsm::A::genericMethod3
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
@@ -55,8 +55,8 @@
;
abstract method method(core::int* i, {dynamic optional = #C2}) → core::int*;
abstract method genericMethod1<T extends core::Object* = dynamic>(self::C2::genericMethod1::T* t) → self::C2::genericMethod1::T*;
- abstract method genericMethod2<T extends core::Object* = core::Object*>(self::C2::genericMethod2::T* t) → self::C2::genericMethod2::T*;
- abstract method genericMethod3<T extends core::Object* = core::Object*>(self::C2::genericMethod3::T* t) → self::C2::genericMethod3::T*;
+ abstract method genericMethod2<T extends core::Object*>(self::C2::genericMethod2::T* t) → self::C2::genericMethod2::T*;
+ abstract method genericMethod3<T extends core::Object*>(self::C2::genericMethod3::T* t) → self::C2::genericMethod3::T*;
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
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
@@ -82,9 +82,9 @@
return let final core::int? #t1 = i in #t1.{core::num::==}(null) ?{core::int} 0 : #t1{core::int};
method genericMethod1<T extends core::Object? = dynamic>(nsm::A::genericMethod1::T% t) → nsm::A::genericMethod1::T%
return t;
- method genericMethod2<T extends core::Object? = core::Object?>(nsm::A::genericMethod2::T% t) → nsm::A::genericMethod2::T%
+ method genericMethod2<T extends core::Object?>(nsm::A::genericMethod2::T% t) → nsm::A::genericMethod2::T%
return t;
- method genericMethod3<T extends core::Object = core::Object>(nsm::A::genericMethod3::T t) → nsm::A::genericMethod3::T
+ method genericMethod3<T extends core::Object>(nsm::A::genericMethod3::T t) → nsm::A::genericMethod3::T
return t;
}
abstract class B1 extends nsm::A implements nsm::C1 {
@@ -103,8 +103,8 @@
;
abstract method method(core::int? i, {dynamic optional = #C2}) → core::int;
abstract method genericMethod1<T extends core::Object? = dynamic>(nsm::C1::genericMethod1::T% t) → nsm::C1::genericMethod1::T%;
- abstract method genericMethod2<T extends core::Object? = core::Object?>(nsm::C1::genericMethod2::T% t) → nsm::C1::genericMethod2::T%;
- abstract method genericMethod3<T extends core::Object = core::Object>(nsm::C1::genericMethod3::T t) → nsm::C1::genericMethod3::T;
+ abstract method genericMethod2<T extends core::Object?>(nsm::C1::genericMethod2::T% t) → nsm::C1::genericMethod2::T%;
+ abstract method genericMethod3<T extends core::Object>(nsm::C1::genericMethod3::T t) → nsm::C1::genericMethod3::T;
}
constants {
diff --git a/pkg/front_end/testcases/nnbd_mixed/nsm_from_opt_in.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/nsm_from_opt_in.dart.weak.outline.expect
index b110150..d463ddf 100644
--- a/pkg/front_end/testcases/nnbd_mixed/nsm_from_opt_in.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/nsm_from_opt_in.dart.weak.outline.expect
@@ -22,8 +22,8 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
abstract member-signature method method(core::int* i) → core::int*; -> nsm::A::method
abstract member-signature method genericMethod1<T extends core::Object* = dynamic>(self::A2::genericMethod1::T* t) → self::A2::genericMethod1::T*; -> nsm::A::genericMethod1
- abstract member-signature method genericMethod2<T extends core::Object* = core::Object*>(self::A2::genericMethod2::T* t) → self::A2::genericMethod2::T*; -> nsm::A::genericMethod2
- abstract member-signature method genericMethod3<T extends core::Object* = core::Object*>(self::A2::genericMethod3::T* t) → self::A2::genericMethod3::T*; -> nsm::A::genericMethod3
+ abstract member-signature method genericMethod2<T extends core::Object*>(self::A2::genericMethod2::T* t) → self::A2::genericMethod2::T*; -> nsm::A::genericMethod2
+ abstract member-signature method genericMethod3<T extends core::Object*>(self::A2::genericMethod3::T* t) → self::A2::genericMethod3::T*; -> nsm::A::genericMethod3
}
abstract class B2 extends nsm::A implements self::C2 {
synthetic constructor •() → self::B2*
@@ -33,8 +33,8 @@
;
abstract member-signature method method(core::int* i, {dynamic optional}) → core::int*; -> self::C2::method
abstract member-signature method genericMethod1<T extends core::Object* = dynamic>(self::B2::genericMethod1::T* t) → self::B2::genericMethod1::T*; -> nsm::A::genericMethod1
- abstract member-signature method genericMethod2<T extends core::Object* = core::Object*>(self::B2::genericMethod2::T* t) → self::B2::genericMethod2::T*; -> nsm::A::genericMethod2
- abstract member-signature method genericMethod3<T extends core::Object* = core::Object*>(self::B2::genericMethod3::T* t) → self::B2::genericMethod3::T*; -> nsm::A::genericMethod3
+ abstract member-signature method genericMethod2<T extends core::Object*>(self::B2::genericMethod2::T* t) → self::B2::genericMethod2::T*; -> nsm::A::genericMethod2
+ abstract member-signature method genericMethod3<T extends core::Object*>(self::B2::genericMethod3::T* t) → self::B2::genericMethod3::T*; -> nsm::A::genericMethod3
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
@@ -50,8 +50,8 @@
;
abstract method method(core::int* i, {dynamic optional}) → core::int*;
abstract method genericMethod1<T extends core::Object* = dynamic>(self::C2::genericMethod1::T* t) → self::C2::genericMethod1::T*;
- abstract method genericMethod2<T extends core::Object* = core::Object*>(self::C2::genericMethod2::T* t) → self::C2::genericMethod2::T*;
- abstract method genericMethod3<T extends core::Object* = core::Object*>(self::C2::genericMethod3::T* t) → self::C2::genericMethod3::T*;
+ abstract method genericMethod2<T extends core::Object*>(self::C2::genericMethod2::T* t) → self::C2::genericMethod2::T*;
+ abstract method genericMethod3<T extends core::Object*>(self::C2::genericMethod3::T* t) → self::C2::genericMethod3::T*;
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
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
@@ -77,9 +77,9 @@
;
method genericMethod1<T extends core::Object? = dynamic>(nsm::A::genericMethod1::T% t) → nsm::A::genericMethod1::T%
;
- method genericMethod2<T extends core::Object? = core::Object?>(nsm::A::genericMethod2::T% t) → nsm::A::genericMethod2::T%
+ method genericMethod2<T extends core::Object?>(nsm::A::genericMethod2::T% t) → nsm::A::genericMethod2::T%
;
- method genericMethod3<T extends core::Object = core::Object>(nsm::A::genericMethod3::T t) → nsm::A::genericMethod3::T
+ method genericMethod3<T extends core::Object>(nsm::A::genericMethod3::T t) → nsm::A::genericMethod3::T
;
}
abstract class B1 extends nsm::A implements nsm::C1 {
@@ -95,8 +95,8 @@
;
abstract method method(core::int? i, {dynamic optional}) → core::int;
abstract method genericMethod1<T extends core::Object? = dynamic>(nsm::C1::genericMethod1::T% t) → nsm::C1::genericMethod1::T%;
- abstract method genericMethod2<T extends core::Object? = core::Object?>(nsm::C1::genericMethod2::T% t) → nsm::C1::genericMethod2::T%;
- abstract method genericMethod3<T extends core::Object = core::Object>(nsm::C1::genericMethod3::T t) → nsm::C1::genericMethod3::T;
+ abstract method genericMethod2<T extends core::Object?>(nsm::C1::genericMethod2::T% t) → nsm::C1::genericMethod2::T%;
+ abstract method genericMethod3<T extends core::Object>(nsm::C1::genericMethod3::T t) → nsm::C1::genericMethod3::T;
}
diff --git a/pkg/front_end/testcases/nnbd_mixed/nsm_from_opt_in.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/nsm_from_opt_in.dart.weak.transformed.expect
index 561c9cb..16c5070 100644
--- a/pkg/front_end/testcases/nnbd_mixed/nsm_from_opt_in.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/nsm_from_opt_in.dart.weak.transformed.expect
@@ -24,8 +24,8 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
abstract member-signature method method(core::int* i) → core::int*; -> nsm::A::method
abstract member-signature method genericMethod1<T extends core::Object* = dynamic>(self::A2::genericMethod1::T* t) → self::A2::genericMethod1::T*; -> nsm::A::genericMethod1
- abstract member-signature method genericMethod2<T extends core::Object* = core::Object*>(self::A2::genericMethod2::T* t) → self::A2::genericMethod2::T*; -> nsm::A::genericMethod2
- abstract member-signature method genericMethod3<T extends core::Object* = core::Object*>(self::A2::genericMethod3::T* t) → self::A2::genericMethod3::T*; -> nsm::A::genericMethod3
+ abstract member-signature method genericMethod2<T extends core::Object*>(self::A2::genericMethod2::T* t) → self::A2::genericMethod2::T*; -> nsm::A::genericMethod2
+ abstract member-signature method genericMethod3<T extends core::Object*>(self::A2::genericMethod3::T* t) → self::A2::genericMethod3::T*; -> nsm::A::genericMethod3
}
abstract class B2 extends nsm::A implements self::C2 {
synthetic constructor •() → self::B2*
@@ -37,8 +37,8 @@
}
abstract member-signature method method(core::int* i, {dynamic optional = #C2}) → core::int*; -> self::C2::method
abstract member-signature method genericMethod1<T extends core::Object* = dynamic>(self::B2::genericMethod1::T* t) → self::B2::genericMethod1::T*; -> nsm::A::genericMethod1
- abstract member-signature method genericMethod2<T extends core::Object* = core::Object*>(self::B2::genericMethod2::T* t) → self::B2::genericMethod2::T*; -> nsm::A::genericMethod2
- abstract member-signature method genericMethod3<T extends core::Object* = core::Object*>(self::B2::genericMethod3::T* t) → self::B2::genericMethod3::T*; -> nsm::A::genericMethod3
+ abstract member-signature method genericMethod2<T extends core::Object*>(self::B2::genericMethod2::T* t) → self::B2::genericMethod2::T*; -> nsm::A::genericMethod2
+ abstract member-signature method genericMethod3<T extends core::Object*>(self::B2::genericMethod3::T* t) → self::B2::genericMethod3::T*; -> nsm::A::genericMethod3
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
@@ -55,8 +55,8 @@
;
abstract method method(core::int* i, {dynamic optional = #C2}) → core::int*;
abstract method genericMethod1<T extends core::Object* = dynamic>(self::C2::genericMethod1::T* t) → self::C2::genericMethod1::T*;
- abstract method genericMethod2<T extends core::Object* = core::Object*>(self::C2::genericMethod2::T* t) → self::C2::genericMethod2::T*;
- abstract method genericMethod3<T extends core::Object* = core::Object*>(self::C2::genericMethod3::T* t) → self::C2::genericMethod3::T*;
+ abstract method genericMethod2<T extends core::Object*>(self::C2::genericMethod2::T* t) → self::C2::genericMethod2::T*;
+ abstract method genericMethod3<T extends core::Object*>(self::C2::genericMethod3::T* t) → self::C2::genericMethod3::T*;
abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
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
@@ -82,9 +82,9 @@
return let final core::int? #t1 = i in #t1.{core::num::==}(null) ?{core::int} 0 : #t1{core::int};
method genericMethod1<T extends core::Object? = dynamic>(nsm::A::genericMethod1::T% t) → nsm::A::genericMethod1::T%
return t;
- method genericMethod2<T extends core::Object? = core::Object?>(nsm::A::genericMethod2::T% t) → nsm::A::genericMethod2::T%
+ method genericMethod2<T extends core::Object?>(nsm::A::genericMethod2::T% t) → nsm::A::genericMethod2::T%
return t;
- method genericMethod3<T extends core::Object = core::Object>(nsm::A::genericMethod3::T t) → nsm::A::genericMethod3::T
+ method genericMethod3<T extends core::Object>(nsm::A::genericMethod3::T t) → nsm::A::genericMethod3::T
return t;
}
abstract class B1 extends nsm::A implements nsm::C1 {
@@ -103,8 +103,8 @@
;
abstract method method(core::int? i, {dynamic optional = #C2}) → core::int;
abstract method genericMethod1<T extends core::Object? = dynamic>(nsm::C1::genericMethod1::T% t) → nsm::C1::genericMethod1::T%;
- abstract method genericMethod2<T extends core::Object? = core::Object?>(nsm::C1::genericMethod2::T% t) → nsm::C1::genericMethod2::T%;
- abstract method genericMethod3<T extends core::Object = core::Object>(nsm::C1::genericMethod3::T t) → nsm::C1::genericMethod3::T;
+ abstract method genericMethod2<T extends core::Object?>(nsm::C1::genericMethod2::T% t) → nsm::C1::genericMethod2::T%;
+ abstract method genericMethod3<T extends core::Object>(nsm::C1::genericMethod3::T t) → nsm::C1::genericMethod3::T;
}
constants {
diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.expect
index 964ecb3..c8d8780 100644
--- a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.expect
@@ -33,40 +33,40 @@
import self as opt;
import "dart:core" as core;
-class Class1<T extends core::Object? = core::Object?> extends core::Object /*hasConstConstructor*/ {
+class Class1<T extends core::Object?> extends core::Object /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[opt::Class1::redirect, opt::Class1::constRedirect]/*isLegacy*/;
const constructor _() → opt::Class1<opt::Class1::T%>
: super core::Object::•()
;
- static factory redirect<T extends core::Object? = core::Object?>() → opt::Class1<opt::Class1::redirect::T%>
+ static factory redirect<T extends core::Object?>() → opt::Class1<opt::Class1::redirect::T%>
let dynamic #redirecting_factory = opt::Class1::_ in let opt::Class1::redirect::T% #typeArg0 = null in invalid-expression;
- static factory constRedirect<T extends core::Object? = core::Object?>() → opt::Class1<opt::Class1::constRedirect::T%>
+ static factory constRedirect<T extends core::Object?>() → opt::Class1<opt::Class1::constRedirect::T%>
let dynamic #redirecting_factory = opt::Class1::_ in let opt::Class1::constRedirect::T% #typeArg0 = null in invalid-expression;
- static factory fact<T extends core::Object? = core::Object?>() → opt::Class1<opt::Class1::fact::T%>
+ static factory fact<T extends core::Object?>() → opt::Class1<opt::Class1::fact::T%>
return new opt::Class1::_<opt::Class1::fact::T%>();
}
-class Class2<T extends core::Object = core::Object> extends core::Object /*hasConstConstructor*/ {
+class Class2<T extends core::Object> extends core::Object /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[opt::Class2::redirect, opt::Class2::constRedirect]/*isLegacy*/;
const constructor _() → opt::Class2<opt::Class2::T>
: super core::Object::•()
;
- static factory redirect<T extends core::Object = core::Object>() → opt::Class2<opt::Class2::redirect::T>
+ static factory redirect<T extends core::Object>() → opt::Class2<opt::Class2::redirect::T>
let dynamic #redirecting_factory = opt::Class2::_ in let opt::Class2::redirect::T #typeArg0 = null in invalid-expression;
- static factory constRedirect<T extends core::Object = core::Object>() → opt::Class2<opt::Class2::constRedirect::T>
+ static factory constRedirect<T extends core::Object>() → opt::Class2<opt::Class2::constRedirect::T>
let dynamic #redirecting_factory = opt::Class2::_ in let opt::Class2::constRedirect::T #typeArg0 = null in invalid-expression;
- static factory fact<T extends core::Object = core::Object>() → opt::Class2<opt::Class2::fact::T>
+ static factory fact<T extends core::Object>() → opt::Class2<opt::Class2::fact::T>
return new opt::Class2::_<opt::Class2::fact::T>();
}
-class Class3<T extends core::String = core::String> extends core::Object /*hasConstConstructor*/ {
+class Class3<T extends core::String> extends core::Object /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[opt::Class3::redirect, opt::Class3::constRedirect]/*isLegacy*/;
const constructor _() → opt::Class3<opt::Class3::T>
: super core::Object::•()
;
- static factory redirect<T extends core::String = core::String>() → opt::Class3<opt::Class3::redirect::T>
+ static factory redirect<T extends core::String>() → opt::Class3<opt::Class3::redirect::T>
let dynamic #redirecting_factory = opt::Class3::_ in let opt::Class3::redirect::T #typeArg0 = null in invalid-expression;
- static factory constRedirect<T extends core::String = core::String>() → opt::Class3<opt::Class3::constRedirect::T>
+ static factory constRedirect<T extends core::String>() → opt::Class3<opt::Class3::constRedirect::T>
let dynamic #redirecting_factory = opt::Class3::_ in let opt::Class3::constRedirect::T #typeArg0 = null in invalid-expression;
- static factory fact<T extends core::String = core::String>() → opt::Class3<opt::Class3::fact::T>
+ static factory fact<T extends core::String>() → opt::Class3<opt::Class3::fact::T>
return new opt::Class3::_<opt::Class3::fact::T>();
}
class Class4<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
@@ -81,16 +81,16 @@
static factory fact<T extends core::Object? = dynamic>() → opt::Class4<opt::Class4::fact::T%>
return new opt::Class4::_<opt::Class4::fact::T%>();
}
-class Class5<T extends dynamic = dynamic> extends core::Object /*hasConstConstructor*/ {
+class Class5<T extends dynamic> extends core::Object /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[opt::Class5::redirect, opt::Class5::constRedirect]/*isLegacy*/;
const constructor _() → opt::Class5<opt::Class5::T%>
: super core::Object::•()
;
- static factory redirect<T extends dynamic = dynamic>() → opt::Class5<opt::Class5::redirect::T%>
+ static factory redirect<T extends dynamic>() → opt::Class5<opt::Class5::redirect::T%>
let dynamic #redirecting_factory = opt::Class5::_ in let opt::Class5::redirect::T% #typeArg0 = null in invalid-expression;
- static factory constRedirect<T extends dynamic = dynamic>() → opt::Class5<opt::Class5::constRedirect::T%>
+ static factory constRedirect<T extends dynamic>() → opt::Class5<opt::Class5::constRedirect::T%>
let dynamic #redirecting_factory = opt::Class5::_ in let opt::Class5::constRedirect::T% #typeArg0 = null in invalid-expression;
- static factory fact<T extends dynamic = dynamic>() → opt::Class5<opt::Class5::fact::T%>
+ static factory fact<T extends dynamic>() → opt::Class5<opt::Class5::fact::T%>
return new opt::Class5::_<opt::Class5::fact::T%>();
}
static method testOptIn() → dynamic {
diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.outline.expect
index 64dc146..f70672f 100644
--- a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.outline.expect
@@ -10,40 +10,40 @@
import self as self2;
import "dart:core" as core;
-class Class1<T extends core::Object? = core::Object?> extends core::Object /*hasConstConstructor*/ {
+class Class1<T extends core::Object?> extends core::Object /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[self2::Class1::redirect, self2::Class1::constRedirect]/*isLegacy*/;
const constructor _() → self2::Class1<self2::Class1::T%>
: super core::Object::•()
;
- static factory redirect<T extends core::Object? = core::Object?>() → self2::Class1<self2::Class1::redirect::T%>
+ static factory redirect<T extends core::Object?>() → self2::Class1<self2::Class1::redirect::T%>
let dynamic #redirecting_factory = self2::Class1::_ in let self2::Class1::redirect::T% #typeArg0 = null in invalid-expression;
- static factory constRedirect<T extends core::Object? = core::Object?>() → self2::Class1<self2::Class1::constRedirect::T%>
+ static factory constRedirect<T extends core::Object?>() → self2::Class1<self2::Class1::constRedirect::T%>
let dynamic #redirecting_factory = self2::Class1::_ in let self2::Class1::constRedirect::T% #typeArg0 = null in invalid-expression;
- static factory fact<T extends core::Object? = core::Object?>() → self2::Class1<self2::Class1::fact::T%>
+ static factory fact<T extends core::Object?>() → self2::Class1<self2::Class1::fact::T%>
;
}
-class Class2<T extends core::Object = core::Object> extends core::Object /*hasConstConstructor*/ {
+class Class2<T extends core::Object> extends core::Object /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[self2::Class2::redirect, self2::Class2::constRedirect]/*isLegacy*/;
const constructor _() → self2::Class2<self2::Class2::T>
: super core::Object::•()
;
- static factory redirect<T extends core::Object = core::Object>() → self2::Class2<self2::Class2::redirect::T>
+ static factory redirect<T extends core::Object>() → self2::Class2<self2::Class2::redirect::T>
let dynamic #redirecting_factory = self2::Class2::_ in let self2::Class2::redirect::T #typeArg0 = null in invalid-expression;
- static factory constRedirect<T extends core::Object = core::Object>() → self2::Class2<self2::Class2::constRedirect::T>
+ static factory constRedirect<T extends core::Object>() → self2::Class2<self2::Class2::constRedirect::T>
let dynamic #redirecting_factory = self2::Class2::_ in let self2::Class2::constRedirect::T #typeArg0 = null in invalid-expression;
- static factory fact<T extends core::Object = core::Object>() → self2::Class2<self2::Class2::fact::T>
+ static factory fact<T extends core::Object>() → self2::Class2<self2::Class2::fact::T>
;
}
-class Class3<T extends core::String = core::String> extends core::Object /*hasConstConstructor*/ {
+class Class3<T extends core::String> extends core::Object /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[self2::Class3::redirect, self2::Class3::constRedirect]/*isLegacy*/;
const constructor _() → self2::Class3<self2::Class3::T>
: super core::Object::•()
;
- static factory redirect<T extends core::String = core::String>() → self2::Class3<self2::Class3::redirect::T>
+ static factory redirect<T extends core::String>() → self2::Class3<self2::Class3::redirect::T>
let dynamic #redirecting_factory = self2::Class3::_ in let self2::Class3::redirect::T #typeArg0 = null in invalid-expression;
- static factory constRedirect<T extends core::String = core::String>() → self2::Class3<self2::Class3::constRedirect::T>
+ static factory constRedirect<T extends core::String>() → self2::Class3<self2::Class3::constRedirect::T>
let dynamic #redirecting_factory = self2::Class3::_ in let self2::Class3::constRedirect::T #typeArg0 = null in invalid-expression;
- static factory fact<T extends core::String = core::String>() → self2::Class3<self2::Class3::fact::T>
+ static factory fact<T extends core::String>() → self2::Class3<self2::Class3::fact::T>
;
}
class Class4<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
@@ -58,16 +58,16 @@
static factory fact<T extends core::Object? = dynamic>() → self2::Class4<self2::Class4::fact::T%>
;
}
-class Class5<T extends dynamic = dynamic> extends core::Object /*hasConstConstructor*/ {
+class Class5<T extends dynamic> extends core::Object /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[self2::Class5::redirect, self2::Class5::constRedirect]/*isLegacy*/;
const constructor _() → self2::Class5<self2::Class5::T%>
: super core::Object::•()
;
- static factory redirect<T extends dynamic = dynamic>() → self2::Class5<self2::Class5::redirect::T%>
+ static factory redirect<T extends dynamic>() → self2::Class5<self2::Class5::redirect::T%>
let dynamic #redirecting_factory = self2::Class5::_ in let self2::Class5::redirect::T% #typeArg0 = null in invalid-expression;
- static factory constRedirect<T extends dynamic = dynamic>() → self2::Class5<self2::Class5::constRedirect::T%>
+ static factory constRedirect<T extends dynamic>() → self2::Class5<self2::Class5::constRedirect::T%>
let dynamic #redirecting_factory = self2::Class5::_ in let self2::Class5::constRedirect::T% #typeArg0 = null in invalid-expression;
- static factory fact<T extends dynamic = dynamic>() → self2::Class5<self2::Class5::fact::T%>
+ static factory fact<T extends dynamic>() → self2::Class5<self2::Class5::fact::T%>
;
}
static method testOptIn() → dynamic
diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.transformed.expect
index 460ddca..93eb282 100644
--- a/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_factory/main.dart.weak.transformed.expect
@@ -33,40 +33,40 @@
import self as opt;
import "dart:core" as core;
-class Class1<T extends core::Object? = core::Object?> extends core::Object /*hasConstConstructor*/ {
+class Class1<T extends core::Object?> extends core::Object /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[opt::Class1::redirect, opt::Class1::constRedirect]/*isLegacy*/;
const constructor _() → opt::Class1<opt::Class1::T%>
: super core::Object::•()
;
- static factory redirect<T extends core::Object? = core::Object?>() → opt::Class1<opt::Class1::redirect::T%>
+ static factory redirect<T extends core::Object?>() → opt::Class1<opt::Class1::redirect::T%>
let Never #redirecting_factory = opt::Class1::_ in let opt::Class1::redirect::T% #typeArg0 = null in invalid-expression;
- static factory constRedirect<T extends core::Object? = core::Object?>() → opt::Class1<opt::Class1::constRedirect::T%>
+ static factory constRedirect<T extends core::Object?>() → opt::Class1<opt::Class1::constRedirect::T%>
let Never #redirecting_factory = opt::Class1::_ in let opt::Class1::constRedirect::T% #typeArg0 = null in invalid-expression;
- static factory fact<T extends core::Object? = core::Object?>() → opt::Class1<opt::Class1::fact::T%>
+ static factory fact<T extends core::Object?>() → opt::Class1<opt::Class1::fact::T%>
return new opt::Class1::_<opt::Class1::fact::T%>();
}
-class Class2<T extends core::Object = core::Object> extends core::Object /*hasConstConstructor*/ {
+class Class2<T extends core::Object> extends core::Object /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[opt::Class2::redirect, opt::Class2::constRedirect]/*isLegacy*/;
const constructor _() → opt::Class2<opt::Class2::T>
: super core::Object::•()
;
- static factory redirect<T extends core::Object = core::Object>() → opt::Class2<opt::Class2::redirect::T>
+ static factory redirect<T extends core::Object>() → opt::Class2<opt::Class2::redirect::T>
let Never #redirecting_factory = opt::Class2::_ in let opt::Class2::redirect::T #typeArg0 = null in invalid-expression;
- static factory constRedirect<T extends core::Object = core::Object>() → opt::Class2<opt::Class2::constRedirect::T>
+ static factory constRedirect<T extends core::Object>() → opt::Class2<opt::Class2::constRedirect::T>
let Never #redirecting_factory = opt::Class2::_ in let opt::Class2::constRedirect::T #typeArg0 = null in invalid-expression;
- static factory fact<T extends core::Object = core::Object>() → opt::Class2<opt::Class2::fact::T>
+ static factory fact<T extends core::Object>() → opt::Class2<opt::Class2::fact::T>
return new opt::Class2::_<opt::Class2::fact::T>();
}
-class Class3<T extends core::String = core::String> extends core::Object /*hasConstConstructor*/ {
+class Class3<T extends core::String> extends core::Object /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[opt::Class3::redirect, opt::Class3::constRedirect]/*isLegacy*/;
const constructor _() → opt::Class3<opt::Class3::T>
: super core::Object::•()
;
- static factory redirect<T extends core::String = core::String>() → opt::Class3<opt::Class3::redirect::T>
+ static factory redirect<T extends core::String>() → opt::Class3<opt::Class3::redirect::T>
let Never #redirecting_factory = opt::Class3::_ in let opt::Class3::redirect::T #typeArg0 = null in invalid-expression;
- static factory constRedirect<T extends core::String = core::String>() → opt::Class3<opt::Class3::constRedirect::T>
+ static factory constRedirect<T extends core::String>() → opt::Class3<opt::Class3::constRedirect::T>
let Never #redirecting_factory = opt::Class3::_ in let opt::Class3::constRedirect::T #typeArg0 = null in invalid-expression;
- static factory fact<T extends core::String = core::String>() → opt::Class3<opt::Class3::fact::T>
+ static factory fact<T extends core::String>() → opt::Class3<opt::Class3::fact::T>
return new opt::Class3::_<opt::Class3::fact::T>();
}
class Class4<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
@@ -81,16 +81,16 @@
static factory fact<T extends core::Object? = dynamic>() → opt::Class4<opt::Class4::fact::T%>
return new opt::Class4::_<opt::Class4::fact::T%>();
}
-class Class5<T extends dynamic = dynamic> extends core::Object /*hasConstConstructor*/ {
+class Class5<T extends dynamic> extends core::Object /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[opt::Class5::redirect, opt::Class5::constRedirect]/*isLegacy*/;
const constructor _() → opt::Class5<opt::Class5::T%>
: super core::Object::•()
;
- static factory redirect<T extends dynamic = dynamic>() → opt::Class5<opt::Class5::redirect::T%>
+ static factory redirect<T extends dynamic>() → opt::Class5<opt::Class5::redirect::T%>
let Never #redirecting_factory = opt::Class5::_ in let opt::Class5::redirect::T% #typeArg0 = null in invalid-expression;
- static factory constRedirect<T extends dynamic = dynamic>() → opt::Class5<opt::Class5::constRedirect::T%>
+ static factory constRedirect<T extends dynamic>() → opt::Class5<opt::Class5::constRedirect::T%>
let Never #redirecting_factory = opt::Class5::_ in let opt::Class5::constRedirect::T% #typeArg0 = null in invalid-expression;
- static factory fact<T extends dynamic = dynamic>() → opt::Class5<opt::Class5::fact::T%>
+ static factory fact<T extends dynamic>() → opt::Class5<opt::Class5::fact::T%>
return new opt::Class5::_<opt::Class5::fact::T%>();
}
static method testOptIn() → dynamic {
diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.expect
index f9e81d9..7ffad38 100644
--- a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.expect
@@ -43,31 +43,31 @@
import self as opt;
import "dart:core" as core;
-class P<T extends core::Object = core::Object> extends core::Object /*hasConstConstructor*/ {
+class P<T extends core::Object> extends core::Object /*hasConstConstructor*/ {
final field core::Object token;
const constructor _(core::Object token) → opt::P<opt::P::T>
: opt::P::token = token, super core::Object::•()
;
}
-class CP<T extends core::Object = core::Object> extends opt::P<opt::CP::T> /*hasConstConstructor*/ {
+class CP<T extends core::Object> extends opt::P<opt::CP::T> /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[opt::CP::•]/*isLegacy*/;
const constructor _(core::Object token) → opt::CP<opt::CP::T>
: super opt::P::_(token)
;
- static factory •<T extends core::Object = core::Object>(core::Type type) → opt::CP<opt::CP::•::T>
+ static factory •<T extends core::Object>(core::Type type) → opt::CP<opt::CP::•::T>
let dynamic #redirecting_factory = opt::CP::_ in let opt::CP::•::T #typeArg0 = null in invalid-expression;
}
-class Token<T extends core::Object = core::Object> extends core::Object /*hasConstConstructor*/ {
+class Token<T extends core::Object> extends core::Object /*hasConstConstructor*/ {
const constructor •() → opt::Token<opt::Token::T>
: super core::Object::•()
;
}
-class VP<T extends core::Object = core::Object> extends opt::P<opt::VP::T> /*hasConstConstructor*/ {
+class VP<T extends core::Object> extends opt::P<opt::VP::T> /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[opt::VP::forToken]/*isLegacy*/;
const constructor _(core::Object token, opt::VP::T useValue) → opt::VP<opt::VP::T>
: super opt::P::_(token)
;
- static factory forToken<T extends core::Object = core::Object>(opt::Token<opt::VP::forToken::T> token, opt::VP::forToken::T useValue) → opt::VP<opt::VP::forToken::T>
+ static factory forToken<T extends core::Object>(opt::Token<opt::VP::forToken::T> token, opt::VP::forToken::T useValue) → opt::VP<opt::VP::forToken::T>
let dynamic #redirecting_factory = opt::VP::_ in let opt::VP::forToken::T #typeArg0 = null in invalid-expression;
}
class M extends core::Object /*hasConstConstructor*/ {
diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.outline.expect
index 95b24a3..06c295f 100644
--- a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.outline.expect
@@ -43,31 +43,31 @@
import self as opt;
import "dart:core" as core;
-class P<T extends core::Object = core::Object> extends core::Object /*hasConstConstructor*/ {
+class P<T extends core::Object> extends core::Object /*hasConstConstructor*/ {
final field core::Object token;
const constructor _(core::Object token) → opt::P<opt::P::T>
: opt::P::token = token, super core::Object::•()
;
}
-class CP<T extends core::Object = core::Object> extends opt::P<opt::CP::T> /*hasConstConstructor*/ {
+class CP<T extends core::Object> extends opt::P<opt::CP::T> /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[opt::CP::•]/*isLegacy*/;
const constructor _(core::Object token) → opt::CP<opt::CP::T>
: super opt::P::_(token)
;
- static factory •<T extends core::Object = core::Object>(core::Type type) → opt::CP<opt::CP::•::T>
+ static factory •<T extends core::Object>(core::Type type) → opt::CP<opt::CP::•::T>
let dynamic #redirecting_factory = opt::CP::_ in let opt::CP::•::T #typeArg0 = null in invalid-expression;
}
-class Token<T extends core::Object = core::Object> extends core::Object /*hasConstConstructor*/ {
+class Token<T extends core::Object> extends core::Object /*hasConstConstructor*/ {
const constructor •() → opt::Token<opt::Token::T>
: super core::Object::•()
;
}
-class VP<T extends core::Object = core::Object> extends opt::P<opt::VP::T> /*hasConstConstructor*/ {
+class VP<T extends core::Object> extends opt::P<opt::VP::T> /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[opt::VP::forToken]/*isLegacy*/;
const constructor _(core::Object token, opt::VP::T useValue) → opt::VP<opt::VP::T>
: super opt::P::_(token)
;
- static factory forToken<T extends core::Object = core::Object>(opt::Token<opt::VP::forToken::T> token, opt::VP::forToken::T useValue) → opt::VP<opt::VP::forToken::T>
+ static factory forToken<T extends core::Object>(opt::Token<opt::VP::forToken::T> token, opt::VP::forToken::T useValue) → opt::VP<opt::VP::forToken::T>
let dynamic #redirecting_factory = opt::VP::_ in let opt::VP::forToken::T #typeArg0 = null in invalid-expression;
}
class M extends core::Object /*hasConstConstructor*/ {
diff --git a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.transformed.expect
index e074504..f4c2c29 100644
--- a/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/object_bound_redirecting_factory/main.dart.weak.transformed.expect
@@ -43,31 +43,31 @@
import self as opt;
import "dart:core" as core;
-class P<T extends core::Object = core::Object> extends core::Object /*hasConstConstructor*/ {
+class P<T extends core::Object> extends core::Object /*hasConstConstructor*/ {
final field core::Object token;
const constructor _(core::Object token) → opt::P<opt::P::T>
: opt::P::token = token, super core::Object::•()
;
}
-class CP<T extends core::Object = core::Object> extends opt::P<opt::CP::T> /*hasConstConstructor*/ {
+class CP<T extends core::Object> extends opt::P<opt::CP::T> /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[opt::CP::•]/*isLegacy*/;
const constructor _(core::Object token) → opt::CP<opt::CP::T>
: super opt::P::_(token)
;
- static factory •<T extends core::Object = core::Object>(core::Type type) → opt::CP<opt::CP::•::T>
+ static factory •<T extends core::Object>(core::Type type) → opt::CP<opt::CP::•::T>
let Never #redirecting_factory = opt::CP::_ in let opt::CP::•::T #typeArg0 = null in invalid-expression;
}
-class Token<T extends core::Object = core::Object> extends core::Object /*hasConstConstructor*/ {
+class Token<T extends core::Object> extends core::Object /*hasConstConstructor*/ {
const constructor •() → opt::Token<opt::Token::T>
: super core::Object::•()
;
}
-class VP<T extends core::Object = core::Object> extends opt::P<opt::VP::T> /*hasConstConstructor*/ {
+class VP<T extends core::Object> extends opt::P<opt::VP::T> /*hasConstConstructor*/ {
static final field dynamic _redirecting# = <dynamic>[opt::VP::forToken]/*isLegacy*/;
const constructor _(core::Object token, opt::VP::T useValue) → opt::VP<opt::VP::T>
: super opt::P::_(token)
;
- static factory forToken<T extends core::Object = core::Object>(opt::Token<opt::VP::forToken::T> token, opt::VP::forToken::T useValue) → opt::VP<opt::VP::forToken::T>
+ static factory forToken<T extends core::Object>(opt::Token<opt::VP::forToken::T> token, opt::VP::forToken::T useValue) → opt::VP<opt::VP::forToken::T>
let Never #redirecting_factory = opt::VP::_ in let opt::VP::forToken::T #typeArg0 = null in invalid-expression;
}
class M extends core::Object /*hasConstConstructor*/ {
diff --git a/pkg/front_end/testcases/nnbd_mixed/super_access/main.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/super_access/main.dart.weak.expect
index ca14755..6bf247e 100644
--- a/pkg/front_end/testcases/nnbd_mixed/super_access/main.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/super_access/main.dart.weak.expect
@@ -98,13 +98,13 @@
import self as mai2;
import "dart:core" as core;
-typedef Typedef<unrelated T extends mai2::Value<dynamic> = mai2::Value<dynamic>, contravariant I extends core::Object? = dynamic> = (I%) → core::Type;
+typedef Typedef<unrelated T extends mai2::Value<dynamic>, contravariant I extends core::Object? = dynamic> = (I%) → core::Type;
abstract class Value<T extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → mai2::Value<mai2::Value::T%>
: super core::Object::•()
;
}
-class Interface<T extends mai2::Value<dynamic> = mai2::Value<dynamic>, I extends core::Object? = dynamic> extends core::Object {
+class Interface<T extends mai2::Value<dynamic>, I extends core::Object? = dynamic> extends core::Object {
field (mai2::Interface::I%) →? core::Type field = null;
synthetic constructor •() → mai2::Interface<mai2::Interface::T, mai2::Interface::I%>
: super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd_mixed/super_access/main.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/super_access/main.dart.weak.outline.expect
index ec066e1..7f83539 100644
--- a/pkg/front_end/testcases/nnbd_mixed/super_access/main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/super_access/main.dart.weak.outline.expect
@@ -93,12 +93,12 @@
import self as mai2;
import "dart:core" as core;
-typedef Typedef<unrelated T extends mai2::Value<dynamic> = mai2::Value<dynamic>, contravariant I extends core::Object? = dynamic> = (I%) → core::Type;
+typedef Typedef<unrelated T extends mai2::Value<dynamic>, contravariant I extends core::Object? = dynamic> = (I%) → core::Type;
abstract class Value<T extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → mai2::Value<mai2::Value::T%>
;
}
-class Interface<T extends mai2::Value<dynamic> = mai2::Value<dynamic>, I extends core::Object? = dynamic> extends core::Object {
+class Interface<T extends mai2::Value<dynamic>, I extends core::Object? = dynamic> extends core::Object {
field (mai2::Interface::I%) →? core::Type field;
synthetic constructor •() → mai2::Interface<mai2::Interface::T, mai2::Interface::I%>
;
diff --git a/pkg/front_end/testcases/nnbd_mixed/super_access/main.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/super_access/main.dart.weak.transformed.expect
index 7f96d00..2a72e6a 100644
--- a/pkg/front_end/testcases/nnbd_mixed/super_access/main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/super_access/main.dart.weak.transformed.expect
@@ -94,13 +94,13 @@
import self as mai2;
import "dart:core" as core;
-typedef Typedef<unrelated T extends mai2::Value<dynamic> = mai2::Value<dynamic>, contravariant I extends core::Object? = dynamic> = (I%) → core::Type;
+typedef Typedef<unrelated T extends mai2::Value<dynamic>, contravariant I extends core::Object? = dynamic> = (I%) → core::Type;
abstract class Value<T extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → mai2::Value<mai2::Value::T%>
: super core::Object::•()
;
}
-class Interface<T extends mai2::Value<dynamic> = mai2::Value<dynamic>, I extends core::Object? = dynamic> extends core::Object {
+class Interface<T extends mai2::Value<dynamic>, I extends core::Object? = dynamic> extends core::Object {
field (mai2::Interface::I%) →? core::Type field = null;
synthetic constructor •() → mai2::Interface<mai2::Interface::T, mai2::Interface::I%>
: super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd_mixed/super_access/main.no_link.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/super_access/main.no_link.dart.weak.expect
index ca14755..6bf247e 100644
--- a/pkg/front_end/testcases/nnbd_mixed/super_access/main.no_link.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/super_access/main.no_link.dart.weak.expect
@@ -98,13 +98,13 @@
import self as mai2;
import "dart:core" as core;
-typedef Typedef<unrelated T extends mai2::Value<dynamic> = mai2::Value<dynamic>, contravariant I extends core::Object? = dynamic> = (I%) → core::Type;
+typedef Typedef<unrelated T extends mai2::Value<dynamic>, contravariant I extends core::Object? = dynamic> = (I%) → core::Type;
abstract class Value<T extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → mai2::Value<mai2::Value::T%>
: super core::Object::•()
;
}
-class Interface<T extends mai2::Value<dynamic> = mai2::Value<dynamic>, I extends core::Object? = dynamic> extends core::Object {
+class Interface<T extends mai2::Value<dynamic>, I extends core::Object? = dynamic> extends core::Object {
field (mai2::Interface::I%) →? core::Type field = null;
synthetic constructor •() → mai2::Interface<mai2::Interface::T, mai2::Interface::I%>
: super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd_mixed/super_access/main.no_link.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/super_access/main.no_link.dart.weak.outline.expect
index ec066e1..7f83539 100644
--- a/pkg/front_end/testcases/nnbd_mixed/super_access/main.no_link.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/super_access/main.no_link.dart.weak.outline.expect
@@ -93,12 +93,12 @@
import self as mai2;
import "dart:core" as core;
-typedef Typedef<unrelated T extends mai2::Value<dynamic> = mai2::Value<dynamic>, contravariant I extends core::Object? = dynamic> = (I%) → core::Type;
+typedef Typedef<unrelated T extends mai2::Value<dynamic>, contravariant I extends core::Object? = dynamic> = (I%) → core::Type;
abstract class Value<T extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → mai2::Value<mai2::Value::T%>
;
}
-class Interface<T extends mai2::Value<dynamic> = mai2::Value<dynamic>, I extends core::Object? = dynamic> extends core::Object {
+class Interface<T extends mai2::Value<dynamic>, I extends core::Object? = dynamic> extends core::Object {
field (mai2::Interface::I%) →? core::Type field;
synthetic constructor •() → mai2::Interface<mai2::Interface::T, mai2::Interface::I%>
;
diff --git a/pkg/front_end/testcases/nnbd_mixed/super_access/main.no_link.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/super_access/main.no_link.dart.weak.transformed.expect
index 7f96d00..2a72e6a 100644
--- a/pkg/front_end/testcases/nnbd_mixed/super_access/main.no_link.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/super_access/main.no_link.dart.weak.transformed.expect
@@ -94,13 +94,13 @@
import self as mai2;
import "dart:core" as core;
-typedef Typedef<unrelated T extends mai2::Value<dynamic> = mai2::Value<dynamic>, contravariant I extends core::Object? = dynamic> = (I%) → core::Type;
+typedef Typedef<unrelated T extends mai2::Value<dynamic>, contravariant I extends core::Object? = dynamic> = (I%) → core::Type;
abstract class Value<T extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → mai2::Value<mai2::Value::T%>
: super core::Object::•()
;
}
-class Interface<T extends mai2::Value<dynamic> = mai2::Value<dynamic>, I extends core::Object? = dynamic> extends core::Object {
+class Interface<T extends mai2::Value<dynamic>, I extends core::Object? = dynamic> extends core::Object {
field (mai2::Interface::I%) →? core::Type field = null;
synthetic constructor •() → mai2::Interface<mai2::Interface::T, mai2::Interface::I%>
: super core::Object::•()
diff --git a/pkg/front_end/testcases/nnbd_mixed/type_parameter_nullability.dart.weak.expect b/pkg/front_end/testcases/nnbd_mixed/type_parameter_nullability.dart.weak.expect
index 8bf95a6..cd3de48 100644
--- a/pkg/front_end/testcases/nnbd_mixed/type_parameter_nullability.dart.weak.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/type_parameter_nullability.dart.weak.expect
@@ -5,7 +5,7 @@
import "org-dartlang-testcase:///type_parameter_nullability_lib.dart";
-class C<T extends core::num? = core::num?, S extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+class C<T extends core::num?, S extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::T%, self::C::S%, self::C::U%>
: super core::Object::•()
;
@@ -36,7 +36,7 @@
import self as typ;
import "dart:core" as core;
-class D<T extends core::num* = core::num*> extends core::Object {
+class D<T extends core::num*> extends core::Object {
synthetic constructor •() → typ::D<typ::D::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nnbd_mixed/type_parameter_nullability.dart.weak.outline.expect b/pkg/front_end/testcases/nnbd_mixed/type_parameter_nullability.dart.weak.outline.expect
index ffb28dc..ef4392a 100644
--- a/pkg/front_end/testcases/nnbd_mixed/type_parameter_nullability.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/type_parameter_nullability.dart.weak.outline.expect
@@ -4,7 +4,7 @@
import "org-dartlang-testcase:///type_parameter_nullability_lib.dart";
-class C<T extends core::num? = core::num?, S extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+class C<T extends core::num?, S extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::T%, self::C::S%, self::C::U%>
;
method promoteNullable(generic-covariant-impl self::C::T? t) → void
@@ -19,7 +19,7 @@
import self as self2;
import "dart:core" as core;
-class D<T extends core::num* = core::num*> extends core::Object {
+class D<T extends core::num*> extends core::Object {
synthetic constructor •() → self2::D<self2::D::T*>*
;
method promoteLegacy(generic-covariant-impl self2::D::T* t) → void
diff --git a/pkg/front_end/testcases/nnbd_mixed/type_parameter_nullability.dart.weak.transformed.expect b/pkg/front_end/testcases/nnbd_mixed/type_parameter_nullability.dart.weak.transformed.expect
index 8bf95a6..cd3de48 100644
--- a/pkg/front_end/testcases/nnbd_mixed/type_parameter_nullability.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nnbd_mixed/type_parameter_nullability.dart.weak.transformed.expect
@@ -5,7 +5,7 @@
import "org-dartlang-testcase:///type_parameter_nullability_lib.dart";
-class C<T extends core::num? = core::num?, S extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+class C<T extends core::num?, S extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::T%, self::C::S%, self::C::U%>
: super core::Object::•()
;
@@ -36,7 +36,7 @@
import self as typ;
import "dart:core" as core;
-class D<T extends core::num* = core::num*> extends core::Object {
+class D<T extends core::num*> extends core::Object {
synthetic constructor •() → typ::D<typ::D::T*>*
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/none/equals.dart.strong.expect b/pkg/front_end/testcases/none/equals.dart.strong.expect
index 3c8e61d..daaf5db 100644
--- a/pkg/front_end/testcases/none/equals.dart.strong.expect
+++ b/pkg/front_end/testcases/none/equals.dart.strong.expect
@@ -126,7 +126,7 @@
method method(dynamic o) → dynamic {}
}
static const field core::Object? nullValue = #C1;
-static method test<T1 extends core::Function = core::Function, T2 extends (core::int) → core::int = (core::int) → core::int>(core::Object o, core::Object nonNullableObject, core::Object? nullableObject, self::Class<core::String> nonNullableClass, self::Class<core::String>? nullableClass, dynamic dyn, Never never, Never? nullableNever, Null nullTypedValue, core::Function nonNullableFunction, core::Function? nullableFunction, (core::int) → core::int nonNullableFunctionType, (core::int) →? core::int nullableFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2) → dynamic {
+static method test<T1 extends core::Function, T2 extends (core::int) → core::int>(core::Object o, core::Object nonNullableObject, core::Object? nullableObject, self::Class<core::String> nonNullableClass, self::Class<core::String>? nullableClass, dynamic dyn, Never never, Never? nullableNever, Null nullTypedValue, core::Function nonNullableFunction, core::Function? nullableFunction, (core::int) → core::int nonNullableFunctionType, (core::int) →? core::int nullableFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2) → dynamic {
core::print("EqualsNull (literal null)");
null == null;
!(null == null);
diff --git a/pkg/front_end/testcases/none/equals.dart.weak.expect b/pkg/front_end/testcases/none/equals.dart.weak.expect
index 622fa6c8..5b4129e 100644
--- a/pkg/front_end/testcases/none/equals.dart.weak.expect
+++ b/pkg/front_end/testcases/none/equals.dart.weak.expect
@@ -127,7 +127,7 @@
method method(dynamic o) → dynamic {}
}
static const field core::Object? nullValue = #C1;
-static method test<T1 extends core::Function = core::Function, T2 extends (core::int) → core::int = (core::int) → core::int>(core::Object o, core::Object nonNullableObject, core::Object? nullableObject, self::Class<core::String> nonNullableClass, self::Class<core::String>? nullableClass, dynamic dyn, Never never, Never? nullableNever, Null nullTypedValue, core::Function nonNullableFunction, core::Function? nullableFunction, (core::int) → core::int nonNullableFunctionType, (core::int) →? core::int nullableFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2) → dynamic {
+static method test<T1 extends core::Function, T2 extends (core::int) → core::int>(core::Object o, core::Object nonNullableObject, core::Object? nullableObject, self::Class<core::String> nonNullableClass, self::Class<core::String>? nullableClass, dynamic dyn, Never never, Never? nullableNever, Null nullTypedValue, core::Function nonNullableFunction, core::Function? nullableFunction, (core::int) → core::int nonNullableFunctionType, (core::int) →? core::int nullableFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2) → dynamic {
core::print("EqualsNull (literal null)");
null == null;
!(null == null);
diff --git a/pkg/front_end/testcases/none/equals.dart.weak.outline.expect b/pkg/front_end/testcases/none/equals.dart.weak.outline.expect
index aae3b91..911e7cd 100644
--- a/pkg/front_end/testcases/none/equals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/none/equals.dart.weak.outline.expect
@@ -11,7 +11,7 @@
;
}
static const field core::Object? nullValue = null;
-static method test<T1 extends core::Function = core::Function, T2 extends (core::int) → core::int = (core::int) → core::int>(core::Object o, core::Object nonNullableObject, core::Object? nullableObject, self::Class<core::String> nonNullableClass, self::Class<core::String>? nullableClass, dynamic dyn, Never never, Never? nullableNever, Null nullTypedValue, core::Function nonNullableFunction, core::Function? nullableFunction, (core::int) → core::int nonNullableFunctionType, (core::int) →? core::int nullableFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2) → dynamic
+static method test<T1 extends core::Function, T2 extends (core::int) → core::int>(core::Object o, core::Object nonNullableObject, core::Object? nullableObject, self::Class<core::String> nonNullableClass, self::Class<core::String>? nullableClass, dynamic dyn, Never never, Never? nullableNever, Null nullTypedValue, core::Function nonNullableFunction, core::Function? nullableFunction, (core::int) → core::int nonNullableFunctionType, (core::int) →? core::int nullableFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2) → dynamic
;
static method nullEqualsIndexGet(core::Map<core::int, core::String> map) → dynamic
;
diff --git a/pkg/front_end/testcases/none/method_invocation.dart.strong.expect b/pkg/front_end/testcases/none/method_invocation.dart.strong.expect
index d1046ad..32d8252 100644
--- a/pkg/front_end/testcases/none/method_invocation.dart.strong.expect
+++ b/pkg/front_end/testcases/none/method_invocation.dart.strong.expect
@@ -135,7 +135,7 @@
static const field core::int i = #C1;
static const field core::int j = #C2;
static const field core::int k = #C3;
-static method test<T1 extends core::Function = core::Function, T2 extends (core::int) → core::int = (core::int) → core::int, T3 extends core::Object? = dynamic>(self::Class1 nonNullableClass1, self::Class1? nullableClass1, dynamic dyn, Never never, self::Class2<core::String> nonNullableClass2, self::Class2<core::String>? nullableClass2, core::Function nonNullableFunction, core::Function? nullableFunction, (core::int) → core::int nonNullableFunctionType, (core::int) →? core::int nullableFunctionType, <T extends core::Object? = dynamic>(T%) → T% genericFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2, self::test::T3% undeterminedTypeVariable) → dynamic {
+static method test<T1 extends core::Function, T2 extends (core::int) → core::int, T3 extends core::Object? = dynamic>(self::Class1 nonNullableClass1, self::Class1? nullableClass1, dynamic dyn, Never never, self::Class2<core::String> nonNullableClass2, self::Class2<core::String>? nullableClass2, core::Function nonNullableFunction, core::Function? nullableFunction, (core::int) → core::int nonNullableFunctionType, (core::int) →? core::int nullableFunctionType, <T extends core::Object? = dynamic>(T%) → T% genericFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2, self::test::T3% undeterminedTypeVariable) → dynamic {
core::print("InstanceInvocation");
nonNullableClass1.{self::Class1::method}(0){(core::int) → core::double};
let final self::Class1? #t1 = nullableClass1 in #t1 == null ?{core::double?} null : #t1{self::Class1}.{self::Class1::method}(0){(core::int) → core::double};
diff --git a/pkg/front_end/testcases/none/method_invocation.dart.weak.expect b/pkg/front_end/testcases/none/method_invocation.dart.weak.expect
index 436611c..0f57fe6 100644
--- a/pkg/front_end/testcases/none/method_invocation.dart.weak.expect
+++ b/pkg/front_end/testcases/none/method_invocation.dart.weak.expect
@@ -136,7 +136,7 @@
static const field core::int i = #C1;
static const field core::int j = #C2;
static const field core::int k = #C3;
-static method test<T1 extends core::Function = core::Function, T2 extends (core::int) → core::int = (core::int) → core::int, T3 extends core::Object? = dynamic>(self::Class1 nonNullableClass1, self::Class1? nullableClass1, dynamic dyn, Never never, self::Class2<core::String> nonNullableClass2, self::Class2<core::String>? nullableClass2, core::Function nonNullableFunction, core::Function? nullableFunction, (core::int) → core::int nonNullableFunctionType, (core::int) →? core::int nullableFunctionType, <T extends core::Object? = dynamic>(T%) → T% genericFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2, self::test::T3% undeterminedTypeVariable) → dynamic {
+static method test<T1 extends core::Function, T2 extends (core::int) → core::int, T3 extends core::Object? = dynamic>(self::Class1 nonNullableClass1, self::Class1? nullableClass1, dynamic dyn, Never never, self::Class2<core::String> nonNullableClass2, self::Class2<core::String>? nullableClass2, core::Function nonNullableFunction, core::Function? nullableFunction, (core::int) → core::int nonNullableFunctionType, (core::int) →? core::int nullableFunctionType, <T extends core::Object? = dynamic>(T%) → T% genericFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2, self::test::T3% undeterminedTypeVariable) → dynamic {
core::print("InstanceInvocation");
nonNullableClass1.{self::Class1::method}(0){(core::int) → core::double};
let final self::Class1? #t1 = nullableClass1 in #t1 == null ?{core::double?} null : #t1{self::Class1}.{self::Class1::method}(0){(core::int) → core::double};
diff --git a/pkg/front_end/testcases/none/method_invocation.dart.weak.outline.expect b/pkg/front_end/testcases/none/method_invocation.dart.weak.outline.expect
index 8a7fc69..7358160 100644
--- a/pkg/front_end/testcases/none/method_invocation.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/none/method_invocation.dart.weak.outline.expect
@@ -32,7 +32,7 @@
static const field core::int i = 4;
static const field core::int j = 24;
static const field core::int k = self::i.{core::num::*}(self::j){(core::num) → core::int};
-static method test<T1 extends core::Function = core::Function, T2 extends (core::int) → core::int = (core::int) → core::int, T3 extends core::Object? = dynamic>(self::Class1 nonNullableClass1, self::Class1? nullableClass1, dynamic dyn, Never never, self::Class2<core::String> nonNullableClass2, self::Class2<core::String>? nullableClass2, core::Function nonNullableFunction, core::Function? nullableFunction, (core::int) → core::int nonNullableFunctionType, (core::int) →? core::int nullableFunctionType, <T extends core::Object? = dynamic>(T%) → T% genericFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2, self::test::T3% undeterminedTypeVariable) → dynamic
+static method test<T1 extends core::Function, T2 extends (core::int) → core::int, T3 extends core::Object? = dynamic>(self::Class1 nonNullableClass1, self::Class1? nullableClass1, dynamic dyn, Never never, self::Class2<core::String> nonNullableClass2, self::Class2<core::String>? nullableClass2, core::Function nonNullableFunction, core::Function? nullableFunction, (core::int) → core::int nonNullableFunctionType, (core::int) →? core::int nullableFunctionType, <T extends core::Object? = dynamic>(T%) → T% genericFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2, self::test::T3% undeterminedTypeVariable) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/none/property_get.dart.strong.expect b/pkg/front_end/testcases/none/property_get.dart.strong.expect
index b753715..921ff16 100644
--- a/pkg/front_end/testcases/none/property_get.dart.strong.expect
+++ b/pkg/front_end/testcases/none/property_get.dart.strong.expect
@@ -61,7 +61,7 @@
static const field core::int dynamicStringLength = #C2;
static method topLevelMethod(core::double o) → core::int
return 0;
-static method test<T1 extends core::Function = core::Function, T2 extends () → core::int = () → core::int>(self::Class1 nonNullableClass1, self::Class1? nullableClass1, dynamic dyn, Never never, self::Class2<core::String> nonNullableClass2, self::Class2<core::String>? nullableClass2, core::Function nonNullableFunction, core::Function? nullableFunction, () → core::int nonNullableFunctionType, () →? core::int nullableFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2) → dynamic {
+static method test<T1 extends core::Function, T2 extends () → core::int>(self::Class1 nonNullableClass1, self::Class1? nullableClass1, dynamic dyn, Never never, self::Class2<core::String> nonNullableClass2, self::Class2<core::String>? nullableClass2, core::Function nonNullableFunction, core::Function? nullableFunction, () → core::int nonNullableFunctionType, () →? core::int nullableFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2) → dynamic {
core::print("InstanceGet");
nonNullableClass1.{self::Class1::field}{core::int};
let final self::Class1? #t1 = nullableClass1 in #t1 == null ?{core::int?} null : #t1{self::Class1}.{self::Class1::field}{core::int};
diff --git a/pkg/front_end/testcases/none/property_get.dart.weak.expect b/pkg/front_end/testcases/none/property_get.dart.weak.expect
index db37697..67ded25 100644
--- a/pkg/front_end/testcases/none/property_get.dart.weak.expect
+++ b/pkg/front_end/testcases/none/property_get.dart.weak.expect
@@ -62,7 +62,7 @@
static const field core::int dynamicStringLength = #C2;
static method topLevelMethod(core::double o) → core::int
return 0;
-static method test<T1 extends core::Function = core::Function, T2 extends () → core::int = () → core::int>(self::Class1 nonNullableClass1, self::Class1? nullableClass1, dynamic dyn, Never never, self::Class2<core::String> nonNullableClass2, self::Class2<core::String>? nullableClass2, core::Function nonNullableFunction, core::Function? nullableFunction, () → core::int nonNullableFunctionType, () →? core::int nullableFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2) → dynamic {
+static method test<T1 extends core::Function, T2 extends () → core::int>(self::Class1 nonNullableClass1, self::Class1? nullableClass1, dynamic dyn, Never never, self::Class2<core::String> nonNullableClass2, self::Class2<core::String>? nullableClass2, core::Function nonNullableFunction, core::Function? nullableFunction, () → core::int nonNullableFunctionType, () →? core::int nullableFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2) → dynamic {
core::print("InstanceGet");
nonNullableClass1.{self::Class1::field}{core::int};
let final self::Class1? #t1 = nullableClass1 in #t1 == null ?{core::int?} null : #t1{self::Class1}.{self::Class1::field}{core::int};
diff --git a/pkg/front_end/testcases/none/property_get.dart.weak.outline.expect b/pkg/front_end/testcases/none/property_get.dart.weak.outline.expect
index 06c8396..fcd26f0 100644
--- a/pkg/front_end/testcases/none/property_get.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/none/property_get.dart.weak.outline.expect
@@ -26,7 +26,7 @@
static const field core::int dynamicStringLength = self::dynamicString{dynamic}.length as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
static method topLevelMethod(core::double o) → core::int
;
-static method test<T1 extends core::Function = core::Function, T2 extends () → core::int = () → core::int>(self::Class1 nonNullableClass1, self::Class1? nullableClass1, dynamic dyn, Never never, self::Class2<core::String> nonNullableClass2, self::Class2<core::String>? nullableClass2, core::Function nonNullableFunction, core::Function? nullableFunction, () → core::int nonNullableFunctionType, () →? core::int nullableFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2) → dynamic
+static method test<T1 extends core::Function, T2 extends () → core::int>(self::Class1 nonNullableClass1, self::Class1? nullableClass1, dynamic dyn, Never never, self::Class2<core::String> nonNullableClass2, self::Class2<core::String>? nullableClass2, core::Function nonNullableFunction, core::Function? nullableFunction, () → core::int nonNullableFunctionType, () →? core::int nullableFunctionType, self::test::T1 nonNullableTypeVariable1, self::test::T1? nullableTypeVariable1, self::test::T2 nonNullableTypeVariable2, self::test::T2? nullableTypeVariable2) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.strong.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.strong.expect
index 7506643..68d1353 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.strong.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.strong.expect
@@ -175,7 +175,7 @@
: super core::Object::•()
;
}
-class Bar1<X extends self::A<self::A<core::int>> = self::A<self::A<core::int>>> extends core::Object {
+class Bar1<X extends self::A<self::A<core::int>>> extends core::Object {
synthetic constructor •() → self::Bar1<self::Bar1::X>
: super core::Object::•()
;
@@ -183,10 +183,10 @@
return throw 42;
method barBar12(self::A<self::A<core::int>> x) → dynamic
return throw 42;
- method barBar13<X extends self::A<self::A<core::int>> = self::A<self::A<core::int>>>() → dynamic
+ method barBar13<X extends self::A<self::A<core::int>>>() → dynamic
return throw 42;
}
-class Bar2<X extends self::A<self::A<self::A<core::int>>> = self::A<self::A<self::A<core::int>>>> extends core::Object {
+class Bar2<X extends self::A<self::A<self::A<core::int>>>> extends core::Object {
synthetic constructor •() → self::Bar2<self::Bar2::X>
: super core::Object::•()
;
@@ -194,7 +194,7 @@
return throw 42;
method barBar22(self::A<self::A<self::A<core::int>>> x) → dynamic
return throw 42;
- method barBar23<X extends self::A<self::A<self::A<core::int>>> = self::A<self::A<self::A<core::int>>>>() → dynamic
+ method barBar23<X extends self::A<self::A<self::A<core::int>>>>() → dynamic
return throw 42;
}
static method foo() → dynamic {
@@ -209,8 +209,8 @@
return throw 42;
static method bar2b(self::A<self::A<self::A<core::int>>> x) → dynamic
return throw 42;
-static method bar3a<X extends self::A<self::A<core::int>> = self::A<self::A<core::int>>>() → dynamic
+static method bar3a<X extends self::A<self::A<core::int>>>() → dynamic
return throw 42;
-static method bar3b<X extends self::A<self::A<self::A<core::int>>> = self::A<self::A<self::A<core::int>>>>() → dynamic
+static method bar3b<X extends self::A<self::A<self::A<core::int>>>>() → dynamic
return throw 42;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.strong.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.strong.transformed.expect
index 7506643..68d1353 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.strong.transformed.expect
@@ -175,7 +175,7 @@
: super core::Object::•()
;
}
-class Bar1<X extends self::A<self::A<core::int>> = self::A<self::A<core::int>>> extends core::Object {
+class Bar1<X extends self::A<self::A<core::int>>> extends core::Object {
synthetic constructor •() → self::Bar1<self::Bar1::X>
: super core::Object::•()
;
@@ -183,10 +183,10 @@
return throw 42;
method barBar12(self::A<self::A<core::int>> x) → dynamic
return throw 42;
- method barBar13<X extends self::A<self::A<core::int>> = self::A<self::A<core::int>>>() → dynamic
+ method barBar13<X extends self::A<self::A<core::int>>>() → dynamic
return throw 42;
}
-class Bar2<X extends self::A<self::A<self::A<core::int>>> = self::A<self::A<self::A<core::int>>>> extends core::Object {
+class Bar2<X extends self::A<self::A<self::A<core::int>>>> extends core::Object {
synthetic constructor •() → self::Bar2<self::Bar2::X>
: super core::Object::•()
;
@@ -194,7 +194,7 @@
return throw 42;
method barBar22(self::A<self::A<self::A<core::int>>> x) → dynamic
return throw 42;
- method barBar23<X extends self::A<self::A<self::A<core::int>>> = self::A<self::A<self::A<core::int>>>>() → dynamic
+ method barBar23<X extends self::A<self::A<self::A<core::int>>>>() → dynamic
return throw 42;
}
static method foo() → dynamic {
@@ -209,8 +209,8 @@
return throw 42;
static method bar2b(self::A<self::A<self::A<core::int>>> x) → dynamic
return throw 42;
-static method bar3a<X extends self::A<self::A<core::int>> = self::A<self::A<core::int>>>() → dynamic
+static method bar3a<X extends self::A<self::A<core::int>>>() → dynamic
return throw 42;
-static method bar3b<X extends self::A<self::A<self::A<core::int>>> = self::A<self::A<self::A<core::int>>>>() → dynamic
+static method bar3b<X extends self::A<self::A<self::A<core::int>>>>() → dynamic
return throw 42;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.weak.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.weak.expect
index 7506643..68d1353 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.weak.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.weak.expect
@@ -175,7 +175,7 @@
: super core::Object::•()
;
}
-class Bar1<X extends self::A<self::A<core::int>> = self::A<self::A<core::int>>> extends core::Object {
+class Bar1<X extends self::A<self::A<core::int>>> extends core::Object {
synthetic constructor •() → self::Bar1<self::Bar1::X>
: super core::Object::•()
;
@@ -183,10 +183,10 @@
return throw 42;
method barBar12(self::A<self::A<core::int>> x) → dynamic
return throw 42;
- method barBar13<X extends self::A<self::A<core::int>> = self::A<self::A<core::int>>>() → dynamic
+ method barBar13<X extends self::A<self::A<core::int>>>() → dynamic
return throw 42;
}
-class Bar2<X extends self::A<self::A<self::A<core::int>>> = self::A<self::A<self::A<core::int>>>> extends core::Object {
+class Bar2<X extends self::A<self::A<self::A<core::int>>>> extends core::Object {
synthetic constructor •() → self::Bar2<self::Bar2::X>
: super core::Object::•()
;
@@ -194,7 +194,7 @@
return throw 42;
method barBar22(self::A<self::A<self::A<core::int>>> x) → dynamic
return throw 42;
- method barBar23<X extends self::A<self::A<self::A<core::int>>> = self::A<self::A<self::A<core::int>>>>() → dynamic
+ method barBar23<X extends self::A<self::A<self::A<core::int>>>>() → dynamic
return throw 42;
}
static method foo() → dynamic {
@@ -209,8 +209,8 @@
return throw 42;
static method bar2b(self::A<self::A<self::A<core::int>>> x) → dynamic
return throw 42;
-static method bar3a<X extends self::A<self::A<core::int>> = self::A<self::A<core::int>>>() → dynamic
+static method bar3a<X extends self::A<self::A<core::int>>>() → dynamic
return throw 42;
-static method bar3b<X extends self::A<self::A<self::A<core::int>>> = self::A<self::A<self::A<core::int>>>>() → dynamic
+static method bar3b<X extends self::A<self::A<self::A<core::int>>>>() → dynamic
return throw 42;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.weak.outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.weak.outline.expect
index e66dde1..224c9fc 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.weak.outline.expect
@@ -156,24 +156,24 @@
synthetic constructor •() → self::A<self::A::T%>
;
}
-class Bar1<X extends self::A<self::A<core::int>> = self::A<self::A<core::int>>> extends core::Object {
+class Bar1<X extends self::A<self::A<core::int>>> extends core::Object {
synthetic constructor •() → self::Bar1<self::Bar1::X>
;
method barBar11() → self::A<self::A<core::int>>
;
method barBar12(self::A<self::A<core::int>> x) → dynamic
;
- method barBar13<X extends self::A<self::A<core::int>> = self::A<self::A<core::int>>>() → dynamic
+ method barBar13<X extends self::A<self::A<core::int>>>() → dynamic
;
}
-class Bar2<X extends self::A<self::A<self::A<core::int>>> = self::A<self::A<self::A<core::int>>>> extends core::Object {
+class Bar2<X extends self::A<self::A<self::A<core::int>>>> extends core::Object {
synthetic constructor •() → self::Bar2<self::Bar2::X>
;
method barBar21() → self::A<self::A<self::A<core::int>>>
;
method barBar22(self::A<self::A<self::A<core::int>>> x) → dynamic
;
- method barBar23<X extends self::A<self::A<self::A<core::int>>> = self::A<self::A<self::A<core::int>>>>() → dynamic
+ method barBar23<X extends self::A<self::A<self::A<core::int>>>>() → dynamic
;
}
static method foo() → dynamic
@@ -186,9 +186,9 @@
;
static method bar2b(self::A<self::A<self::A<core::int>>> x) → dynamic
;
-static method bar3a<X extends self::A<self::A<core::int>> = self::A<self::A<core::int>>>() → dynamic
+static method bar3a<X extends self::A<self::A<core::int>>>() → dynamic
;
-static method bar3b<X extends self::A<self::A<self::A<core::int>>> = self::A<self::A<self::A<core::int>>>>() → dynamic
+static method bar3b<X extends self::A<self::A<self::A<core::int>>>>() → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.weak.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.weak.transformed.expect
index 7506643..68d1353 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks.dart.weak.transformed.expect
@@ -175,7 +175,7 @@
: super core::Object::•()
;
}
-class Bar1<X extends self::A<self::A<core::int>> = self::A<self::A<core::int>>> extends core::Object {
+class Bar1<X extends self::A<self::A<core::int>>> extends core::Object {
synthetic constructor •() → self::Bar1<self::Bar1::X>
: super core::Object::•()
;
@@ -183,10 +183,10 @@
return throw 42;
method barBar12(self::A<self::A<core::int>> x) → dynamic
return throw 42;
- method barBar13<X extends self::A<self::A<core::int>> = self::A<self::A<core::int>>>() → dynamic
+ method barBar13<X extends self::A<self::A<core::int>>>() → dynamic
return throw 42;
}
-class Bar2<X extends self::A<self::A<self::A<core::int>>> = self::A<self::A<self::A<core::int>>>> extends core::Object {
+class Bar2<X extends self::A<self::A<self::A<core::int>>>> extends core::Object {
synthetic constructor •() → self::Bar2<self::Bar2::X>
: super core::Object::•()
;
@@ -194,7 +194,7 @@
return throw 42;
method barBar22(self::A<self::A<self::A<core::int>>> x) → dynamic
return throw 42;
- method barBar23<X extends self::A<self::A<self::A<core::int>>> = self::A<self::A<self::A<core::int>>>>() → dynamic
+ method barBar23<X extends self::A<self::A<self::A<core::int>>>>() → dynamic
return throw 42;
}
static method foo() → dynamic {
@@ -209,8 +209,8 @@
return throw 42;
static method bar2b(self::A<self::A<self::A<core::int>>> x) → dynamic
return throw 42;
-static method bar3a<X extends self::A<self::A<core::int>> = self::A<self::A<core::int>>>() → dynamic
+static method bar3a<X extends self::A<self::A<core::int>>>() → dynamic
return throw 42;
-static method bar3b<X extends self::A<self::A<self::A<core::int>>> = self::A<self::A<self::A<core::int>>>>() → dynamic
+static method bar3b<X extends self::A<self::A<self::A<core::int>>>>() → dynamic
return throw 42;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.strong.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.strong.expect
index 2b7816b..221969e 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.strong.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.strong.expect
@@ -29,9 +29,9 @@
import self as self;
import "dart:core" as core;
-typedef A<unrelated X extends core::int = core::int> = core::String;
-typedef B<unrelated X extends core::int = core::int> = core::String;
-typedef C<X extends core::int = core::int> = X;
+typedef A<unrelated X extends core::int> = core::String;
+typedef B<unrelated X extends core::int> = core::String;
+typedef C<X extends core::int> = X;
static method foo() → dynamic {
core::String a;
}
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.strong.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.strong.transformed.expect
index 2b7816b..221969e 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.strong.transformed.expect
@@ -29,9 +29,9 @@
import self as self;
import "dart:core" as core;
-typedef A<unrelated X extends core::int = core::int> = core::String;
-typedef B<unrelated X extends core::int = core::int> = core::String;
-typedef C<X extends core::int = core::int> = X;
+typedef A<unrelated X extends core::int> = core::String;
+typedef B<unrelated X extends core::int> = core::String;
+typedef C<X extends core::int> = X;
static method foo() → dynamic {
core::String a;
}
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.weak.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.weak.expect
index 2b7816b..221969e 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.weak.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.weak.expect
@@ -29,9 +29,9 @@
import self as self;
import "dart:core" as core;
-typedef A<unrelated X extends core::int = core::int> = core::String;
-typedef B<unrelated X extends core::int = core::int> = core::String;
-typedef C<X extends core::int = core::int> = X;
+typedef A<unrelated X extends core::int> = core::String;
+typedef B<unrelated X extends core::int> = core::String;
+typedef C<X extends core::int> = X;
static method foo() → dynamic {
core::String a;
}
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.weak.outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.weak.outline.expect
index 0649b07..9b82c3d 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.weak.outline.expect
@@ -21,9 +21,9 @@
import self as self;
import "dart:core" as core;
-typedef A<unrelated X extends core::int = core::int> = core::String;
-typedef B<unrelated X extends core::int = core::int> = core::String;
-typedef C<X extends core::int = core::int> = X;
+typedef A<unrelated X extends core::int> = core::String;
+typedef B<unrelated X extends core::int> = core::String;
+typedef C<X extends core::int> = X;
static method foo() → dynamic
;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.weak.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.weak.transformed.expect
index 2b7816b..221969e 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_in_typedef.dart.weak.transformed.expect
@@ -29,9 +29,9 @@
import self as self;
import "dart:core" as core;
-typedef A<unrelated X extends core::int = core::int> = core::String;
-typedef B<unrelated X extends core::int = core::int> = core::String;
-typedef C<X extends core::int = core::int> = X;
+typedef A<unrelated X extends core::int> = core::String;
+typedef B<unrelated X extends core::int> = core::String;
+typedef C<X extends core::int> = X;
static method foo() → dynamic {
core::String a;
}
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.strong.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.strong.expect
index 381925d..2da2661 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.strong.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.strong.expect
@@ -20,13 +20,13 @@
import self as self2;
import "dart:core" as core;
-typedef B<unrelated X extends core::String = core::String> = self2::A;
+typedef B<unrelated X extends core::String> = self2::A;
class A extends core::Object {
synthetic constructor •() → self2::A
: super core::Object::•()
;
}
-class C<Y extends self2::A = self2::A> extends core::Object {
+class C<Y extends self2::A> extends core::Object {
synthetic constructor •() → self2::C<self2::C::Y>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.strong.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.strong.transformed.expect
index 381925d..2da2661 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.strong.transformed.expect
@@ -20,13 +20,13 @@
import self as self2;
import "dart:core" as core;
-typedef B<unrelated X extends core::String = core::String> = self2::A;
+typedef B<unrelated X extends core::String> = self2::A;
class A extends core::Object {
synthetic constructor •() → self2::A
: super core::Object::•()
;
}
-class C<Y extends self2::A = self2::A> extends core::Object {
+class C<Y extends self2::A> extends core::Object {
synthetic constructor •() → self2::C<self2::C::Y>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.weak.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.weak.expect
index 381925d..2da2661 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.weak.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.weak.expect
@@ -20,13 +20,13 @@
import self as self2;
import "dart:core" as core;
-typedef B<unrelated X extends core::String = core::String> = self2::A;
+typedef B<unrelated X extends core::String> = self2::A;
class A extends core::Object {
synthetic constructor •() → self2::A
: super core::Object::•()
;
}
-class C<Y extends self2::A = self2::A> extends core::Object {
+class C<Y extends self2::A> extends core::Object {
synthetic constructor •() → self2::C<self2::C::Y>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.weak.outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.weak.outline.expect
index ecbd101..9cbea69 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.weak.outline.expect
@@ -21,12 +21,12 @@
import self as self2;
import "dart:core" as core;
-typedef B<unrelated X extends core::String = core::String> = self2::A;
+typedef B<unrelated X extends core::String> = self2::A;
class A extends core::Object {
synthetic constructor •() → self2::A
;
}
-class C<Y extends self2::A = self2::A> extends core::Object {
+class C<Y extends self2::A> extends core::Object {
synthetic constructor •() → self2::C<self2::C::Y>
;
}
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.weak.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.weak.transformed.expect
index 381925d..2da2661 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/aliased_checks_no_bodies_main.dart.weak.transformed.expect
@@ -20,13 +20,13 @@
import self as self2;
import "dart:core" as core;
-typedef B<unrelated X extends core::String = core::String> = self2::A;
+typedef B<unrelated X extends core::String> = self2::A;
class A extends core::Object {
synthetic constructor •() → self2::A
: super core::Object::•()
;
}
-class C<Y extends self2::A = self2::A> extends core::Object {
+class C<Y extends self2::A> extends core::Object {
synthetic constructor •() → self2::C<self2::C::Y>
: super core::Object::•()
;
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.strong.expect b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.strong.expect
index 0c361f8..d805d8c 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.strong.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.strong.expect
@@ -13,7 +13,7 @@
import self as self;
import "dart:core" as core;
-typedef A<X extends core::num = core::num, unrelated Y extends core::Object? = dynamic> = self::C<X>;
+typedef A<X extends core::num, unrelated Y extends core::Object? = dynamic> = self::C<X>;
class C<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::X%>
: super core::Object::•()
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.strong.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.strong.transformed.expect
index 0c361f8..d805d8c 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.strong.transformed.expect
@@ -13,7 +13,7 @@
import self as self;
import "dart:core" as core;
-typedef A<X extends core::num = core::num, unrelated Y extends core::Object? = dynamic> = self::C<X>;
+typedef A<X extends core::num, unrelated Y extends core::Object? = dynamic> = self::C<X>;
class C<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::X%>
: super core::Object::•()
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.weak.expect b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.weak.expect
index 0c361f8..d805d8c 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.weak.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.weak.expect
@@ -13,7 +13,7 @@
import self as self;
import "dart:core" as core;
-typedef A<X extends core::num = core::num, unrelated Y extends core::Object? = dynamic> = self::C<X>;
+typedef A<X extends core::num, unrelated Y extends core::Object? = dynamic> = self::C<X>;
class C<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::X%>
: super core::Object::•()
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.weak.outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.weak.outline.expect
index 67117f8..0b4358a 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.weak.outline.expect
@@ -2,7 +2,7 @@
import self as self;
import "dart:core" as core;
-typedef A<X extends core::num = core::num, unrelated Y extends core::Object? = dynamic> = self::C<X>;
+typedef A<X extends core::num, unrelated Y extends core::Object? = dynamic> = self::C<X>;
class C<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::X%>
;
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.weak.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.weak.transformed.expect
index 0c361f8..d805d8c 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls.dart.weak.transformed.expect
@@ -13,7 +13,7 @@
import self as self;
import "dart:core" as core;
-typedef A<X extends core::num = core::num, unrelated Y extends core::Object? = dynamic> = self::C<X>;
+typedef A<X extends core::num, unrelated Y extends core::Object? = dynamic> = self::C<X>;
class C<X extends core::Object? = dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::X%>
: super core::Object::•()
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.strong.expect b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.strong.expect
index afdc55d..98796c8 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.strong.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.strong.expect
@@ -21,7 +21,7 @@
import "dart:core" as core;
part ./unaliased_bounds_checks_in_constructor_calls_with_parts_part_lib.dart;
-typedef A<X extends core::num = core::num, unrelated Y extends core::Object? = dynamic> = self2::C<X>;
+typedef A<X extends core::num, unrelated Y extends core::Object? = dynamic> = self2::C<X>;
class C<X extends core::Object? = dynamic> extends core::Object { // from org-dartlang-testcase:///unaliased_bounds_checks_in_constructor_calls_with_parts_part_lib.dart
synthetic constructor •() → self2::C<self2::C::X%>
: super core::Object::•()
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.strong.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.strong.transformed.expect
index afdc55d..98796c8 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.strong.transformed.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.strong.transformed.expect
@@ -21,7 +21,7 @@
import "dart:core" as core;
part ./unaliased_bounds_checks_in_constructor_calls_with_parts_part_lib.dart;
-typedef A<X extends core::num = core::num, unrelated Y extends core::Object? = dynamic> = self2::C<X>;
+typedef A<X extends core::num, unrelated Y extends core::Object? = dynamic> = self2::C<X>;
class C<X extends core::Object? = dynamic> extends core::Object { // from org-dartlang-testcase:///unaliased_bounds_checks_in_constructor_calls_with_parts_part_lib.dart
synthetic constructor •() → self2::C<self2::C::X%>
: super core::Object::•()
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.weak.expect b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.weak.expect
index afdc55d..98796c8 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.weak.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.weak.expect
@@ -21,7 +21,7 @@
import "dart:core" as core;
part ./unaliased_bounds_checks_in_constructor_calls_with_parts_part_lib.dart;
-typedef A<X extends core::num = core::num, unrelated Y extends core::Object? = dynamic> = self2::C<X>;
+typedef A<X extends core::num, unrelated Y extends core::Object? = dynamic> = self2::C<X>;
class C<X extends core::Object? = dynamic> extends core::Object { // from org-dartlang-testcase:///unaliased_bounds_checks_in_constructor_calls_with_parts_part_lib.dart
synthetic constructor •() → self2::C<self2::C::X%>
: super core::Object::•()
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.weak.outline.expect b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.weak.outline.expect
index d3cc16c..ca7c9c2 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.weak.outline.expect
@@ -11,7 +11,7 @@
import "dart:core" as core;
part ./unaliased_bounds_checks_in_constructor_calls_with_parts_part_lib.dart;
-typedef A<X extends core::num = core::num, unrelated Y extends core::Object? = dynamic> = self2::C<X>;
+typedef A<X extends core::num, unrelated Y extends core::Object? = dynamic> = self2::C<X>;
class C<X extends core::Object? = dynamic> extends core::Object { // from org-dartlang-testcase:///unaliased_bounds_checks_in_constructor_calls_with_parts_part_lib.dart
synthetic constructor •() → self2::C<self2::C::X%>
;
diff --git a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.weak.transformed.expect b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.weak.transformed.expect
index afdc55d..98796c8 100644
--- a/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/nonfunction_type_aliases/unaliased_bounds_checks_in_constructor_calls_with_parts_main.dart.weak.transformed.expect
@@ -21,7 +21,7 @@
import "dart:core" as core;
part ./unaliased_bounds_checks_in_constructor_calls_with_parts_part_lib.dart;
-typedef A<X extends core::num = core::num, unrelated Y extends core::Object? = dynamic> = self2::C<X>;
+typedef A<X extends core::num, unrelated Y extends core::Object? = dynamic> = self2::C<X>;
class C<X extends core::Object? = dynamic> extends core::Object { // from org-dartlang-testcase:///unaliased_bounds_checks_in_constructor_calls_with_parts_part_lib.dart
synthetic constructor •() → self2::C<self2::C::X%>
: super core::Object::•()
diff --git a/pkg/front_end/testcases/outline.status b/pkg/front_end/testcases/outline.status
index dc7cac2..b9f3dfa 100644
--- a/pkg/front_end/testcases/outline.status
+++ b/pkg/front_end/testcases/outline.status
@@ -3,6 +3,7 @@
# BSD-style license that can be found in the LICENSE.md file.
const_functions/const_functions_const_factory: VerificationError
+extension_types/extension_on_nullable: ExpectationFileMismatchSerialized # Expected.
extension_types/simple: ExpectationFileMismatchSerialized
extension_types/simple_getter_resolution: ExpectationFileMismatchSerialized
extension_types/simple_method_resolution: ExpectationFileMismatchSerialized
diff --git a/pkg/front_end/testcases/regress/issue_31766.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31766.dart.weak.expect
index 84f19bf..9fcb7e6 100644
--- a/pkg/front_end/testcases/regress/issue_31766.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31766.dart.weak.expect
@@ -20,11 +20,11 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- function bar<T extends self::A* = self::A*>(T* t) → void {
+ function bar<T extends self::A*>(T* t) → void {
core::print("t.foo()=${t.{self::A::foo}()}");
}
bar.call<self::A*>(new self::A::•());
- (<S extends self::A* = self::A*>(S* s) → Null {
+ (<S extends self::A*>(S* s) → Null {
core::print("s.foo()=${s.{self::A::foo}()}");
}).call<self::A*>(new self::A::•());
}
diff --git a/pkg/front_end/testcases/regress/issue_31766.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31766.dart.weak.transformed.expect
index 84f19bf..9fcb7e6 100644
--- a/pkg/front_end/testcases/regress/issue_31766.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31766.dart.weak.transformed.expect
@@ -20,11 +20,11 @@
abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- function bar<T extends self::A* = self::A*>(T* t) → void {
+ function bar<T extends self::A*>(T* t) → void {
core::print("t.foo()=${t.{self::A::foo}()}");
}
bar.call<self::A*>(new self::A::•());
- (<S extends self::A* = self::A*>(S* s) → Null {
+ (<S extends self::A*>(S* s) → Null {
core::print("s.foo()=${s.{self::A::foo}()}");
}).call<self::A*>(new self::A::•());
}
diff --git a/pkg/front_end/testcases/regress/issue_31846.dart.weak.expect b/pkg/front_end/testcases/regress/issue_31846.dart.weak.expect
index 46e374c..98bf326 100644
--- a/pkg/front_end/testcases/regress/issue_31846.dart.weak.expect
+++ b/pkg/front_end/testcases/regress/issue_31846.dart.weak.expect
@@ -5,7 +5,7 @@
static method main() → dynamic {
core::print((#C1) is () →* dynamic);
core::print((<T extends core::Object* = dynamic>(T* x) → T* => x).{core::Object::runtimeType});
- core::print((<T extends core::num* = core::num*>(T* x) → T* => x).{core::Object::runtimeType});
+ core::print((<T extends core::num*>(T* x) → T* => x).{core::Object::runtimeType});
core::print((<T extends core::Comparable<T*>* = core::Comparable<dynamic>*>(T* x) → T* => x).{core::Object::runtimeType});
core::print((<T extends core::Comparable<S*>* = core::Comparable<dynamic>*, S extends core::Object* = dynamic>(T* x) → T* => x).{core::Object::runtimeType});
core::print((<T extends (T*) →* dynamic = (Null) →* dynamic>(T* x) → T* => x).{core::Object::runtimeType});
diff --git a/pkg/front_end/testcases/regress/issue_31846.dart.weak.transformed.expect b/pkg/front_end/testcases/regress/issue_31846.dart.weak.transformed.expect
index 27bf019..4202e10 100644
--- a/pkg/front_end/testcases/regress/issue_31846.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/regress/issue_31846.dart.weak.transformed.expect
@@ -5,7 +5,7 @@
static method main() → dynamic {
core::print((#C1) is () →* dynamic);
core::print((<T extends core::Object* = dynamic>(T* x) → T* => x).{core::Object::runtimeType});
- core::print((<T extends core::num* = core::num*>(T* x) → T* => x).{core::Object::runtimeType});
+ core::print((<T extends core::num*>(T* x) → T* => x).{core::Object::runtimeType});
core::print((<T extends core::Comparable<T*>* = core::Comparable<dynamic>*>(T* x) → T* => x).{core::Object::runtimeType});
core::print((<T extends core::Comparable<S*>* = core::Comparable<dynamic>*, S extends core::Object* = dynamic>(T* x) → T* => x).{core::Object::runtimeType});
core::print((<T extends (T*) →* dynamic = (Null) →* dynamic>(T* x) → T* => x).{core::Object::runtimeType});
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.expect
index 86eda63..d05b36d 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.expect
@@ -7,7 +7,7 @@
synthetic constructor •() → self::C<self::C::T*>*
: super core::Object::•()
;
- method f<U extends (self::C::T*) →* void = (self::C::T*) →* void>(self::C::f::U* x) → void {}
+ method f<U extends (self::C::T*) →* void>(self::C::f::U* x) → 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
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.outline.expect
index d92d1dd..713c4b7 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.outline.expect
@@ -6,7 +6,7 @@
class C<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::T*>*
;
- method f<U extends (self::C::T*) →* void = (self::C::T*) →* void>(self::C::f::U* x) → void
+ method f<U extends (self::C::T*) →* void>(self::C::f::U* x) → 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
diff --git a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.transformed.expect
index 86eda63..d05b36d 100644
--- a/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/contravariant_generic_method_type_parameter.dart.weak.transformed.expect
@@ -7,7 +7,7 @@
synthetic constructor •() → self::C<self::C::T*>*
: super core::Object::•()
;
- method f<U extends (self::C::T*) →* void = (self::C::T*) →* void>(self::C::f::U* x) → void {}
+ method f<U extends (self::C::T*) →* void>(self::C::f::U* x) → 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
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.expect
index 415bac4..a1b22b2 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.expect
@@ -19,8 +19,8 @@
synthetic constructor •() → self::C<self::C::T*>*
: super core::Object::•()
;
- method f<generic-covariant-impl U extends self::C::T* = self::C::T*>(self::C::f::U* x) → void {}
- method g1<generic-covariant-impl U extends self::C::T* = self::C::T*>() → void {
+ method f<generic-covariant-impl U extends self::C::T*>(self::C::f::U* x) → void {}
+ method g1<generic-covariant-impl U extends self::C::T*>() → void {
this.{self::C::f}<self::C::g1::U*>(let final Never* #t1 = invalid-expression "pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart:11:15: Error: The argument type 'double' can't be assigned to the parameter type 'U'.
this.f<U>(1.5);
^" in 1.5 as{TypeError} Never);
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.outline.expect
index 2cae248..133cc4d 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.outline.expect
@@ -5,9 +5,9 @@
class C<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::T*>*
;
- method f<generic-covariant-impl U extends self::C::T* = self::C::T*>(self::C::f::U* x) → void
+ method f<generic-covariant-impl U extends self::C::T*>(self::C::f::U* x) → void
;
- method g1<generic-covariant-impl U extends self::C::T* = self::C::T*>() → void
+ method g1<generic-covariant-impl U extends self::C::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
diff --git a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.transformed.expect
index 415bac4..a1b22b2 100644
--- a/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart.weak.transformed.expect
@@ -19,8 +19,8 @@
synthetic constructor •() → self::C<self::C::T*>*
: super core::Object::•()
;
- method f<generic-covariant-impl U extends self::C::T* = self::C::T*>(self::C::f::U* x) → void {}
- method g1<generic-covariant-impl U extends self::C::T* = self::C::T*>() → void {
+ method f<generic-covariant-impl U extends self::C::T*>(self::C::f::U* x) → void {}
+ method g1<generic-covariant-impl U extends self::C::T*>() → void {
this.{self::C::f}<self::C::g1::U*>(let final Never* #t1 = invalid-expression "pkg/front_end/testcases/runtime_checks/covariant_generic_method_type_parameter.dart:11:15: Error: The argument type 'double' can't be assigned to the parameter type 'U'.
this.f<U>(1.5);
^" in 1.5 as{TypeError} Never);
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.expect
index e202795..07dcc99 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.expect
@@ -6,7 +6,7 @@
synthetic constructor •() → self::C<self::C::T*>*
: super core::Object::•()
;
- method f<generic-covariant-impl U extends self::C::T* = self::C::T*>(self::C::f::U* x) → void {}
+ method f<generic-covariant-impl U extends self::C::T*>(self::C::f::U* x) → 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
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.outline.expect
index 8f33693..d66d1485 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.outline.expect
@@ -5,7 +5,7 @@
class C<T extends core::Object* = dynamic> extends core::Object {
synthetic constructor •() → self::C<self::C::T*>*
;
- method f<generic-covariant-impl U extends self::C::T* = self::C::T*>(self::C::f::U* x) → void
+ method f<generic-covariant-impl U extends self::C::T*>(self::C::f::U* x) → 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
diff --git a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.transformed.expect
index e202795..07dcc99 100644
--- a/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks/dynamic_invocation_generic.dart.weak.transformed.expect
@@ -6,7 +6,7 @@
synthetic constructor •() → self::C<self::C::T*>*
: super core::Object::•()
;
- method f<generic-covariant-impl U extends self::C::T* = self::C::T*>(self::C::f::U* x) → void {}
+ method f<generic-covariant-impl U extends self::C::T*>(self::C::f::U* x) → 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
diff --git a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.expect b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.expect
index 4a4821f..eb1c927 100644
--- a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.expect
@@ -8,7 +8,7 @@
;
method f(generic-covariant-impl self::B::T* x) → void {}
method g({generic-covariant-impl self::B::T* x = #C1}) → void {}
- method h<generic-covariant-impl U extends self::B::T* = self::B::T*>() → void {}
+ method h<generic-covariant-impl U extends self::B::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
diff --git a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.outline.expect b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.outline.expect
index 822b58a..2ebc576 100644
--- a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.outline.expect
@@ -9,7 +9,7 @@
;
method g({generic-covariant-impl self::B::T* x}) → void
;
- method h<generic-covariant-impl U extends self::B::T* = self::B::T*>() → void
+ method h<generic-covariant-impl U extends self::B::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
diff --git a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.transformed.expect b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.transformed.expect
index 4a4821f..eb1c927 100644
--- a/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/runtime_checks_new/derived_class_typed.dart.weak.transformed.expect
@@ -8,7 +8,7 @@
;
method f(generic-covariant-impl self::B::T* x) → void {}
method g({generic-covariant-impl self::B::T* x = #C1}) → void {}
- method h<generic-covariant-impl U extends self::B::T* = self::B::T*>() → void {}
+ method h<generic-covariant-impl U extends self::B::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
diff --git a/pkg/front_end/testcases/strong.status b/pkg/front_end/testcases/strong.status
index c0d86e6..6403bd3 100644
--- a/pkg/front_end/testcases/strong.status
+++ b/pkg/front_end/testcases/strong.status
@@ -6,6 +6,8 @@
# Kernel ASTs directly, that is, code in pkg/fasta/lib/src/kernel/ with
# strong-mode enabled.
+extension_types/extension_on_nullable: ExpectationFileMismatchSerialized # Expected.
+extension_types/issue45775: ExpectationFileMismatchSerialized # Expected.
extension_types/simple: ExpectationFileMismatchSerialized # Expected.
extension_types/simple_getter_resolution: ExpectationFileMismatchSerialized # Expected.
extension_types/simple_method_resolution: ExpectationFileMismatchSerialized # Expected.
diff --git a/pkg/front_end/testcases/text_serialization.status b/pkg/front_end/testcases/text_serialization.status
index 6b0b79c..c8b4bc7 100644
--- a/pkg/front_end/testcases/text_serialization.status
+++ b/pkg/front_end/testcases/text_serialization.status
@@ -6,6 +6,8 @@
# the round trip for Kernel textual serialization where the initial binary
# Kernel files are produced by compiling Dart code via Fasta.
+extension_types/extension_on_nullable: ExpectationFileMismatchSerialized # Expected.
+extension_types/issue45775: ExpectationFileMismatchSerialized # Expected.
extension_types/simple: ExpectationFileMismatchSerialized # Expected.
extension_types/simple_getter_resolution: ExpectationFileMismatchSerialized # Expected.
extension_types/simple_method_resolution: ExpectationFileMismatchSerialized # Expected.
diff --git a/pkg/front_end/testcases/weak.status b/pkg/front_end/testcases/weak.status
index 9af0078..865813b 100644
--- a/pkg/front_end/testcases/weak.status
+++ b/pkg/front_end/testcases/weak.status
@@ -10,6 +10,8 @@
general/error_recovery/issue_39058.crash: SemiFuzzFailure
regress/utf_16_le_content.crash: SemiFuzzCrash
+extension_types/extension_on_nullable: ExpectationFileMismatchSerialized # Expected.
+extension_types/issue45775: ExpectationFileMismatchSerialized # Expected.
extension_types/simple: ExpectationFileMismatchSerialized # Expected.
extension_types/simple_getter_resolution: ExpectationFileMismatchSerialized # Expected.
extension_types/simple_method_resolution: ExpectationFileMismatchSerialized # Expected.
diff --git a/pkg/kernel/binary.md b/pkg/kernel/binary.md
index 0e9346f..1e83f7d 100644
--- a/pkg/kernel/binary.md
+++ b/pkg/kernel/binary.md
@@ -147,7 +147,7 @@
type ComponentFile {
UInt32 magic = 0x90ABCDEF;
- UInt32 formatVersion = 62;
+ UInt32 formatVersion = 63;
Byte[10] shortSdkHash;
List<String> problemsAsJson; // Described in problems.md.
Library[] libraries;
@@ -1496,7 +1496,7 @@
Byte variance; // Index into the Variance enum above
StringReference name; // Cosmetic, may be empty, not unique.
DartType bound; // 'dynamic' if no explicit bound was given.
- Option<DartType> defaultType; // type used when the parameter is not passed
+ DartType defaultType; // type used when the parameter is not passed
}
```
diff --git a/pkg/kernel/lib/ast.dart b/pkg/kernel/lib/ast.dart
index 100535a..eb7f26f 100644
--- a/pkg/kernel/lib/ast.dart
+++ b/pkg/kernel/lib/ast.dart
@@ -5901,7 +5901,7 @@
getterType.typeParameters,
getterType.typeParameters
.map((TypeParameter typeParameter) =>
- typeParameter.defaultType!)
+ typeParameter.defaultType)
.toList());
}
return substitution.substituteType(getterType.returnType);
@@ -11979,13 +11979,18 @@
/// bound.
DartType bound;
+ /// Sentinel value used for the [defaultType] that has not yet been computed.
+ /// This is needed to make the [defaultType] field non-nullable while
+ /// supporting recursive bounds for which the default type need to be set
+ /// late.
+ static final DartType unsetDefaultTypeSentinel = new InvalidType();
+
/// The default value of the type variable. It is used to provide the
/// corresponding missing type argument in type annotations and as the
/// fall-back type value in type inference at compile time. At run time,
/// [defaultType] is used by the backends in place of the missing type
/// argument of a dynamic invocation of a generic function.
- // TODO(johnniwinther): Can we make this late non-nullable?
- DartType? defaultType;
+ DartType defaultType;
/// Describes variance of the type parameter w.r.t. declaration on which it is
/// defined. For classes, if variance is not explicitly set, the type
@@ -12003,8 +12008,9 @@
static const int legacyCovariantSerializationMarker = 4;
- TypeParameter([this.name, DartType? bound, this.defaultType])
- : bound = bound ?? unsetBoundSentinel;
+ TypeParameter([this.name, DartType? bound, DartType? defaultType])
+ : bound = bound ?? unsetBoundSentinel,
+ defaultType = defaultType ?? unsetDefaultTypeSentinel;
// Must match serialized bit positions.
static const int FlagGenericCovariantImpl = 1 << 0;
@@ -12042,7 +12048,7 @@
void visitChildren(Visitor v) {
visitList(annotations, v);
bound.accept(v);
- defaultType?.accept(v);
+ defaultType.accept(v);
}
@override
@@ -12052,8 +12058,9 @@
if (bound != null) {
bound = v.visitDartType(bound);
}
+ // ignore: unnecessary_null_comparison
if (defaultType != null) {
- defaultType = v.visitDartType(defaultType!);
+ defaultType = v.visitDartType(defaultType);
}
}
@@ -12064,13 +12071,9 @@
if (bound != null) {
bound = v.visitDartType(bound, cannotRemoveSentinel);
}
+ // ignore: unnecessary_null_comparison
if (defaultType != null) {
- DartType newDefaultType = v.visitDartType(defaultType!, dummyDartType);
- if (identical(newDefaultType, dummyDartType)) {
- defaultType = null;
- } else {
- defaultType = newDefaultType;
- }
+ defaultType = v.visitDartType(defaultType, cannotRemoveSentinel);
}
}
diff --git a/pkg/kernel/lib/binary/ast_from_binary.dart b/pkg/kernel/lib/binary/ast_from_binary.dart
index 7ed437e..a825278 100644
--- a/pkg/kernel/lib/binary/ast_from_binary.dart
+++ b/pkg/kernel/lib/binary/ast_from_binary.dart
@@ -3001,7 +3001,7 @@
}
node.name = readStringOrNullIfEmpty();
node.bound = readDartType();
- node.defaultType = readDartTypeOption();
+ node.defaultType = readDartType();
}
Arguments readArguments() {
diff --git a/pkg/kernel/lib/binary/ast_to_binary.dart b/pkg/kernel/lib/binary/ast_to_binary.dart
index 6e4052a..c2c35282 100644
--- a/pkg/kernel/lib/binary/ast_to_binary.dart
+++ b/pkg/kernel/lib/binary/ast_to_binary.dart
@@ -2401,8 +2401,7 @@
}
writeStringReference(node.name ?? '');
writeNode(node.bound);
- // TODO(johnniwinther): Make this non-optional.
- writeOptionalNode(node.defaultType);
+ writeNode(node.defaultType);
}
@override
diff --git a/pkg/kernel/lib/binary/tag.dart b/pkg/kernel/lib/binary/tag.dart
index 752f84b..8fe71ec 100644
--- a/pkg/kernel/lib/binary/tag.dart
+++ b/pkg/kernel/lib/binary/tag.dart
@@ -174,7 +174,7 @@
/// Internal version of kernel binary format.
/// Bump it when making incompatible changes in kernel binaries.
/// Keep in sync with runtime/vm/kernel_binary.h, pkg/kernel/binary.md.
- static const int BinaryFormatVersion = 62;
+ static const int BinaryFormatVersion = 63;
}
abstract class ConstantTag {
diff --git a/pkg/kernel/lib/clone.dart b/pkg/kernel/lib/clone.dart
index 29a21e3..62b04d9 100644
--- a/pkg/kernel/lib/clone.dart
+++ b/pkg/kernel/lib/clone.dart
@@ -510,8 +510,9 @@
visitTypeParameter(TypeParameter node) {
TypeParameter newNode = typeParams[node]!;
newNode.bound = visitType(node.bound);
+ // ignore: unnecessary_null_comparison
if (node.defaultType != null) {
- newNode.defaultType = visitType(node.defaultType!);
+ newNode.defaultType = visitType(node.defaultType);
}
return newNode
..annotations = cloneAnnotations && !node.annotations.isEmpty
diff --git a/pkg/kernel/lib/src/bounds_checks.dart b/pkg/kernel/lib/src/bounds_checks.dart
index 47b03e6..d1cdd54 100644
--- a/pkg/kernel/lib/src/bounds_checks.dart
+++ b/pkg/kernel/lib/src/bounds_checks.dart
@@ -88,7 +88,7 @@
void visitFunctionType(FunctionType node) {
for (TypeParameter typeParameter in node.typeParameters) {
typeParameter.bound.accept(this);
- typeParameter.defaultType?.accept(this);
+ typeParameter.defaultType.accept(this);
}
for (DartType parameter in node.positionalParameters) {
parameter.accept(this);
@@ -171,7 +171,7 @@
? const NeverType.nonNullable()
: const DynamicType();
} else if (bound is InterfaceType && bound.classNode == objectClass) {
- DartType defaultType = typeParameters[i].defaultType!;
+ DartType defaultType = typeParameters[i].defaultType;
if (!(defaultType is InterfaceType &&
defaultType.classNode == objectClass)) {
bound = isNonNullableByDefault && isContravariant
diff --git a/pkg/kernel/lib/src/merge_visitor.dart b/pkg/kernel/lib/src/merge_visitor.dart
index d18083c..fe27f5c 100644
--- a/pkg/kernel/lib/src/merge_visitor.dart
+++ b/pkg/kernel/lib/src/merge_visitor.dart
@@ -81,7 +81,7 @@
}
newTypeParameters[i].bound = newBound;
DartType? newDefaultType = mergeTypes(
- a.typeParameters[i].defaultType!, b.typeParameters[i].defaultType!);
+ a.typeParameters[i].defaultType, b.typeParameters[i].defaultType);
if (newDefaultType == null) {
return null;
}
diff --git a/pkg/kernel/lib/src/printer.dart b/pkg/kernel/lib/src/printer.dart
index cb4b9e6..b184440 100644
--- a/pkg/kernel/lib/src/printer.dart
+++ b/pkg/kernel/lib/src/printer.dart
@@ -274,7 +274,7 @@
return false;
}
- if (!isTopObject(bound) || isTopObject(typeParameter.defaultType!)) {
+ if (!isTopObject(bound) || isTopObject(typeParameter.defaultType)) {
// Include explicit bounds only.
_sb.write(' extends ');
writeType(bound);
diff --git a/pkg/kernel/lib/src/replacement_visitor.dart b/pkg/kernel/lib/src/replacement_visitor.dart
index ced29bc..b37a704 100644
--- a/pkg/kernel/lib/src/replacement_visitor.dart
+++ b/pkg/kernel/lib/src/replacement_visitor.dart
@@ -26,7 +26,7 @@
DartType? newBound = typeParameter.bound
.accept1(this, Variance.combine(variance, Variance.invariant));
DartType? newDefaultType = typeParameter.defaultType
- ?.accept1(this, Variance.combine(variance, Variance.invariant));
+ .accept1(this, Variance.combine(variance, Variance.invariant));
if (newBound != null || newDefaultType != null) {
newTypeParameters ??= node.typeParameters.toList(growable: false);
newTypeParameters[i] = new TypeParameter(
diff --git a/pkg/kernel/lib/src/types.dart b/pkg/kernel/lib/src/types.dart
index 550417c..47c4b89 100644
--- a/pkg/kernel/lib/src/types.dart
+++ b/pkg/kernel/lib/src/types.dart
@@ -112,6 +112,8 @@
return relation.isTypedefRelated(s, t, this);
} else if (s is FutureOrType) {
return relation.isFutureOrRelated(s, t, this);
+ } else if (s is ExtensionType) {
+ return relation.isExtensionRelated(s, t, this);
}
} else if (t is FunctionType) {
const IsFunctionSubtypeOf relation = const IsFunctionSubtypeOf();
@@ -131,6 +133,8 @@
return relation.isTypedefRelated(s, t, this);
} else if (s is FutureOrType) {
return relation.isFutureOrRelated(s, t, this);
+ } else if (s is ExtensionType) {
+ return relation.isExtensionRelated(s, t, this);
}
} else if (t is TypeParameterType) {
if (t.promotedBound == null) {
@@ -152,6 +156,8 @@
return relation.isTypedefRelated(s, t, this);
} else if (s is FutureOrType) {
return relation.isFutureOrRelated(s, t, this);
+ } else if (s is ExtensionType) {
+ return relation.isExtensionRelated(s, t, this);
}
} else {
const IsIntersectionSubtypeOf relation =
@@ -172,6 +178,8 @@
return relation.isTypedefRelated(s, t, this);
} else if (s is FutureOrType) {
return relation.isFutureOrRelated(s, t, this);
+ } else if (s is ExtensionType) {
+ return relation.isExtensionRelated(s, t, this);
}
}
} else if (t is TypedefType) {
@@ -192,6 +200,8 @@
return relation.isTypedefRelated(s, t, this);
} else if (s is FutureOrType) {
return relation.isFutureOrRelated(s, t, this);
+ } else if (s is ExtensionType) {
+ return relation.isExtensionRelated(s, t, this);
}
} else if (t is FutureOrType) {
const IsFutureOrSubtypeOf relation = const IsFutureOrSubtypeOf();
@@ -211,6 +221,8 @@
return relation.isTypedefRelated(s, t, this);
} else if (s is FutureOrType) {
return relation.isFutureOrRelated(s, t, this);
+ } else if (s is ExtensionType) {
+ return relation.isExtensionRelated(s, t, this);
}
} else if (t is NullType) {
const IsNullTypeSubtypeOf relation = const IsNullTypeSubtypeOf();
@@ -230,6 +242,8 @@
return relation.isTypedefRelated(s, t, this);
} else if (s is FutureOrType) {
return relation.isFutureOrRelated(s, t, this);
+ } else if (s is ExtensionType) {
+ return relation.isExtensionRelated(s, t, this);
}
} else if (t is NeverType) {
const IsNeverTypeSubtypeOf relation = const IsNeverTypeSubtypeOf();
@@ -249,6 +263,30 @@
return relation.isTypedefRelated(s, t, this);
} else if (s is FutureOrType) {
return relation.isFutureOrRelated(s, t, this);
+ } else if (s is ExtensionType) {
+ return relation.isExtensionRelated(s, t, this);
+ }
+ } else if (t is ExtensionType) {
+ const IsExtensionTypeSubtypeOf relation =
+ const IsExtensionTypeSubtypeOf();
+ if (s is DynamicType) {
+ return relation.isDynamicRelated(s, t, this);
+ } else if (s is VoidType) {
+ return relation.isVoidRelated(s, t, this);
+ } else if (s is InterfaceType) {
+ return relation.isInterfaceRelated(s, t, this);
+ } else if (s is FunctionType) {
+ return relation.isFunctionRelated(s, t, this);
+ } else if (s is TypeParameterType) {
+ return s.promotedBound == null
+ ? relation.isTypeParameterRelated(s, t, this)
+ : relation.isIntersectionRelated(s, t, this);
+ } else if (s is TypedefType) {
+ return relation.isTypedefRelated(s, t, this);
+ } else if (s is FutureOrType) {
+ return relation.isFutureOrRelated(s, t, this);
+ } else if (s is ExtensionType) {
+ return relation.isExtensionRelated(s, t, this);
}
} else {
throw "Unhandled type: ${t.runtimeType}";
diff --git a/pkg/kernel/lib/text/ast_to_text.dart b/pkg/kernel/lib/text/ast_to_text.dart
index 84484e7..5066b0a 100644
--- a/pkg/kernel/lib/text/ast_to_text.dart
+++ b/pkg/kernel/lib/text/ast_to_text.dart
@@ -2516,9 +2516,10 @@
writeWord(getTypeParameterName(node));
writeSpaced('extends');
writeType(node.bound);
- if (node.defaultType != null) {
+ // ignore: unnecessary_null_comparison
+ if (node.defaultType != node.bound) {
writeSpaced('=');
- writeType(node.defaultType!);
+ writeType(node.defaultType);
}
}
diff --git a/pkg/kernel/lib/text/text_serializer.dart b/pkg/kernel/lib/text/text_serializer.dart
index 82aaee6..ac705f2 100644
--- a/pkg/kernel/lib/text/text_serializer.dart
+++ b/pkg/kernel/lib/text/text_serializer.dart
@@ -1195,20 +1195,20 @@
zipTypeParameterDefaultType,
unzipTypeParameterDefaultType);
-TypeParameter zipTypeParameterBound(TypeParameter node, DartType? bound) {
- return node..bound = bound!;
+TypeParameter zipTypeParameterBound(TypeParameter node, DartType bound) {
+ return node..bound = bound;
}
-Tuple2<TypeParameter, DartType?> unzipTypeParameterBound(TypeParameter node) {
+Tuple2<TypeParameter, DartType> unzipTypeParameterBound(TypeParameter node) {
return new Tuple2(node, node.bound);
}
TypeParameter zipTypeParameterDefaultType(
- TypeParameter node, DartType? defaultType) {
+ TypeParameter node, DartType defaultType) {
return node..defaultType = defaultType;
}
-Tuple2<TypeParameter, DartType?> unzipTypeParameterDefaultType(
+Tuple2<TypeParameter, DartType> unzipTypeParameterDefaultType(
TypeParameter node) {
return new Tuple2(node, node.defaultType);
}
diff --git a/pkg/kernel/lib/type_algebra.dart b/pkg/kernel/lib/type_algebra.dart
index d40825c..c273494 100644
--- a/pkg/kernel/lib/type_algebra.dart
+++ b/pkg/kernel/lib/type_algebra.dart
@@ -121,9 +121,7 @@
TypeParameter freshTypeParameter = freshParameters[i];
freshTypeParameter.bound = substitute(typeParameter.bound, map);
- freshTypeParameter.defaultType = typeParameter.defaultType != null
- ? substitute(typeParameter.defaultType!, map)
- : null;
+ freshTypeParameter.defaultType = substitute(typeParameter.defaultType, map);
freshTypeParameter.variance =
typeParameter.isLegacyCovariant ? null : typeParameter.variance;
// Annotations on a type parameter are specific to the declaration of the
@@ -384,8 +382,9 @@
TypeParameterType typeParameterType = substitution[node] =
new TypeParameterType.forAlphaRenaming(node, fresh);
fresh.bound = visit(node.bound);
+ // ignore: unnecessary_null_comparison
if (node.defaultType != null) {
- fresh.defaultType = visit(node.defaultType!);
+ fresh.defaultType = visit(node.defaultType);
}
// If the bound was changed from substituting the bound we need to update
// implicit nullability to be based on the new bound. If the bound wasn't
@@ -701,8 +700,9 @@
bool handleTypeParameter(TypeParameter node) {
assert(!variables.contains(node));
if (node.bound.accept(this)) return true;
+ // ignore: unnecessary_null_comparison
if (node.defaultType == null) return false;
- return node.defaultType!.accept(this);
+ return node.defaultType.accept(this);
}
}
@@ -760,8 +760,9 @@
bool handleTypeParameter(TypeParameter node) {
assert(variables.contains(node));
if (node.bound.accept(this)) return true;
+ // ignore: unnecessary_null_comparison
if (node.defaultType == null) return false;
- return node.defaultType!.accept(this);
+ return node.defaultType.accept(this);
}
}
@@ -819,8 +820,9 @@
bool handleTypeParameter(TypeParameter node) {
assert(variables.contains(node));
if (node.bound.accept(this)) return true;
+ // ignore: unnecessary_null_comparison
if (node.defaultType == null) return false;
- return node.defaultType!.accept(this);
+ return node.defaultType.accept(this);
}
}
diff --git a/pkg/kernel/lib/verifier.dart b/pkg/kernel/lib/verifier.dart
index 01e2f7d..ad79a99 100644
--- a/pkg/kernel/lib/verifier.dart
+++ b/pkg/kernel/lib/verifier.dart
@@ -186,7 +186,8 @@
problem(
currentParent, "Missing bound for type parameter '$parameter'.");
}
- if (parameter.defaultType == null) {
+ if (identical(
+ parameter.defaultType, TypeParameter.unsetDefaultTypeSentinel)) {
problem(currentParent,
"Missing default type for type parameter '$parameter'.");
}
diff --git a/pkg/kernel/test/class_hierarchy_test.dart b/pkg/kernel/test/class_hierarchy_test.dart
index dc68f05..65b263d 100644
--- a/pkg/kernel/test/class_hierarchy_test.dart
+++ b/pkg/kernel/test/class_hierarchy_test.dart
@@ -338,7 +338,8 @@
{Supertype extends_(List<DartType> typeParameterTypes),
List<Supertype> implements_(List<DartType> typeParameterTypes)}) {
var typeParameters = typeParameterNames
- .map((name) => new TypeParameter(name, coreTypes.objectLegacyRawType))
+ .map((name) => new TypeParameter(
+ name, coreTypes.objectLegacyRawType, coreTypes.objectLegacyRawType))
.toList();
var typeParameterTypes = typeParameters
.map(
@@ -581,7 +582,8 @@
var a = addGenericClass('A', ['T', 'U']);
- var bT = new TypeParameter('T', coreTypes.objectLegacyRawType);
+ var bT = new TypeParameter(
+ 'T', coreTypes.objectLegacyRawType, coreTypes.objectLegacyRawType);
var bTT = new TypeParameterType(bT, Nullability.legacy);
var b = addClass(new Class(
name: 'B',
@@ -613,7 +615,8 @@
var a = addGenericClass('A', ['T', 'U']);
- var bT = new TypeParameter('T', coreTypes.objectLegacyRawType);
+ var bT = new TypeParameter(
+ 'T', coreTypes.objectLegacyRawType, coreTypes.objectLegacyRawType);
var bTT = new TypeParameterType(bT, Nullability.legacy);
var b = addClass(new Class(
name: 'B',
@@ -651,7 +654,8 @@
var a = addGenericClass('A', ['T', 'U']);
- var bT = new TypeParameter('T', coreTypes.objectLegacyRawType);
+ var bT = new TypeParameter(
+ 'T', coreTypes.objectLegacyRawType, coreTypes.objectLegacyRawType);
var bTT = new TypeParameterType(bT, Nullability.legacy);
var b = addClass(new Class(
name: 'B',
@@ -1327,7 +1331,8 @@
var a = addGenericClass('A', ['T', 'U']);
- var bT = new TypeParameter('T', coreTypes.objectLegacyRawType);
+ var bT = new TypeParameter(
+ 'T', coreTypes.objectLegacyRawType, coreTypes.objectLegacyRawType);
var bTT = new TypeParameterType(bT, Nullability.legacy);
var b = addClass(new Class(
name: 'B',
diff --git a/pkg/vm/testcases/transformations/type_flow/summary_collector/bool_expressions.dart.expect b/pkg/vm/testcases/transformations/type_flow/summary_collector/bool_expressions.dart.expect
index 96eea1d..625d97f 100644
--- a/pkg/vm/testcases/transformations/type_flow/summary_collector/bool_expressions.dart.expect
+++ b/pkg/vm/testcases/transformations/type_flow/summary_collector/bool_expressions.dart.expect
@@ -14,7 +14,7 @@
t6* = _Call direct [#lib::bar] ()
t7* = _Call direct [#lib::foo] ()
t8 = _Join [dynamic] (_T (dart.core::bool, true), t7)
-t9 = _TypeCheck (t8 against dart.core::bool*) (for (x{dart.core::bool*} ?{dynamic} true : #lib::foo()) as dart.core::bool*)
+t9 = _TypeCheck (t8 against dart.core::bool*) (for (x ?{dynamic} true : #lib::foo()) as dart.core::bool*)
t10* = _Call direct [#lib::bar] ()
t11* = _Call direct [#lib::bar] ()
t12* = _Call direct [#lib::foo] ()
diff --git a/runtime/vm/compiler/backend/linearscan.cc b/runtime/vm/compiler/backend/linearscan.cc
index f87c06e..a7fe16d 100644
--- a/runtime/vm/compiler/backend/linearscan.cc
+++ b/runtime/vm/compiler/backend/linearscan.cc
@@ -463,11 +463,8 @@
THR_Print(" live range v%" Pd " [%" Pd ", %" Pd ") in ", vreg(), Start(),
End());
assigned_location().Print();
- if (spill_slot_.HasStackIndex()) {
- const intptr_t stack_slot =
- -compiler::target::frame_layout.VariableIndexForFrameSlot(
- spill_slot_.stack_index());
- THR_Print(" allocated spill slot: %" Pd "", stack_slot);
+ if (!spill_slot_.IsInvalid() && !spill_slot_.IsConstant()) {
+ THR_Print(" assigned spill slot: %s", spill_slot_.ToCString());
}
THR_Print("\n");
diff --git a/runtime/vm/compiler/frontend/kernel_fingerprints.cc b/runtime/vm/compiler/frontend/kernel_fingerprints.cc
index aff6de7..5d5890f 100644
--- a/runtime/vm/compiler/frontend/kernel_fingerprints.cc
+++ b/runtime/vm/compiler/frontend/kernel_fingerprints.cc
@@ -169,10 +169,8 @@
helper.ReadUntilExcluding(TypeParameterHelper::kBound);
// The helper isn't needed after this point.
- CalculateDartTypeFingerprint();
- if (ReadTag() == kSomething) {
- CalculateDartTypeFingerprint();
- }
+ CalculateDartTypeFingerprint(); // read bound
+ CalculateDartTypeFingerprint(); // read default type
BuildHash(helper.flags_);
}
diff --git a/runtime/vm/compiler/frontend/kernel_translation_helper.cc b/runtime/vm/compiler/frontend/kernel_translation_helper.cc
index 4ede221..5808db3 100644
--- a/runtime/vm/compiler/frontend/kernel_translation_helper.cc
+++ b/runtime/vm/compiler/frontend/kernel_translation_helper.cc
@@ -927,9 +927,7 @@
helper_->SkipDartType();
break;
case kDefaultType:
- if (helper_->ReadTag() == kSomething) {
- helper_->SkipDartType();
- }
+ helper_->SkipDartType();
break;
case kEnd:
return;
@@ -3393,11 +3391,8 @@
AbstractType& bound = BuildTypeWithoutFinalization(); // read ith bound.
parameter.set_bound(bound);
helper.ReadUntilExcludingAndSetJustRead(TypeParameterHelper::kDefaultType);
- const AbstractType* default_arg = &Object::dynamic_type();
- if (helper_->ReadTag() == kSomething) {
- default_arg = &BuildTypeWithoutFinalization();
- }
- parameter.set_default_argument(*default_arg);
+ AbstractType& default_arg = BuildTypeWithoutFinalization();
+ parameter.set_default_argument(default_arg);
helper.Finish();
}
diff --git a/runtime/vm/compiler/frontend/scope_builder.cc b/runtime/vm/compiler/frontend/scope_builder.cc
index e2be4a9..81730a0 100644
--- a/runtime/vm/compiler/frontend/scope_builder.cc
+++ b/runtime/vm/compiler/frontend/scope_builder.cc
@@ -538,9 +538,7 @@
helper.ReadUntilExcludingAndSetJustRead(TypeParameterHelper::kBound);
VisitDartType(); // read ith bound.
helper.ReadUntilExcludingAndSetJustRead(TypeParameterHelper::kDefaultType);
- if (helper_.ReadTag() == kSomething) {
- VisitDartType(); // read ith default type.
- }
+ VisitDartType(); // read ith default type.
helper.Finish();
}
function_node_helper.SetJustRead(FunctionNodeHelper::kTypeParameters);
@@ -1357,9 +1355,7 @@
VisitDartType(); // read bound.
helper.ReadUntilExcludingAndSetJustRead(
TypeParameterHelper::kDefaultType);
- if (helper_.ReadTag() == kSomething) {
- VisitDartType(); // read default type.
- }
+ VisitDartType(); // read default type.
helper.Finish();
}
helper_.ReadUInt(); // read required parameter count.
diff --git a/runtime/vm/kernel_binary.h b/runtime/vm/kernel_binary.h
index 6259fe8..38ca8fa 100644
--- a/runtime/vm/kernel_binary.h
+++ b/runtime/vm/kernel_binary.h
@@ -20,8 +20,8 @@
static const uint32_t kMagicProgramFile = 0x90ABCDEFu;
// Both version numbers are inclusive.
-static const uint32_t kMinSupportedKernelFormatVersion = 62;
-static const uint32_t kMaxSupportedKernelFormatVersion = 62;
+static const uint32_t kMinSupportedKernelFormatVersion = 63;
+static const uint32_t kMaxSupportedKernelFormatVersion = 63;
// Keep in sync with package:kernel/lib/binary/tag.dart
#define KERNEL_TAG_LIST(V) \
diff --git a/runtime/vm/v8_snapshot_writer.cc b/runtime/vm/v8_snapshot_writer.cc
index 351c831..6fb5898 100644
--- a/runtime/vm/v8_snapshot_writer.cc
+++ b/runtime/vm/v8_snapshot_writer.cc
@@ -29,6 +29,8 @@
idx = edge_types_.Add("internal");
ASSERT_EQUAL(idx, static_cast<intptr_t>(Edge::Type::kInternal));
+ unknown_type_string_index_ = node_types_.Add("Unknown");
+
SetObjectTypeAndName(kArtificialRootId, "ArtificialRoot",
"<artificial root>");
}
@@ -111,10 +113,14 @@
void V8SnapshotProfileWriter::NodeInfo::Write(JSONWriter* writer) const {
ASSERT(id.space() != IdSpace::kInvalid);
+ ASSERT(type != kInvalidString);
if (type == kInvalidString) {
- FATAL("No type given for node %s", id.ToCString(profile_writer_->zone_));
+ // Fall back on this string in non-DEBUG modes. See
+ // https://github.com/dart-lang/sdk/issues/45787 for context.
+ writer->PrintValue(profile_writer_->unknown_type_string_index_);
+ } else {
+ writer->PrintValue(type);
}
- writer->PrintValue(type);
if (name != kInvalidString) {
writer->PrintValue(name);
} else {
diff --git a/runtime/vm/v8_snapshot_writer.h b/runtime/vm/v8_snapshot_writer.h
index ea844ce..9aededc 100644
--- a/runtime/vm/v8_snapshot_writer.h
+++ b/runtime/vm/v8_snapshot_writer.h
@@ -325,12 +325,13 @@
}
};
- Zone* zone_;
+ Zone* const zone_;
DirectChainedHashMap<ObjectIdToNodeInfoTraits> nodes_;
StringsTable node_types_;
StringsTable edge_types_;
StringsTable strings_;
DirectChainedHashMap<ObjectIdSetKeyValueTrait> roots_;
+ intptr_t unknown_type_string_index_;
#endif
};
diff --git a/tests/language/why_not_promoted/argument_type_not_assignable_nullability_error_test.dart b/tests/language/why_not_promoted/argument_type_not_assignable_nullability_error_test.dart
index 9ff7eb0..1ee9ec6 100644
--- a/tests/language/why_not_promoted/argument_type_not_assignable_nullability_error_test.dart
+++ b/tests/language/why_not_promoted/argument_type_not_assignable_nullability_error_test.dart
@@ -9,8 +9,8 @@
class C1 {
int? bad;
// ^^^
- // [context 22] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 48] 'bad' refers to a property so it couldn't be promoted.
+ // [context 21] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 50] 'bad' refers to a property so it couldn't be promoted.
f(int i) {}
}
@@ -18,16 +18,16 @@
if (c.bad == null) return;
c.f(c.bad);
// ^^^^^
- // [analyzer 22] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
+ // [analyzer 21] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 48] The argument type 'int?' can't be assigned to the parameter type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 50] The argument type 'int?' can't be assigned to the parameter type 'int' because 'int?' is nullable and 'int' isn't.
}
class C2 {
int? bad;
// ^^^
- // [context 39] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 49] 'bad' refers to a property so it couldn't be promoted.
+ // [context 43] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 51] 'bad' refers to a property so it couldn't be promoted.
f([int i = 0]) {}
}
@@ -35,16 +35,16 @@
if (c.bad == null) return;
c.f(c.bad);
// ^^^^^
- // [analyzer 39] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
+ // [analyzer 43] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 49] The argument type 'int?' can't be assigned to the parameter type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 51] The argument type 'int?' can't be assigned to the parameter type 'int' because 'int?' is nullable and 'int' isn't.
}
class C3 {
int? bad;
// ^^^
- // [context 6] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 50] 'bad' refers to a property so it couldn't be promoted.
+ // [context 9] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 52] 'bad' refers to a property so it couldn't be promoted.
f({required int i}) {}
}
@@ -52,16 +52,16 @@
if (c.bad == null) return;
c.f(i: c.bad);
// ^^^^^
- // [analyzer 6] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
+ // [analyzer 9] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 50] The argument type 'int?' can't be assigned to the parameter type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 52] The argument type 'int?' can't be assigned to the parameter type 'int' because 'int?' is nullable and 'int' isn't.
}
class C4 {
int? bad;
// ^^^
- // [context 15] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 51] 'bad' refers to a property so it couldn't be promoted.
+ // [context 17] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 53] 'bad' refers to a property so it couldn't be promoted.
f({int i = 0}) {}
}
@@ -69,16 +69,16 @@
if (c.bad == null) return;
c.f(i: c.bad);
// ^^^^^
- // [analyzer 15] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
+ // [analyzer 17] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 51] The argument type 'int?' can't be assigned to the parameter type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 53] The argument type 'int?' can't be assigned to the parameter type 'int' because 'int?' is nullable and 'int' isn't.
}
class C5 {
List<int>? bad;
// ^^^
- // [context 37] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 52] 'bad' refers to a property so it couldn't be promoted.
+ // [context 39] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 54] 'bad' refers to a property so it couldn't be promoted.
f<T>(List<T> x) {}
}
@@ -86,16 +86,16 @@
if (c.bad == null) return;
c.f(c.bad);
// ^^^^^
- // [analyzer 37] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
+ // [analyzer 39] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 52] The argument type 'List<int>?' can't be assigned to the parameter type 'List<int>' because 'List<int>?' is nullable and 'List<int>' isn't.
+ // [cfe 54] The argument type 'List<int>?' can't be assigned to the parameter type 'List<int>' because 'List<int>?' is nullable and 'List<int>' isn't.
}
class C6 {
int? bad;
// ^^^
- // [context 4] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 53] 'bad' refers to a property so it couldn't be promoted.
+ // [context 5] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 55] 'bad' refers to a property so it couldn't be promoted.
C6(int i);
}
@@ -103,16 +103,16 @@
if (c.bad == null) return null;
return C6(c.bad);
// ^^^^^
- // [analyzer 4] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
+ // [analyzer 5] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 53] The argument type 'int?' can't be assigned to the parameter type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 55] The argument type 'int?' can't be assigned to the parameter type 'int' because 'int?' is nullable and 'int' isn't.
}
class C7 {
int? bad;
// ^^^
// [context 25] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 54] 'bad' refers to a property so it couldn't be promoted.
+ // [context 56] 'bad' refers to a property so it couldn't be promoted.
C7(int i);
}
@@ -122,23 +122,23 @@
// ^^^^^
// [analyzer 25] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 54] The argument type 'int?' can't be assigned to the parameter type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 56] The argument type 'int?' can't be assigned to the parameter type 'int' because 'int?' is nullable and 'int' isn't.
}
class C8 {
int? bad;
// ^^^
- // [context 32] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 55] 'bad' refers to a property so it couldn't be promoted.
+ // [context 35] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 57] 'bad' refers to a property so it couldn't be promoted.
}
userDefinableBinaryOpRhs(C8 c) {
if (c.bad == null) return;
1 + c.bad;
// ^^^^^
- // [analyzer 32] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
+ // [analyzer 35] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 55] A value of type 'int?' can't be assigned to a variable of type 'num' because 'int?' is nullable and 'num' isn't.
+ // [cfe 57] A value of type 'int?' can't be assigned to a variable of type 'num' because 'int?' is nullable and 'num' isn't.
}
class C9 {
@@ -180,10 +180,10 @@
class C11 {
bool? bad;
// ^^^
- // [context 13] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 18] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 56] 'bad' refers to a property so it couldn't be promoted.
- // [context 57] 'bad' refers to a property so it couldn't be promoted.
+ // [context 15] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 19] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 58] 'bad' refers to a property so it couldn't be promoted.
+ // [context 59] 'bad' refers to a property so it couldn't be promoted.
f(bool b) {}
}
@@ -191,23 +191,23 @@
if (c.bad == null) return;
c.f(c.bad && b);
// ^^^^^
- // [analyzer 18] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
+ // [analyzer 19] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 56] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 58] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
c.f(b && c.bad);
// ^^^^^
- // [analyzer 13] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
+ // [analyzer 15] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 57] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 59] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
}
class C12 {
bool? bad;
// ^^^
- // [context 5] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 36] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 58] 'bad' refers to a property so it couldn't be promoted.
- // [context 59] 'bad' refers to a property so it couldn't be promoted.
+ // [context 6] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 37] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 60] 'bad' refers to a property so it couldn't be promoted.
+ // [context 61] 'bad' refers to a property so it couldn't be promoted.
f(bool b) {}
}
@@ -215,51 +215,51 @@
if (c.bad == null) return;
c.f(c.bad || b);
// ^^^^^
- // [analyzer 5] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
+ // [analyzer 6] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 58] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 60] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
c.f(b || c.bad);
// ^^^^^
- // [analyzer 36] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
+ // [analyzer 37] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 59] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 61] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
}
class C13 {
bool? bad;
// ^^^
- // [context 2] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 60] 'bad' refers to a property so it couldn't be promoted.
+ // [context 3] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 62] 'bad' refers to a property so it couldn't be promoted.
}
assertStatementCondition(C13 c) {
if (c.bad == null) return;
assert(c.bad);
// ^^^^^
- // [analyzer 2] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
+ // [analyzer 3] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 60] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 62] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
}
class C14 {
bool? bad;
// ^^^
- // [context 8] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 61] 'bad' refers to a property so it couldn't be promoted.
+ // [context 10] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 63] 'bad' refers to a property so it couldn't be promoted.
C14.assertInitializerCondition(C14 c)
: bad = c.bad!,
assert(c.bad);
// ^^^^^
- // [analyzer 8] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
+ // [analyzer 10] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 61] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 63] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
}
class C15 {
bool? bad;
// ^^^
- // [context 47] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 62] 'bad' refers to a property so it couldn't be promoted.
+ // [context 49] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 64] 'bad' refers to a property so it couldn't be promoted.
f(bool b) {}
}
@@ -267,53 +267,53 @@
if (c.bad == null) return;
c.f(!c.bad);
// ^^^^^
- // [analyzer 47] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
+ // [analyzer 49] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 62] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 64] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
}
class C16 {
bool? bad;
// ^^^
- // [context 9] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 11] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 12] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
// [context 16] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 17] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 19] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 63] 'bad' refers to a property so it couldn't be promoted.
- // [context 64] 'bad' refers to a property so it couldn't be promoted.
+ // [context 20] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
// [context 65] 'bad' refers to a property so it couldn't be promoted.
// [context 66] 'bad' refers to a property so it couldn't be promoted.
+ // [context 67] 'bad' refers to a property so it couldn't be promoted.
+ // [context 68] 'bad' refers to a property so it couldn't be promoted.
}
forLoopCondition(C16 c) {
if (c.bad == null) return;
for (; c.bad;) {}
// ^^^^^
- // [analyzer 9] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
+ // [analyzer 12] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 63] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 65] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
[for (; c.bad;) null];
// ^^^^^
- // [analyzer 17] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
+ // [analyzer 20] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 64] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 66] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
({for (; c.bad;) null});
// ^^^^^
- // [analyzer 19] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
- // ^
- // [cfe 65] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
- ({for (; c.bad;) null: null});
- // ^^^^^
// [analyzer 16] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 66] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 67] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ ({for (; c.bad;) null: null});
+ // ^^^^^
+ // [analyzer 11] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
+ // ^
+ // [cfe 68] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
}
class C17 {
bool? bad;
// ^^^
- // [context 46] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 67] 'bad' refers to a property so it couldn't be promoted.
+ // [context 33] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 69] 'bad' refers to a property so it couldn't be promoted.
f(int i) {}
}
@@ -321,38 +321,38 @@
if (c.bad == null) return;
c.f(c.bad ? 1 : 2);
// ^^^^^
- // [analyzer 46] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
+ // [analyzer 33] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 67] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 69] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
}
class C18 {
bool? bad;
// ^^^
- // [context 7] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 68] 'bad' refers to a property so it couldn't be promoted.
+ // [context 8] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 70] 'bad' refers to a property so it couldn't be promoted.
}
doLoopCondition(C18 c) {
if (c.bad == null) return;
do {} while (c.bad);
// ^^^^^
- // [analyzer 7] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
+ // [analyzer 8] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 68] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 70] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
}
class C19 {
bool? bad;
// ^^^
- // [context 11] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 12] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 13] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
// [context 23] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
// [context 28] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 69] 'bad' refers to a property so it couldn't be promoted.
- // [context 70] 'bad' refers to a property so it couldn't be promoted.
+ // [context 30] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
// [context 71] 'bad' refers to a property so it couldn't be promoted.
// [context 72] 'bad' refers to a property so it couldn't be promoted.
+ // [context 73] 'bad' refers to a property so it couldn't be promoted.
+ // [context 74] 'bad' refers to a property so it couldn't be promoted.
}
ifCondition(C19 c) {
@@ -361,167 +361,167 @@
// ^^^^^
// [analyzer 23] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 69] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 71] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
[if (c.bad) null];
// ^^^^^
- // [analyzer 28] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
+ // [analyzer 30] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 70] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 72] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
({if (c.bad) null});
// ^^^^^
- // [analyzer 11] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
+ // [analyzer 28] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 71] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 73] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
({if (c.bad) null: null});
// ^^^^^
- // [analyzer 12] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
+ // [analyzer 13] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 72] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 74] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
}
class C20 {
bool? bad;
// ^^^
- // [context 21] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 73] 'bad' refers to a property so it couldn't be promoted.
+ // [context 22] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 75] 'bad' refers to a property so it couldn't be promoted.
}
whileCondition(C20 c) {
if (c.bad == null) return;
while (c.bad) {}
// ^^^^^
- // [analyzer 21] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
+ // [analyzer 22] COMPILE_TIME_ERROR.UNCHECKED_USE_OF_NULLABLE_VALUE
// ^
- // [cfe 73] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
+ // [cfe 75] A value of type 'bool?' can't be assigned to a variable of type 'bool' because 'bool?' is nullable and 'bool' isn't.
}
class C21 {
int? bad;
// ^^^
- // [context 45] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 74] 'bad' refers to a property so it couldn't be promoted.
+ // [context 46] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 76] 'bad' refers to a property so it couldn't be promoted.
}
assignmentRhs(C21 c, int i) {
if (c.bad == null) return;
i = c.bad;
// ^^^^^
- // [analyzer 45] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
+ // [analyzer 46] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
// ^
- // [cfe 74] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 76] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
}
class C22 {
int? bad;
// ^^^
- // [context 43] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 75] 'bad' refers to a property so it couldn't be promoted.
+ // [context 44] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 77] 'bad' refers to a property so it couldn't be promoted.
}
variableInitializer(C22 c) {
if (c.bad == null) return;
int i = c.bad;
// ^^^^^
- // [analyzer 43] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
+ // [analyzer 44] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
// ^
- // [cfe 75] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 77] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
}
class C23 {
int? bad;
// ^^^
- // [context 24] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 76] 'bad' refers to a property so it couldn't be promoted.
+ // [context 26] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 78] 'bad' refers to a property so it couldn't be promoted.
final int x;
final int y;
C23.constructorInitializer(C23 c)
: x = c.bad!,
y = c.bad;
// ^^^^^
- // [analyzer 24] COMPILE_TIME_ERROR.FIELD_INITIALIZER_NOT_ASSIGNABLE
+ // [analyzer 26] COMPILE_TIME_ERROR.FIELD_INITIALIZER_NOT_ASSIGNABLE
// ^
- // [cfe 76] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 78] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
}
class C24 {
int? bad;
// ^^^
- // [context 3] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 30] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 33] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 4] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
// [context 34] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 77] 'bad' refers to a property so it couldn't be promoted.
- // [context 78] 'bad' refers to a property so it couldn't be promoted.
+ // [context 36] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 38] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
// [context 79] 'bad' refers to a property so it couldn't be promoted.
// [context 80] 'bad' refers to a property so it couldn't be promoted.
+ // [context 81] 'bad' refers to a property so it couldn't be promoted.
+ // [context 82] 'bad' refers to a property so it couldn't be promoted.
}
forVariableInitializer(C24 c) {
if (c.bad == null) return;
for (int i = c.bad; false;) {}
// ^^^^^
- // [analyzer 34] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
+ // [analyzer 36] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
// ^
- // [cfe 77] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 79] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
[for (int i = c.bad; false;) null];
// ^^^^^
- // [analyzer 33] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
+ // [analyzer 38] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
// ^
- // [cfe 78] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 80] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
({for (int i = c.bad; false;) null});
// ^^^^^
- // [analyzer 30] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
+ // [analyzer 34] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
// ^
- // [cfe 79] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 81] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
({for (int i = c.bad; false;) null: null});
// ^^^^^
- // [analyzer 3] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
+ // [analyzer 4] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
// ^
- // [cfe 80] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 82] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
}
class C25 {
int? bad;
// ^^^
- // [context 35] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 31] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
// [context 40] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
// [context 41] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 44] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 81] 'bad' refers to a property so it couldn't be promoted.
- // [context 82] 'bad' refers to a property so it couldn't be promoted.
+ // [context 45] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
// [context 83] 'bad' refers to a property so it couldn't be promoted.
// [context 84] 'bad' refers to a property so it couldn't be promoted.
+ // [context 85] 'bad' refers to a property so it couldn't be promoted.
+ // [context 86] 'bad' refers to a property so it couldn't be promoted.
}
forAssignmentInitializer(C25 c, int i) {
if (c.bad == null) return;
for (i = c.bad; false;) {}
// ^^^^^
- // [analyzer 35] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
+ // [analyzer 31] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
// ^
- // [cfe 81] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 83] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
[for (i = c.bad; false;) null];
// ^^^^^
- // [analyzer 44] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
+ // [analyzer 45] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
// ^
- // [cfe 82] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 84] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
({for (i = c.bad; false;) null});
// ^^^^^
// [analyzer 40] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
// ^
- // [cfe 83] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 85] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
({for (i = c.bad; false;) null: null});
// ^^^^^
// [analyzer 41] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
// ^
- // [cfe 84] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 86] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
}
class C26 {
int? bad;
// ^^^
- // [context 26] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 85] 'bad' refers to a property so it couldn't be promoted.
+ // [context 27] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 87] 'bad' refers to a property so it couldn't be promoted.
}
compoundAssignmentRhs(C26 c) {
@@ -529,119 +529,119 @@
if (c.bad == null) return;
n += c.bad;
// ^^^^^
- // [analyzer 26] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
+ // [analyzer 27] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 85] A value of type 'int?' can't be assigned to a variable of type 'num' because 'int?' is nullable and 'num' isn't.
+ // [cfe 87] A value of type 'int?' can't be assigned to a variable of type 'num' because 'int?' is nullable and 'num' isn't.
}
class C27 {
int? bad;
// ^^^
- // [context 38] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 86] 'bad' refers to a property so it couldn't be promoted.
+ // [context 42] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 88] 'bad' refers to a property so it couldn't be promoted.
}
indexGet(C27 c, List<int> values) {
if (c.bad == null) return;
values[c.bad];
// ^^^^^
- // [analyzer 38] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
+ // [analyzer 42] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 86] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 88] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
}
class C28 {
int? bad;
// ^^^
- // [context 31] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 87] 'bad' refers to a property so it couldn't be promoted.
+ // [context 7] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 89] 'bad' refers to a property so it couldn't be promoted.
}
indexSet(C28 c, List<int> values) {
if (c.bad == null) return;
values[c.bad] = 0;
// ^^^^^
- // [analyzer 31] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
+ // [analyzer 7] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 87] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 89] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
}
class C29 {
int? bad;
// ^^^
- // [context 14] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 88] 'bad' refers to a property so it couldn't be promoted.
+ // [context 18] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 90] 'bad' refers to a property so it couldn't be promoted.
}
indexSetCompound(C29 c, List<int> values) {
if (c.bad == null) return;
values[c.bad] += 1;
// ^^^^^
- // [analyzer 14] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
+ // [analyzer 18] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 88] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 90] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
}
class C30 {
int? bad;
// ^^^
- // [context 27] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 89] 'bad' refers to a property so it couldn't be promoted.
+ // [context 29] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 91] 'bad' refers to a property so it couldn't be promoted.
}
indexSetIfNull(C30 c, List<int?> values) {
if (c.bad == null) return;
values[c.bad] ??= 1;
// ^^^^^
- // [analyzer 27] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
+ // [analyzer 29] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 89] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 91] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
}
class C31 {
int? bad;
// ^^^
// [context 1] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 20] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 90] 'bad' refers to a property so it couldn't be promoted.
- // [context 91] 'bad' refers to a property so it couldn't be promoted.
+ // [context 14] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 92] 'bad' refers to a property so it couldn't be promoted.
+ // [context 93] 'bad' refers to a property so it couldn't be promoted.
}
indexSetPreIncDec(C31 c, List<int> values) {
if (c.bad == null) return;
++values[c.bad];
// ^^^^^
- // [analyzer 20] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
+ // [analyzer 14] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 90] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 92] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
--values[c.bad];
// ^^^^^
// [analyzer 1] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 91] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 93] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
}
class C32 {
int? bad;
// ^^^
- // [context 29] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 42] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 92] 'bad' refers to a property so it couldn't be promoted.
- // [context 93] 'bad' refers to a property so it couldn't be promoted.
+ // [context 32] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 48] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 94] 'bad' refers to a property so it couldn't be promoted.
+ // [context 95] 'bad' refers to a property so it couldn't be promoted.
}
indexSetPostIncDec(C32 c, List<int> values) {
if (c.bad == null) return;
values[c.bad]++;
// ^^^^^
- // [analyzer 29] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
+ // [analyzer 32] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 92] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 94] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
values[c.bad]--;
// ^^^^^
- // [analyzer 42] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
+ // [analyzer 48] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
// ^
- // [cfe 93] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 95] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
}
extension E33 on int {
@@ -651,15 +651,50 @@
class C33 {
int? bad;
// ^^^
- // [context 10] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
- // [context 94] 'bad' refers to a property so it couldn't be promoted.
+ // [context 24] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 96] 'bad' refers to a property so it couldn't be promoted.
}
explicitExtensionInvocation(C33 c) {
if (c.bad == null) return;
E33(c.bad).f();
// ^^^^^
- // [analyzer 10] COMPILE_TIME_ERROR.EXTENSION_OVERRIDE_ARGUMENT_NOT_ASSIGNABLE
+ // [analyzer 24] COMPILE_TIME_ERROR.EXTENSION_OVERRIDE_ARGUMENT_NOT_ASSIGNABLE
// ^
- // [cfe 94] The argument type 'int?' can't be assigned to the parameter type 'int' because 'int?' is nullable and 'int' isn't.
+ // [cfe 96] The argument type 'int?' can't be assigned to the parameter type 'int' because 'int?' is nullable and 'int' isn't.
+}
+
+class C34 {
+ int? bad;
+ // ^^^
+ // [context 47] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 97] 'bad' refers to a property so it couldn't be promoted.
+ C34(int value);
+}
+
+class D34 extends C34 {
+ int other;
+ D34(C34 c)
+ : other = c.bad!,
+ super(c.bad);
+ // ^^^^^
+ // [analyzer 47] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
+ // ^
+ // [cfe 97] The argument type 'int?' can't be assigned to the parameter type 'int' because 'int?' is nullable and 'int' isn't.
+}
+
+class C35 {
+ int? bad;
+ // ^^^
+ // [context 2] 'bad' refers to a property so it couldn't be promoted. See http://dart.dev/go/non-promo-property
+ // [context 98] 'bad' refers to a property so it couldn't be promoted.
+}
+
+indexSetRhs(C35 c, List<int> x) {
+ if (c.bad == null) return;
+ x[0] = c.bad;
+ // ^^^^^
+ // [analyzer 2] COMPILE_TIME_ERROR.INVALID_ASSIGNMENT
+ // ^
+ // [cfe 98] A value of type 'int?' can't be assigned to a variable of type 'int' because 'int?' is nullable and 'int' isn't.
}
diff --git a/tools/VERSION b/tools/VERSION
index 67a7f7b..e394531 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 14
PATCH 0
-PRERELEASE 24
+PRERELEASE 25
PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/linux_dist_support/create_tarball.py b/tools/linux_dist_support/create_tarball.py
index 10eb73c..f5fc1bc 100755
--- a/tools/linux_dist_support/create_tarball.py
+++ b/tools/linux_dist_support/create_tarball.py
@@ -60,7 +60,6 @@
'docs',
'fuchsia',
'parser_testcases',
- 'test',
'testcases',
'tests',
]