Chromium Code Reviews| Index: sdk/lib/_internal/compiler/implementation/ssa/builder.dart |
| =================================================================== |
| --- sdk/lib/_internal/compiler/implementation/ssa/builder.dart (revision 20142) |
| +++ sdk/lib/_internal/compiler/implementation/ssa/builder.dart (working copy) |
| @@ -3150,7 +3150,10 @@ |
| } |
| List<HInstruction> inputs = buildSuperAccessorInputs(element); |
| if (node.isPropertyAccess) { |
| - push(new HInvokeSuper(inputs)); |
| + HInstruction invokeSuper = new HInvokeSuper(inputs); |
| + invokeSuper.instructionType = |
| + new HType.inferredTypeForElement(element, compiler); |
| + push(invokeSuper); |
| } else if (element.isFunction() || element.isGenerativeConstructor()) { |
| // TODO(5347): Try to avoid the need for calling [implementation] before |
| // calling [addStaticSendArgumentsToList]. |
| @@ -3160,10 +3163,15 @@ |
| if (!succeeded) { |
| generateWrongArgumentCountError(node, element, node.arguments); |
| } else { |
| - push(new HInvokeSuper(inputs)); |
| + HInstruction invokeSuper = new HInvokeSuper(inputs); |
| + invokeSuper.instructionType = |
| + new HType.inferredReturnTypeForElement(element, compiler); |
| + push(invokeSuper); |
| } |
| } else { |
| HInstruction target = new HInvokeSuper(inputs); |
| + target.instructionType = |
|
kasperl
2013/03/18 08:47:50
Maybe compute the inferredType outside just before
ngeoffray
2013/03/18 08:52:21
They're different depending on which branch we're
|
| + new HType.inferredTypeForElement(element, compiler); |
| add(target); |
| inputs = <HInstruction>[target]; |
| addDynamicSendArgumentsToList(node, inputs); |