[LL FIR] FirElementBuilder: avoid body resolution for type references inside 'where'

^KT-62691 Fixed
This commit is contained in:
Dmitrii Gridin
2023-10-18 19:19:38 +02:00
committed by Space Team
parent 35567d453b
commit 500de9f9bb
5 changed files with 29 additions and 16 deletions
@@ -20,6 +20,6 @@ FILE: [ResolvedTo(IMPORTS)] annotationInsideWhereFunction.kt
}
public? final? [ResolvedTo(RAW_FIR)] interface Two : R|kotlin/Any| {
}
public final [ResolvedTo(BODY_RESOLVE)] fun <[ResolvedTo(BODY_RESOLVE)] T : R|One|, R|@R|Anno|(s = String(str)) Two|> foo([ResolvedTo(BODY_RESOLVE)] t: R|T|): R|T| {
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] fun <[ResolvedTo(ANNOTATION_ARGUMENTS)] T : R|One|, R|@R|Anno|(s = String(str)) Two|> foo([ResolvedTo(ANNOTATION_ARGUMENTS)] t: R|T|): R|T| {
^foo R|<local>/t|
}
}
@@ -20,7 +20,7 @@ FILE: [ResolvedTo(IMPORTS)] annotationInsideWhereProperty.kt
}
public abstract [ResolvedTo(STATUS)] interface Two : R|kotlin/Any| {
}
public final [ResolvedTo(BODY_RESOLVE)] val <[ResolvedTo(BODY_RESOLVE)] T : R|One|, R|@R|Anno|(s = String(str)) Two|> R|T|.foo: R|T|
public [ResolvedTo(BODY_RESOLVE)] get(): R|T| {
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] val <[ResolvedTo(ANNOTATION_ARGUMENTS)] T : R|One|, R|@R|Anno|(s = String(str)) Two|> R|T|.foo: R|T|
public [ResolvedTo(ANNOTATION_ARGUMENTS)] get(): R|T| {
^ this@R|/foo|
}
}
@@ -11,6 +11,6 @@ FILE: [ResolvedTo(IMPORTS)] whereFunction.kt
}
public? final? [ResolvedTo(RAW_FIR)] interface Two : R|kotlin/Any| {
}
public final [ResolvedTo(BODY_RESOLVE)] fun <[ResolvedTo(BODY_RESOLVE)] T : R|One|, R|Two|> foo([ResolvedTo(BODY_RESOLVE)] t: R|T|): R|T| {
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] fun <[ResolvedTo(ANNOTATION_ARGUMENTS)] T : R|One|, R|Two|> foo([ResolvedTo(ANNOTATION_ARGUMENTS)] t: R|T|): R|T| {
^foo R|<local>/t|
}
}
@@ -11,7 +11,7 @@ FILE: [ResolvedTo(IMPORTS)] whereProperty.kt
}
public abstract [ResolvedTo(STATUS)] interface Two : R|kotlin/Any| {
}
public final [ResolvedTo(BODY_RESOLVE)] val <[ResolvedTo(BODY_RESOLVE)] T : R|One|, R|Two|> R|T|.foo: R|T|
public [ResolvedTo(BODY_RESOLVE)] get(): R|T| {
public final [ResolvedTo(ANNOTATION_ARGUMENTS)] val <[ResolvedTo(ANNOTATION_ARGUMENTS)] T : R|One|, R|Two|> R|T|.foo: R|T|
public [ResolvedTo(ANNOTATION_ARGUMENTS)] get(): R|T| {
^ this@R|/foo|
}
}