| Index: pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart b/pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart
|
| index f91cbbd87c89d456483e43729896df7189be2ff4..aae1d08b74c233ed6f2ba760927039768c53e692 100644
|
| --- a/pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart
|
| +++ b/pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart
|
| @@ -145,9 +145,10 @@ class VariableAccessor extends Accessor {
|
| VariableAccessor(this.variable, this.promotedType, int offset)
|
| : super(offset);
|
|
|
| - _makeRead() => new VariableGet(variable, promotedType)..fileOffset = offset;
|
| + Expression _makeRead() =>
|
| + new VariableGet(variable, promotedType)..fileOffset = offset;
|
|
|
| - _makeWrite(Expression value, bool voidContext) {
|
| + Expression _makeWrite(Expression value, bool voidContext) {
|
| return variable.isFinal || variable.isConst
|
| ? makeInvalidWrite(value)
|
| : new VariableSet(variable, value)
|
| @@ -176,10 +177,10 @@ class PropertyAccessor extends Accessor {
|
| this.receiver, this.name, this.getter, this.setter, int offset)
|
| : super(offset);
|
|
|
| - _makeSimpleRead() =>
|
| + Expression _makeSimpleRead() =>
|
| new PropertyGet(receiver, name, getter)..fileOffset = offset;
|
|
|
| - _makeSimpleWrite(Expression value, bool voidContext) {
|
| + Expression _makeSimpleWrite(Expression value, bool voidContext) {
|
| return new PropertySet(receiver, name, value, setter)..fileOffset = offset;
|
| }
|
|
|
| @@ -188,15 +189,15 @@ class PropertyAccessor extends Accessor {
|
| return new VariableGet(_receiverVariable)..fileOffset = offset;
|
| }
|
|
|
| - _makeRead() => builtGetter = new PropertyGet(receiverAccess(), name, getter)
|
| - ..fileOffset = offset;
|
| + Expression _makeRead() => builtGetter =
|
| + new PropertyGet(receiverAccess(), name, getter)..fileOffset = offset;
|
|
|
| - _makeWrite(Expression value, bool voidContext) {
|
| + Expression _makeWrite(Expression value, bool voidContext) {
|
| return new PropertySet(receiverAccess(), name, value, setter)
|
| ..fileOffset = offset;
|
| }
|
|
|
| - _finish(Expression body) => makeLet(_receiverVariable, body);
|
| + Expression _finish(Expression body) => makeLet(_receiverVariable, body);
|
| }
|
|
|
| /// Special case of [PropertyAccessor] to avoid creating an indirect access to
|
| @@ -208,10 +209,10 @@ class ThisPropertyAccessor extends Accessor {
|
| ThisPropertyAccessor(this.name, this.getter, this.setter, int offset)
|
| : super(offset);
|
|
|
| - _makeRead() => builtGetter =
|
| + Expression _makeRead() => builtGetter =
|
| new PropertyGet(new ThisExpression(), name, getter)..fileOffset = offset;
|
|
|
| - _makeWrite(Expression value, bool voidContext) {
|
| + Expression _makeWrite(Expression value, bool voidContext) {
|
| return new PropertySet(new ThisExpression(), name, value, setter)
|
| ..fileOffset = offset;
|
| }
|
| @@ -230,13 +231,14 @@ class NullAwarePropertyAccessor extends Accessor {
|
|
|
| receiverAccess() => new VariableGet(receiver);
|
|
|
| - _makeRead() => builtGetter = new PropertyGet(receiverAccess(), name, getter);
|
| + Expression _makeRead() =>
|
| + builtGetter = new PropertyGet(receiverAccess(), name, getter);
|
|
|
| - _makeWrite(Expression value, bool voidContext) {
|
| + Expression _makeWrite(Expression value, bool voidContext) {
|
| return new PropertySet(receiverAccess(), name, value, setter);
|
| }
|
|
|
| - _finish(Expression body) => makeLet(
|
| + Expression _finish(Expression body) => makeLet(
|
| receiver,
|
| new ConditionalExpression(
|
| buildIsNull(receiverAccess()), new NullLiteral(), body, type));
|
| @@ -249,14 +251,14 @@ class SuperPropertyAccessor extends Accessor {
|
| SuperPropertyAccessor(this.name, this.getter, this.setter, int offset)
|
| : super(offset);
|
|
|
| - _makeRead() {
|
| + Expression _makeRead() {
|
| if (getter == null) return makeInvalidRead();
|
| // TODO(ahe): Use [DirectPropertyGet] when possible.
|
| return builtGetter = new SuperPropertyGet(name, getter)
|
| ..fileOffset = offset;
|
| }
|
|
|
| - _makeWrite(Expression value, bool voidContext) {
|
| + Expression _makeWrite(Expression value, bool voidContext) {
|
| if (setter == null) return makeInvalidWrite(value);
|
| // TODO(ahe): Use [DirectPropertySet] when possible.
|
| return new SuperPropertySet(name, value, setter)..fileOffset = offset;
|
| @@ -285,11 +287,11 @@ class IndexAccessor extends Accessor {
|
| this.receiver, this.index, this.getter, this.setter, int offset)
|
| : super(offset);
|
|
|
| - _makeSimpleRead() => new MethodInvocation(
|
| + Expression _makeSimpleRead() => new MethodInvocation(
|
| receiver, indexGetName, new Arguments(<Expression>[index]), getter)
|
| ..fileOffset = offset;
|
|
|
| - _makeSimpleWrite(Expression value, bool voidContext) {
|
| + Expression _makeSimpleWrite(Expression value, bool voidContext) {
|
| if (!voidContext) return _makeWriteAndReturn(value);
|
| return new MethodInvocation(receiver, indexSetName,
|
| new Arguments(<Expression>[index, value]), setter)
|
| @@ -308,13 +310,13 @@ class IndexAccessor extends Accessor {
|
| return new VariableGet(indexVariable)..fileOffset = offset;
|
| }
|
|
|
| - _makeRead() {
|
| + Expression _makeRead() {
|
| return builtGetter = new MethodInvocation(receiverAccess(), indexGetName,
|
| new Arguments(<Expression>[indexAccess()]), getter)
|
| ..fileOffset = offset;
|
| }
|
|
|
| - _makeWrite(Expression value, bool voidContext) {
|
| + Expression _makeWrite(Expression value, bool voidContext) {
|
| if (!voidContext) return _makeWriteAndReturn(value);
|
| return new MethodInvocation(receiverAccess(), indexSetName,
|
| new Arguments(<Expression>[indexAccess(), value]), setter)
|
| @@ -353,12 +355,12 @@ class ThisIndexAccessor extends Accessor {
|
| ThisIndexAccessor(this.index, this.getter, this.setter, int offset)
|
| : super(offset);
|
|
|
| - _makeSimpleRead() {
|
| + Expression _makeSimpleRead() {
|
| return new MethodInvocation(new ThisExpression(), indexGetName,
|
| new Arguments(<Expression>[index]), getter);
|
| }
|
|
|
| - _makeSimpleWrite(Expression value, bool voidContext) {
|
| + Expression _makeSimpleWrite(Expression value, bool voidContext) {
|
| if (!voidContext) return _makeWriteAndReturn(value);
|
| return new MethodInvocation(new ThisExpression(), indexSetName,
|
| new Arguments(<Expression>[index, value]), setter);
|
| @@ -369,10 +371,13 @@ class ThisIndexAccessor extends Accessor {
|
| return new VariableGet(indexVariable);
|
| }
|
|
|
| - _makeRead() => builtGetter = new MethodInvocation(new ThisExpression(),
|
| - indexGetName, new Arguments(<Expression>[indexAccess()]), getter);
|
| + Expression _makeRead() => builtGetter = new MethodInvocation(
|
| + new ThisExpression(),
|
| + indexGetName,
|
| + new Arguments(<Expression>[indexAccess()]),
|
| + getter);
|
|
|
| - _makeWrite(Expression value, bool voidContext) {
|
| + Expression _makeWrite(Expression value, bool voidContext) {
|
| if (!voidContext) return _makeWriteAndReturn(value);
|
| return new MethodInvocation(new ThisExpression(), indexSetName,
|
| new Arguments(<Expression>[indexAccess(), value]), setter);
|
| @@ -406,21 +411,21 @@ class SuperIndexAccessor extends Accessor {
|
| return new VariableGet(indexVariable);
|
| }
|
|
|
| - _makeSimpleRead() => new SuperMethodInvocation(
|
| + Expression _makeSimpleRead() => new SuperMethodInvocation(
|
| indexGetName, new Arguments(<Expression>[index]), getter);
|
|
|
| - _makeSimpleWrite(Expression value, bool voidContext) {
|
| + Expression _makeSimpleWrite(Expression value, bool voidContext) {
|
| if (!voidContext) return _makeWriteAndReturn(value);
|
| return new SuperMethodInvocation(
|
| indexSetName, new Arguments(<Expression>[index, value]), setter);
|
| }
|
|
|
| - _makeRead() {
|
| + Expression _makeRead() {
|
| return builtGetter = new SuperMethodInvocation(
|
| indexGetName, new Arguments(<Expression>[indexAccess()]), getter);
|
| }
|
|
|
| - _makeWrite(Expression value, bool voidContext) {
|
| + Expression _makeWrite(Expression value, bool voidContext) {
|
| if (!voidContext) return _makeWriteAndReturn(value);
|
| return new SuperMethodInvocation(indexSetName,
|
| new Arguments(<Expression>[indexAccess(), value]), setter);
|
| @@ -448,11 +453,11 @@ class StaticAccessor extends Accessor {
|
|
|
| StaticAccessor(this.readTarget, this.writeTarget, int offset) : super(offset);
|
|
|
| - _makeRead() => builtGetter =
|
| + Expression _makeRead() => builtGetter =
|
| readTarget == null ? makeInvalidRead() : new StaticGet(readTarget)
|
| ..fileOffset = offset;
|
|
|
| - _makeWrite(Expression value, bool voidContext) {
|
| + Expression _makeWrite(Expression value, bool voidContext) {
|
| return writeTarget == null
|
| ? makeInvalidWrite(value)
|
| : new StaticSet(writeTarget, value)
|
| @@ -466,14 +471,15 @@ class ReadOnlyAccessor extends Accessor {
|
|
|
| ReadOnlyAccessor(this.expression, int offset) : super(offset);
|
|
|
| - _makeSimpleRead() => expression;
|
| + Expression _makeSimpleRead() => expression;
|
|
|
| - _makeRead() {
|
| + Expression _makeRead() {
|
| value ??= new VariableDeclaration.forValue(expression);
|
| return new VariableGet(value);
|
| }
|
|
|
| - _makeWrite(Expression value, bool voidContext) => makeInvalidWrite(value);
|
| + Expression _makeWrite(Expression value, bool voidContext) =>
|
| + makeInvalidWrite(value);
|
|
|
| Expression _finish(Expression body) => makeLet(value, body);
|
| }
|
|
|