From 15444677256c8b862124c779a1d0a69c28ad183d Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Tue, 13 Jun 2017 18:53:03 +0300 Subject: [PATCH] Presentation: Fix NPE on star projection rendering EA-100480 Fixed --- .../idea/findUsages/KotlinElementDescriptionProvider.kt | 6 ++++-- idea/testData/codeInsight/breadcrumbs/StarProjection.kt | 3 +++ idea/testData/codeInsight/breadcrumbs/StarProjection.txt | 4 ++++ .../kotlin/idea/codeInsight/BreadcrumbsTestGenerated.java | 6 ++++++ 4 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 idea/testData/codeInsight/breadcrumbs/StarProjection.kt create mode 100644 idea/testData/codeInsight/breadcrumbs/StarProjection.txt diff --git a/idea/src/org/jetbrains/kotlin/idea/findUsages/KotlinElementDescriptionProvider.kt b/idea/src/org/jetbrains/kotlin/idea/findUsages/KotlinElementDescriptionProvider.kt index 0db119f26cd..2f612b32dad 100644 --- a/idea/src/org/jetbrains/kotlin/idea/findUsages/KotlinElementDescriptionProvider.kt +++ b/idea/src/org/jetbrains/kotlin/idea/findUsages/KotlinElementDescriptionProvider.kt @@ -97,9 +97,11 @@ class KotlinElementDescriptionProvider : ElementDescriptionProvider { return buildString { append(type.referencedName ?: "???") - val arguments = type.typeArgumentsAsTypes + val arguments = type.typeArguments if (arguments.isNotEmpty()) { - arguments.joinTo(this, prefix = "<", postfix = ">") { it.accept(visitor, data) } + arguments.joinTo(this, prefix = "<", postfix = ">") { + it.typeReference?.accept(visitor, data) ?: it.text + } } } } diff --git a/idea/testData/codeInsight/breadcrumbs/StarProjection.kt b/idea/testData/codeInsight/breadcrumbs/StarProjection.kt new file mode 100644 index 00000000000..1f05e056016 --- /dev/null +++ b/idea/testData/codeInsight/breadcrumbs/StarProjection.kt @@ -0,0 +1,3 @@ +class A + +fun foo(a: A) {} \ No newline at end of file diff --git a/idea/testData/codeInsight/breadcrumbs/StarProjection.txt b/idea/testData/codeInsight/breadcrumbs/StarProjection.txt new file mode 100644 index 00000000000..1c677f60c11 --- /dev/null +++ b/idea/testData/codeInsight/breadcrumbs/StarProjection.txt @@ -0,0 +1,4 @@ +Crumbs: + foo() +Tooltips: + function foo(A<Int, *, String>) \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/BreadcrumbsTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/BreadcrumbsTestGenerated.java index 96174203f0b..c8f7dd73efb 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/BreadcrumbsTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/BreadcrumbsTestGenerated.java @@ -96,6 +96,12 @@ public class BreadcrumbsTestGenerated extends AbstractBreadcrumbsTest { doTest(fileName); } + @TestMetadata("StarProjection.kt") + public void testStarProjection() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/codeInsight/breadcrumbs/StarProjection.kt"); + doTest(fileName); + } + @TestMetadata("Try.kt") public void testTry() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/codeInsight/breadcrumbs/Try.kt");