[RAW FIR] Put destructuring statements outside of main lambda block

This fixes a false positive REDECLARATION when you want to shadow
a destructured lambda parameter inside the lambda.

#KT-60771 Fixed
This commit is contained in:
Kirill Rakhman
2023-08-18 17:35:24 +02:00
committed by Space Team
parent 6a9c50325e
commit 8de36c416e
19 changed files with 215 additions and 90 deletions
@@ -220,6 +220,10 @@ sealed class KtFakeSourceElementKind(final override val shouldSkipErrorTypeRepor
// where `it` parameter declaration has fake source
object ItLambdaParameter : KtFakeSourceElementKind()
// { (a, b) -> foo() } -> { x -> val (a, b) = x; { foo() } }
// where the inner block { foo() } has fake source
object LambdaDestructuringBlock : KtFakeSourceElementKind()
// for java annotations implicit constructor is generated
// with a fake source which refers to containing class
object ImplicitJavaAnnotationConstructor : KtFakeSourceElementKind()