Index: pkg/compiler/lib/src/cps_ir/inline.dart |
diff --git a/pkg/compiler/lib/src/cps_ir/inline.dart b/pkg/compiler/lib/src/cps_ir/inline.dart |
index d6096afea0902b5527a739cf13c606a3c6028633..6c9f30ca720dc91cf18de0444a25d503c46a8617 100644 |
--- a/pkg/compiler/lib/src/cps_ir/inline.dart |
+++ b/pkg/compiler/lib/src/cps_ir/inline.dart |
@@ -237,9 +237,9 @@ class SizeVisitor extends TrampolineRecursiveVisitor { |
static int sizeOf(InvocationPrimitive invoke, FunctionDefinition function) { |
SizeVisitor visitor = new SizeVisitor(); |
visitor.visit(function); |
- visitor.countArgument(invoke.receiver, function.thisParameter); |
- for (int i = 0; i < invoke.arguments.length; ++i) { |
- visitor.countArgument(invoke.arguments[i], function.parameters[i]); |
+ visitor.countArgument(invoke.receiverRef, function.thisParameter); |
+ for (int i = 0; i < invoke.argumentRefs.length; ++i) { |
+ visitor.countArgument(invoke.argumentRefs[i], function.parameters[i]); |
} |
return visitor.size; |
} |
@@ -336,13 +336,13 @@ class InliningVisitor extends TrampolineRecursiveVisitor { |
/// function that takes optional arguments not passed at the call site. |
FunctionDefinition buildAdapter(InvokeMethod node, FunctionElement target) { |
Parameter thisParameter = new Parameter(new ThisParameterLocal(target)) |
- ..type = node.receiver.definition.type; |
+ ..type = node.receiver.type; |
List<Parameter> parameters = new List<Parameter>.generate( |
- node.arguments.length, |
+ node.argumentRefs.length, |
(int index) { |
// TODO(kmillikin): Use a hint for the parameter names. |
return new Parameter(null) |
- ..type = node.arguments[index].definition.type; |
+ ..type = node.argument(index).type; |
}); |
Continuation returnContinuation = new Continuation.retrn(); |
CpsFragment cps = new CpsFragment(); |
@@ -444,7 +444,7 @@ class InliningVisitor extends TrampolineRecursiveVisitor { |
return null; |
} |
- Reference<Primitive> dartReceiver = invoke.dartReceiverReference; |
+ Reference<Primitive> dartReceiver = invoke.dartReceiverRef; |
TypeMask abstractReceiver = |
dartReceiver == null ? null : abstractType(dartReceiver); |
// The receiver is non-null in a method body, unless the receiver is known |
@@ -455,7 +455,7 @@ class InliningVisitor extends TrampolineRecursiveVisitor { |
? abstractReceiver |
: abstractReceiver.nonNullable(); |
List<TypeMask> abstractArguments = |
- invoke.arguments.map(abstractType).toList(); |
+ invoke.argumentRefs.map(abstractType).toList(); |
var cachedResult = _inliner.cache.get(target, callStructure, |
abstractReceiverInMethod, |
abstractArguments); |
@@ -465,9 +465,8 @@ class InliningVisitor extends TrampolineRecursiveVisitor { |
Primitive finish(FunctionDefinition function) { |
_fragment = new CpsFragment(invoke.sourceInformation); |
- Primitive receiver = invoke.receiver?.definition; |
- List<Primitive> arguments = |
- invoke.arguments.map((Reference ref) => ref.definition).toList(); |
+ Primitive receiver = invoke.receiver; |
+ List<Primitive> arguments = invoke.arguments.toList(); |
// Add a null check to the inlined function body if necessary. The |
// cached function body does not contain the null check. |
if (dartReceiver != null && abstractReceiver.isNullable) { |
@@ -518,17 +517,17 @@ class InliningVisitor extends TrampolineRecursiveVisitor { |
variable.type = value.definition.type; |
} |
if (invoke.callingConvention == CallingConvention.Intercepted) { |
- setValue(function.thisParameter, invoke.receiver); |
+ setValue(function.thisParameter, invoke.receiverRef); |
function.parameters[0].type = abstractReceiverInMethod; |
- for (int i = 1; i < invoke.arguments.length; ++i) { |
- setValue(function.parameters[i], invoke.arguments[i]); |
+ for (int i = 1; i < invoke.argumentRefs.length; ++i) { |
+ setValue(function.parameters[i], invoke.argumentRefs[i]); |
} |
} else { |
- if (invoke.receiver != null) { |
+ if (invoke.receiverRef != null) { |
function.thisParameter.type = abstractReceiverInMethod; |
} |
- for (int i = 0; i < invoke.arguments.length; ++i) { |
- setValue(function.parameters[i], invoke.arguments[i]); |
+ for (int i = 0; i < invoke.argumentRefs.length; ++i) { |
+ setValue(function.parameters[i], invoke.argumentRefs[i]); |
} |
} |
optimizeBeforeInlining(function); |