diff --git a/java/java-impl/src/com/intellij/codeInsight/JavaTargetElementEvaluator.java b/java/java-impl/src/com/intellij/codeInsight/JavaTargetElementEvaluator.java index c3ecb959bdf3..388e9ed94f49 100644 --- a/java/java-impl/src/com/intellij/codeInsight/JavaTargetElementEvaluator.java +++ b/java/java-impl/src/com/intellij/codeInsight/JavaTargetElementEvaluator.java @@ -22,9 +22,9 @@ import org.jetbrains.annotations.Nullable; import java.util.*; public class JavaTargetElementEvaluator extends TargetElementEvaluatorEx2 implements TargetElementUtilExtender{ - public static final int NEW_AS_CONSTRUCTOR = 0x04; - public static final int THIS_ACCEPTED = 0x10; - public static final int SUPER_ACCEPTED = 0x20; + private static final int NEW_AS_CONSTRUCTOR = 0x04; + private static final int THIS_ACCEPTED = 0x10; + private static final int SUPER_ACCEPTED = 0x20; @Override public int getAllAdditionalFlags() { @@ -84,8 +84,7 @@ public class JavaTargetElementEvaluator extends TargetElementEvaluatorEx2 implem private static boolean isEnumConstantReference(final PsiElement element, final PsiElement referenceOrReferencedElement) { return element != null && element.getParent() instanceof PsiEnumConstant && - (referenceOrReferencedElement instanceof PsiMethod && ((PsiMethod)referenceOrReferencedElement).isConstructor() || - referenceOrReferencedElement instanceof PsiClass); + referenceOrReferencedElement instanceof PsiMethod && ((PsiMethod)referenceOrReferencedElement).isConstructor(); } @Nullable diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiEnumConstantImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiEnumConstantImpl.java index 0e4f229e7126..ce66193b0274 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiEnumConstantImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiEnumConstantImpl.java @@ -27,7 +27,6 @@ import com.intellij.psi.impl.PsiImplUtil; import com.intellij.psi.impl.java.stubs.JavaStubElementTypes; import com.intellij.psi.impl.java.stubs.PsiFieldStub; import com.intellij.psi.impl.source.tree.ChildRole; -import com.intellij.psi.infos.ClassCandidateInfo; import com.intellij.psi.javadoc.PsiDocComment; import com.intellij.psi.scope.PsiScopeProcessor; import com.intellij.psi.stub.JavaStubImplUtil; @@ -259,12 +258,7 @@ public class PsiEnumConstantImpl extends JavaStubPsiElement implem @NotNull public JavaResolveResult[] multiResolve(boolean incompleteCode) { final JavaPsiFacade facade = JavaPsiFacade.getInstance(getProject()); - PsiClass containingClass = getContainingClass(); - if (containingClass.getConstructors().length == 0) { - return new JavaResolveResult[] {new ClassCandidateInfo(containingClass, PsiSubstitutor.EMPTY)}; - } - - PsiClassType type = facade.getElementFactory().createType(containingClass); + PsiClassType type = facade.getElementFactory().createType(getContainingClass()); return facade.getResolveHelper().multiResolveConstructor(type, getArgumentList(), getElement()); } @@ -289,9 +283,6 @@ public class PsiEnumConstantImpl extends JavaStubPsiElement implem @Override public boolean isReferenceTo(@NotNull PsiElement element) { - if (element instanceof PsiClass && element == getContainingClass() && ((PsiClass)element).getConstructors().length == 0) { - return true; - } return element instanceof PsiMethod && ((PsiMethod)element).isConstructor() && ((PsiMethod)element).getContainingClass() == getContainingClass() diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/navigation/GotoDeclarationTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/navigation/GotoDeclarationTest.java index e9d628df3931..ac69fc151682 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/navigation/GotoDeclarationTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/navigation/GotoDeclarationTest.java @@ -111,12 +111,11 @@ public class GotoDeclarationTest extends LightCodeInsightTestCase { assertNotNull("Unexpected null", element); } - public void testNavigateToEnumClass() { + public void testGotoDeclarationOnEnumConstantDoesntNavigateToEnumClass() { configureFromFileText("A.java", "enum A {G();}"); final PsiReference reference = getFile().findReferenceAt(getEditor().getCaretModel().getOffset()); assertNotNull(reference); final Collection candidates = TargetElementUtil.getInstance().getTargetCandidates(reference); - assertEquals(candidates.toString(), 1, candidates.size()); - assertInstanceOf(ContainerUtil.getFirstItem(candidates), PsiClass.class); + assertEmpty(candidates); } } \ No newline at end of file