From 8ef4b9a8e103b3b9312d1b214d41406b95560517 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Tue, 15 May 2018 13:41:46 +0300 Subject: [PATCH] Don't show type hierarchy for elements without name --- .../kotlin/idea/hierarchy/KotlinTypeHierarchyProvider.kt | 7 ++++++- .../JavaStyleClassLiteralInvalidCode_verification.xml | 3 --- .../type/JavaStyleClassLiteralInvalidCode/messages.txt | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) delete mode 100644 idea/testData/hierarchy/class/type/JavaStyleClassLiteralInvalidCode/JavaStyleClassLiteralInvalidCode_verification.xml create mode 100644 idea/testData/hierarchy/class/type/JavaStyleClassLiteralInvalidCode/messages.txt diff --git a/idea/src/org/jetbrains/kotlin/idea/hierarchy/KotlinTypeHierarchyProvider.kt b/idea/src/org/jetbrains/kotlin/idea/hierarchy/KotlinTypeHierarchyProvider.kt index 27d6a09a7a8..6cf706c13ba 100644 --- a/idea/src/org/jetbrains/kotlin/idea/hierarchy/KotlinTypeHierarchyProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/hierarchy/KotlinTypeHierarchyProvider.kt @@ -30,6 +30,7 @@ import org.jetbrains.kotlin.asJava.toLightClass import org.jetbrains.kotlin.config.TargetPlatformKind import org.jetbrains.kotlin.idea.caches.resolve.resolveToDescriptorIfAny import org.jetbrains.kotlin.idea.caches.lightClasses.KtFakeLightClass +import org.jetbrains.kotlin.idea.caches.lightClasses.KtFakeLightMethod import org.jetbrains.kotlin.idea.project.targetPlatform import org.jetbrains.kotlin.idea.search.allScope import org.jetbrains.kotlin.idea.stubindex.KotlinClassShortNameIndex @@ -97,7 +98,11 @@ class KotlinTypeHierarchyProvider : JavaTypeHierarchyProvider() { if (editor != null) { val file = PsiDocumentManager.getInstance(project).getPsiFile(editor.document) ?: return null if (!ProjectRootsUtil.isInProjectOrLibSource(file)) return null - return getTargetByReference(project, editor, file.module) ?: getTargetByContainingElement(editor, file) + val psiElement = getTargetByReference(project, editor, file.module) ?: getTargetByContainingElement(editor, file) + if (psiElement is PsiNamedElement && psiElement.name == null) { + return null + } + return psiElement } val element = LangDataKeys.PSI_ELEMENT.getData(dataContext) diff --git a/idea/testData/hierarchy/class/type/JavaStyleClassLiteralInvalidCode/JavaStyleClassLiteralInvalidCode_verification.xml b/idea/testData/hierarchy/class/type/JavaStyleClassLiteralInvalidCode/JavaStyleClassLiteralInvalidCode_verification.xml deleted file mode 100644 index e641d5c85c2..00000000000 --- a/idea/testData/hierarchy/class/type/JavaStyleClassLiteralInvalidCode/JavaStyleClassLiteralInvalidCode_verification.xml +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/idea/testData/hierarchy/class/type/JavaStyleClassLiteralInvalidCode/messages.txt b/idea/testData/hierarchy/class/type/JavaStyleClassLiteralInvalidCode/messages.txt new file mode 100644 index 00000000000..ac59d48ed55 --- /dev/null +++ b/idea/testData/hierarchy/class/type/JavaStyleClassLiteralInvalidCode/messages.txt @@ -0,0 +1 @@ +Cannot apply action for element at caret \ No newline at end of file