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); |
} |