Rename TypeInferrerImpl.strongMode to legacyMode
Change-Id: Ib25ed980d64ddae4cfb2bd0cd121bf1173a8af1b
Reviewed-on: https://dart-review.googlesource.com/c/84403
Auto-Submit: Peter von der Ahé <ahe@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
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 7aaef01..3b44e55 100644
--- a/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/inference_visitor.dart
@@ -91,7 +91,7 @@
void visitCascadeJudgment(CascadeJudgment node, DartType typeContext) {
node.inferredType =
inferrer.inferExpression(node.targetJudgment, typeContext, true);
- if (inferrer.strongMode) {
+ if (!inferrer.legacyMode) {
node.variable.type = getInferredType(node, inferrer);
}
for (var judgment in node.cascadeJudgments) {
@@ -120,7 +120,7 @@
DartType inferredType = inferrer.typeSchemaEnvironment
.getStandardUpperBound(getInferredType(then, inferrer),
getInferredType(otherwise, inferrer));
- if (inferrer.strongMode) {
+ if (!inferrer.legacyMode) {
node.staticType = inferredType;
}
}
@@ -259,7 +259,7 @@
DartType syntheticWriteType;
if (node._declaresVariable) {
variable = node.variableJudgment;
- if (inferrer.strongMode && variable._implicitlyTyped) {
+ if (!inferrer.legacyMode && variable._implicitlyTyped) {
typeNeeded = true;
context = const UnknownType();
} else {
@@ -389,7 +389,7 @@
void visitFunctionDeclarationJudgment(FunctionDeclarationJudgment node) {
inferrer.inferMetadataKeepingHelper(node.variable.annotations);
DartType returnContext = node._hasImplicitReturnType
- ? (inferrer.strongMode ? null : const DynamicType())
+ ? (inferrer.legacyMode ? const DynamicType() : null)
: node.function.returnType;
var inferenceResult = visitFunctionNodeJudgment(
node.functionJudgment, null, returnContext, node.fileOffset);
@@ -425,7 +425,7 @@
// - Infer e0 in context K to get T0
inferrer.inferExpression(leftJudgment, typeContext, true);
var lhsType = getInferredType(leftJudgment, inferrer);
- if (inferrer.strongMode) {
+ if (!inferrer.legacyMode) {
node.variable.type = lhsType;
}
// - Let J = T0 if K is `?` else K.
@@ -443,7 +443,7 @@
// - Then the inferred type is T.
node.inferredType =
inferrer.typeSchemaEnvironment.getStandardUpperBound(lhsType, rhsType);
- if (inferrer.strongMode) {
+ if (!inferrer.legacyMode) {
node.body.staticType = getInferredType(node, inferrer);
}
return null;
@@ -625,7 +625,7 @@
List<DartType> formalTypes;
List<DartType> actualTypes;
bool inferenceNeeded =
- node._declaredTypeArgument == null && inferrer.strongMode;
+ node._declaredTypeArgument == null && !inferrer.legacyMode;
bool typeChecksNeeded = !inferrer.isTopLevel;
if (inferenceNeeded || typeChecksNeeded) {
formalTypes = [];
@@ -725,7 +725,8 @@
List<DartType> actualTypes;
assert(
(node._declaredKeyType == null) == (node._declaredValueType == null));
- bool inferenceNeeded = node._declaredKeyType == null && inferrer.strongMode;
+ bool inferenceNeeded =
+ node._declaredKeyType == null && !inferrer.legacyMode;
bool typeChecksNeeded = !inferrer.isTopLevel;
if (inferenceNeeded || typeChecksNeeded) {
formalTypes = [];
@@ -887,7 +888,7 @@
Expression initializer = node.variableJudgment.initializer;
inferrer.inferExpression(initializer, typeContext, true);
node.inferredType = getInferredType(initializer, inferrer);
- if (inferrer.strongMode) node.variable.type = node.inferredType;
+ if (!inferrer.legacyMode) node.variable.type = node.inferredType;
return null;
}
@@ -907,7 +908,7 @@
receiverVariable: node.variable,
desugaredInvocation: node._desugaredInvocation);
node.inferredType = inferenceResult.type;
- if (inferrer.strongMode) {
+ if (!inferrer.legacyMode) {
node.body.staticType = node.inferredType;
}
return null;
@@ -918,7 +919,7 @@
inferrer.inferPropertyGet(
node, node.receiverJudgment, node.fileOffset, typeContext,
receiverVariable: node.variable, desugaredGet: node._desugaredGet);
- if (inferrer.strongMode) {
+ if (!inferrer.legacyMode) {
node.body.staticType = node.inferredType;
}
return null;
@@ -969,7 +970,7 @@
// doing compound assignment?
var writeContext = inferrer.getSetterType(writeMember, receiverType);
node._inferRhs(inferrer, readType, writeContext);
- if (inferrer.strongMode)
+ if (!inferrer.legacyMode)
node.nullAwareGuard?.staticType = node.inferredType;
node._replaceWithDesugared();
return null;
@@ -1297,7 +1298,7 @@
} else {
inferredType = const DynamicType();
}
- if (inferrer.strongMode && node._implicitlyTyped) {
+ if (!inferrer.legacyMode && node._implicitlyTyped) {
inferrer.instrumentation?.record(inferrer.uri, node.fileOffset, 'type',
new InstrumentationValueForType(inferredType));
node.type = inferredType;
diff --git a/pkg/front_end/lib/src/fasta/kernel/inferred_type_visitor.dart b/pkg/front_end/lib/src/fasta/kernel/inferred_type_visitor.dart
index 2c23370..9a49c47 100644
--- a/pkg/front_end/lib/src/fasta/kernel/inferred_type_visitor.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/inferred_type_visitor.dart
@@ -73,7 +73,7 @@
@override
DartType visitConditionalExpression(
ConditionalExpression node, TypeInferrerImpl inferrer) {
- return inferrer.strongMode ? node.staticType : const DynamicType();
+ return inferrer.legacyMode ? const DynamicType() : node.staticType;
}
@override
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
index 2ebf9d8..a78410a 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
@@ -487,7 +487,7 @@
? rhsType
: inferrer.typeSchemaEnvironment
.getStandardUpperBound(readType, rhsType);
- if (inferrer.strongMode) {
+ if (!inferrer.legacyMode) {
nullAwareCombiner.staticType = combinedType;
}
} else {
@@ -1483,7 +1483,7 @@
/// fact that [expression] has the given [type].
void _storeLetType(
TypeInferrerImpl inferrer, Expression expression, DartType type) {
- if (!inferrer.strongMode) return;
+ if (inferrer.legacyMode) return;
Expression desugared = this.desugared;
while (true) {
if (desugared is Let) {
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 15b9e10..e9afa48 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
@@ -561,7 +561,7 @@
/// should apply.
final bool isTopLevel;
- final bool strongMode;
+ final bool legacyMode;
final ClassHierarchy classHierarchy;
@@ -592,7 +592,7 @@
TypeInferrerImpl.private(
this.engine, this.uri, bool topLevel, this.thisType, this.library)
- : strongMode = !engine.legacyMode,
+ : legacyMode = engine.legacyMode,
classHierarchy = engine.classHierarchy,
instrumentation = topLevel ? null : engine.instrumentation,
typeSchemaEnvironment = engine.typeSchemaEnvironment,
@@ -681,7 +681,7 @@
if (isTopLevel) return null;
// This logic is strong mode only; in legacy mode anything goes.
- if (!strongMode) return null;
+ if (legacyMode) return null;
// If an interface type is being assigned to a function type, see if we
// should tear off `.call`.
@@ -793,7 +793,7 @@
// Our non-strong golden files currently don't include interface
// targets, so we can't store the interface target without causing tests
// to fail. TODO(paulberry): fix this.
- if (!strongMode) return null;
+ if (legacyMode) return null;
receiverType = resolveTypeParameter(receiverType);
@@ -872,7 +872,7 @@
new InstrumentationValueForMember(interfaceMember));
}
methodInvocation.interfaceTarget = interfaceMember;
- } else if (strongMode && interfaceMember is Member) {
+ } else if (!legacyMode && interfaceMember is Member) {
methodInvocation.interfaceTarget = interfaceMember;
}
return interfaceMember;
@@ -881,7 +881,7 @@
var interfaceMember = findInterfaceMember(
receiverType, methodInvocation.name, methodInvocation.fileOffset,
instrumented: instrumented);
- if (strongMode && interfaceMember is Member) {
+ if (!legacyMode && interfaceMember is Member) {
methodInvocation.interfaceTarget = interfaceMember;
}
return interfaceMember;
@@ -904,7 +904,7 @@
expression: propertyGet,
receiver: propertyGet.receiver,
instrumented: instrumented);
- if (strongMode && interfaceMember is Member) {
+ if (!legacyMode && interfaceMember is Member) {
if (instrumented &&
instrumentation != null &&
receiverType == const DynamicType()) {
@@ -919,7 +919,7 @@
var interfaceMember = findInterfaceMember(
receiverType, propertyGet.name, propertyGet.fileOffset,
instrumented: instrumented);
- if (strongMode && interfaceMember is Member) {
+ if (!legacyMode && interfaceMember is Member) {
propertyGet.interfaceTarget = interfaceMember;
}
return interfaceMember;
@@ -941,7 +941,7 @@
receiver: propertySet.receiver,
setter: true,
instrumented: instrumented);
- if (strongMode && interfaceMember is Member) {
+ if (!legacyMode && interfaceMember is Member) {
if (instrumented &&
instrumentation != null &&
receiverType == const DynamicType()) {
@@ -956,7 +956,7 @@
var interfaceMember = findInterfaceMember(
receiverType, propertySet.name, propertySet.fileOffset,
setter: true, instrumented: instrumented);
- if (strongMode && interfaceMember is Member) {
+ if (!legacyMode && interfaceMember is Member) {
propertySet.interfaceTarget = interfaceMember;
}
return interfaceMember;
@@ -1267,7 +1267,7 @@
List<DartType> explicitTypeArguments = getExplicitTypeArguments(arguments);
bool inferenceNeeded = !skipTypeArgumentInference &&
explicitTypeArguments == null &&
- strongMode &&
+ !legacyMode &&
calleeTypeParameters.isNotEmpty;
bool typeChecksNeeded = !isTopLevel;
List<DartType> inferredTypes;
@@ -1466,7 +1466,7 @@
Substitution substitution;
List<DartType> formalTypesFromContext =
new List<DartType>.filled(formals.length, null);
- if (strongMode && typeContext is FunctionType) {
+ if (!legacyMode && typeContext is FunctionType) {
for (int i = 0; i < formals.length; i++) {
if (i < function.positionalParameters.length) {
formalTypesFromContext[i] =
@@ -1526,7 +1526,7 @@
// Apply type inference to `B` in return context `N’`, with any references
// to `xi` in `B` having type `Pi`. This produces `B’`.
- bool needToSetReturnType = hasImplicitReturnType && strongMode;
+ bool needToSetReturnType = hasImplicitReturnType && !legacyMode;
ClosureContext oldClosureContext = this.closureContext;
ClosureContext closureContext = new ClosureContext(
this, function.asyncMarker, returnContext, needToSetReturnType);
@@ -1550,7 +1550,7 @@
instrumentation?.record(uri, fileOffset, 'returnType',
new InstrumentationValueForType(inferredReturnType));
function.returnType = inferredReturnType;
- } else if (!strongMode && hasImplicitReturnType) {
+ } else if (legacyMode && hasImplicitReturnType) {
function.returnType =
closureContext._wrapAsyncOrGenerator(this, const DynamicType());
}
@@ -1602,7 +1602,7 @@
var receiverType = receiver == null
? thisType
: inferExpression(receiver, const UnknownType(), true);
- if (strongMode) {
+ if (!legacyMode) {
receiverVariable?.type = receiverType;
}
if (desugaredInvocation != null) {
@@ -1640,7 +1640,7 @@
handleInvocationContravariance(checkKind, desugaredInvocation, arguments,
expression, inferredType, functionType, fileOffset);
if (!identical(interfaceMember, 'call')) {
- if (strongMode &&
+ if (!legacyMode &&
isImplicitCall &&
interfaceMember != null &&
!(interfaceMember is Procedure &&
@@ -1719,7 +1719,7 @@
inferExpression(receiver, const UnknownType(), true);
receiverType = getInferredType(receiver, this);
}
- if (strongMode) {
+ if (!legacyMode) {
receiverVariable?.type = receiverType;
}
propertyName ??= desugaredGet.name;
@@ -1729,7 +1729,7 @@
errorTemplate: templateUndefinedGetter,
expression: expression,
receiver: receiver);
- if (strongMode && interfaceMember is Member) {
+ if (!legacyMode && interfaceMember is Member) {
if (instrumentation != null && receiverType == const DynamicType()) {
instrumentation.record(uri, desugaredGet.fileOffset, 'target',
new InstrumentationValueForMember(interfaceMember));
@@ -1768,7 +1768,7 @@
/// (if necessary).
DartType instantiateTearOff(
DartType tearoffType, DartType context, Expression expression) {
- if (strongMode &&
+ if (!legacyMode &&
tearoffType is FunctionType &&
context is FunctionType &&
context.typeParameters.isEmpty) {