Chromium Code Reviews| Index: dart/frog/leg/ssa/builder.dart |
| diff --git a/dart/frog/leg/ssa/builder.dart b/dart/frog/leg/ssa/builder.dart |
| index 4793f1a9cac9de9c56ceaaca6915cc1bb73508a2..0d9d1c3203855445a04ec957331022a8ab0113da 100644 |
| --- a/dart/frog/leg/ssa/builder.dart |
| +++ b/dart/frog/leg/ssa/builder.dart |
| @@ -1921,8 +1921,22 @@ class SsaBuilder implements Visitor { |
| Selector selector = elements.getSelector(node); |
| Element element = elements[node]; |
| if (element === null) { |
| - // Example: co19/Language/10_Expressions/25_Unary_Expressions_A06_t01 |
| - compiler.unimplemented('unresolved super-send', node: node); |
| + ClassElement cls = work.element.getEnclosingClass(); |
| + element = cls.lookupSuperMember(Compiler.NO_SUCH_METHOD); |
| + HStatic target = new HStatic(element); |
| + HInstruction self = localsHandler.readThis(); |
| + Identifier identifier = node.selector.asIdentifier(); |
| + String name = identifier.source.slowToString(); |
| + // TODO(ahe): Add the arguments to this list. |
|
ngeoffray
2012/03/21 12:45:41
this should not be too bad to implement:
List<HIn
ahe
2012/03/21 12:56:48
Nice. I'll take a look at that, but I think this m
|
| + push(new HLiteralList([], true)); |
| + var inputs = <HInstruction>[ |
| + target, |
| + self, |
| + graph.addConstantString(new DartString.literal(name)), |
| + pop()]; |
| + push(new HInvokeSuper(const Selector(SelectorKind.INVOCATION, 2), |
| + inputs)); |
| + return; |
| } |
| HStatic target = new HStatic(element); |
| HInstruction context = localsHandler.readThis(); |