| Index: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/TypeResolverVisitor.java
|
| ===================================================================
|
| --- editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/TypeResolverVisitor.java (revision 21601)
|
| +++ editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/TypeResolverVisitor.java (working copy)
|
| @@ -707,14 +707,20 @@
|
| String name = typeName.getName().getName();
|
| if (name.equals(dynamicKeyword)) {
|
| reportError(CompileTimeErrorCode.IMPLEMENTS_DYNAMIC, typeName);
|
| - } else if (typeName.getName().getElement().equals(classElement)) {
|
| - reportError(CompileTimeErrorCode.IMPLEMENTS_SELF, typeName, name);
|
| + } else {
|
| + Element element = typeName.getName().getElement();
|
| + if (element != null && element.equals(classElement)) {
|
| + reportError(CompileTimeErrorCode.IMPLEMENTS_SELF, typeName, name);
|
| + }
|
| }
|
| if (!detectedRepeatOnIndex[i]) {
|
| for (int j = i + 1; j < typeNames.length; j++) {
|
| + Element element = typeName.getName().getElement();
|
| TypeName typeName2 = typeNames[j];
|
| - String name2 = typeName2.getName().getName();
|
| - if (typeName.getName().getElement().equals(typeName2.getName().getElement())) {
|
| + Identifier identifier2 = typeName2.getName();
|
| + String name2 = identifier2.getName();
|
| + Element element2 = identifier2.getElement();
|
| + if (element != null && element.equals(element2)) {
|
| detectedRepeatOnIndex[j] = true;
|
| reportError(CompileTimeErrorCode.IMPLEMENTS_REPEATED, typeName2, name2);
|
| }
|
|
|