Index: pkg/front_end/lib/src/fasta/type_inference/type_inference_engine.dart |
diff --git a/pkg/front_end/lib/src/fasta/type_inference/type_inference_engine.dart b/pkg/front_end/lib/src/fasta/type_inference/type_inference_engine.dart |
index 450a01b4bf40f98f035a4c3bcc16114c9763dd5f..5ed1792a1b21806ffbfd84d5bfe0f664d8197a87 100644 |
--- a/pkg/front_end/lib/src/fasta/type_inference/type_inference_engine.dart |
+++ b/pkg/front_end/lib/src/fasta/type_inference/type_inference_engine.dart |
@@ -4,7 +4,7 @@ |
import 'package:front_end/src/base/instrumentation.dart'; |
import 'package:front_end/src/dependency_walker.dart' as dependencyWalker; |
-import 'package:front_end/src/fasta/deprecated_problems.dart'; |
+import 'package:front_end/src/fasta/problems.dart' show unhandled; |
import 'package:front_end/src/fasta/kernel/kernel_shadow_ast.dart'; |
import 'package:front_end/src/fasta/type_inference/type_inference_listener.dart'; |
import 'package:front_end/src/fasta/type_inference/type_inferrer.dart'; |
@@ -403,7 +403,9 @@ abstract class TypeInferenceEngineImpl extends TypeInferenceEngine { |
// An method depends on itself (possibly by way of intermediate |
// methods). This should never happen, because it would require a |
// circular class hierarchy (which Fasta prevents). |
- deprecated_internalProblem('Circular method inference'); |
+ dynamic parent = methodNode.procedure.parent; |
+ unhandled("Circular method inference", "inferMethodIfNeeded", |
+ methodNode.procedure.fileOffset, Uri.parse(parent.fileUri)); |
break; |
case InferenceState.NotInferredYet: |
methodNode.state = InferenceState.Inferring; |
@@ -512,8 +514,12 @@ abstract class TypeInferenceEngineImpl extends TypeInferenceEngine { |
overriddenType = override.setterType; |
} |
} else { |
- throw deprecated_internalProblem( |
- 'Unexpected overridden member type: ${override.runtimeType}'); |
+ dynamic parent = override.parent; |
+ return unhandled( |
+ "${override.runtimeType}", |
+ "_computeOverriddenAccessorType", |
+ override.fileOffset, |
+ Uri.parse(parent.fileUri)); |
} |
var superclass = override.enclosingClass; |
if (superclass.typeParameters.isEmpty) return overriddenType; |