From 5d2db4e7e821ceaf6cc4ed460c52918386ede403 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 16 Sep 2024 14:17:56 +0200 Subject: [PATCH] [kotlin] move statements: take care of error elements ^KTIJ-31312 fixed GitOrigin-RevId: 1de2219e328f0c7ac38816a1f468556a061cd932 --- .../idea/codeInsight/upDownMover/KotlinExpressionMover.kt | 4 ++++ .../moveUpDown/KotlinFirMoveStatementTestGenerated.java | 5 +++++ .../moveUpDown/MoveStatementTestGenerated.java | 5 +++++ .../codeInsight/moveUpDown/line/additionalClosingBrace.kt | 8 ++++++++ .../moveUpDown/line/additionalClosingBrace.kt.after | 8 ++++++++ 5 files changed, 30 insertions(+) create mode 100644 plugins/kotlin/idea/tests/testData/codeInsight/moveUpDown/line/additionalClosingBrace.kt create mode 100644 plugins/kotlin/idea/tests/testData/codeInsight/moveUpDown/line/additionalClosingBrace.kt.after diff --git a/plugins/kotlin/code-insight/impl-base/src/org/jetbrains/kotlin/idea/codeInsight/upDownMover/KotlinExpressionMover.kt b/plugins/kotlin/code-insight/impl-base/src/org/jetbrains/kotlin/idea/codeInsight/upDownMover/KotlinExpressionMover.kt index 250c607f3fa8..d3d22b278197 100644 --- a/plugins/kotlin/code-insight/impl-base/src/org/jetbrains/kotlin/idea/codeInsight/upDownMover/KotlinExpressionMover.kt +++ b/plugins/kotlin/code-insight/impl-base/src/org/jetbrains/kotlin/idea/codeInsight/upDownMover/KotlinExpressionMover.kt @@ -504,6 +504,10 @@ class KotlinExpressionMover : AbstractKotlinUpDownMover() { return element } + if (element is PsiErrorElement) { + return element + } + if (getParentFileAnnotationEntry(element) != null) return null val movableElement = element.getParentOfTypesAndPredicate( diff --git a/plugins/kotlin/code-insight/kotlin.code-insight.k2/test/org/jetbrains/kotlin/idea/k2/moveUpDown/KotlinFirMoveStatementTestGenerated.java b/plugins/kotlin/code-insight/kotlin.code-insight.k2/test/org/jetbrains/kotlin/idea/k2/moveUpDown/KotlinFirMoveStatementTestGenerated.java index b24016399b20..03a197cc564a 100644 --- a/plugins/kotlin/code-insight/kotlin.code-insight.k2/test/org/jetbrains/kotlin/idea/k2/moveUpDown/KotlinFirMoveStatementTestGenerated.java +++ b/plugins/kotlin/code-insight/kotlin.code-insight.k2/test/org/jetbrains/kotlin/idea/k2/moveUpDown/KotlinFirMoveStatementTestGenerated.java @@ -1385,6 +1385,11 @@ public abstract class KotlinFirMoveStatementTestGenerated extends AbstractKotlin KotlinTestUtils.runTest(this::doTestLine, this, testDataFilePath); } + @TestMetadata("additionalClosingBrace.kt") + public void testAdditionalClosingBrace() throws Exception { + runTest("../../idea/tests/testData/codeInsight/moveUpDown/line/additionalClosingBrace.kt"); + } + @TestMetadata("fileAnnotation.kt") public void testFileAnnotation() throws Exception { runTest("../../idea/tests/testData/codeInsight/moveUpDown/line/fileAnnotation.kt"); diff --git a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/MoveStatementTestGenerated.java b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/MoveStatementTestGenerated.java index 39e66de22526..d009ed337547 100644 --- a/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/MoveStatementTestGenerated.java +++ b/plugins/kotlin/idea/tests/test/org/jetbrains/kotlin/idea/codeInsight/moveUpDown/MoveStatementTestGenerated.java @@ -1385,6 +1385,11 @@ public abstract class MoveStatementTestGenerated extends AbstractMoveStatementTe KotlinTestUtils.runTest(this::doTestLine, this, testDataFilePath); } + @TestMetadata("additionalClosingBrace.kt") + public void testAdditionalClosingBrace() throws Exception { + runTest("testData/codeInsight/moveUpDown/line/additionalClosingBrace.kt"); + } + @TestMetadata("fileAnnotation.kt") public void testFileAnnotation() throws Exception { runTest("testData/codeInsight/moveUpDown/line/fileAnnotation.kt"); diff --git a/plugins/kotlin/idea/tests/testData/codeInsight/moveUpDown/line/additionalClosingBrace.kt b/plugins/kotlin/idea/tests/testData/codeInsight/moveUpDown/line/additionalClosingBrace.kt new file mode 100644 index 000000000000..ee46205c1ce3 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/codeInsight/moveUpDown/line/additionalClosingBrace.kt @@ -0,0 +1,8 @@ +// MOVE: up +fun dispose(editor: Editor) { + val disposable = editor.getUserData(AIDiffKeys.AI_DIFF_VIEWER) as AIInEditorDiffViewer? + if (disposable != null) { + + } + Disposer.dispose(disposable)) +} \ No newline at end of file diff --git a/plugins/kotlin/idea/tests/testData/codeInsight/moveUpDown/line/additionalClosingBrace.kt.after b/plugins/kotlin/idea/tests/testData/codeInsight/moveUpDown/line/additionalClosingBrace.kt.after new file mode 100644 index 000000000000..67e4b63e5d94 --- /dev/null +++ b/plugins/kotlin/idea/tests/testData/codeInsight/moveUpDown/line/additionalClosingBrace.kt.after @@ -0,0 +1,8 @@ +// MOVE: up +fun dispose(editor: Editor) { + val disposable = editor.getUserData(AIDiffKeys.AI_DIFF_VIEWER) as AIInEditorDiffViewer? + if (disposable != null) { + + Disposer.dispose(disposable)) + } +}