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) {} |