| Index: sdk/lib/_internal/compiler/implementation/resolution/members.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/resolution/members.dart b/sdk/lib/_internal/compiler/implementation/resolution/members.dart
|
| index 51a468952ef8fb65b1469bf056f39ae43fe1162e..62ecbaff8584d6df75ccdcc860e2723127dc2e7d 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/resolution/members.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/resolution/members.dart
|
| @@ -453,6 +453,7 @@ class ResolverTask extends CompilerTask {
|
| }
|
| if (element.isSynthesized) {
|
| if (isConstructor) {
|
| + TreeElements elements = _ensureTreeElements(element);
|
| Element target = element.targetConstructor;
|
| // Ensure the signature of the synthesized element is
|
| // resolved. This is the only place where the resolver is
|
| @@ -460,11 +461,13 @@ class ResolverTask extends CompilerTask {
|
| element.computeSignature(compiler);
|
| if (!target.isErroneous()) {
|
| compiler.enqueuer.resolution.registerStaticUse(target);
|
| + compiler.resolverWorld.registerImplicitSuperCall(elements, target);
|
| }
|
| + return elements;
|
| } else {
|
| assert(element.isDeferredLoaderGetter());
|
| + return _ensureTreeElements(element);
|
| }
|
| - return _ensureTreeElements(element);
|
| }
|
| element.parseNode(compiler);
|
| element.computeSignature(compiler);
|
| @@ -1377,7 +1380,8 @@ class InitializerResolver {
|
| functionNode,
|
| className,
|
| constructorSelector);
|
| -
|
| + visitor.compiler.resolverWorld
|
| + .registerImplicitSuperCall(visitor.mapping, calledConstructor);
|
| visitor.world.registerStaticUse(calledConstructor);
|
| }
|
| }
|
|
|