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

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

Issue 3008133002: Handle local invoke in inferrer (Closed)
Patch Set: dartfmt 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..8327443352d67e924b4bb50c27577a3cb42d31ef 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,80 @@ class KernelTypeSystemStrategy implements TypeSystemStrategy<ir.Node> {
}
}
}
+
+class KernelGlobalTypeInferenceElementData
+ extends GlobalTypeInferenceElementData<ir.Node> {
+ Map<ir.Node, TypeMask> _sendMap;
Siggi Cherem (dart-lang) 2017/09/05 19:20:39 nit: TODO to rename? (I guess we also intend to re
Johnni Winther 2017/09/07 08:08:52 Done.
+
+ @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');
+ }
+}

Powered by Google App Engine
This is Rietveld 408576698