KT-23268: Highlight destructuring declaration entries as properties

#KT-23268 Fixed
This commit is contained in:
Simon Ogorodnik
2018-12-17 19:32:29 +03:00
parent a4897641d4
commit fefd2bf427
3 changed files with 23 additions and 0 deletions
@@ -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) {
+13
View File
@@ -0,0 +1,13 @@
<info descr="null">data</info> class <info descr="null">Box</info>(val <info descr="null">v</info>: <info descr="null">Int</info>)
fun <info descr="null">consume</info>(<warning descr="[UNUSED_PARAMETER] Parameter 'x' is never used"><info descr="null">x</info></warning>: <info descr="null">Int</info>) {}
fun <info descr="null">some</info>() {
val (<info textAttributesKey="KOTLIN_LOCAL_VARIABLE">s</info>) = <info descr="null">Box</info>(0)
var (<info textAttributesKey="KOTLIN_LOCAL_VARIABLE"><info textAttributesKey="KOTLIN_MUTABLE_VARIABLE">x</info></info>) = <info descr="null">Box</info>(1)
<info descr="null">consume</info>(<info descr="null">s</info>)
<info descr="null">consume</info>(<info textAttributesKey="KOTLIN_LOCAL_VARIABLE"><info textAttributesKey="KOTLIN_MUTABLE_VARIABLE">x</info></info>)
<info textAttributesKey="KOTLIN_LOCAL_VARIABLE"><info textAttributesKey="KOTLIN_MUTABLE_VARIABLE">x</info></info> = <info textAttributesKey="KOTLIN_LOCAL_VARIABLE"><info textAttributesKey="KOTLIN_MUTABLE_VARIABLE">x</info></info> * 2 + 2
<info descr="null">consume</info>(<info textAttributesKey="KOTLIN_LOCAL_VARIABLE"><info textAttributesKey="KOTLIN_MUTABLE_VARIABLE">x</info></info>)
}
@@ -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");