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

Unified Diff: pkg/front_end/lib/src/fasta/type_inference/type_inference_listener.dart

Issue 2894343002: Add statement hooks to TypeInferenceListener. (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
« no previous file with comments | « pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/front_end/lib/src/fasta/type_inference/type_inference_listener.dart
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_inference_listener.dart b/pkg/front_end/lib/src/fasta/type_inference/type_inference_listener.dart
index ff368b5840971d79d1ce818edc1b1e74ebe16e4c..f4ad5f8fd4383ed921430a818aab197a0d9aa473 100644
--- a/pkg/front_end/lib/src/fasta/type_inference/type_inference_listener.dart
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_inference_listener.dart
@@ -14,8 +14,12 @@ class TypeInferenceBase {
return false;
}
- debugExpressionExit(
+ void debugExpressionExit(
String expressionType, Expression expression, DartType inferredType) {}
+
+ void debugStatementEnter(String statementType, Statement statement) {}
+
+ void debugStatementExit(String statementType, Statement statement) {}
}
/// Mixin which can be applied to [TypeInferenceListener] to cause debug info to
@@ -27,10 +31,18 @@ class TypeInferenceDebugging implements TypeInferenceBase {
return true;
}
- debugExpressionExit(
+ void debugExpressionExit(
String expressionType, Expression expression, DartType inferredType) {
print('Exit $expressionType($expression) (type=$inferredType)');
}
+
+ void debugStatementEnter(String statementType, Statement statement) {
+ print('Enter $statementType($statement)');
+ }
+
+ void debugStatementExit(String statementType, Statement statement) {
+ print('Exit $statementType($statement)');
+ }
}
/// Callback interface used by [TypeInferrer] to report the results of type
@@ -56,6 +68,10 @@ class TypeInferenceListener
void asExpressionExit(AsExpression expression, DartType inferredType) =>
debugExpressionExit("asExpression", expression, inferredType);
+ void blockEnter(Block statement) => debugStatementEnter('block', statement);
+
+ void blockExit(Block statement) => debugStatementExit('block', statement);
+
bool boolLiteralEnter(BoolLiteral expression, DartType typeContext) =>
debugExpressionEnter("boolLiteral", expression, typeContext);
@@ -84,6 +100,18 @@ class TypeInferenceListener
void doubleLiteralExit(DoubleLiteral expression, DartType inferredType) =>
debugExpressionExit("doubleLiteral", expression, inferredType);
+ void expressionStatementEnter(ExpressionStatement statement) =>
+ debugStatementEnter('expressionStatement', statement);
+
+ void expressionStatementExit(ExpressionStatement statement) =>
+ debugStatementExit('expressionStatement', statement);
+
+ void functionDeclarationEnter(FunctionDeclaration statement) =>
+ debugStatementEnter('functionDeclaration', statement);
+
+ void functionDeclarationExit(FunctionDeclaration statement) =>
+ debugStatementExit('functionDeclaration', statement);
+
bool functionExpressionEnter(
FunctionExpression expression, DartType typeContext) =>
debugExpressionEnter("functionExpression", expression, typeContext);
@@ -92,6 +120,12 @@ class TypeInferenceListener
FunctionExpression expression, DartType inferredType) =>
debugExpressionExit("functionExpression", expression, inferredType);
+ void ifStatementEnter(IfStatement statement) =>
+ debugStatementEnter('ifStatement', statement);
+
+ void ifStatementExit(IfStatement statement) =>
+ debugStatementExit('ifStatement', statement);
+
bool intLiteralEnter(IntLiteral expression, DartType typeContext) =>
debugExpressionEnter("intLiteral", expression, typeContext);
@@ -130,6 +164,12 @@ class TypeInferenceListener
void nullLiteralExit(NullLiteral expression, DartType inferredType) =>
debugExpressionExit("nullLiteral", expression, inferredType);
+ void returnStatementEnter(ReturnStatement statement) =>
+ debugStatementEnter('returnStatement', statement);
+
+ void returnStatementExit(ReturnStatement statement) =>
+ debugStatementExit('returnStatement', statement);
+
bool staticGetEnter(StaticGet expression, DartType typeContext) =>
debugExpressionEnter("staticGet", expression, typeContext);
@@ -158,6 +198,12 @@ class TypeInferenceListener
void stringLiteralExit(StringLiteral expression, DartType inferredType) =>
debugExpressionExit("StringLiteral", expression, inferredType);
+ void variableDeclarationEnter(VariableDeclaration statement) =>
+ debugStatementEnter('variableDeclaration', statement);
+
+ void variableDeclarationExit(VariableDeclaration statement) =>
+ debugStatementExit('variableDeclaration', statement);
+
bool variableGetEnter(VariableGet expression, DartType typeContext) =>
debugExpressionEnter("variableGet", expression, typeContext);
« no previous file with comments | « pkg/front_end/lib/src/fasta/kernel/kernel_shadow_ast.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698