Add parameters needed by analyzer to Factory, part 1
Change-Id: Ide781bf108fdaf3d44453a2f3af1bed959010dcb
Reviewed-on: https://dart-review.googlesource.com/61084
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
diff --git a/pkg/front_end/lib/src/fasta/kernel/factory.dart b/pkg/front_end/lib/src/fasta/kernel/factory.dart
index 64bb7a1..56076d3 100644
--- a/pkg/front_end/lib/src/fasta/kernel/factory.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/factory.dart
@@ -20,22 +20,41 @@
int fileOffset,
Expression expression,
Token asOperator,
- Type type,
+ Type literalType,
DartType inferredType);
- Initializer assertInitializer(InitializerJudgment judgment, int fileOffset);
+ Initializer assertInitializer(
+ InitializerJudgment judgment,
+ int fileOffset,
+ Token assertKeyword,
+ Token leftParenthesis,
+ Expression condition,
+ Token comma,
+ Expression message,
+ Token rightParenthesis);
- Statement assertStatement(StatementJudgment judgment, int fileOffset);
+ Statement assertStatement(
+ StatementJudgment judgment,
+ int fileOffset,
+ Token assertKeyword,
+ Token leftParenthesis,
+ Expression condition,
+ Token comma,
+ Expression message,
+ Token rightParenthesis,
+ Token semicolon);
- Expression awaitExpression(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType);
+ Expression awaitExpression(ExpressionJudgment judgment, int fileOffset,
+ Token awaitKeyword, Expression expression, DartType inferredType);
- Statement block(StatementJudgment judgment, int fileOffset);
+ Statement block(StatementJudgment judgment, int fileOffset, Token leftBracket,
+ List<Statement> statements, Token rightBracket);
- Expression boolLiteral(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType);
+ Expression boolLiteral(ExpressionJudgment judgment, int fileOffset,
+ Token literal, DartType inferredType);
- Statement breakStatement(StatementJudgment judgment, int fileOffset);
+ Statement breakStatement(StatementJudgment judgment, int fileOffset,
+ Token breakKeyword, Expression label, Token semicolon);
Expression cascadeExpression(
ExpressionJudgment judgment, int fileOffset, DartType inferredType);
@@ -50,7 +69,14 @@
DartType stackTraceType);
Expression conditionalExpression(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType);
+ ExpressionJudgment judgment,
+ int fileOffset,
+ Expression condition,
+ Token question,
+ Expression thenExpression,
+ Token colon,
+ Expression elseExpression,
+ DartType inferredType);
Expression constructorInvocation(ExpressionJudgment judgment, int fileOffset,
Node expressionTarget, DartType inferredType);
@@ -60,12 +86,22 @@
Expression deferredCheck(
ExpressionJudgment judgment, int fileOffset, DartType inferredType);
- Statement doStatement(StatementJudgment judgment, int fileOffset);
+ Statement doStatement(
+ StatementJudgment judgment,
+ int fileOffset,
+ Token doKeyword,
+ Statement body,
+ Token whileKeyword,
+ Token leftParenthesis,
+ Expression condition,
+ Token rightParenthesis,
+ Token semicolon);
- Expression doubleLiteral(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType);
+ Expression doubleLiteral(ExpressionJudgment judgment, int fileOffset,
+ Token literal, DartType inferredType);
- Statement expressionStatement(StatementJudgment judgment, int fileOffset);
+ Statement expressionStatement(StatementJudgment judgment, int fileOffset,
+ Expression expression, Token semicolon);
Initializer fieldInitializer(
InitializerJudgment judgment, int fileOffset, Node initializerField);
@@ -91,21 +127,43 @@
Expression ifNull(
ExpressionJudgment judgment, int fileOffset, DartType inferredType);
- Statement ifStatement(StatementJudgment judgment, int fileOffset);
+ Statement ifStatement(
+ StatementJudgment judgment,
+ int fileOffset,
+ Token ifKeyword,
+ Token leftParenthesis,
+ Expression condition,
+ Token rightParenthesis,
+ Statement thenStatement,
+ Token elseKeyword,
+ Statement elseStatement);
Expression indexAssign(ExpressionJudgment judgment, int fileOffset,
Node writeMember, Node combiner, DartType inferredType);
- Expression intLiteral(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType);
+ Expression intLiteral(ExpressionJudgment judgment, int fileOffset,
+ Token literal, DartType inferredType);
Initializer invalidInitializer(InitializerJudgment judgment, int fileOffset);
- Expression isExpression(ExpressionJudgment judgment, int fileOffset,
- DartType testedType, DartType inferredType);
+ Expression isExpression(
+ ExpressionJudgment judgment,
+ int fileOffset,
+ Expression expression,
+ Token isOperator,
+ Type literalType,
+ DartType testedType,
+ DartType inferredType);
- Expression isNotExpression(ExpressionJudgment judgment, int fileOffset,
- DartType type, DartType inferredType);
+ Expression isNotExpression(
+ ExpressionJudgment judgment,
+ int fileOffset,
+ Expression expression,
+ Token isOperator,
+ Token notOperator,
+ Type literalType,
+ DartType testedType,
+ DartType inferredType);
Statement labeledStatement(StatementJudgment judgment, int fileOffset);
@@ -144,7 +202,7 @@
ExpressionJudgment judgment, int fileOffset, DartType inferredType);
Expression nullLiteral(ExpressionJudgment judgment, int fileOffset,
- bool isSynthetic, DartType inferredType);
+ Token literal, bool isSynthetic, DartType inferredType);
Expression propertyAssign(
ExpressionJudgment judgment,
@@ -166,10 +224,11 @@
Initializer redirectingInitializer(
InitializerJudgment judgment, int fileOffset, Node initializerTarget);
- Expression rethrow_(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType);
+ Expression rethrow_(ExpressionJudgment judgment, int fileOffset,
+ Token rethrowKeyword, DartType inferredType);
- Statement returnStatement(StatementJudgment judgment, int fileOffset);
+ Statement returnStatement(StatementJudgment judgment, int fileOffset,
+ Token returnKeyword, Expression expression, Token semicolon);
Expression staticAssign(
ExpressionJudgment judgment,
@@ -204,11 +263,11 @@
Expression symbolLiteral(
ExpressionJudgment judgment, int fileOffset, DartType inferredType);
- Expression thisExpression(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType);
+ Expression thisExpression(ExpressionJudgment judgment, int fileOffset,
+ Token thisKeyword, DartType inferredType);
- Expression throw_(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType);
+ Expression throw_(ExpressionJudgment judgment, int fileOffset,
+ Token throwKeyword, Expression expression, DartType inferredType);
Statement tryCatch(StatementJudgment judgment, int fileOffset);
@@ -238,9 +297,17 @@
Expression variableSet(
ExpressionJudgment judgment, int fileOffset, DartType inferredType);
- Statement whileStatement(StatementJudgment judgment, int fileOffset);
+ Statement whileStatement(
+ StatementJudgment judgment,
+ int fileOffset,
+ Token whileKeyword,
+ Token leftParenthesis,
+ Expression condition,
+ Token rightParenthesis,
+ Statement body);
- Statement yieldStatement(StatementJudgment judgment, int fileOffset);
+ Statement yieldStatement(StatementJudgment judgment, int fileOffset,
+ Token yieldKeyword, Token star, Expression expression, Token semicolon);
/// TODO(paulberry): this isn't really shaped properly for a factory class.
void storePrefixInfo(int fileOffset, int prefixImportIndex);
diff --git a/pkg/front_end/lib/src/fasta/kernel/kernel_factory.dart b/pkg/front_end/lib/src/fasta/kernel/kernel_factory.dart
index 786f3e5..66e026b 100644
--- a/pkg/front_end/lib/src/fasta/kernel/kernel_factory.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/kernel_factory.dart
@@ -24,47 +24,66 @@
/// Implementation of [Factory] that builds source code into a kernel
/// representation.
class KernelFactory
- implements Factory<Expression, Statement, Initializer, DartType> {
+ implements Factory<Expression, Statement, Initializer, void> {
@override
Expression asExpression(
ExpressionJudgment judgment,
int fileOffset,
Expression expression,
Token asOperator,
- DartType type,
+ void literalType,
DartType inferredType) {
return judgment;
}
@override
- Initializer assertInitializer(InitializerJudgment judgment, int fileOffset) {
+ Initializer assertInitializer(
+ InitializerJudgment judgment,
+ int fileOffset,
+ Token assertKeyword,
+ Token leftParenthesis,
+ Expression condition,
+ Token comma,
+ Expression message,
+ Token rightParenthesis) {
return judgment;
}
@override
- Statement assertStatement(StatementJudgment judgment, int fileOffset) {
+ Statement assertStatement(
+ StatementJudgment judgment,
+ int fileOffset,
+ Token assertKeyword,
+ Token leftParenthesis,
+ Expression condition,
+ Token comma,
+ Expression message,
+ Token rightParenthesis,
+ Token semicolon) {
return judgment;
}
@override
- Expression awaitExpression(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType) {
+ Expression awaitExpression(ExpressionJudgment judgment, int fileOffset,
+ Token awaitKeyword, Expression expression, DartType inferredType) {
return judgment;
}
@override
- Statement block(StatementJudgment judgment, int fileOffset) {
+ Statement block(StatementJudgment judgment, int fileOffset, Token leftBracket,
+ List<Statement> statements, Token rightBracket) {
return judgment;
}
@override
- Expression boolLiteral(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType) {
+ Expression boolLiteral(ExpressionJudgment judgment, int fileOffset,
+ Token literal, DartType inferredType) {
return judgment;
}
@override
- Statement breakStatement(StatementJudgment judgment, int fileOffset) {
+ Statement breakStatement(StatementJudgment judgment, int fileOffset,
+ Token breakKeyword, Expression label, Token semicolon) {
return judgment;
}
@@ -88,7 +107,14 @@
@override
Expression conditionalExpression(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType) {
+ ExpressionJudgment judgment,
+ int fileOffset,
+ Expression condition,
+ Token question,
+ Expression thenExpression,
+ Token colon,
+ Expression elseExpression,
+ DartType inferredType) {
return judgment;
}
@@ -111,18 +137,28 @@
}
@override
- Statement doStatement(StatementJudgment judgment, int fileOffset) {
+ Statement doStatement(
+ StatementJudgment judgment,
+ int fileOffset,
+ Token doKeyword,
+ Statement body,
+ Token whileKeyword,
+ Token leftParenthesis,
+ Expression condition,
+ Token rightParenthesis,
+ Token semicolon) {
return judgment;
}
@override
- Expression doubleLiteral(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType) {
+ Expression doubleLiteral(ExpressionJudgment judgment, int fileOffset,
+ Token literal, DartType inferredType) {
return judgment;
}
@override
- Statement expressionStatement(StatementJudgment judgment, int fileOffset) {
+ Statement expressionStatement(StatementJudgment judgment, int fileOffset,
+ Expression expression, Token semicolon) {
return judgment;
}
@@ -169,7 +205,16 @@
}
@override
- Statement ifStatement(StatementJudgment judgment, int fileOffset) {
+ Statement ifStatement(
+ StatementJudgment judgment,
+ int fileOffset,
+ Token ifKeyword,
+ Token leftParenthesis,
+ Expression condition,
+ Token rightParenthesis,
+ Statement thenStatement,
+ Token elseKeyword,
+ Statement elseStatement) {
return judgment;
}
@@ -180,8 +225,8 @@
}
@override
- Expression intLiteral(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType) {
+ Expression intLiteral(ExpressionJudgment judgment, int fileOffset,
+ Token literal, DartType inferredType) {
return judgment;
}
@@ -191,14 +236,27 @@
}
@override
- Expression isExpression(ExpressionJudgment judgment, int fileOffset,
- DartType testedType, DartType inferredType) {
+ Expression isExpression(
+ ExpressionJudgment judgment,
+ int fileOffset,
+ Expression expression,
+ Token isOperator,
+ void literalType,
+ DartType testedType,
+ DartType inferredType) {
return judgment;
}
@override
- Expression isNotExpression(ExpressionJudgment judgment, int fileOffset,
- DartType type, DartType inferredType) {
+ Expression isNotExpression(
+ ExpressionJudgment judgment,
+ int fileOffset,
+ Expression expression,
+ Token isOperator,
+ Token notOperator,
+ void literalType,
+ DartType testedType,
+ DartType inferredType) {
return judgment;
}
@@ -264,7 +322,7 @@
@override
Expression nullLiteral(ExpressionJudgment judgment, int fileOffset,
- bool isSynthetic, DartType inferredType) {
+ Token literal, bool isSynthetic, DartType inferredType) {
return judgment;
}
@@ -304,13 +362,14 @@
}
@override
- Expression rethrow_(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType) {
+ Expression rethrow_(ExpressionJudgment judgment, int fileOffset,
+ Token rethrowKeyword, DartType inferredType) {
return judgment;
}
@override
- Statement returnStatement(StatementJudgment judgment, int fileOffset) {
+ Statement returnStatement(StatementJudgment judgment, int fileOffset,
+ Token returnKeyword, Expression expression, Token semicolon) {
return judgment;
}
@@ -378,14 +437,14 @@
}
@override
- Expression thisExpression(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType) {
+ Expression thisExpression(ExpressionJudgment judgment, int fileOffset,
+ Token thisKeyword, DartType inferredType) {
return judgment;
}
@override
- Expression throw_(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType) {
+ Expression throw_(ExpressionJudgment judgment, int fileOffset,
+ Token throwKeyword, Expression expression, DartType inferredType) {
return judgment;
}
@@ -439,12 +498,20 @@
}
@override
- Statement whileStatement(StatementJudgment judgment, int fileOffset) {
+ Statement whileStatement(
+ StatementJudgment judgment,
+ int fileOffset,
+ Token whileKeyword,
+ Token leftParenthesis,
+ Expression condition,
+ Token rightParenthesis,
+ Statement body) {
return judgment;
}
@override
- Statement yieldStatement(StatementJudgment judgment, int fileOffset) {
+ Statement yieldStatement(StatementJudgment judgment, int fileOffset,
+ Token yieldKeyword, Token star, Expression expression, Token semicolon) {
return judgment;
}
}
diff --git a/pkg/front_end/lib/src/fasta/kernel/toplevel_inference_factory.dart b/pkg/front_end/lib/src/fasta/kernel/toplevel_inference_factory.dart
index c154aec..52f4cd2 100644
--- a/pkg/front_end/lib/src/fasta/kernel/toplevel_inference_factory.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/toplevel_inference_factory.dart
@@ -20,28 +20,52 @@
const ToplevelInferenceFactory();
@override
- void asExpression(ExpressionJudgment judgment, int fileOffset,
- void expression, Token asOperator, void type, DartType inferredType) {}
+ void asExpression(
+ ExpressionJudgment judgment,
+ int fileOffset,
+ void expression,
+ Token asOperator,
+ void literalType,
+ DartType inferredType) {}
@override
- void assertInitializer(InitializerJudgment judgment, int fileOffset) {}
+ void assertInitializer(
+ InitializerJudgment judgment,
+ int fileOffset,
+ Token assertKeyword,
+ Token leftParenthesis,
+ void condition,
+ Token comma,
+ void message,
+ Token rightParenthesis) {}
@override
- void assertStatement(StatementJudgment judgment, int fileOffset) {}
+ void assertStatement(
+ StatementJudgment judgment,
+ int fileOffset,
+ Token assertKeyword,
+ Token leftParenthesis,
+ void condition,
+ Token comma,
+ void message,
+ Token rightParenthesis,
+ Token semicolon) {}
@override
- void awaitExpression(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType) {}
+ void awaitExpression(ExpressionJudgment judgment, int fileOffset,
+ Token awaitKeyword, void expression, DartType inferredType) {}
@override
- void block(StatementJudgment judgment, int fileOffset) {}
+ void block(StatementJudgment judgment, int fileOffset, Token leftBracket,
+ void statements, Token rightBracket) {}
@override
- void boolLiteral(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType) {}
+ void boolLiteral(ExpressionJudgment judgment, int fileOffset, Token literal,
+ DartType inferredType) {}
@override
- void breakStatement(StatementJudgment judgment, int fileOffset) {}
+ void breakStatement(StatementJudgment judgment, int fileOffset,
+ Token breakKeyword, void label, Token semicolon) {}
@override
void cascadeExpression(
@@ -61,7 +85,14 @@
@override
void conditionalExpression(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType) {}
+ ExpressionJudgment judgment,
+ int fileOffset,
+ void condition,
+ Token question,
+ void thenExpression,
+ Token colon,
+ void elseExpression,
+ DartType inferredType) {}
@override
void constructorInvocation(ExpressionJudgment judgment, int fileOffset,
@@ -75,14 +106,24 @@
ExpressionJudgment judgment, int fileOffset, DartType inferredType) {}
@override
- void doStatement(StatementJudgment judgment, int fileOffset) {}
+ void doStatement(
+ StatementJudgment judgment,
+ int fileOffset,
+ Token doKeyword,
+ void body,
+ Token whileKeyword,
+ Token leftParenthesis,
+ void condition,
+ Token rightParenthesis,
+ Token semicolon) {}
@override
- void doubleLiteral(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType) {}
+ void doubleLiteral(ExpressionJudgment judgment, int fileOffset, Token literal,
+ DartType inferredType) {}
@override
- void expressionStatement(StatementJudgment judgment, int fileOffset) {}
+ void expressionStatement(StatementJudgment judgment, int fileOffset,
+ void expression, Token semicolon) {}
@override
void fieldInitializer(
@@ -115,26 +156,48 @@
ExpressionJudgment judgment, int fileOffset, DartType inferredType) {}
@override
- void ifStatement(StatementJudgment judgment, int fileOffset) {}
+ void ifStatement(
+ StatementJudgment judgment,
+ int fileOffset,
+ Token ifKeyword,
+ Token leftParenthesis,
+ void condition,
+ Token rightParenthesis,
+ void thenStatement,
+ Token elseKeyword,
+ void elseStatement) {}
@override
void indexAssign(ExpressionJudgment judgment, int fileOffset,
Node writeMember, Node combiner, DartType inferredType) {}
@override
- void intLiteral(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType) {}
+ void intLiteral(ExpressionJudgment judgment, int fileOffset, Token literal,
+ DartType inferredType) {}
@override
void invalidInitializer(InitializerJudgment judgment, int fileOffset) {}
@override
- void isExpression(ExpressionJudgment judgment, int fileOffset,
- DartType testedType, DartType inferredType) {}
+ void isExpression(
+ ExpressionJudgment judgment,
+ int fileOffset,
+ void expression,
+ Token isOperator,
+ void literalType,
+ DartType testedType,
+ DartType inferredType) {}
@override
- void isNotExpression(ExpressionJudgment judgment, int fileOffset,
- DartType type, DartType inferredType) {}
+ void isNotExpression(
+ ExpressionJudgment judgment,
+ int fileOffset,
+ void expression,
+ Token isOperator,
+ Token notOperator,
+ void literalType,
+ DartType testedType,
+ DartType inferredType) {}
@override
void labeledStatement(StatementJudgment judgment, int fileOffset) {}
@@ -181,7 +244,7 @@
ExpressionJudgment judgment, int fileOffset, DartType inferredType) {}
@override
- void nullLiteral(ExpressionJudgment judgment, int fileOffset,
+ void nullLiteral(ExpressionJudgment judgment, int fileOffset, Token literal,
bool isSynthetic, DartType inferredType) {}
@override
@@ -210,11 +273,12 @@
InitializerJudgment judgment, int fileOffset, Node initializerTarget) {}
@override
- void rethrow_(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType) {}
+ void rethrow_(ExpressionJudgment judgment, int fileOffset,
+ Token rethrowKeyword, DartType inferredType) {}
@override
- void returnStatement(StatementJudgment judgment, int fileOffset) {}
+ void returnStatement(StatementJudgment judgment, int fileOffset,
+ Token returnKeyword, void expression, Token semicolon) {}
@override
void staticAssign(
@@ -264,12 +328,12 @@
ExpressionJudgment judgment, int fileOffset, DartType inferredType) {}
@override
- void thisExpression(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType) {}
+ void thisExpression(ExpressionJudgment judgment, int fileOffset,
+ Token thisKeyword, DartType inferredType) {}
@override
- void throw_(
- ExpressionJudgment judgment, int fileOffset, DartType inferredType) {}
+ void throw_(ExpressionJudgment judgment, int fileOffset, Token throwKeyword,
+ void expression, DartType inferredType) {}
@override
void tryCatch(StatementJudgment judgment, int fileOffset) {}
@@ -307,10 +371,18 @@
ExpressionJudgment judgment, int fileOffset, DartType inferredType) {}
@override
- void whileStatement(StatementJudgment judgment, int fileOffset) {}
+ void whileStatement(
+ StatementJudgment judgment,
+ int fileOffset,
+ Token whileKeyword,
+ Token leftParenthesis,
+ void condition,
+ Token rightParenthesis,
+ void body) {}
@override
- void yieldStatement(StatementJudgment judgment, int fileOffset) {}
+ void yieldStatement(StatementJudgment judgment, int fileOffset,
+ Token yieldKeyword, Token star, void expression, Token semicolon) {}
}
const toplevelInferenceFactory = const ToplevelInferenceFactory();