diff --git a/idea/src/org/jetbrains/kotlin/idea/editor/wordSelection/KotlinTypeSelectioner.kt b/idea/src/org/jetbrains/kotlin/idea/editor/wordSelection/KotlinTypeSelectioner.kt index 613e17942d1..095ed376e57 100644 --- a/idea/src/org/jetbrains/kotlin/idea/editor/wordSelection/KotlinTypeSelectioner.kt +++ b/idea/src/org/jetbrains/kotlin/idea/editor/wordSelection/KotlinTypeSelectioner.kt @@ -37,8 +37,10 @@ class KotlinTypeSelectioner : ExtendWordSelectionHandlerBase() { } override fun select(e: PsiElement, editorText: CharSequence, cursorOffset: Int, editor: Editor): List? { - if (e.getStrictParentOfType() != null) return null - val colonPosition = e.getStrictParentOfType()?.colon?.startOffset ?: return null + if (e !is KtTypeReference) return null + val callableDeclaration = e.parent as? KtCallableDeclaration ?: return null + if (e != callableDeclaration.typeReference) return null + val colonPosition = callableDeclaration.colon?.startOffset ?: return null return listOf(TextRange(colonPosition, e.endOffset)) } } diff --git a/idea/testData/wordSelection/KT13675/0.kt b/idea/testData/wordSelection/KT13675/0.kt new file mode 100644 index 00000000000..ac7ec045cb6 --- /dev/null +++ b/idea/testData/wordSelection/KT13675/0.kt @@ -0,0 +1 @@ +fun f(): List>{} \ No newline at end of file diff --git a/idea/testData/wordSelection/KT13675/1.kt b/idea/testData/wordSelection/KT13675/1.kt new file mode 100644 index 00000000000..cda097ecd4e --- /dev/null +++ b/idea/testData/wordSelection/KT13675/1.kt @@ -0,0 +1 @@ +fun f(): List<AAA>{} \ No newline at end of file diff --git a/idea/testData/wordSelection/KT13675/2.kt b/idea/testData/wordSelection/KT13675/2.kt new file mode 100644 index 00000000000..7927e7b65d9 --- /dev/null +++ b/idea/testData/wordSelection/KT13675/2.kt @@ -0,0 +1 @@ +fun f(): List>{} \ No newline at end of file diff --git a/idea/testData/wordSelection/KT13675/3.kt b/idea/testData/wordSelection/KT13675/3.kt new file mode 100644 index 00000000000..f1e8de12bd5 --- /dev/null +++ b/idea/testData/wordSelection/KT13675/3.kt @@ -0,0 +1 @@ +fun f(): List>{} \ No newline at end of file diff --git a/idea/testData/wordSelection/KT13675/4.kt b/idea/testData/wordSelection/KT13675/4.kt new file mode 100644 index 00000000000..b0e9936d3e5 --- /dev/null +++ b/idea/testData/wordSelection/KT13675/4.kt @@ -0,0 +1 @@ +fun f(): List>{} \ No newline at end of file diff --git a/idea/testData/wordSelection/KT13675/5.kt b/idea/testData/wordSelection/KT13675/5.kt new file mode 100644 index 00000000000..eb25eac73b1 --- /dev/null +++ b/idea/testData/wordSelection/KT13675/5.kt @@ -0,0 +1 @@ +fun f(): List>{} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/WordSelectionTest.java b/idea/tests/org/jetbrains/kotlin/idea/WordSelectionTest.java index eda1e43e43d..991798d2371 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/WordSelectionTest.java +++ b/idea/tests/org/jetbrains/kotlin/idea/WordSelectionTest.java @@ -96,6 +96,10 @@ public class WordSelectionTest extends KotlinLightCodeInsightFixtureTestCase { doTest(); } + public void testKT13675() { + doTest(); + } + private void doTest() { String dirName = getTestName(false);