Skip to content

Commit 8dea395

Browse files
isEligibleForTopLevelInference accounts for type inference disabled
Change-Id: Ibffdf6b25dab39522868f2a927929f86deecb7d6 Reviewed-on: https://dart-review.googlesource.com/c/86343 Reviewed-by: Dmitry Stefantsov <[email protected]>
1 parent 472bf29 commit 8dea395

File tree

2 files changed

+9
-6
lines changed

2 files changed

+9
-6
lines changed

pkg/front_end/lib/src/fasta/kernel/kernel_field_builder.dart

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,11 @@ class KernelFieldBuilder extends FieldBuilder<Expression> {
5555
field.initializer = value..parent = field;
5656
}
5757

58-
bool get isEligibleForInference =>
59-
type == null && (hasInitializer || isInstanceMember);
58+
bool get isEligibleForInference {
59+
return !library.disableTypeInference &&
60+
type == null &&
61+
(hasInitializer || isInstanceMember);
62+
}
6063

6164
Field build(LibraryBuilder library) {
6265
field.name ??= new Name(name, library.target);
@@ -71,9 +74,7 @@ class KernelFieldBuilder extends FieldBuilder<Expression> {
7174
..hasImplicitGetter = isInstanceMember
7275
..hasImplicitSetter = isInstanceMember && !isConst && !isFinal
7376
..isStatic = !isInstanceMember;
74-
if (!library.disableTypeInference &&
75-
isEligibleForInference &&
76-
!isInstanceMember) {
77+
if (isEligibleForInference && !isInstanceMember) {
7778
library.loader.typeInferenceEngine
7879
.recordStaticFieldInferenceCandidate(field, library);
7980
}

pkg/front_end/lib/src/fasta/kernel/kernel_procedure_builder.dart

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,6 +308,7 @@ class KernelProcedureBuilder extends KernelFunctionBuilder {
308308
}
309309

310310
bool get isEligibleForTopLevelInference {
311+
if (library.disableTypeInference) return false;
311312
if (isInstanceMember) {
312313
if (returnType == null) return true;
313314
if (formals != null) {
@@ -451,6 +452,7 @@ class KernelConstructorBuilder extends KernelFunctionBuilder {
451452
}
452453

453454
bool get isEligibleForTopLevelInference {
455+
if (library.disableTypeInference) return false;
454456
if (formals != null) {
455457
for (var formal in formals) {
456458
if (formal.type == null && formal.isInitializingFormal) return true;
@@ -470,7 +472,7 @@ class KernelConstructorBuilder extends KernelFunctionBuilder {
470472
constructor.isExternal = isExternal;
471473
constructor.name = new Name(name, library.target);
472474
}
473-
if (!library.disableTypeInference && isEligibleForTopLevelInference) {
475+
if (isEligibleForTopLevelInference) {
474476
for (KernelFormalParameterBuilder formal in formals) {
475477
if (formal.type == null && formal.isInitializingFormal) {
476478
formal.declaration.type = null;

0 commit comments

Comments
 (0)