Chromium Code Reviews| 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..2c974c67c09ab8e79949d221da7592fe8f49beca 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); |
|
ahe
2017/03/09 12:19:37
variable.name might be null.
jensj
2017/03/09 12:55:25
Fixed.
|
| } |
| toString() => "VariableAccessor()"; |