| Index: compiler/java/com/google/dart/compiler/type/TypeAnalyzer.java
|
| diff --git a/compiler/java/com/google/dart/compiler/type/TypeAnalyzer.java b/compiler/java/com/google/dart/compiler/type/TypeAnalyzer.java
|
| index 7decd166a5805cefc8bfe105fab7e8b892e6df27..79e2a5f59d3debb8784428de5848f26866601a18 100644
|
| --- a/compiler/java/com/google/dart/compiler/type/TypeAnalyzer.java
|
| +++ b/compiler/java/com/google/dart/compiler/type/TypeAnalyzer.java
|
| @@ -1218,17 +1218,19 @@ public class TypeAnalyzer implements DartCompilationPhase {
|
| } else {
|
| ClassElement cls = (ClassElement) constructorElement.getEnclosingElement();
|
| // Add warning for instantiating abstract class.
|
| - if (cls.isAbstract() && !constructorElement.getModifiers().isFactory()) {
|
| - typeError(typeName, TypeErrorCode.INSTANTIATION_OF_ABSTRACT_CLASS, cls.getName());
|
| - } else {
|
| - List<Element> unimplementedMembers = findUnimplementedMembers(cls);
|
| - if (unimplementedMembers.size() > 0) {
|
| - StringBuilder sb = getUnimplementedMembersMessage(cls, unimplementedMembers);
|
| - typeError(
|
| - typeName,
|
| - TypeErrorCode.INSTANTIATION_OF_CLASS_WITH_UNIMPLEMENTED_MEMBERS,
|
| - cls.getName(),
|
| - sb);
|
| + if (!constructorElement.getModifiers().isFactory()) {
|
| + if (cls.isAbstract()) {
|
| + typeError(typeName, TypeErrorCode.INSTANTIATION_OF_ABSTRACT_CLASS, cls.getName());
|
| + } else {
|
| + List<Element> unimplementedMembers = findUnimplementedMembers(cls);
|
| + if (unimplementedMembers.size() > 0) {
|
| + StringBuilder sb = getUnimplementedMembersMessage(cls, unimplementedMembers);
|
| + typeError(
|
| + typeName,
|
| + TypeErrorCode.INSTANTIATION_OF_CLASS_WITH_UNIMPLEMENTED_MEMBERS,
|
| + cls.getName(),
|
| + sb);
|
| + }
|
| }
|
| }
|
| // Check type arguments.
|
|
|