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;