Index: sdk/lib/_internal/compiler/implementation/ssa/nodes.dart |
=================================================================== |
--- sdk/lib/_internal/compiler/implementation/ssa/nodes.dart (revision 22664) |
+++ sdk/lib/_internal/compiler/implementation/ssa/nodes.dart (working copy) |
@@ -1354,16 +1354,15 @@ |
} |
class HInvokeStatic extends HInvoke { |
+ final Element element; |
/** The first input must be the target. */ |
- HInvokeStatic(inputs, HType type) : super(inputs) { |
+ HInvokeStatic(this.element, inputs, HType type) : super(inputs) { |
instructionType = type; |
} |
toString() => 'invoke static: ${element.name}'; |
accept(HVisitor visitor) => visitor.visitInvokeStatic(this); |
int typeCode() => HInstruction.INVOKE_STATIC_TYPECODE; |
- Element get element => target.element; |
- HStatic get target => inputs[0]; |
} |
class HInvokeSuper extends HInvokeStatic { |
@@ -1371,15 +1370,15 @@ |
final ClassElement caller; |
final bool isSetter; |
- HInvokeSuper(this.caller, inputs, {this.isSetter}) |
- : super(inputs, HType.UNKNOWN); |
+ HInvokeSuper(Element element, this.caller, inputs, {this.isSetter}) |
+ : super(element, inputs, HType.UNKNOWN); |
toString() => 'invoke super: ${element.name}'; |
accept(HVisitor visitor) => visitor.visitInvokeSuper(this); |
HInstruction get value { |
assert(isSetter); |
- // Index 0: the element, index 1: 'this'. |
- return inputs[2]; |
+ // Index 0: 'this'. |
+ return inputs[1]; |
} |
} |