FIR deserializer: apply attributes on type parameter-based types

#KT-62578 Fixed
This commit is contained in:
Mikhail Glukhikh
2023-10-16 13:33:35 +02:00
committed by Space Team
parent 1d95927582
commit 4ed7504d87
20 changed files with 108 additions and 34 deletions
@@ -19,7 +19,7 @@ FILE: delegateTypeMismatch.kt
public get(): R|kotlin/Boolean|
private final fun <T> property(initialValue: R|T|): R|kotlin/properties/ReadWriteProperty<A, T>| {
^property Q|kotlin/properties/Delegates|.R|kotlin/properties/Delegates.vetoable|<R|T|>(R|<local>/initialValue|, <L> = vetoable@fun <anonymous>(<unused var>: R|@R|kotlin/ParameterName|(name = String(property)) kotlin/reflect/KProperty<*>|, <unused var>: R|T|, <unused var>: R|T|): R|kotlin/Boolean| <inline=CrossInline> {
^property Q|kotlin/properties/Delegates|.R|kotlin/properties/Delegates.vetoable|<R|T|>(R|<local>/initialValue|, <L> = vetoable@fun <anonymous>(<unused var>: R|@R|kotlin/ParameterName|(name = String(property)) kotlin/reflect/KProperty<*>|, <unused var>: R|@R|kotlin/ParameterName|(name = String(oldValue)) T|, <unused var>: R|@R|kotlin/ParameterName|(name = String(newValue)) T|): R|kotlin/Boolean| <inline=CrossInline> {
^ when () {
this@R|/A|.R|/A.isLocked| -> {
throw R|java/lang/IllegalStateException.IllegalStateException|(String(Cannot modify readonly DescriptorRendererOptions))
@@ -1,6 +1,6 @@
FILE: test.kt
public final fun foo(tag: R|XmlTag|, name: R|kotlin/String|): R|kotlin/collections/List<XmlTag>| {
lval result: R|kotlin/collections/List<XmlTag>| = R|<local>/tag|.R|/PsiElement.children|.R|kotlin/collections/filterIsInstance|<R|XmlTag|>().R|kotlin/collections/filter|<R|XmlTag|>(<L> = filter@fun <anonymous>(it: R|XmlTag|): R|kotlin/Boolean| <inline=Inline, kind=UNKNOWN> {
lval result: R|kotlin/collections/List<@NoInfer XmlTag>| = R|<local>/tag|.R|/PsiElement.children|.R|kotlin/collections/filterIsInstance|<R|XmlTag|>().R|kotlin/collections/filter|<R|@NoInfer XmlTag|>(<L> = filter@fun <anonymous>(it: R|@NoInfer XmlTag|): R|kotlin/Boolean| <inline=Inline, kind=UNKNOWN> {
^ ==(R|<local>/it|.R|/XmlTag.localName|, R|<local>/name|)
}
)
@@ -19,13 +19,13 @@ FILE: withInInitializer.kt
public final val data: R|First| = R|/First.First|(Int(42))
public get(): R|First|
public final val test: R|kotlin/collections/List<kotlin/Int>| = R|kotlin/with|<R|First|, R|kotlin/collections/List<kotlin/Int>|>(this@R|/Second|.R|/Second.data|, <L> = with@fun R|First|.<anonymous>(): R|kotlin/collections/List<kotlin/Int>| <inline=Inline, kind=EXACTLY_ONCE> {
^ this@R|/Second|.R|/Second.list|.R|kotlin/collections/filterIsInstance|<R|kotlin/Int|>().R|kotlin/collections/filter|<R|kotlin/Int|>(<L> = filter@fun <anonymous>(it: R|kotlin/Int|): R|kotlin/Boolean| <inline=Inline, kind=UNKNOWN> {
public final val test: R|kotlin/collections/List<@NoInfer kotlin/Int>| = R|kotlin/with|<R|First|, R|kotlin/collections/List<@NoInfer kotlin/Int>|>(this@R|/Second|.R|/Second.data|, <L> = with@fun R|First|.<anonymous>(): R|kotlin/collections/List<@NoInfer kotlin/Int>| <inline=Inline, kind=EXACTLY_ONCE> {
^ this@R|/Second|.R|/Second.list|.R|kotlin/collections/filterIsInstance|<R|kotlin/Int|>().R|kotlin/collections/filter|<R|@NoInfer kotlin/Int|>(<L> = filter@fun <anonymous>(it: R|@NoInfer kotlin/Int|): R|kotlin/Boolean| <inline=Inline, kind=UNKNOWN> {
^ ==(R|<local>/it|, this@R|special/anonymous|.R|/First.member|)
}
)
}
)
public get(): R|kotlin/collections/List<kotlin/Int>|
public get(): R|kotlin/collections/List<@NoInfer kotlin/Int>|
}