Index: pkg/compiler/lib/src/cps_ir/optimize_interceptors.dart |
diff --git a/pkg/compiler/lib/src/cps_ir/optimize_interceptors.dart b/pkg/compiler/lib/src/cps_ir/optimize_interceptors.dart |
index d9c59b683884b5b28e91fc14dde1e8edcb8c3c9c..9dd05c7b24b68a1d9ed90a9aed1e99b2b397d9fa 100644 |
--- a/pkg/compiler/lib/src/cps_ir/optimize_interceptors.dart |
+++ b/pkg/compiler/lib/src/cps_ir/optimize_interceptors.dart |
@@ -104,7 +104,7 @@ class OptimizeInterceptors extends TrampolineRecursiveVisitor implements Pass { |
for (Reference ref = interceptor.firstRef; ref != null; ref = ref.next) { |
Node use = ref.parent; |
if (use is InvokeMethod) { |
- TypeMask type = use.dartReceiver.type; |
+ TypeMask type = use.receiver.type; |
bool canOccurAsReceiver(ClassElement elem) { |
return classWorld.isInstantiated(elem) && |
!typeSystem.areDisjoint(type, |
@@ -137,7 +137,7 @@ class OptimizeInterceptors extends TrampolineRecursiveVisitor implements Pass { |
for (Reference ref = node.firstRef; ref != null; ref = ref.next) { |
if (ref.parent is InvokeMethod) { |
InvokeMethod invoke = ref.parent; |
- if (invoke.receiverRef != ref) return false; |
+ if (invoke.interceptorRef != ref) return false; |
var interceptedClasses = |
backend.getInterceptedClassesOn(invoke.selector.name); |
if (interceptedClasses.contains(helpers.jsDoubleClass)) return false; |
@@ -157,7 +157,7 @@ class OptimizeInterceptors extends TrampolineRecursiveVisitor implements Pass { |
Node use = ref.parent; |
if (use is InvokeMethod) { |
if (selectorsOnNull.contains(use.selector) && |
- use.dartReceiver.type.isNullable) { |
+ use.receiver.type.isNullable) { |
return true; |
} |
} else { |
@@ -261,7 +261,7 @@ class OptimizeInterceptors extends TrampolineRecursiveVisitor implements Pass { |
@override |
void visitInvokeMethod(InvokeMethod node) { |
if (node.callingConvention != CallingConvention.Intercepted) return; |
- Primitive interceptor = node.receiver; |
+ Primitive interceptor = node.interceptor; |
if (interceptor is! Interceptor || |
interceptor.hasMultipleUses || |
loopHeaderFor[interceptor] != currentLoopHeader) { |
@@ -269,8 +269,7 @@ class OptimizeInterceptors extends TrampolineRecursiveVisitor implements Pass { |
} |
// TODO(asgerf): Consider heuristics for when to use one-shot interceptors. |
// E.g. using only one-shot interceptors with a fast path. |
- node.callingConvention = CallingConvention.OneShotIntercepted; |
- node..receiverRef.unlink()..receiverRef = node.argumentRefs.removeAt(0); |
+ node.makeOneShotIntercepted(); |
} |
@override |