diff --git a/ChangeLog.md b/ChangeLog.md index d549554e648..869c101db5a 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -3,6 +3,13 @@ +## 1.1-M04 (EAP-4) + +### IDE + +###### Issues fixed +- [`KT-14693`](https://youtrack.jetbrains.com/issue/KT-14693) Introduce Type Alias: Do not suggest type qualifiers + ## 1.1-M03 (EAP-3) ### New language features diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/elementSelectionUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/elementSelectionUtils.kt index 06ee134cafa..776b0c992c2 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/elementSelectionUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/elementSelectionUtils.kt @@ -33,6 +33,7 @@ import org.jetbrains.kotlin.idea.codeInsight.CodeInsightUtils import org.jetbrains.kotlin.idea.refactoring.introduce.findExpressionOrStringFragment import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.getNextSiblingIgnoringWhitespaceAndComments +import org.jetbrains.kotlin.psi.psiUtil.getParentOfTypeAndBranch import org.jetbrains.kotlin.psi.psiUtil.getPrevSiblingIgnoringWhitespaceAndComments import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import java.awt.Component @@ -102,7 +103,9 @@ fun getSmartSelectSuggestions( var keepPrevious = true if (element is KtTypeElement) { - addElement = elementKind == CodeInsightUtils.ElementKind.TYPE_ELEMENT + addElement = + elementKind == CodeInsightUtils.ElementKind.TYPE_ELEMENT + && element.getParentOfTypeAndBranch(true) { qualifier } == null if (!addElement) { keepPrevious = false } diff --git a/idea/testData/refactoring/introduceTypeAlias/skipQualifiers.kt b/idea/testData/refactoring/introduceTypeAlias/skipQualifiers.kt new file mode 100644 index 00000000000..98b1a32fb26 --- /dev/null +++ b/idea/testData/refactoring/introduceTypeAlias/skipQualifiers.kt @@ -0,0 +1,8 @@ +// NAME: InnerF11 +class F1{ + inner class InnerF1 + class NestedF1 + + // SIBLING: + fun f1(p: F1.InnerF1) = null +} \ No newline at end of file diff --git a/idea/testData/refactoring/introduceTypeAlias/skipQualifiers.kt.after b/idea/testData/refactoring/introduceTypeAlias/skipQualifiers.kt.after new file mode 100644 index 00000000000..866178427de --- /dev/null +++ b/idea/testData/refactoring/introduceTypeAlias/skipQualifiers.kt.after @@ -0,0 +1,10 @@ +// NAME: InnerF11 +class F1{ + inner class InnerF1 + class NestedF1 + + typealias InnerF11 = F1.InnerF1 + + // SIBLING: + fun f1(p: InnerF11) = null +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/ExtractionTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/ExtractionTestGenerated.java index 1544c5a8f38..2c31d670b46 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/ExtractionTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/refactoring/introduce/ExtractionTestGenerated.java @@ -4178,6 +4178,12 @@ public class ExtractionTestGenerated extends AbstractExtractionTest { doIntroduceTypeAliasTest(fileName); } + @TestMetadata("skipQualifiers.kt") + public void testSkipQualifiers() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/introduceTypeAlias/skipQualifiers.kt"); + doIntroduceTypeAliasTest(fileName); + } + @TestMetadata("suggestedName.kt") public void testSuggestedName() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("idea/testData/refactoring/introduceTypeAlias/suggestedName.kt");