Skip to content

Commit

Permalink
Remove Kernel*Set classes.
Browse files Browse the repository at this point in the history
These classes are no longer needed, since we use
KernelComplexAssignment (and derived classes) to represent
assignments.

[email protected]

Review-Url: https://codereview.chromium.org/2945553002 .
  • Loading branch information
stereotype441 committed Jun 16, 2017
1 parent 99ff7d2 commit f5ea0a4
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 136 deletions.
17 changes: 7 additions & 10 deletions pkg/front_end/lib/src/fasta/kernel/frontend_accessors.dart
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,9 @@ import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart'
KernelMethodInvocation,
KernelPropertyAssign,
KernelPropertyGet,
KernelPropertySet,
KernelThisExpression,
KernelVariableDeclaration,
KernelVariableGet,
KernelVariableSet;
KernelVariableGet;

import 'package:front_end/src/fasta/kernel/utils.dart' show offsetForToken;

Expand Down Expand Up @@ -218,7 +216,7 @@ abstract class VariableAccessor extends Accessor {
helper.typePromoter.mutateVariable(variable, helper.functionNestingLevel);
var write = variable.isFinal || variable.isConst
? makeInvalidWrite(value)
: new KernelVariableSet(variable, value)
: new VariableSet(variable, value)
..fileOffset = offsetForToken(token);
complexAssignment?.write = write;
return write;
Expand Down Expand Up @@ -251,7 +249,7 @@ class PropertyAccessor extends Accessor {

Expression _makeSimpleWrite(Expression value, bool voidContext,
KernelComplexAssignment complexAssignment) {
var write = new KernelPropertySet(receiver, name, value, setter)
var write = new PropertySet(receiver, name, value, setter)
..fileOffset = offsetForToken(token);
complexAssignment?.write = write;
return write;
Expand All @@ -272,7 +270,7 @@ class PropertyAccessor extends Accessor {

Expression _makeWrite(Expression value, bool voidContext,
KernelComplexAssignment complexAssignment) {
var write = new KernelPropertySet(receiverAccess(), name, value, setter)
var write = new PropertySet(receiverAccess(), name, value, setter)
..fileOffset = offsetForToken(token);
complexAssignment?.write = write;
return write;
Expand Down Expand Up @@ -309,9 +307,8 @@ class ThisPropertyAccessor extends Accessor {

Expression _makeWrite(Expression value, bool voidContext,
KernelComplexAssignment complexAssignment) {
var write =
new KernelPropertySet(new KernelThisExpression(), name, value, setter)
..fileOffset = offsetForToken(token);
var write = new PropertySet(new KernelThisExpression(), name, value, setter)
..fileOffset = offsetForToken(token);
complexAssignment?.write = write;
return write;
}
Expand Down Expand Up @@ -340,7 +337,7 @@ class NullAwarePropertyAccessor extends Accessor {

Expression _makeWrite(Expression value, bool voidContext,
KernelComplexAssignment complexAssignment) {
var write = new KernelPropertySet(receiverAccess(), name, value, setter)
var write = new PropertySet(receiverAccess(), name, value, setter)
..fileOffset = offsetForToken(token);
complexAssignment?.write = write;
return write;
Expand Down
126 changes: 0 additions & 126 deletions pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart
Original file line number Diff line number Diff line change
Expand Up @@ -578,30 +578,6 @@ class KernelDirectPropertyGet extends DirectPropertyGet
}
}

/// Shadow object for [DirectPropertySet].
class KernelDirectPropertySet extends DirectPropertySet
implements KernelExpression {
KernelDirectPropertySet(Expression receiver, Member target, Expression value)
: super(receiver, target, value);

KernelDirectPropertySet.byReference(
Expression receiver, Reference targetReference, Expression value)
: super.byReference(receiver, targetReference, value);

@override
void _collectDependencies(KernelDependencyCollector collector) {
// Assignment expressions are not immediately evident expressions.
collector.recordNotImmediatelyEvident(fileOffset);
}

@override
DartType _inferExpression(
KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) {
// TODO(scheglov): implement.
return typeNeeded ? const DynamicType() : null;
}
}

/// Concrete shadow object representing a double literal in kernel form.
class KernelDoubleLiteral extends DoubleLiteral implements KernelExpression {
KernelDoubleLiteral(double value) : super(value);
Expand Down Expand Up @@ -1493,39 +1469,6 @@ class KernelPropertyGet extends PropertyGet implements KernelExpression {
}
}

/// Shadow object for [PropertyGet].
class KernelPropertySet extends PropertySet implements KernelExpression {
KernelPropertySet(Expression receiver, Name name, Expression value,
[Member interfaceTarget])
: super(receiver, name, value, interfaceTarget);

KernelPropertySet.byReference(Expression receiver, Name name,
Expression value, Reference interfaceTargetReference)
: super.byReference(receiver, name, value, interfaceTargetReference);

@override
void _collectDependencies(KernelDependencyCollector collector) {
// Assignment expressions are not immediately evident expressions.
collector.recordNotImmediatelyEvident(fileOffset);
}

@override
DartType _inferExpression(
KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) {
typeNeeded =
inferrer.listener.propertySetEnter(this, typeContext) || typeNeeded;
// First infer the receiver so we can look up the setter that was invoked.
var receiverType = inferrer.inferExpression(receiver, null, true);
Member interfaceMember = inferrer
.findInterfaceMember(receiverType, name, fileOffset, setter: true);
interfaceTarget = interfaceMember;
var setterType = inferrer.getSetterType(interfaceMember, receiverType);
var inferredType = inferrer.inferExpression(value, setterType, typeNeeded);
inferrer.listener.propertySetExit(this, inferredType);
return typeNeeded ? inferredType : null;
}
}

/// Concrete shadow object representing a redirecting initializer in kernel
/// form.
class KernelRedirectingInitializer extends RedirectingInitializer
Expand Down Expand Up @@ -1696,27 +1639,6 @@ class KernelStaticInvocation extends StaticInvocation
}
}

/// Shadow object for [StaticSet].
class KernelStaticSet extends StaticSet implements KernelExpression {
KernelStaticSet(Member target, Expression value) : super(target, value);

KernelStaticSet.byReference(Reference targetReference, Expression value)
: super.byReference(targetReference, value);

@override
void _collectDependencies(KernelDependencyCollector collector) {
// Assignment expressions are not immediately evident expressions.
collector.recordNotImmediatelyEvident(fileOffset);
}

@override
DartType _inferExpression(
KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) {
// TODO(scheglov): implement.
return typeNeeded ? const DynamicType() : null;
}
}

/// Concrete shadow object representing a string concatenation in kernel form.
class KernelStringConcatenation extends StringConcatenation
implements KernelExpression {
Expand Down Expand Up @@ -1817,30 +1739,6 @@ class KernelSuperPropertyGet extends SuperPropertyGet
}
}

/// Shadow object for [SuperPropertySet].
class KernelSuperPropertySet extends SuperPropertySet
implements KernelExpression {
KernelSuperPropertySet(Name name, Expression value, Member interfaceTarget)
: super(name, value, interfaceTarget);

KernelSuperPropertySet.byReference(
Name name, Expression value, Reference interfaceTargetReference)
: super.byReference(name, value, interfaceTargetReference);

@override
void _collectDependencies(KernelDependencyCollector collector) {
// Assignment expressions are not immediately evident expressions.
collector.recordNotImmediatelyEvident(fileOffset);
}

@override
DartType _inferExpression(
KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) {
// TODO(scheglov): implement.
return typeNeeded ? const DynamicType() : null;
}
}

/// Shadow object for [SymbolLiteral].
class KernelSymbolLiteral extends SymbolLiteral implements KernelExpression {
KernelSymbolLiteral(String value) : super(value);
Expand Down Expand Up @@ -2225,30 +2123,6 @@ class KernelVariableGet extends VariableGet implements KernelExpression {
}
}

/// Concrete shadow object representing a write to a variable in kernel form.
class KernelVariableSet extends VariableSet implements KernelExpression {
KernelVariableSet(VariableDeclaration variable, Expression value)
: super(variable, value);

@override
void _collectDependencies(KernelDependencyCollector collector) {
// Assignment expressions are not immediately evident expressions.
collector.recordNotImmediatelyEvident(fileOffset);
}

@override
DartType _inferExpression(
KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) {
var variable = this.variable as KernelVariableDeclaration;
typeNeeded =
inferrer.listener.variableSetEnter(this, typeContext) || typeNeeded;
var inferredType =
inferrer.inferExpression(value, variable.type, typeNeeded);
inferrer.listener.variableSetExit(this, inferredType);
return inferredType;
}
}

/// Concrete shadow object representing a yield statement in kernel form.
class KernelYieldStatement extends YieldStatement implements KernelStatement {
KernelYieldStatement(Expression expression, {bool isYieldStar: false})
Expand Down

0 comments on commit f5ea0a4

Please sign in to comment.