| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE.md file. | 3 // BSD-style license that can be found in the LICENSE.md file. |
| 4 | 4 |
| 5 import 'package:front_end/src/fasta/type_inference/type_inference_engine.dart'; | 5 import 'package:front_end/src/fasta/type_inference/type_inference_engine.dart'; |
| 6 import 'package:kernel/ast.dart'; | 6 import 'package:kernel/ast.dart'; |
| 7 | 7 |
| 8 /// Base class for [TypeInferenceListener] that defines the API for debugging. | 8 /// Base class for [TypeInferenceListener] that defines the API for debugging. |
| 9 /// | 9 /// |
| 10 /// By default no debug info is printed. To enable debug printing, mix in | 10 /// By default no debug info is printed. To enable debug printing, mix in |
| 11 /// [TypeInferenceDebugging]. | 11 /// [TypeInferenceDebugging]. |
| 12 class TypeInferenceBase { | 12 class TypeInferenceBase { |
| 13 void debugDependency(FieldNode fieldNode) {} | 13 void debugDependency(AccessorNode accessorNode) {} |
| 14 | 14 |
| 15 bool debugExpressionEnter( | 15 bool debugExpressionEnter( |
| 16 String expressionType, Expression expression, DartType typeContext) { | 16 String expressionType, Expression expression, DartType typeContext) { |
| 17 return false; | 17 return false; |
| 18 } | 18 } |
| 19 | 19 |
| 20 void debugExpressionExit( | 20 void debugExpressionExit( |
| 21 String expressionType, Expression expression, DartType inferredType) {} | 21 String expressionType, Expression expression, DartType inferredType) {} |
| 22 | 22 |
| 23 void debugInitializerEnter(String initializerType, Initializer initializer) {} | 23 void debugInitializerEnter(String initializerType, Initializer initializer) {} |
| 24 | 24 |
| 25 void debugInitializerExit(String initializerType, Initializer initializer) {} | 25 void debugInitializerExit(String initializerType, Initializer initializer) {} |
| 26 | 26 |
| 27 void debugStatementEnter(String statementType, Statement statement) {} | 27 void debugStatementEnter(String statementType, Statement statement) {} |
| 28 | 28 |
| 29 void debugStatementExit(String statementType, Statement statement) {} | 29 void debugStatementExit(String statementType, Statement statement) {} |
| 30 } | 30 } |
| 31 | 31 |
| 32 /// Mixin which can be applied to [TypeInferenceListener] to cause debug info to | 32 /// Mixin which can be applied to [TypeInferenceListener] to cause debug info to |
| 33 /// be printed. | 33 /// be printed. |
| 34 class TypeInferenceDebugging implements TypeInferenceBase { | 34 class TypeInferenceDebugging implements TypeInferenceBase { |
| 35 void debugDependency(FieldNode fieldNode) { | 35 void debugDependency(AccessorNode accessorNode) { |
| 36 print('Dependency $fieldNode'); | 36 print('Dependency $accessorNode'); |
| 37 } | 37 } |
| 38 | 38 |
| 39 bool debugExpressionEnter( | 39 bool debugExpressionEnter( |
| 40 String expressionType, Expression expression, DartType typeContext) { | 40 String expressionType, Expression expression, DartType typeContext) { |
| 41 print('Enter $expressionType($expression) (context=$typeContext)'); | 41 print('Enter $expressionType($expression) (context=$typeContext)'); |
| 42 return true; | 42 return true; |
| 43 } | 43 } |
| 44 | 44 |
| 45 void debugExpressionExit( | 45 void debugExpressionExit( |
| 46 String expressionType, Expression expression, DartType inferredType) { | 46 String expressionType, Expression expression, DartType inferredType) { |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 242 | 242 |
| 243 void propertyGetExit(Expression expression, DartType inferredType) => | 243 void propertyGetExit(Expression expression, DartType inferredType) => |
| 244 debugExpressionExit("propertyGet", expression, inferredType); | 244 debugExpressionExit("propertyGet", expression, inferredType); |
| 245 | 245 |
| 246 bool propertySetEnter(PropertySet expression, DartType typeContext) => | 246 bool propertySetEnter(PropertySet expression, DartType typeContext) => |
| 247 debugExpressionEnter("propertySet", expression, typeContext); | 247 debugExpressionEnter("propertySet", expression, typeContext); |
| 248 | 248 |
| 249 void propertySetExit(PropertySet expression, DartType inferredType) => | 249 void propertySetExit(PropertySet expression, DartType inferredType) => |
| 250 debugExpressionExit("propertySet", expression, inferredType); | 250 debugExpressionExit("propertySet", expression, inferredType); |
| 251 | 251 |
| 252 void recordDependency(FieldNode fieldNode) => debugDependency(fieldNode); | 252 void recordDependency(AccessorNode accessorNode) => |
| 253 debugDependency(accessorNode); |
| 253 | 254 |
| 254 void redirectingInitializerEnter(RedirectingInitializer initializer) => | 255 void redirectingInitializerEnter(RedirectingInitializer initializer) => |
| 255 debugInitializerEnter("redirectingInitializer", initializer); | 256 debugInitializerEnter("redirectingInitializer", initializer); |
| 256 | 257 |
| 257 void redirectingInitializerExit(RedirectingInitializer initializer) => | 258 void redirectingInitializerExit(RedirectingInitializer initializer) => |
| 258 debugInitializerExit("redirectingInitializer", initializer); | 259 debugInitializerExit("redirectingInitializer", initializer); |
| 259 | 260 |
| 260 void returnStatementEnter(ReturnStatement statement) => | 261 void returnStatementEnter(ReturnStatement statement) => |
| 261 debugStatementEnter('returnStatement', statement); | 262 debugStatementEnter('returnStatement', statement); |
| 262 | 263 |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 320 | 321 |
| 321 void variableSetExit(VariableSet expression, DartType inferredType) => | 322 void variableSetExit(VariableSet expression, DartType inferredType) => |
| 322 debugExpressionExit("variableSet", expression, inferredType); | 323 debugExpressionExit("variableSet", expression, inferredType); |
| 323 | 324 |
| 324 void yieldStatementEnter(YieldStatement statement) => | 325 void yieldStatementEnter(YieldStatement statement) => |
| 325 debugStatementEnter('yieldStatement', statement); | 326 debugStatementEnter('yieldStatement', statement); |
| 326 | 327 |
| 327 void yieldStatementExit(YieldStatement statement) => | 328 void yieldStatementExit(YieldStatement statement) => |
| 328 debugStatementExit('yieldStatement', statement); | 329 debugStatementExit('yieldStatement', statement); |
| 329 } | 330 } |
| OLD | NEW |