From fefd2bf42726f4e9e17a7496addff0f700c83d08 Mon Sep 17 00:00:00 2001 From: Simon Ogorodnik Date: Mon, 17 Dec 2018 19:32:29 +0300 Subject: [PATCH] KT-23268: Highlight destructuring declaration entries as properties #KT-23268 Fixed --- .../highlighter/VariablesHighlightingVisitor.kt | 5 +++++ idea/testData/highlighter/Destructuring.kt | 13 +++++++++++++ .../idea/highlighter/HighlightingTestGenerated.java | 5 +++++ 3 files changed, 23 insertions(+) create mode 100644 idea/testData/highlighter/Destructuring.kt diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/VariablesHighlightingVisitor.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/VariablesHighlightingVisitor.kt index c097552175d..9949ee713b5 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/VariablesHighlightingVisitor.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/highlighter/VariablesHighlightingVisitor.kt @@ -67,6 +67,11 @@ internal class VariablesHighlightingVisitor(holder: AnnotationHolder, bindingCon super.visitParameter(parameter) } + override fun visitDestructuringDeclarationEntry(multiDeclarationEntry: KtDestructuringDeclarationEntry) { + visitVariableDeclaration(multiDeclarationEntry) + super.visitDestructuringDeclarationEntry(multiDeclarationEntry) + } + private fun getSmartCastTarget(expression: KtExpression): PsiElement { var target: PsiElement = expression if (target is KtParenthesizedExpression) { diff --git a/idea/testData/highlighter/Destructuring.kt b/idea/testData/highlighter/Destructuring.kt new file mode 100644 index 00000000000..5620a43c0c4 --- /dev/null +++ b/idea/testData/highlighter/Destructuring.kt @@ -0,0 +1,13 @@ +data class Box(val v: Int) +fun consume(x: Int) {} + +fun some() { + val (s) = Box(0) + var (x) = Box(1) + + consume(s) + consume(x) + + x = x * 2 + 2 + consume(x) +} \ No newline at end of file diff --git a/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java b/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java index 5fd774d9a75..9310e866ef6 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java +++ b/idea/tests/org/jetbrains/kotlin/idea/highlighter/HighlightingTestGenerated.java @@ -34,6 +34,11 @@ public class HighlightingTestGenerated extends AbstractHighlightingTest { runTest("idea/testData/highlighter/Annotations.kt"); } + @TestMetadata("Destructuring.kt") + public void testDestructuring() throws Exception { + runTest("idea/testData/highlighter/Destructuring.kt"); + } + @TestMetadata("Dynamic.kt") public void testDynamic() throws Exception { runTest("idea/testData/highlighter/Dynamic.kt");