From 8c000b8319d0ab02b3793c689aa83d7019ae3090 Mon Sep 17 00:00:00 2001 From: Roman Efremov Date: Fri, 26 Jan 2024 16:57:19 +0100 Subject: [PATCH] [LightTree] Stop reporting LOCAL_VARIABLE_WITH_TYPE_PARAMETERS on ...destructuring declarations to make it similar to PSI. ^KT-62704 --- .../FirLocalVariableTypeParametersSyntaxChecker.kt | 7 +++---- .../local-variables/type-parameters/neg/1.fir.kt | 9 ++++----- .../notLinked/local-variables/type-parameters/neg/1.kt | 1 - 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/syntax/FirLocalVariableTypeParametersSyntaxChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/syntax/FirLocalVariableTypeParametersSyntaxChecker.kt index a7110d1af13..acfc13b469b 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/syntax/FirLocalVariableTypeParametersSyntaxChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/syntax/FirLocalVariableTypeParametersSyntaxChecker.kt @@ -5,10 +5,7 @@ package org.jetbrains.kotlin.fir.analysis.checkers.syntax -import org.jetbrains.kotlin.KtFakeSourceElementKind -import org.jetbrains.kotlin.KtLightSourceElement -import org.jetbrains.kotlin.KtPsiSourceElement -import org.jetbrains.kotlin.KtSourceElement +import org.jetbrains.kotlin.* import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.diagnostics.DiagnosticReporter @@ -45,6 +42,8 @@ object FirLocalVariableTypeParametersSyntaxChecker : FirDeclarationSyntaxChecker context: CheckerContext, reporter: DiagnosticReporter ) { + val node = source.lighterASTNode + if (node.tokenType != KtNodeTypes.PROPERTY) return source.treeStructure.typeParametersList(source.lighterASTNode)?.let { _ -> val diagnostic = if (context.languageVersionSettings.supportsFeature(LanguageFeature.ProhibitTypeParametersForLocalVariables)) diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/local-variables/type-parameters/neg/1.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/local-variables/type-parameters/neg/1.fir.kt index 0b7b2fc894d..69ecb499085 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/local-variables/type-parameters/neg/1.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/local-variables/type-parameters/neg/1.fir.kt @@ -1,6 +1,5 @@ // !DIAGNOSTICS: -UNUSED_VARIABLE // SKIP_TXT -// COMPARE_WITH_LIGHT_TREE /* * KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE) @@ -47,8 +46,8 @@ fun case_5() { * UNEXPECTED BEHAVIOUR */ fun case_6() { - val (x1, y1) = Pair(1, 2) - var (x2, y2) = Pair(1, 2) + val (x1, y1) = Pair(1, 2) + var (x2, y2) = Pair(1, 2) } /* @@ -56,8 +55,8 @@ fun case_6() { * UNEXPECTED BEHAVIOUR */ fun case_7() { - val (x1, y1) where __UNRESOLVED__: __UNRESOLVED__ = Pair(1, 2) - var (x2, y2) where __UNRESOLVED__: __UNRESOLVED__ = Pair(1, 2) + val (x1, y1) where __UNRESOLVED__: __UNRESOLVED__ = Pair(1, 2) + var (x2, y2) where __UNRESOLVED__: __UNRESOLVED__ = Pair(1, 2) } // TESTCASE NUMBER: 8 diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/local-variables/type-parameters/neg/1.kt b/compiler/tests-spec/testData/diagnostics/notLinked/local-variables/type-parameters/neg/1.kt index ae710e719ac..ecb197d77e7 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/local-variables/type-parameters/neg/1.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/local-variables/type-parameters/neg/1.kt @@ -1,6 +1,5 @@ // !DIAGNOSTICS: -UNUSED_VARIABLE // SKIP_TXT -// COMPARE_WITH_LIGHT_TREE /* * KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)