Index: pkg/compiler/lib/src/cps_ir/share_interceptors.dart |
diff --git a/pkg/compiler/lib/src/cps_ir/share_interceptors.dart b/pkg/compiler/lib/src/cps_ir/share_interceptors.dart |
index 5ae912e81d0baa0b4698bff409c298eb1ecb024b..3706725e3d102a8c63b652ec7fe196761d9e435c 100644 |
--- a/pkg/compiler/lib/src/cps_ir/share_interceptors.dart |
+++ b/pkg/compiler/lib/src/cps_ir/share_interceptors.dart |
@@ -15,7 +15,7 @@ import '../constants/values.dart'; |
///- pull interceptors out of loops |
///- replace interceptors with constants |
///- share interceptors when one is in scope of the other |
-class ShareInterceptors extends RecursiveVisitor implements Pass { |
+class ShareInterceptors extends TrampolineRecursiveVisitor implements Pass { |
String get passName => 'Share interceptors'; |
/// The innermost loop containing a given primitive. |
@@ -115,6 +115,7 @@ class ShareInterceptors extends RecursiveVisitor implements Pass { |
// The interceptor could not be shared. Replace it with a constant. |
Constant constantPrim = new Constant(constant); |
node.primitive = constantPrim; |
+ constantPrim.parent = node; |
constantPrim.hint = interceptor.hint; |
constantPrim.type = interceptor.type; |
constantPrim.substituteFor(interceptor); |