| Index: pkg/front_end/lib/src/fasta/kernel/kernel_ast_factory.dart
|
| diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_ast_factory.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_ast_factory.dart
|
| index 579afea6856d8d4afe147e6b0c288de655af7566..9b5a4dcf5175eecf9cd791d41c261e357e07c42e 100644
|
| --- a/pkg/front_end/lib/src/fasta/kernel/kernel_ast_factory.dart
|
| +++ b/pkg/front_end/lib/src/fasta/kernel/kernel_ast_factory.dart
|
| @@ -13,6 +13,18 @@ import 'kernel_shadow_ast.dart';
|
| /// Concrete implementation of [builder.AstFactory] for building a kernel AST.
|
| class KernelAstFactory implements AstFactory<VariableDeclaration> {
|
| @override
|
| + AsExpression asExpression(Expression operand, Token operator, DartType type) {
|
| + return new KernelAsExpression(operand, type)
|
| + ..fileOffset = offsetForToken(operator);
|
| + }
|
| +
|
| + @override
|
| + AwaitExpression awaitExpression(Token keyword, Expression operand) {
|
| + return new KernelAwaitExpression(operand)
|
| + ..fileOffset = offsetForToken(keyword);
|
| + }
|
| +
|
| + @override
|
| KernelBlock block(List<Statement> statements, Token beginToken) {
|
| return new KernelBlock(statements)..fileOffset = offsetForToken(beginToken);
|
| }
|
| @@ -23,6 +35,30 @@ class KernelAstFactory implements AstFactory<VariableDeclaration> {
|
| }
|
|
|
| @override
|
| + ConstructorInvocation constructorInvocation(
|
| + Constructor target, Arguments arguments,
|
| + {bool isConst: false}) {
|
| + return new KernelConstructorInvocation(target, arguments, isConst: isConst);
|
| + }
|
| +
|
| + @override
|
| + DirectMethodInvocation directMethodInvocation(
|
| + Expression receiver, Procedure target, Arguments arguments) {
|
| + return new KernelDirectMethodInvocation(receiver, target, arguments);
|
| + }
|
| +
|
| + @override
|
| + DirectPropertyGet directPropertyGet(Expression receiver, Member target) {
|
| + return new KernelDirectPropertyGet(receiver, target);
|
| + }
|
| +
|
| + @override
|
| + DirectPropertySet directPropertySet(
|
| + Expression receiver, Member target, Expression value) {
|
| + return new KernelDirectPropertySet(receiver, target, value);
|
| + }
|
| +
|
| + @override
|
| KernelDoubleLiteral doubleLiteral(double value, Token token) {
|
| return new KernelDoubleLiteral(value)..fileOffset = offsetForToken(token);
|
| }
|
| @@ -69,11 +105,37 @@ class KernelAstFactory implements AstFactory<VariableDeclaration> {
|
| }
|
|
|
| @override
|
| + LogicalExpression logicalExpression(
|
| + Expression left, String operator, Expression right) {
|
| + return new KernelLogicalExpression(left, operator, right);
|
| + }
|
| +
|
| + @override
|
| + MapLiteral mapLiteral(
|
| + Token beginToken, Token constKeyword, List<MapEntry> entries,
|
| + {DartType keyType: const DynamicType(),
|
| + DartType valueType: const DynamicType()}) {
|
| + return new KernelMapLiteral(entries,
|
| + keyType: keyType, valueType: valueType, isConst: constKeyword != null)
|
| + ..fileOffset = constKeyword?.charOffset ?? beginToken.charOffset;
|
| + }
|
| +
|
| + @override
|
| + Not not(Token token, Expression operand) {
|
| + return new KernelNot(operand)..fileOffset = offsetForToken(token);
|
| + }
|
| +
|
| + @override
|
| KernelNullLiteral nullLiteral(Token token) {
|
| return new KernelNullLiteral()..fileOffset = offsetForToken(token);
|
| }
|
|
|
| @override
|
| + Rethrow rethrowExpression(Token keyword) {
|
| + return new KernelRethrow()..fileOffset = offsetForToken(keyword);
|
| + }
|
| +
|
| + @override
|
| KernelReturnStatement returnStatement(Expression expression, Token token) {
|
| return new KernelReturnStatement(expression)
|
| ..fileOffset = offsetForToken(token);
|
| @@ -85,6 +147,12 @@ class KernelAstFactory implements AstFactory<VariableDeclaration> {
|
| }
|
|
|
| @override
|
| + StaticInvocation staticInvocation(Procedure target, Arguments arguments,
|
| + {bool isConst: false}) {
|
| + return new KernelStaticInvocation(target, arguments, isConst: isConst);
|
| + }
|
| +
|
| + @override
|
| StringConcatenation stringConcatenation(
|
| List<Expression> expressions, Token token) {
|
| return new KernelStringConcatenation(expressions)
|
| @@ -97,6 +165,39 @@ class KernelAstFactory implements AstFactory<VariableDeclaration> {
|
| }
|
|
|
| @override
|
| + SuperMethodInvocation superMethodInvocation(
|
| + Token beginToken, Name name, Arguments arguments,
|
| + [Procedure interfaceTarget]) {
|
| + return new KernelSuperMethodInvocation(name, arguments, interfaceTarget);
|
| + }
|
| +
|
| + @override
|
| + SuperPropertyGet superPropertyGet(Name name, [Member interfaceTarget]) {
|
| + return new KernelSuperPropertyGet(name, interfaceTarget);
|
| + }
|
| +
|
| + @override
|
| + SymbolLiteral symbolLiteral(Token hashToken, String value) {
|
| + return new KernelSymbolLiteral(value)
|
| + ..fileOffset = offsetForToken(hashToken);
|
| + }
|
| +
|
| + @override
|
| + ThisExpression thisExpression(Token keyword) {
|
| + return new KernelThisExpression()..fileOffset = offsetForToken(keyword);
|
| + }
|
| +
|
| + @override
|
| + Throw throwExpression(Token keyword, Expression expression) {
|
| + return new KernelThrow(expression)..fileOffset = offsetForToken(keyword);
|
| + }
|
| +
|
| + @override
|
| + TypeLiteral typeLiteral(DartType type) {
|
| + return new KernelTypeLiteral(type);
|
| + }
|
| +
|
| + @override
|
| VariableDeclaration variableDeclaration(
|
| String name, Token token, int functionNestingLevel,
|
| {DartType type,
|
|
|