From 26c02cd8bb21ec9e7073b0a9b330e09cf7bf09ab Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Tue, 4 Sep 2018 20:04:03 +0300 Subject: [PATCH] Move Left/Right: Support type constraints #KT-26525 Fixed --- .../idea/codeInsight/KotlinMoveLeftRightHandler.kt | 1 + .../codeInsight/moveLeftRight/typeConstraints1.kt | 4 ++++ .../moveLeftRight/typeConstraints1.kt.after | 4 ++++ .../codeInsight/moveLeftRight/typeConstraints2.kt | 4 ++++ .../moveLeftRight/typeConstraints2.kt.after | 4 ++++ .../moveUpDown/MoveLeftRightTestGenerated.java | 10 ++++++++++ 6 files changed, 27 insertions(+) create mode 100644 idea/testData/codeInsight/moveLeftRight/typeConstraints1.kt create mode 100644 idea/testData/codeInsight/moveLeftRight/typeConstraints1.kt.after create mode 100644 idea/testData/codeInsight/moveLeftRight/typeConstraints2.kt create mode 100644 idea/testData/codeInsight/moveLeftRight/typeConstraints2.kt.after diff --git a/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinMoveLeftRightHandler.kt b/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinMoveLeftRightHandler.kt index 90f6defbce3..cd60c5ed105 100644 --- a/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinMoveLeftRightHandler.kt +++ b/idea/src/org/jetbrains/kotlin/idea/codeInsight/KotlinMoveLeftRightHandler.kt @@ -28,6 +28,7 @@ class KotlinMoveLeftRightHandler : MoveElementLeftRightHandler() { is KtArrayAccessExpression -> return element.indexExpressions.toTypedArray() is KtTypeParameterList -> return element.parameters.toTypedArray() is KtSuperTypeList -> return element.entries.toTypedArray() + is KtTypeConstraintList -> return element.constraints.toTypedArray() //TODO // is KtClass -> if (element.isEnum()) return element.declarations.filterIsInstance().toTypedArray() } diff --git a/idea/testData/codeInsight/moveLeftRight/typeConstraints1.kt b/idea/testData/codeInsight/moveLeftRight/typeConstraints1.kt new file mode 100644 index 00000000000..a209c7cc53f --- /dev/null +++ b/idea/testData/codeInsight/moveLeftRight/typeConstraints1.kt @@ -0,0 +1,4 @@ +// MOVE: right +interface Foo +interface Bar +interface Baz where B : Bar, E: Any, F: Foo \ No newline at end of file diff --git a/idea/testData/codeInsight/moveLeftRight/typeConstraints1.kt.after b/idea/testData/codeInsight/moveLeftRight/typeConstraints1.kt.after new file mode 100644 index 00000000000..0f8cd453a73 --- /dev/null +++ b/idea/testData/codeInsight/moveLeftRight/typeConstraints1.kt.after @@ -0,0 +1,4 @@ +// MOVE: right +interface Foo +interface Bar +interface Baz where E: Any, B : Bar, F: Foo \ No newline at end of file diff --git a/idea/testData/codeInsight/moveLeftRight/typeConstraints2.kt b/idea/testData/codeInsight/moveLeftRight/typeConstraints2.kt new file mode 100644 index 00000000000..95d34afeb3c --- /dev/null +++ b/idea/testData/codeInsight/moveLeftRight/typeConstraints2.kt @@ -0,0 +1,4 @@ +// MOVE: left +interface Foo +interface Bar +interface Baz where B : Bar, E: Any, F: Foo \ No newline at end of file diff --git a/idea/testData/codeInsight/moveLeftRight/typeConstraints2.kt.after b/idea/testData/codeInsight/moveLeftRight/typeConstraints2.kt.after new file mode 100644 index 00000000000..f08addfb4f6 --- /dev/null +++ b/idea/testData/codeInsight/moveLeftRight/typeConstraints2.kt.after @@ -0,0 +1,4 @@ +// MOVE: left +interface Foo +interface Bar +interface Baz where E: Any, B : Bar, F: Foo \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/MoveLeftRightTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/MoveLeftRightTestGenerated.java index a7e689bac51..58e02e448cf 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/MoveLeftRightTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/MoveLeftRightTestGenerated.java @@ -98,4 +98,14 @@ public class MoveLeftRightTestGenerated extends AbstractMoveLeftRightTest { public void testTypeArgs() throws Exception { runTest("idea/testData/codeInsight/moveLeftRight/typeArgs.kt"); } + + @TestMetadata("typeConstraints1.kt") + public void testTypeConstraints1() throws Exception { + runTest("idea/testData/codeInsight/moveLeftRight/typeConstraints1.kt"); + } + + @TestMetadata("typeConstraints2.kt") + public void testTypeConstraints2() throws Exception { + runTest("idea/testData/codeInsight/moveLeftRight/typeConstraints2.kt"); + } }