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

Unified Diff: sdk/lib/_internal/compiler/implementation/compiler.dart

Issue 12334070: Support runtime check of function types. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Minor fix Created 7 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: sdk/lib/_internal/compiler/implementation/compiler.dart
diff --git a/sdk/lib/_internal/compiler/implementation/compiler.dart b/sdk/lib/_internal/compiler/implementation/compiler.dart
index 177eefe4421865b1606816a6171c4e9f15d04481..96490f5c03790dbf7f869857c9fc4a0d3e50e52b 100644
--- a/sdk/lib/_internal/compiler/implementation/compiler.dart
+++ b/sdk/lib/_internal/compiler/implementation/compiler.dart
@@ -126,7 +126,8 @@ abstract class Backend {
return new ItemCompilationContext();
}
- bool needsRti(ClassElement cls);
+ bool classNeedsRti(ClassElement cls);
+ bool methodNeedsRti(FunctionElement function);
// The following methods are hooks for the backend to register its
// helper methods.
@@ -152,7 +153,24 @@ abstract class Backend {
void registerFallThroughError(TreeElements elements) {}
void registerSuperNoSuchMethod(TreeElements elements) {}
void registerConstantMap(TreeElements elements) {}
- void registerRuntimeType(TreeElements elements) {}
+ /**
+ * Call this to register that an instantiated generic class has a call
+ * method.
+ */
+ void registerGenericCallMethod(Element callMethod,
+ Enqueuer enqueuer,
+ TreeElements elements) {}
+ /**
+ * Call this to register that a getter exists for a function on an
+ * instantiated generic class.
+ */
+ void registerGenericClosure(Element closure,
+ Enqueuer enqueuer,
+ TreeElements elements) {}
+ /**
+ * Call this to register that the [:runtimeType:] property has been accessed.
+ */
+ void registerRuntimeType(Enqueuer enqueuer, TreeElements elements) {}
void registerRequiredType(DartType type, Element enclosingElement) {}
void registerClassUsingVariableExpression(ClassElement cls) {}

Powered by Google App Engine
This is Rietveld 408576698