Index: sdk/lib/_internal/compiler/implementation/ssa/codegen.dart |
=================================================================== |
--- sdk/lib/_internal/compiler/implementation/ssa/codegen.dart (revision 15379) |
+++ sdk/lib/_internal/compiler/implementation/ssa/codegen.dart (working copy) |
@@ -1559,18 +1559,12 @@ |
arguments = visitArguments(node.inputs); |
bool inLoop = node.block.enclosingLoopHeader != null; |
- // Register this invocation to collect the types used at all call sites. |
Selector selector = getOptimizedSelectorFor(node, node.selector); |
- // TODO(ngeoffray): Remove the following restriction. Because |
- // the second input of this interceptor call is the actual |
- // receiver (the first is the interceptor), the backend gets |
- // confused. We should pass a list of types instead of a node to |
- // [registerDynamicInvocation]. |
- if (!node.isInterceptorCall) { |
- backend.registerDynamicInvocation(node, selector, types); |
- } else { |
+ if (node.isInterceptorCall) { |
backend.addInterceptedSelector(selector); |
} |
+ // Register this invocation to collect the types used at all call sites. |
+ backend.registerDynamicInvocation(node, selector, types); |
// If we don't know what we're calling or if we are calling a getter, |
// we need to register that fact that we may be calling a closure |