void (GrTypeElement element, AnnotationHolder holder) { if (element instanceof GrBuiltInTypeElement) return; if (element instanceof GrArrayTypeElement) { checkAnnotationAttributeType(((GrArrayTypeElement)element).getComponentTypeElement(), holder); return; } else if (element instanceof GrClassTypeElement) { final PsiElement resolved = ((GrClassTypeElement)element).getReferenceElement().resolve(); if (resolved instanceof PsiClass) { if (CommonClassNames.JAVA_LANG_STRING.equals(((PsiClass)resolved).getQualifiedName())) return; if (CommonClassNames.JAVA_LANG_CLASS.equals(((PsiClass)resolved).getQualifiedName())) return; if (((PsiClass)resolved).isAnnotationType()) return; if (((PsiClass)resolved).isEnum()) return; } } holder.newAnnotation(HighlightSeverity.ERROR, GroovyBundle.message("unexpected.attribute.type.0", element.getType())).range(element).create(); }