| Index: editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/processor/ConstructorSemanticProcessor.java
|
| diff --git a/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/processor/ConstructorSemanticProcessor.java b/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/processor/ConstructorSemanticProcessor.java
|
| index c56fa791f1396acf2c3590290b864896a296e278..a10f8d5e212dc1264c52e30666a5add38c8ed994 100644
|
| --- a/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/processor/ConstructorSemanticProcessor.java
|
| +++ b/editor/util/plugins/com.google.dart.java2dart/src/com/google/dart/java2dart/processor/ConstructorSemanticProcessor.java
|
| @@ -42,6 +42,7 @@ import static com.google.dart.java2dart.util.ASTFactory.typeName;
|
|
|
| import org.eclipse.jdt.core.dom.IMethodBinding;
|
|
|
| +import java.util.Iterator;
|
| import java.util.List;
|
|
|
| /**
|
| @@ -183,10 +184,18 @@ public class ConstructorSemanticProcessor extends SemanticProcessor {
|
| return;
|
| }
|
| // add redirecting constructor invocation
|
| + List<ConstructorInitializer> initializers = node.getInitializers();
|
| RedirectingConstructorInvocation redirect = redirectingConstructorInvocation(
|
| "thisConstructorRedirection",
|
| methodInvocation.getArgumentList().getArguments());
|
| - node.getInitializers().add(redirect);
|
| + initializers.add(redirect);
|
| + // remove speculative "super" constructor invocation
|
| + for (Iterator<ConstructorInitializer> iter = initializers.iterator(); iter.hasNext();) {
|
| + ConstructorInitializer initializer = iter.next();
|
| + if (initializer instanceof SuperConstructorInvocation) {
|
| + iter.remove();
|
| + }
|
| + }
|
| // remove body
|
| node.setBody(emptyFunctionBody());
|
| // record constructor invocation
|
|
|