| Index: sdk/lib/_internal/compiler/implementation/types/simple_types_inferrer.dart
|
| ===================================================================
|
| --- sdk/lib/_internal/compiler/implementation/types/simple_types_inferrer.dart (revision 25147)
|
| +++ sdk/lib/_internal/compiler/implementation/types/simple_types_inferrer.dart (working copy)
|
| @@ -571,9 +571,6 @@
|
| }
|
|
|
| bool analyze(Element element) {
|
| - if (element.isForwardingConstructor) {
|
| - element = element.targetConstructor;
|
| - }
|
| SimpleTypeInferrerVisitor visitor =
|
| new SimpleTypeInferrerVisitor(element, compiler, this);
|
| TypeMask returnType = visitor.run();
|
| @@ -1439,10 +1436,16 @@
|
| locals.update(element, parameterType);
|
| }
|
| });
|
| - visitingInitializers = true;
|
| - visit(node.initializers);
|
| - visitingInitializers = false;
|
| - visit(node.body);
|
| + if (analyzedElement.isSynthesized) {
|
| + // Use the enclosing class of the synthesized constructor as
|
| + // the location for the initialized fields.
|
| + node = analyzedElement.enclosingElement.parseNode(compiler);
|
| + } else {
|
| + visitingInitializers = true;
|
| + visit(node.initializers);
|
| + visitingInitializers = false;
|
| + visit(node.body);
|
| + }
|
| ClassElement cls = analyzedElement.getEnclosingClass();
|
| if (!isConstructorRedirect) {
|
| // Iterate over all instance fields, and give a null type to
|
|
|