[LightTree] Stop reporting LOCAL_VARIABLE_WITH_TYPE_PARAMETERS on

...destructuring declarations to make it similar to PSI.

^KT-62704
This commit is contained in:
Roman Efremov
2024-01-26 16:57:19 +01:00
committed by Space Team
parent d22cc01638
commit 8c000b8319
3 changed files with 7 additions and 10 deletions
@@ -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))
@@ -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 <!LOCAL_VARIABLE_WITH_TYPE_PARAMETERS{LT}!><T : __UNRESOLVED__><!> (x1, y1) = Pair(1, 2)
var <!LOCAL_VARIABLE_WITH_TYPE_PARAMETERS{LT}!><T : __UNRESOLVED__><!> (x2, y2) = Pair(1, 2)
val <T : __UNRESOLVED__> (x1, y1) = Pair(1, 2)
var <T : __UNRESOLVED__> (x2, y2) = Pair(1, 2)
}
/*
@@ -56,8 +55,8 @@ fun case_6() {
* UNEXPECTED BEHAVIOUR
*/
fun case_7() {
val <!LOCAL_VARIABLE_WITH_TYPE_PARAMETERS{LT}!><T : __UNRESOLVED__><!> (x1, y1) where __UNRESOLVED__: __UNRESOLVED__ = Pair(1, 2)
var <!LOCAL_VARIABLE_WITH_TYPE_PARAMETERS{LT}!><T : __UNRESOLVED__><!> (x2, y2) where __UNRESOLVED__: __UNRESOLVED__ = Pair(1, 2)
val <T : __UNRESOLVED__> (x1, y1) where __UNRESOLVED__: __UNRESOLVED__ = Pair(1, 2)
var <T : __UNRESOLVED__> (x2, y2) where __UNRESOLVED__: __UNRESOLVED__ = Pair(1, 2)
}
// TESTCASE NUMBER: 8
@@ -1,6 +1,5 @@
// !DIAGNOSTICS: -UNUSED_VARIABLE
// SKIP_TXT
// COMPARE_WITH_LIGHT_TREE
/*
* KOTLIN DIAGNOSTICS NOT LINKED SPEC TEST (NEGATIVE)