Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Unified Diff: pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart

Issue 2928613003: Fix corner cases of type inference with implicit references to `.call`. (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart
diff --git a/pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart b/pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart
index ea3220b0a5d22958415784b5559ec5c325fced96..a716c46345d8068c1b93e838d1c59a852a1b474d 100644
--- a/pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart
@@ -105,7 +105,7 @@ abstract class BuilderHelper {
Expression buildMethodInvocation(
Expression receiver, Name name, Arguments arguments, int offset,
- {bool isConstantExpression, bool isNullAware});
+ {bool isConstantExpression, bool isNullAware, bool isImplicitCall});
DartType validatedTypeVariableUse(
TypeParameterType type, int offset, bool nonInstanceAccessIsError);
@@ -337,7 +337,8 @@ class ThisAccessor extends FastaAccessor {
return buildConstructorInitializer(offset, new Name(""), arguments);
} else {
return helper.buildMethodInvocation(
- new KernelThisExpression(), callName, arguments, offset);
+ new KernelThisExpression(), callName, arguments, offset,
+ isImplicitCall: true);
}
}
@@ -565,11 +566,8 @@ class IndexAccessor extends kernel.IndexAccessor with FastaAccessor {
Expression doInvocation(int offset, Arguments arguments) {
return helper.buildMethodInvocation(
- buildSimpleRead(),
- callName,
- arguments,
- offset,
- );
+ buildSimpleRead(), callName, arguments, offset,
+ isImplicitCall: true);
}
toString() => "IndexAccessor()";
@@ -666,7 +664,8 @@ class StaticAccessor extends kernel.StaticAccessor with FastaAccessor {
arguments, offset + (readTarget?.name?.name?.length ?? 0),
// This isn't a constant expression, but we have checked if a
// constant expression error should be emitted already.
- isConstantExpression: true);
+ isConstantExpression: true,
+ isImplicitCall: true);
} else {
return helper.buildStaticInvocation(readTarget, arguments)
..fileOffset = offset;
@@ -693,7 +692,8 @@ class SuperPropertyAccessor extends kernel.SuperPropertyAccessor
buildSimpleRead(), callName, arguments, offset,
// This isn't a constant expression, but we have checked if a
// constant expression error should be emitted already.
- isConstantExpression: true);
+ isConstantExpression: true,
+ isImplicitCall: true);
} else {
return new DirectMethodInvocation(new ThisExpression(), getter, arguments)
..fileOffset = offset;
@@ -714,7 +714,8 @@ class ThisIndexAccessor extends kernel.ThisIndexAccessor with FastaAccessor {
Expression doInvocation(int offset, Arguments arguments) {
return helper.buildMethodInvocation(
- buildSimpleRead(), callName, arguments, offset);
+ buildSimpleRead(), callName, arguments, offset,
+ isImplicitCall: true);
}
toString() => "ThisIndexAccessor()";
@@ -731,7 +732,8 @@ class SuperIndexAccessor extends kernel.SuperIndexAccessor with FastaAccessor {
Expression doInvocation(int offset, Arguments arguments) {
return helper.buildMethodInvocation(
- buildSimpleRead(), callName, arguments, offset);
+ buildSimpleRead(), callName, arguments, offset,
+ isImplicitCall: true);
}
toString() => "SuperIndexAccessor()";
@@ -796,7 +798,8 @@ class VariableAccessor extends kernel.VariableAccessor with FastaAccessor {
Expression doInvocation(int offset, Arguments arguments) {
return helper.buildMethodInvocation(buildSimpleRead(), callName, arguments,
- adjustForImplicitCall(plainNameForRead, offset));
+ adjustForImplicitCall(plainNameForRead, offset),
+ isImplicitCall: true);
}
toString() => "VariableAccessor()";
@@ -811,7 +814,8 @@ class ReadOnlyAccessor extends kernel.ReadOnlyAccessor with FastaAccessor {
Expression doInvocation(int offset, Arguments arguments) {
return helper.buildMethodInvocation(buildSimpleRead(), callName, arguments,
- adjustForImplicitCall(plainNameForRead, offset));
+ adjustForImplicitCall(plainNameForRead, offset),
+ isImplicitCall: true);
}
}
« no previous file with comments | « pkg/front_end/lib/src/fasta/kernel/body_builder.dart ('k') | pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698