| Index: compiler/java/com/google/dart/compiler/resolver/MemberBuilder.java
|
| diff --git a/compiler/java/com/google/dart/compiler/resolver/MemberBuilder.java b/compiler/java/com/google/dart/compiler/resolver/MemberBuilder.java
|
| index d9a28b777df87740b7dc81a40afb74aaca5b658d..f99cd9ecaceb8ba689a034b6115fb091aae61431 100644
|
| --- a/compiler/java/com/google/dart/compiler/resolver/MemberBuilder.java
|
| +++ b/compiler/java/com/google/dart/compiler/resolver/MemberBuilder.java
|
| @@ -180,8 +180,7 @@ public class MemberBuilder {
|
| return Elements.constructorFromMethodNode(
|
| method, node.getPropertyName(), (ClassElement) currentHolder, (ClassElement) element);
|
| } else {
|
| - topLevelContext.internalError(node,
|
| - "Library prefixes not implemented yet");
|
| + // Nothing else is valid. Already warned in getMethodKind().
|
| return getTypeProvider().getDynamicType().getElement();
|
| }
|
| }
|
| @@ -387,12 +386,17 @@ public class MemberBuilder {
|
| }
|
| } else {
|
| DartPropertyAccess property = (DartPropertyAccess) name;
|
| - DartIdentifier qualifier = (DartIdentifier) property.getQualifier();
|
| - if (qualifier.getTargetName().equals(currentHolder.getName())) {
|
| - return ElementKind.CONSTRUCTOR;
|
| - } else {
|
| + if (property.getQualifier() instanceof DartIdentifier) {
|
| + DartIdentifier qualifier = (DartIdentifier) property.getQualifier();
|
| + if (qualifier.getTargetName().equals(currentHolder.getName())) {
|
| + return ElementKind.CONSTRUCTOR;
|
| + }
|
| resolutionError(method.getName(),
|
| ResolverErrorCode.CANNOT_DECLARE_NON_FACTORY_CONSTRUCTOR);
|
| + } else {
|
| + // Multiple qualifiers (Foo.bar.baz)
|
| + resolutionError(method.getName(),
|
| + ResolverErrorCode.TOO_MANY_QUALIFIERS_FOR_METHOD);
|
| }
|
| }
|
|
|
|
|