Index: pkg/compiler/lib/src/kernel/kernel_visitor.dart |
diff --git a/pkg/compiler/lib/src/kernel/kernel_visitor.dart b/pkg/compiler/lib/src/kernel/kernel_visitor.dart |
index cde10707af141e4ba678448779c25e328587ee78..c2d458c46f08c66a4f922a0d8230be19e08a3344 100644 |
--- a/pkg/compiler/lib/src/kernel/kernel_visitor.dart |
+++ b/pkg/compiler/lib/src/kernel/kernel_visitor.dart |
@@ -476,12 +476,14 @@ class KernelVisitor extends Object |
// situation, the assignment to [ir.PropertyGet] should act as an |
// assertion. |
ir.PropertyGet expression = visitForValue(send); |
- return PropertyAccessor.make(expression.receiver, expression.name); |
+ return PropertyAccessor.make( |
+ expression.receiver, expression.name, null, null); |
} else if (kernel.isSyntheticError(element)) { |
return buildStaticAccessor(null); |
} else if (element.isGetter) { |
if (element.isInstanceMember) { |
- return new ThisPropertyAccessor(kernel.irName(element.name, element)); |
+ return new ThisPropertyAccessor( |
+ kernel.irName(element.name, element), null, null); |
} else { |
GetterElement getter = element; |
Element setter = getter.setter; |
@@ -1259,7 +1261,8 @@ class KernelVisitor extends Object |
ir.Expression receiverNode = |
receiver == null ? new ir.ThisExpression() : visitForValue(receiver); |
return buildCompound( |
- PropertyAccessor.make(receiverNode, nameToIrName(name)), rhs); |
+ PropertyAccessor.make(receiverNode, nameToIrName(name), null, null), |
+ rhs); |
} |
@override |
@@ -1275,8 +1278,8 @@ class KernelVisitor extends Object |
Send node, Node receiver, Name name, Node rhs, _) { |
ir.Name irName = nameToIrName(name); |
Accessor accessor = (receiver == null) |
- ? new ThisPropertyAccessor(irName) |
- : PropertyAccessor.make(visitForValue(receiver), irName); |
+ ? new ThisPropertyAccessor(irName, null, null) |
+ : PropertyAccessor.make(visitForValue(receiver), irName, null, null); |
return accessor.buildNullAwareAssignment(visitForValue(rhs), |
voidContext: isVoidContext); |
} |
@@ -1306,7 +1309,7 @@ class KernelVisitor extends Object |
ir.MethodInvocation buildBinaryOperator( |
Node left, String operator, Node right) { |
ir.Name name = kernel.irName(operator, currentElement); |
- return makeBinary(visitForValue(left), name, visitForValue(right)); |
+ return makeBinary(visitForValue(left), name, null, visitForValue(right)); |
} |
@override |
@@ -1486,7 +1489,7 @@ class KernelVisitor extends Object |
Accessor buildNullAwarePropertyAccessor(Node receiver, Name name) { |
return new NullAwarePropertyAccessor( |
- visitForValue(receiver), nameToIrName(name)); |
+ visitForValue(receiver), nameToIrName(name), null, null); |
} |
@override |
@@ -1547,7 +1550,8 @@ class KernelVisitor extends Object |
} |
Accessor buildIndexAccessor(Node receiver, Node index) { |
- return IndexAccessor.make(visitForValue(receiver), visitForValue(index)); |
+ return IndexAccessor.make( |
+ visitForValue(receiver), visitForValue(index), null, null); |
} |
@override |
@@ -2147,8 +2151,10 @@ class KernelVisitor extends Object |
@override |
ir.SuperMethodInvocation visitSuperBinary(Send node, FunctionElement function, |
BinaryOperator operator, Node argument, _) { |
- return new ir.SuperMethodInvocation(kernel.functionToIr(function), |
- new ir.Arguments(<ir.Expression>[visitForValue(argument)])); |
+ return new ir.SuperMethodInvocation( |
+ kernel.irName(operator.selectorName, currentElement), |
+ new ir.Arguments(<ir.Expression>[visitForValue(argument)]), |
+ kernel.functionToIr(function)); |
} |
@override |
@@ -2186,9 +2192,10 @@ class KernelVisitor extends Object |
ir.SuperMethodInvocation buildSuperEquals( |
FunctionElement function, Node argument) { |
return new ir.SuperMethodInvocation( |
- kernel.functionToIr(function), |
+ kernel.irName(function.name, function), |
new ir.Arguments(<ir.Expression>[visitForValue(argument)], |
- types: null, named: null)); |
+ types: null, named: null), |
+ kernel.functionToIr(function)); |
} |
@override |
@@ -2269,7 +2276,9 @@ class KernelVisitor extends Object |
!getter.isConst) { |
setter = getter; |
} |
+ Element element = getter ?? setter; |
return new SuperPropertyAccessor( |
+ kernel.irName(element.name, element), |
(getter == null) ? null : kernel.elementToIr(getter), |
(setter == null) ? null : kernel.elementToIr(setter)); |
} |
@@ -2361,8 +2370,8 @@ class KernelVisitor extends Object |
ir.SuperMethodInvocation buildSuperMethodInvoke( |
MethodElement method, NodeList arguments) { |
- return new ir.SuperMethodInvocation( |
- kernel.functionToIr(method), buildArguments(arguments)); |
+ return new ir.SuperMethodInvocation(kernel.irName(method.name, method), |
+ buildArguments(arguments), kernel.functionToIr(method)); |
} |
@override |
@@ -2420,8 +2429,8 @@ class KernelVisitor extends Object |
@override |
ir.SuperMethodInvocation visitSuperUnary( |
Send node, UnaryOperator operator, FunctionElement function, _) { |
- return new ir.SuperMethodInvocation( |
- kernel.functionToIr(function), new ir.Arguments.empty()); |
+ return new ir.SuperMethodInvocation(kernel.irName(function.name, function), |
+ new ir.Arguments.empty(), kernel.functionToIr(function)); |
} |
@override |
@@ -2451,7 +2460,7 @@ class KernelVisitor extends Object |
} |
Accessor buildThisPropertyAccessor(Name name) { |
- return new ThisPropertyAccessor(nameToIrName(name)); |
+ return new ThisPropertyAccessor(nameToIrName(name), null, null); |
} |
@override |