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

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

Issue 2935323002: Lift nearly all top-level type inference restrictions. (Closed)
Patch Set: Created 3 years, 6 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/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 190652ed5f84583535ecb02bb1abeaf7655a88d8..4c4ee5e8d7038e20101929f107d9de245f5bab09 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
@@ -2,6 +2,7 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE.md file.
+import 'package:front_end/src/fasta/type_inference/type_inference_engine.dart';
import 'package:kernel/ast.dart';
/// Base class for [TypeInferenceListener] that defines the API for debugging.
@@ -9,6 +10,8 @@ import 'package:kernel/ast.dart';
/// By default no debug info is printed. To enable debug printing, mix in
/// [TypeInferenceDebugging].
class TypeInferenceBase {
+ void debugDependency(FieldNode fieldNode) {}
+
bool debugExpressionEnter(
String expressionType, Expression expression, DartType typeContext) {
return false;
@@ -29,6 +32,10 @@ class TypeInferenceBase {
/// Mixin which can be applied to [TypeInferenceListener] to cause debug info to
/// be printed.
class TypeInferenceDebugging implements TypeInferenceBase {
+ void debugDependency(FieldNode fieldNode) {
+ print('Dependency $fieldNode');
+ }
+
bool debugExpressionEnter(
String expressionType, Expression expression, DartType typeContext) {
print('Enter $expressionType($expression) (context=$typeContext)');
@@ -124,6 +131,12 @@ class TypeInferenceListener
void doubleLiteralExit(DoubleLiteral expression, DartType inferredType) =>
debugExpressionExit("doubleLiteral", expression, inferredType);
+ void dryRunEnter(Expression expression) =>
+ debugExpressionEnter("dryRun", expression, null);
+
+ void dryRunExit(Expression expression) =>
+ debugExpressionExit("dryRun", expression, null);
+
void expressionStatementEnter(ExpressionStatement statement) =>
debugStatementEnter('expressionStatement', statement);
@@ -230,6 +243,8 @@ class TypeInferenceListener
void propertySetExit(PropertySet expression, DartType inferredType) =>
debugExpressionExit("propertySet", expression, inferredType);
+ void recordDependency(FieldNode fieldNode) => debugDependency(fieldNode);
+
void redirectingInitializerEnter(RedirectingInitializer initializer) =>
debugInitializerEnter("redirectingInitializer", initializer);

Powered by Google App Engine
This is Rietveld 408576698