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

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

Issue 2904673003: Remove AstFactory from the front end. (Closed)
Patch Set: Created 3 years, 7 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 a0ead8b18c1a844cd47929790fc3b8b189bc266a..12acc9c2feec480b4a82bd5d8f6897d49c037166 100644
--- a/pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/fasta_accessors.dart
@@ -6,14 +6,15 @@ library fasta.fasta_accessors;
export 'frontend_accessors.dart' show wrapInvalid;
+import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart'
+ show KernelArguments, KernelMethodInvocation;
+
import 'package:front_end/src/fasta/kernel/utils.dart' show offsetForToken;
import 'package:front_end/src/scanner/token.dart' show Token;
import 'frontend_accessors.dart' show Accessor, buildIsNull, makeLet;
-import 'package:front_end/src/fasta/builder/ast_factory.dart' show AstFactory;
-
import 'package:front_end/src/fasta/type_inference/type_promotion.dart'
show TypePromoter;
@@ -48,8 +49,6 @@ abstract class BuilderHelper {
int get functionNestingLevel;
- AstFactory get astFactory;
-
Constructor lookupConstructor(Name name, {bool isSuper});
Expression toSuperMethodInvocation(MethodInvocation node);
@@ -118,8 +117,7 @@ abstract class FastaAccessor implements Accessor {
}
Expression makeInvalidWrite(Expression value) {
- return buildThrowNoSuchMethodError(
- helper.astFactory.arguments(<Expression>[value]),
+ return buildThrowNoSuchMethodError(new KernelArguments(<Expression>[value]),
isSetter: true);
}
@@ -129,8 +127,8 @@ abstract class FastaAccessor implements Accessor {
/* Expression | FastaAccessor */ buildPropertyAccess(
IncompleteSend send, bool isNullAware) {
if (send is SendAccessor) {
- return buildMethodInvocation(helper.astFactory, buildSimpleRead(),
- send.name, send.arguments, offsetForToken(send.token),
+ return buildMethodInvocation(buildSimpleRead(), send.name, send.arguments,
+ offsetForToken(send.token),
isNullAware: isNullAware);
} else {
return PropertyAccessor.make(helper, send.token, buildSimpleRead(),
@@ -210,8 +208,7 @@ abstract class ErrorAccessor implements FastaAccessor {
@override
Expression buildAssignment(Expression value, {bool voidContext: false}) {
- return buildError(helper.astFactory.arguments(<Expression>[value]),
- isSetter: true);
+ return buildError(new KernelArguments(<Expression>[value]), isSetter: true);
}
@override
@@ -219,8 +216,7 @@ abstract class ErrorAccessor implements FastaAccessor {
{int offset: TreeNode.noOffset,
bool voidContext: false,
Procedure interfaceTarget}) {
- return buildError(helper.astFactory.arguments(<Expression>[value]),
- isGetter: true);
+ return buildError(new KernelArguments(<Expression>[value]), isGetter: true);
}
@override
@@ -228,8 +224,7 @@ abstract class ErrorAccessor implements FastaAccessor {
{int offset: TreeNode.noOffset,
bool voidContext: false,
Procedure interfaceTarget}) {
- return buildError(
- helper.astFactory.arguments(<Expression>[new IntLiteral(1)]),
+ return buildError(new KernelArguments(<Expression>[new IntLiteral(1)]),
isGetter: true);
}
@@ -238,16 +233,14 @@ abstract class ErrorAccessor implements FastaAccessor {
{int offset: TreeNode.noOffset,
bool voidContext: false,
Procedure interfaceTarget}) {
- return buildError(
- helper.astFactory.arguments(<Expression>[new IntLiteral(1)]),
+ return buildError(new KernelArguments(<Expression>[new IntLiteral(1)]),
isGetter: true);
}
@override
Expression buildNullAwareAssignment(Expression value, DartType type,
{bool voidContext: false}) {
- return buildError(helper.astFactory.arguments(<Expression>[value]),
- isSetter: true);
+ return buildError(new KernelArguments(<Expression>[value]), isSetter: true);
}
@override
@@ -260,8 +253,7 @@ abstract class ErrorAccessor implements FastaAccessor {
@override
Expression makeInvalidWrite(Expression value) {
- return buildError(helper.astFactory.arguments(<Expression>[value]),
- isSetter: true);
+ return buildError(new KernelArguments(<Expression>[value]), isSetter: true);
}
}
@@ -322,12 +314,8 @@ class ThisAccessor extends FastaAccessor {
if (send is SendAccessor) {
// Notice that 'this' or 'super' can't be null. So we can ignore the
// value of [isNullAware].
- MethodInvocation result = buildMethodInvocation(
- helper.astFactory,
- new ThisExpression(),
- send.name,
- send.arguments,
- offsetForToken(token));
+ MethodInvocation result = buildMethodInvocation(new ThisExpression(),
+ send.name, send.arguments, offsetForToken(token));
return isSuper ? helper.toSuperMethodInvocation(result) : result;
} else {
if (isSuper) {
@@ -347,7 +335,7 @@ class ThisAccessor extends FastaAccessor {
return buildConstructorInitializer(offset, new Name(""), arguments);
} else {
return buildMethodInvocation(
- helper.astFactory, new ThisExpression(), callName, arguments, offset);
+ new ThisExpression(), callName, arguments, offset);
}
}
@@ -503,7 +491,6 @@ class SendAccessor extends IncompleteSend {
if (target != null) {
if (target is Field) {
result = buildMethodInvocation(
- helper.astFactory,
new StaticGet(target),
callName,
arguments,
@@ -519,7 +506,7 @@ class SendAccessor extends IncompleteSend {
}
}
} else {
- result = buildMethodInvocation(helper.astFactory,
+ result = buildMethodInvocation(
helper.toValue(receiver), name, arguments, offsetForToken(token),
isNullAware: isNullAware);
}
@@ -650,7 +637,7 @@ class IndexAccessor extends kernel.IndexAccessor with FastaAccessor {
Expression doInvocation(int offset, Arguments arguments) {
return buildMethodInvocation(
- helper.astFactory, buildSimpleRead(), callName, arguments, offset);
+ buildSimpleRead(), callName, arguments, offset);
}
toString() => "IndexAccessor()";
@@ -683,8 +670,7 @@ class PropertyAccessor extends kernel.PropertyAccessor with FastaAccessor {
bool get isThisPropertyAccessor => receiver is ThisExpression;
Expression doInvocation(int offset, Arguments arguments) {
- return buildMethodInvocation(
- helper.astFactory, receiver, name, arguments, offset);
+ return buildMethodInvocation(receiver, name, arguments, offset);
}
toString() => "PropertyAccessor()";
@@ -741,8 +727,8 @@ class StaticAccessor extends kernel.StaticAccessor with FastaAccessor {
Expression doInvocation(int offset, Arguments arguments) {
if (readTarget == null || isFieldOrGetter(readTarget)) {
- return buildMethodInvocation(helper.astFactory, buildSimpleRead(),
- callName, arguments, offset + (readTarget?.name?.name?.length ?? 0));
+ return buildMethodInvocation(buildSimpleRead(), callName, arguments,
+ offset + (readTarget?.name?.name?.length ?? 0));
} else {
return helper.buildStaticInvocation(readTarget, arguments)
..fileOffset = offset;
@@ -763,7 +749,7 @@ class SuperPropertyAccessor extends kernel.SuperPropertyAccessor
Expression doInvocation(int offset, Arguments arguments) {
if (getter == null || isFieldOrGetter(getter)) {
return buildMethodInvocation(
- helper.astFactory, buildSimpleRead(), callName, arguments, offset);
+ buildSimpleRead(), callName, arguments, offset);
} else {
return new DirectMethodInvocation(new ThisExpression(), getter, arguments)
..fileOffset = offset;
@@ -784,7 +770,7 @@ class ThisIndexAccessor extends kernel.ThisIndexAccessor with FastaAccessor {
Expression doInvocation(int offset, Arguments arguments) {
return buildMethodInvocation(
- helper.astFactory, buildSimpleRead(), callName, arguments, offset);
+ buildSimpleRead(), callName, arguments, offset);
}
toString() => "ThisIndexAccessor()";
@@ -801,7 +787,7 @@ class SuperIndexAccessor extends kernel.SuperIndexAccessor with FastaAccessor {
Expression doInvocation(int offset, Arguments arguments) {
return buildMethodInvocation(
- helper.astFactory, buildSimpleRead(), callName, arguments, offset);
+ buildSimpleRead(), callName, arguments, offset);
}
toString() => "SuperIndexAccessor()";
@@ -826,8 +812,7 @@ class ThisPropertyAccessor extends kernel.ThisPropertyAccessor
// `this.name.call(arguments)`.
interfaceTarget = null;
}
- return buildMethodInvocation(
- helper.astFactory, new ThisExpression(), name, arguments, offset);
+ return buildMethodInvocation(new ThisExpression(), name, arguments, offset);
}
toString() => "ThisPropertyAccessor()";
@@ -861,8 +846,8 @@ class VariableAccessor extends kernel.VariableAccessor with FastaAccessor {
Expression doInvocation(int offset, Arguments arguments) {
// 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(helper.astFactory, buildSimpleRead(), callName,
- arguments, offset + (variable.name?.length ?? 0));
+ return buildMethodInvocation(buildSimpleRead(), callName, arguments,
+ offset + (variable.name?.length ?? 0));
}
toString() => "VariableAccessor()";
@@ -877,7 +862,7 @@ class ReadOnlyAccessor extends kernel.ReadOnlyAccessor with FastaAccessor {
Expression doInvocation(int offset, Arguments arguments) {
return buildMethodInvocation(
- helper.astFactory, buildSimpleRead(), callName, arguments, offset);
+ buildSimpleRead(), callName, arguments, offset);
}
}
@@ -921,22 +906,22 @@ bool isFieldOrGetter(Member member) {
return member is Field || (member is Procedure && member.isGetter);
}
-Expression buildMethodInvocation(AstFactory astFactory, Expression receiver,
- Name name, Arguments arguments, int offset,
+Expression buildMethodInvocation(
+ Expression receiver, Name name, Arguments arguments, int offset,
{bool isNullAware: false}) {
if (isNullAware) {
VariableDeclaration variable = new VariableDeclaration.forValue(receiver);
return makeLet(
variable,
new ConditionalExpression(
- buildIsNull(astFactory, new VariableGet(variable)),
+ buildIsNull(new VariableGet(variable)),
new NullLiteral(),
- astFactory.methodInvocation(
+ new KernelMethodInvocation(
new VariableGet(variable), name, arguments)
..fileOffset = offset,
const DynamicType()));
} else {
- return astFactory.methodInvocation(receiver, name, arguments)
+ return new KernelMethodInvocation(receiver, name, arguments)
..fileOffset = offset;
}
}

Powered by Google App Engine
This is Rietveld 408576698