| Index: dart/pkg/compiler/lib/src/resolution/members.dart
|
| diff --git a/dart/pkg/compiler/lib/src/resolution/members.dart b/dart/pkg/compiler/lib/src/resolution/members.dart
|
| index fa554528c872e50f419fda5fe650bce80c49e070..4928109606d78ce4950553084b96828817e136a2 100644
|
| --- a/dart/pkg/compiler/lib/src/resolution/members.dart
|
| +++ b/dart/pkg/compiler/lib/src/resolution/members.dart
|
| @@ -743,7 +743,8 @@ class ResolverTask extends CompilerTask {
|
| Element nextTarget = target.immediateRedirectionTarget;
|
| if (seen.contains(nextTarget)) {
|
| error(node, MessageKind.CYCLIC_REDIRECTING_FACTORY);
|
| - return;
|
| + targetType = target.enclosingClass.thisType;
|
| + break;
|
| }
|
| seen.add(target);
|
| target = nextTarget;
|
| @@ -3148,7 +3149,6 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| }
|
| if (redirectionTarget == constructor) {
|
| compiler.reportError(node, MessageKind.CYCLIC_REDIRECTING_FACTORY);
|
| - return;
|
| }
|
| }
|
|
|
| @@ -4254,6 +4254,9 @@ class ClassResolverVisitor extends TypeDefinitionVisitor {
|
| }
|
| FunctionElement constructor =
|
| new SynthesizedConstructorElementX.forDefault(superMember, element);
|
| + if (superMember.isErroneous) {
|
| + compiler.elementsWithCompileTimeErrors.add(constructor);
|
| + }
|
| element.setDefaultConstructor(constructor, compiler);
|
| }
|
| return element.computeType(compiler);
|
|
|