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) {