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

Unified Diff: pkg/compiler/lib/src/inferrer/kernel_inferrer_engine.dart

Issue 3008133002: Handle local invoke in inferrer (Closed)
Patch Set: Updated cf. comment Created 3 years, 3 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/compiler/lib/src/inferrer/kernel_inferrer_engine.dart
diff --git a/pkg/compiler/lib/src/inferrer/kernel_inferrer_engine.dart b/pkg/compiler/lib/src/inferrer/kernel_inferrer_engine.dart
index 21dc8ec5febd9714aea9159227b132f695edc948..bee3b4d2e48d143dc2fd11e9fbd63ee34d2a7eca 100644
--- a/pkg/compiler/lib/src/inferrer/kernel_inferrer_engine.dart
+++ b/pkg/compiler/lib/src/inferrer/kernel_inferrer_engine.dart
@@ -205,7 +205,7 @@ class KernelInferrerEngine extends InferrerEngineImpl<ir.Node> {
@override
GlobalTypeInferenceElementData<ir.Node> createElementData() {
- throw new UnimplementedError('KernelInferrerEngine.createElementData');
+ return new KernelGlobalTypeInferenceElementData();
}
}
@@ -343,3 +343,81 @@ class KernelTypeSystemStrategy implements TypeSystemStrategy<ir.Node> {
}
}
}
+
+class KernelGlobalTypeInferenceElementData
+ extends GlobalTypeInferenceElementData<ir.Node> {
+ // TODO(johnniwinther): Rename this together with [typeOfSend].
+ Map<ir.Node, TypeMask> _sendMap;
+
+ @override
+ TypeMask typeOfSend(ir.Node node) {
+ if (_sendMap == null) return null;
+ return _sendMap[node];
+ }
+
+ @override
+ void setCurrentTypeMask(ir.Node node, TypeMask mask) {
+ throw new UnsupportedError(
+ 'KernelGlobalTypeInferenceElementData.setCurrentTypeMask');
+ }
+
+ @override
+ void setMoveNextTypeMask(ir.Node node, TypeMask mask) {
+ throw new UnsupportedError(
+ 'KernelGlobalTypeInferenceElementData.setMoveNextTypeMask');
+ }
+
+ @override
+ void setIteratorTypeMask(ir.Node node, TypeMask mask) {
+ throw new UnsupportedError(
+ 'KernelGlobalTypeInferenceElementData.setIteratorTypeMask');
+ }
+
+ @override
+ TypeMask typeOfIteratorCurrent(ir.Node node) {
+ throw new UnsupportedError(
+ 'KernelGlobalTypeInferenceElementData.typeOfIteratorCurrent');
+ }
+
+ @override
+ TypeMask typeOfIteratorMoveNext(ir.Node node) {
+ throw new UnsupportedError(
+ 'KernelGlobalTypeInferenceElementData.typeOfIteratorMoveNext');
+ }
+
+ @override
+ TypeMask typeOfIterator(ir.Node node) {
+ throw new UnsupportedError(
+ 'KernelGlobalTypeInferenceElementData.typeOfIterator');
+ }
+
+ @override
+ void setOperatorTypeMaskInComplexSendSet(ir.Node node, TypeMask mask) {
+ throw new UnsupportedError(
+ 'KernelGlobalTypeInferenceElementData.setOperatorTypeMaskInComplexSendSet');
+ }
+
+ @override
+ void setGetterTypeMaskInComplexSendSet(ir.Node node, TypeMask mask) {
+ throw new UnsupportedError(
+ 'KernelGlobalTypeInferenceElementData.setGetterTypeMaskInComplexSendSet');
+ }
+
+ @override
+ void setTypeMask(ir.Node node, TypeMask mask) {
+ _sendMap ??= <ir.Node, TypeMask>{};
+ _sendMap[node] = mask;
+ }
+
+ @override
+ TypeMask typeOfOperator(ir.Node node) {
+ throw new UnsupportedError(
+ 'KernelGlobalTypeInferenceElementData.typeOfOperator');
+ }
+
+ @override
+ TypeMask typeOfGetter(ir.Node node) {
+ throw new UnsupportedError(
+ 'KernelGlobalTypeInferenceElementData.typeOfGetter');
+ }
+}
« no previous file with comments | « pkg/compiler/lib/src/inferrer/inferrer_engine.dart ('k') | pkg/compiler/lib/src/inferrer/type_graph_nodes.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698