isEligibleForTopLevelInference accounts for type inference disabled

Change-Id: Ibffdf6b25dab39522868f2a927929f86deecb7d6
Reviewed-on: https://dart-review.googlesource.com/c/86343
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_field_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_field_builder.dart
index 02010bd..4d1aa3b 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_field_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_field_builder.dart
@@ -55,8 +55,11 @@
     field.initializer = value..parent = field;
   }
 
-  bool get isEligibleForInference =>
-      type == null && (hasInitializer || isInstanceMember);
+  bool get isEligibleForInference {
+    return !library.disableTypeInference &&
+        type == null &&
+        (hasInitializer || isInstanceMember);
+  }
 
   Field build(LibraryBuilder library) {
     field.name ??= new Name(name, library.target);
@@ -71,9 +74,7 @@
       ..hasImplicitGetter = isInstanceMember
       ..hasImplicitSetter = isInstanceMember && !isConst && !isFinal
       ..isStatic = !isInstanceMember;
-    if (!library.disableTypeInference &&
-        isEligibleForInference &&
-        !isInstanceMember) {
+    if (isEligibleForInference && !isInstanceMember) {
       library.loader.typeInferenceEngine
           .recordStaticFieldInferenceCandidate(field, library);
     }
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart
index 03accd9..d3fa5bb 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart
@@ -308,6 +308,7 @@
   }
 
   bool get isEligibleForTopLevelInference {
+    if (library.disableTypeInference) return false;
     if (isInstanceMember) {
       if (returnType == null) return true;
       if (formals != null) {
@@ -451,6 +452,7 @@
   }
 
   bool get isEligibleForTopLevelInference {
+    if (library.disableTypeInference) return false;
     if (formals != null) {
       for (var formal in formals) {
         if (formal.type == null && formal.isInitializingFormal) return true;
@@ -470,7 +472,7 @@
       constructor.isExternal = isExternal;
       constructor.name = new Name(name, library.target);
     }
-    if (!library.disableTypeInference && isEligibleForTopLevelInference) {
+    if (isEligibleForTopLevelInference) {
       for (KernelFormalParameterBuilder formal in formals) {
         if (formal.type == null && formal.isInitializingFormal) {
           formal.declaration.type = null;