| Index: pkg/front_end/lib/src/fasta/kernel/builder_accessors.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/kernel/builder_accessors.dart b/pkg/front_end/lib/src/fasta/kernel/builder_accessors.dart
|
| index 20c26cf9e9151c473b396b1047c4c007fbf442b1..fbea087c25002575bc7619757682f6d877ce6aa1 100644
|
| --- a/pkg/front_end/lib/src/fasta/kernel/builder_accessors.dart
|
| +++ b/pkg/front_end/lib/src/fasta/kernel/builder_accessors.dart
|
| @@ -142,17 +142,18 @@ abstract class CompileTimeErrorAccessor implements Accessor {
|
| return buildError();
|
| }
|
|
|
| - Expression buildCompoundAssignment(Name binaryOperator, Expression value,
|
| + Expression buildCompoundAssignment(
|
| + Name binaryOperator, Expression value, int charOffset,
|
| {bool voidContext: false, Procedure interfaceTarget}) {
|
| return buildError();
|
| }
|
|
|
| - Expression buildPrefixIncrement(Name binaryOperator,
|
| + Expression buildPrefixIncrement(Name binaryOperator, int charOffset,
|
| {bool voidContext: false, Procedure interfaceTarget}) {
|
| return buildError();
|
| }
|
|
|
| - Expression buildPostfixIncrement(Name binaryOperator,
|
| + Expression buildPostfixIncrement(Name binaryOperator, int charOffset,
|
| {bool voidContext: false, Procedure interfaceTarget}) {
|
| return buildError();
|
| }
|
| @@ -258,17 +259,18 @@ class ThisAccessor extends BuilderAccessor {
|
| return internalError("");
|
| }
|
|
|
| - Expression buildCompoundAssignment(Name binaryOperator, Expression value,
|
| + Expression buildCompoundAssignment(
|
| + Name binaryOperator, Expression value, int charOffset,
|
| {bool voidContext: false, Procedure interfaceTarget}) {
|
| return internalError("");
|
| }
|
|
|
| - Expression buildPrefixIncrement(Name binaryOperator,
|
| + Expression buildPrefixIncrement(Name binaryOperator, int charOffset,
|
| {bool voidContext: false, Procedure interfaceTarget}) {
|
| return internalError("");
|
| }
|
|
|
| - Expression buildPostfixIncrement(Name binaryOperator,
|
| + Expression buildPostfixIncrement(Name binaryOperator, int charOffset,
|
| {bool voidContext: false, Procedure interfaceTarget}) {
|
| return internalError("");
|
| }
|
| @@ -367,17 +369,18 @@ class SendAccessor extends IncompleteSend {
|
| return internalError("");
|
| }
|
|
|
| - Expression buildCompoundAssignment(Name binaryOperator, Expression value,
|
| + Expression buildCompoundAssignment(
|
| + Name binaryOperator, Expression value, int charOffset,
|
| {bool voidContext: false, Procedure interfaceTarget}) {
|
| return internalError("");
|
| }
|
|
|
| - Expression buildPrefixIncrement(Name binaryOperator,
|
| + Expression buildPrefixIncrement(Name binaryOperator, int charOffset,
|
| {bool voidContext: false, Procedure interfaceTarget}) {
|
| return internalError("Unhandled");
|
| }
|
|
|
| - Expression buildPostfixIncrement(Name binaryOperator,
|
| + Expression buildPostfixIncrement(Name binaryOperator, int charOffset,
|
| {bool voidContext: false, Procedure interfaceTarget}) {
|
| return internalError("Unhandled");
|
| }
|
| @@ -458,17 +461,18 @@ class IncompletePropertyAccessor extends IncompleteSend {
|
| return internalError("Unhandled");
|
| }
|
|
|
| - Expression buildCompoundAssignment(Name binaryOperator, Expression value,
|
| + Expression buildCompoundAssignment(
|
| + Name binaryOperator, Expression value, int charOffset,
|
| {bool voidContext: false, Procedure interfaceTarget}) {
|
| return internalError("Unhandled");
|
| }
|
|
|
| - Expression buildPrefixIncrement(Name binaryOperator,
|
| + Expression buildPrefixIncrement(Name binaryOperator, int charOffset,
|
| {bool voidContext: false, Procedure interfaceTarget}) {
|
| return internalError("Unhandled");
|
| }
|
|
|
| - Expression buildPostfixIncrement(Name binaryOperator,
|
| + Expression buildPostfixIncrement(Name binaryOperator, int charOffset,
|
| {bool voidContext: false, Procedure interfaceTarget}) {
|
| return internalError("Unhandled");
|
| }
|
| @@ -483,11 +487,9 @@ class IncompletePropertyAccessor extends IncompleteSend {
|
| class IndexAccessor extends kernel.IndexAccessor with BuilderAccessor {
|
| final BuilderHelper helper;
|
|
|
| - final int charOffset;
|
| -
|
| - IndexAccessor.internal(this.helper, this.charOffset, Expression receiver,
|
| + IndexAccessor.internal(this.helper, int charOffset, Expression receiver,
|
| Expression index, Procedure getter, Procedure setter)
|
| - : super.internal(receiver, index, getter, setter);
|
| + : super.internal(receiver, index, getter, setter, charOffset);
|
|
|
| String get plainNameForRead => "[]";
|
|
|
| @@ -704,8 +706,10 @@ class VariableAccessor extends kernel.VariableAccessor with BuilderAccessor {
|
| String get plainNameForRead => variable.name;
|
|
|
| Expression doInvocation(int charOffset, Arguments arguments) {
|
| - return buildMethodInvocation(
|
| - buildSimpleRead(), new Name("call"), arguments, charOffset);
|
| + // Normally the offset is at the start of the token, but in this case,
|
| + // because we insert a '.call', we want it at the end instead.
|
| + return buildMethodInvocation(buildSimpleRead(), new Name("call"), arguments,
|
| + charOffset + (variable.name?.length ?? 0));
|
| }
|
|
|
| toString() => "VariableAccessor()";
|
|
|