From 8ed8c4c9bce13514e6e00af0bde138775fa690a6 Mon Sep 17 00:00:00 2001 From: Max Medvedev Date: Wed, 29 Jan 2014 15:37:29 +0400 Subject: [PATCH] remove duplicate --- .../impl/analysis/HighlightClassUtil.java | 4 +-- .../groovy/annotator/GroovyAnnotator.java | 31 +++---------------- 2 files changed, 6 insertions(+), 29 deletions(-) diff --git a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java index 064888bf4215..f16fc5b3682d 100644 --- a/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java +++ b/java/java-analysis-impl/src/com/intellij/codeInsight/daemon/impl/analysis/HighlightClassUtil.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2013 JetBrains s.r.o. + * Copyright 2000-2014 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -595,7 +595,7 @@ public class HighlightClassUtil { } @Nullable - private static PsiClass getCircularClass(PsiClass aClass, Collection usedClasses) { + public static PsiClass getCircularClass(PsiClass aClass, Collection usedClasses) { if (usedClasses.contains(aClass)) { return aClass; } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java index fd62719a55c0..7f4658f8fa63 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/annotator/GroovyAnnotator.java @@ -17,6 +17,7 @@ package org.jetbrains.plugins.groovy.annotator; import com.intellij.codeInsight.ClassUtil; +import com.intellij.codeInsight.daemon.impl.analysis.HighlightClassUtil; import com.intellij.codeInsight.daemon.impl.quickfix.AddMethodBodyFix; import com.intellij.codeInsight.daemon.impl.quickfix.CreateConstructorMatchingSuperFix; import com.intellij.codeInsight.daemon.impl.quickfix.DeleteMethodBodyFix; @@ -1478,7 +1479,8 @@ public class GroovyAnnotator extends GroovyElementVisitor { } Map errors = ContainerUtil.newHashMap(); - CustomAnnotationChecker.checkAnnotationArguments(errors, anno, annotation.getClassReference(), annotationArgumentList.getAttributes(), true); + CustomAnnotationChecker.checkAnnotationArguments(errors, anno, annotation.getClassReference(), annotationArgumentList.getAttributes(), + true); for (Map.Entry entry : errors.entrySet()) { myHolder.createErrorAnnotation(entry.getKey(), entry.getValue()); } @@ -2022,7 +2024,7 @@ public class GroovyAnnotator extends GroovyElementVisitor { private static void checkCyclicInheritance(AnnotationHolder holder, GrTypeDefinition typeDefinition) { - final PsiClass psiClass = getCircularClass(typeDefinition, new HashSet()); + final PsiClass psiClass = HighlightClassUtil.getCircularClass(typeDefinition, new HashSet()); if (psiClass != null) { String qname = psiClass.getQualifiedName(); assert qname != null; @@ -2031,31 +2033,6 @@ public class GroovyAnnotator extends GroovyElementVisitor { } } - @Nullable - private static PsiClass getCircularClass(PsiClass aClass, Collection usedClasses) { - if (usedClasses.contains(aClass)) { - return aClass; - } - try { - usedClasses.add(aClass); - PsiClass[] superTypes = aClass.getSupers(); - for (PsiElement superType : superTypes) { - while (superType instanceof PsiClass) { - if (!CommonClassNames.JAVA_LANG_OBJECT.equals(((PsiClass)superType).getQualifiedName())) { - PsiClass circularClass = getCircularClass((PsiClass)superType, usedClasses); - if (circularClass != null) return circularClass; - } - // check class qualifier - superType = superType.getParent(); - } - } - } - finally { - usedClasses.remove(aClass); - } - return null; - } - private static void checkForWildCards(AnnotationHolder holder, @Nullable GrReferenceList clause) { if (clause == null) return; final GrCodeReferenceElement[] elements = clause.getReferenceElementsGroovy();