diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/confusing/UnnecessaryQualifiedReferenceInspection.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/confusing/UnnecessaryQualifiedReferenceInspection.java index 0fd40f40a421..39629d585163 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/confusing/UnnecessaryQualifiedReferenceInspection.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/codeInspection/confusing/UnnecessaryQualifiedReferenceInspection.java @@ -119,8 +119,8 @@ public class UnnecessaryQualifiedReferenceInspection extends BaseInspection { @Override protected void doFix(Project project, ProblemDescriptor descriptor) throws IncorrectOperationException { final PsiElement startElement = descriptor.getStartElement(); - LOG.assertTrue(startElement instanceof GrReferenceElement); - GrReferenceAdjuster.shortenReference((GrQualifiedReference)startElement); + LOG.assertTrue(startElement instanceof GrReferenceElement); + GrReferenceAdjuster.shortenReference((GrQualifiedReference)startElement); } @NotNull diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/ImportOnDemandIntention.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/ImportOnDemandIntention.java index 320b1b6d0918..d52f269a2fee 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/ImportOnDemandIntention.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/ImportOnDemandIntention.java @@ -15,7 +15,6 @@ */ package org.jetbrains.plugins.groovy.intentions.style; -import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.psi.PsiClass; @@ -39,8 +38,6 @@ import org.jetbrains.plugins.groovy.lang.psi.api.toplevel.imports.GrImportStatem * @author Maxim.Medvedev */ public class ImportOnDemandIntention extends Intention { - private static final Logger LOG = Logger.getInstance("#org.jetbrains.plugins.groovy.intentions.style.ImportOnDemandIntention"); - @Override protected void processIntention(@NotNull PsiElement element, Project project, Editor editor) throws IncorrectOperationException { @@ -62,8 +59,8 @@ public class ImportOnDemandIntention extends Intention { final PsiElement refElement = reference.getElement(); if (refElement == null) continue; final PsiElement parent = refElement.getParent(); - if (parent instanceof GrQualifiedReference) { - GrReferenceAdjuster.shortenReference((GrQualifiedReference)parent); + if (parent instanceof GrQualifiedReference) { + GrReferenceAdjuster.shortenReference((GrQualifiedReference)parent); } } } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/ImportStaticIntention.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/ImportStaticIntention.java index 36ceb3948420..a0bec7ad26be 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/ImportStaticIntention.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/intentions/style/ImportStaticIntention.java @@ -15,7 +15,6 @@ */ package org.jetbrains.plugins.groovy.intentions.style; -import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Editor; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Key; @@ -31,14 +30,15 @@ import org.jetbrains.plugins.groovy.lang.psi.GrQualifiedReference; import org.jetbrains.plugins.groovy.lang.psi.GroovyFile; import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory; import org.jetbrains.plugins.groovy.lang.psi.GroovyRecursiveElementVisitor; +import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrExpression; import org.jetbrains.plugins.groovy.lang.psi.api.statements.expressions.GrReferenceExpression; import org.jetbrains.plugins.groovy.lang.psi.api.toplevel.imports.GrImportStatement; +import org.jetbrains.plugins.groovy.lang.psi.api.types.GrTypeArgumentList; /** * @author Maxim.Medvedev */ public class ImportStaticIntention extends Intention { - private static final Logger LOG = Logger.getInstance("#org.jetbrains.plugins.groovy.intentions.style.ImportStaticIntention"); private static final Key TEMP_REFERENT_USER_DATA = new Key("TEMP_REFERENT_USER_DATA"); @Override @@ -52,6 +52,7 @@ public class ImportStaticIntention extends Intention { if (containingClass == null) return; final String qname = containingClass.getQualifiedName(); final String name = ((PsiMember)resolved).getName(); + if (name == null) return; final PsiFile containingFile = element.getContainingFile(); if (!(containingFile instanceof GroovyFile)) return; @@ -77,8 +78,8 @@ public class ImportStaticIntention extends Intention { for (PsiReference reference : ReferencesSearch.search(resolved, new LocalSearchScope(containingFile))) { final PsiElement refElement = reference.getElement(); - if (refElement instanceof GrQualifiedReference) { - GrReferenceAdjuster.shortenReference((GrQualifiedReference)refElement); + if (refElement instanceof GrQualifiedReference) { + GrReferenceAdjuster.shortenReference((GrQualifiedReference)refElement); } } @@ -88,8 +89,8 @@ public class ImportStaticIntention extends Intention { public void visitReferenceExpression(GrReferenceExpression expression) { super.visitReferenceExpression(expression); - if (expression.getTypeArgumentList() != null && - expression.getTypeArgumentList().getFirstChild() != null) { + GrTypeArgumentList typeArgumentList = expression.getTypeArgumentList(); + if (typeArgumentList != null && typeArgumentList.getFirstChild() != null) { expression.putUserData(TEMP_REFERENT_USER_DATA, null); return; @@ -97,8 +98,9 @@ public class ImportStaticIntention extends Intention { if (name.equals(expression.getReferenceName())) { if (expression.isQualified()) { - if (expression.getQualifierExpression() instanceof GrReferenceExpression) { - PsiElement aClass = ((GrReferenceExpression)expression.getQualifierExpression()).resolve(); + GrExpression qualifier = expression.getQualifierExpression(); + if (qualifier instanceof GrReferenceExpression) { + PsiElement aClass = ((GrReferenceExpression)qualifier).resolve(); if (aClass == ((PsiMember)resolved).getContainingClass()) { GrReferenceAdjuster.shortenReference(expression); } diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/GrReferenceAdjuster.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/GrReferenceAdjuster.java index 495a74b09476..5eb95b6b418a 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/GrReferenceAdjuster.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/GrReferenceAdjuster.java @@ -50,15 +50,15 @@ public class GrReferenceAdjuster { process(element, start, end, addImports, incomplete); } - public static void shortenReference(GrQualifiedReference ref) { + public static void shortenReference(GrQualifiedReference ref) { shortenReferenceInner(ref, true, false); final TextRange range = ref.getTextRange(); process(ref, range.getStartOffset(), range.getEndOffset(), true, false); } private static void process(PsiElement element, int start, int end, boolean addImports, boolean incomplete) { - if (element instanceof GrQualifiedReference && ((GrQualifiedReference)element).resolve() instanceof PsiClass) { - shortenReferenceInner((GrQualifiedReference)element, addImports, incomplete); + if (element instanceof GrQualifiedReference && ((GrQualifiedReference)element).resolve() instanceof PsiClass) { + shortenReferenceInner((GrQualifiedReference)element, addImports, incomplete); } else if (element instanceof GrReferenceExpression && ((GrReferenceExpression)element).getQualifier() instanceof GrThisSuperReferenceExpression) { @@ -141,6 +141,7 @@ public class GrReferenceAdjuster { } + @SuppressWarnings("unchecked") private static GrQualifiedReference getCopy(GrQualifiedReference ref) { if (ref.getParent() instanceof GrMethodCall) { final GrMethodCall copy = ((GrMethodCall)ref.getParent().copy()); diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/introduce/constant/GrIntroduceConstantHandler.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/introduce/constant/GrIntroduceConstantHandler.java index 30b92f2e5f2e..307b16663143 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/introduce/constant/GrIntroduceConstantHandler.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/refactoring/introduce/constant/GrIntroduceConstantHandler.java @@ -20,7 +20,6 @@ import com.intellij.util.VisibilityUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.plugins.groovy.lang.GrReferenceAdjuster; -import org.jetbrains.plugins.groovy.lang.psi.GrQualifiedReference; import org.jetbrains.plugins.groovy.lang.psi.GroovyFileBase; import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory; import org.jetbrains.plugins.groovy.lang.psi.GroovyRecursiveElementVisitor; @@ -151,7 +150,7 @@ public class GrIntroduceConstantHandler extends GrIntroduceHandlerBase) { + GrReferenceAdjuster.shortenReference((GrQualifiedReference)replaced); } }