[LL FIR] fix lazy annotation arguments calculation for unresolved type references

Such references don't have explicit annotations yet (KT-62628), so we
should explicitly check type attributes

^KT-62625 Fixed
This commit is contained in:
Dmitrii Gridin
2023-10-16 16:36:00 +02:00
committed by Space Team
parent 50e75c6336
commit 21f81a8057
13 changed files with 641 additions and 3 deletions
@@ -0,0 +1,3 @@
fun f<caret>oo(a: @Anno(Foo) Foo): @Anno(Foo) Foo {
}
@@ -0,0 +1,60 @@
RAW_FIR:
FILE: [ResolvedTo(RAW_FIR)] unresolvedAnnotationOnFunctionType.kt
public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] a: @Anno[Unresolved](LAZY_EXPRESSION) Foo): @Anno[Unresolved](LAZY_EXPRESSION) Foo { LAZY_BLOCK }
IMPORTS:
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
public? final? [ResolvedTo(RAW_FIR)] fun foo([ResolvedTo(RAW_FIR)] a: @Anno[Unresolved](LAZY_EXPRESSION) Foo): @Anno[Unresolved](LAZY_EXPRESSION) Foo { LAZY_BLOCK }
COMPILER_REQUIRED_ANNOTATIONS:
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
public? final? [ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] fun foo([ResolvedTo(COMPILER_REQUIRED_ANNOTATIONS)] a: @Anno[Unresolved](LAZY_EXPRESSION) Foo): @Anno[Unresolved](LAZY_EXPRESSION) Foo { LAZY_BLOCK }
COMPANION_GENERATION:
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
public? final? [ResolvedTo(COMPANION_GENERATION)] fun foo([ResolvedTo(COMPANION_GENERATION)] a: @Anno[Unresolved](LAZY_EXPRESSION) Foo): @Anno[Unresolved](LAZY_EXPRESSION) Foo { LAZY_BLOCK }
SUPER_TYPES:
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
public? final? [ResolvedTo(SUPER_TYPES)] fun foo([ResolvedTo(SUPER_TYPES)] a: @Anno[Unresolved](LAZY_EXPRESSION) Foo): @Anno[Unresolved](LAZY_EXPRESSION) Foo { LAZY_BLOCK }
TYPES:
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
public? final? [ResolvedTo(TYPES)] fun foo([ResolvedTo(TYPES)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> { LAZY_BLOCK }
STATUS:
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
public final [ResolvedTo(STATUS)] fun foo([ResolvedTo(STATUS)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> { LAZY_BLOCK }
EXPECT_ACTUAL_MATCHING:
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
public final [ResolvedTo(EXPECT_ACTUAL_MATCHING)] fun foo([ResolvedTo(EXPECT_ACTUAL_MATCHING)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> { LAZY_BLOCK }
ARGUMENTS_OF_ANNOTATIONS:
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
public final [ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] fun foo([ResolvedTo(ARGUMENTS_OF_ANNOTATIONS)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> { LAZY_BLOCK }
CONTRACTS:
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
public final [ResolvedTo(CONTRACTS)] fun foo([ResolvedTo(CONTRACTS)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> {
}
IMPLICIT_TYPES_BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
public final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> {
}
ANNOTATIONS_ARGUMENTS_MAPPING:
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
public final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] fun foo([ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> {
}
BODY_RESOLVE:
FILE: [ResolvedTo(IMPORTS)] unresolvedAnnotationOnFunctionType.kt
public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> {
}
FILE RAW TO BODY:
FILE: [ResolvedTo(BODY_RESOLVE)] unresolvedAnnotationOnFunctionType.kt
public final [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] a: <ERROR TYPE REF: Symbol not found for Foo>): <ERROR TYPE REF: Symbol not found for Foo> {
}