From b2be1a53cf9399f745ac7fd24b69531efb8b5b43 Mon Sep 17 00:00:00 2001 From: Dmitry Gridin Date: Fri, 15 May 2020 17:29:08 +0700 Subject: [PATCH] SpecifyTypeExplicitlyIntention: remove annotations from result type #KT-36930 Fixed --- .../kotlin/idea/util/IdeDescriptorRenderers.kt | 12 +++++++++++- .../intentions/SpecifyTypeExplicitlyIntention.kt | 2 +- .../specifyTypeExplicitly/after/source/A.java | 10 ++++++++++ .../specifyTypeExplicitly/after/source/anno.kt | 3 +++ .../specifyTypeExplicitly/after/source/kt36930.kt | 5 +++++ .../specifyTypeExplicitly/before/source/A.java | 10 ++++++++++ .../specifyTypeExplicitly/before/source/anno.kt | 3 +++ .../specifyTypeExplicitly/before/source/kt36930.kt | 5 +++++ .../specifyTypeExplicitly/specifyTypeExplicitly.test | 5 +++++ .../intentions/MultiFileIntentionTestGenerated.java | 5 +++++ 10 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 idea/testData/multiFileIntentions/specifyTypeExplicitly/after/source/A.java create mode 100644 idea/testData/multiFileIntentions/specifyTypeExplicitly/after/source/anno.kt create mode 100644 idea/testData/multiFileIntentions/specifyTypeExplicitly/after/source/kt36930.kt create mode 100644 idea/testData/multiFileIntentions/specifyTypeExplicitly/before/source/A.java create mode 100644 idea/testData/multiFileIntentions/specifyTypeExplicitly/before/source/anno.kt create mode 100644 idea/testData/multiFileIntentions/specifyTypeExplicitly/before/source/kt36930.kt create mode 100644 idea/testData/multiFileIntentions/specifyTypeExplicitly/specifyTypeExplicitly.test diff --git a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/IdeDescriptorRenderers.kt b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/IdeDescriptorRenderers.kt index 0a95cfd7df9..8db19e1f421 100644 --- a/idea/ide-common/src/org/jetbrains/kotlin/idea/util/IdeDescriptorRenderers.kt +++ b/idea/ide-common/src/org/jetbrains/kotlin/idea/util/IdeDescriptorRenderers.kt @@ -17,7 +17,12 @@ package org.jetbrains.kotlin.idea.util import org.jetbrains.kotlin.descriptors.annotations.BuiltInAnnotationDescriptor -import org.jetbrains.kotlin.renderer.* +import org.jetbrains.kotlin.renderer.AnnotationArgumentsRenderingPolicy +import org.jetbrains.kotlin.renderer.ClassifierNamePolicy +import org.jetbrains.kotlin.renderer.DescriptorRenderer +import org.jetbrains.kotlin.renderer.DescriptorRenderer.Companion.FQ_NAMES_IN_TYPES +import org.jetbrains.kotlin.renderer.DescriptorRendererModifier +import org.jetbrains.kotlin.renderer.OverrideRenderingPolicy import org.jetbrains.kotlin.types.KotlinType import org.jetbrains.kotlin.types.isDynamic import org.jetbrains.kotlin.types.typeUtil.builtIns @@ -62,6 +67,11 @@ object IdeDescriptorRenderers { typeNormalizer = { APPROXIMATE_FLEXIBLE_TYPES(unwrapAnonymousType(it)) } } + @JvmField + val FQ_NAMES_IN_TYPES_WITH_NORMALIZER: DescriptorRenderer = FQ_NAMES_IN_TYPES.withOptions { + typeNormalizer = { APPROXIMATE_FLEXIBLE_TYPES(unwrapAnonymousType(it)) } + } + @JvmField val SOURCE_CODE_TYPES: DescriptorRenderer = BASE.withOptions { classifierNamePolicy = ClassifierNamePolicy.SOURCE_CODE_QUALIFIED diff --git a/idea/src/org/jetbrains/kotlin/idea/intentions/SpecifyTypeExplicitlyIntention.kt b/idea/src/org/jetbrains/kotlin/idea/intentions/SpecifyTypeExplicitlyIntention.kt index 44f442b979e..71104f82d6d 100644 --- a/idea/src/org/jetbrains/kotlin/idea/intentions/SpecifyTypeExplicitlyIntention.kt +++ b/idea/src/org/jetbrains/kotlin/idea/intentions/SpecifyTypeExplicitlyIntention.kt @@ -170,7 +170,7 @@ class SpecifyTypeExplicitlyIntention : SelfTargetingRangeIntention = A().doSmth() +} \ No newline at end of file diff --git a/idea/testData/multiFileIntentions/specifyTypeExplicitly/specifyTypeExplicitly.test b/idea/testData/multiFileIntentions/specifyTypeExplicitly/specifyTypeExplicitly.test new file mode 100644 index 00000000000..fca66037422 --- /dev/null +++ b/idea/testData/multiFileIntentions/specifyTypeExplicitly/specifyTypeExplicitly.test @@ -0,0 +1,5 @@ +{ + "mainFile": "source/kt36930.kt", + "intentionClass": "org.jetbrains.kotlin.idea.intentions.SpecifyTypeExplicitlyIntention", + "withRuntime": true +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/intentions/MultiFileIntentionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/intentions/MultiFileIntentionTestGenerated.java index 6418a2540cd..c17ba6c4d35 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/intentions/MultiFileIntentionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/intentions/MultiFileIntentionTestGenerated.java @@ -142,4 +142,9 @@ public class MultiFileIntentionTestGenerated extends AbstractMultiFileIntentionT public void testObjectLiteralToLambda_ObjectLiteralToLambda() throws Exception { runTest("idea/testData/multiFileIntentions/objectLiteralToLambda/objectLiteralToLambda.test"); } + + @TestMetadata("specifyTypeExplicitly/specifyTypeExplicitly.test") + public void testSpecifyTypeExplicitly_SpecifyTypeExplicitly() throws Exception { + runTest("idea/testData/multiFileIntentions/specifyTypeExplicitly/specifyTypeExplicitly.test"); + } }