| Index: compiler/java/com/google/dart/compiler/resolver/Resolver.java
|
| diff --git a/compiler/java/com/google/dart/compiler/resolver/Resolver.java b/compiler/java/com/google/dart/compiler/resolver/Resolver.java
|
| index 89ed7f1f76b4f361fc1ccc75875c76e65b624184..9a540f3392f4e14d5cc95d3b349a89a1628fe9e7 100644
|
| --- a/compiler/java/com/google/dart/compiler/resolver/Resolver.java
|
| +++ b/compiler/java/com/google/dart/compiler/resolver/Resolver.java
|
| @@ -1233,8 +1233,15 @@ public class Resolver {
|
| @Override
|
| public Element visitSuperConstructorInvocation(DartSuperConstructorInvocation x) {
|
| visit(x.getArguments());
|
| - String name = x.getName() == null ? "" : x.getName().getName();
|
| + // check if correct place for super()
|
| + if (ElementKind.of(currentHolder) != ElementKind.CLASS || currentMethod == null
|
| + || !currentMethod.isConstructor()) {
|
| + onError(x, ResolverErrorCode.SUPER_OUTSIDE_OF_CONSTRUCTOR);
|
| + return recordElement(x, null);
|
| + }
|
| InterfaceType supertype = ((ClassElement) currentHolder).getSupertype();
|
| + // prepare ConstructorElement
|
| + String name = x.getName() == null ? "" : x.getName().getName();
|
| ConstructorElement element;
|
| if (supertype == null) {
|
| element = null;
|
|
|