[AA FIR] fix nested type annotations lazy resolve

^KT-56046
This commit is contained in:
Dmitrii Gridin
2023-01-26 13:36:00 +01:00
committed by Space Team
parent 3b99a5bf34
commit d13ad454da
18 changed files with 830 additions and 12 deletions
@@ -0,0 +1 @@
fun foo2(): kotlin.collections.List<kotlin.collections.List<@Anno3 @Anno2 @Anno1(s = "s") BaseAnnotation>>?
@@ -0,0 +1,46 @@
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: /foo2
contextReceivers: []
contractEffects: []
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: foo2
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
type: kotlin/collections/List<kotlin/collections/List<@R|Anno3|() @R|Anno2|() @R|Anno1|(s = String(s)) @R|Anno3|() SecondTypeAlias>>?
annotationsList: []
ownTypeArguments: [
KtUsualClassType:
type: kotlin/collections/List<@R|Anno3|() @R|Anno2|() @R|Anno1|(s = String(s)) @R|Anno3|() SecondTypeAlias>
annotationsList: []
ownTypeArguments: [
KtUsualClassType:
type: @R|Anno3|() @R|Anno2|() @R|Anno1|(s = String(s)) @R|Anno3|() SecondTypeAlias
annotationsList: [
Anno3()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1(s = "s")
psi: KtAnnotationEntry
]
ownTypeArguments: []
]
]
symbolKind: TOP_LEVEL
typeParameters: []
valueParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1,17 @@
// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE_K1
// PRETTY_RENDERER_OPTION: FULLY_EXPANDED_TYPES
@Target(AnnotationTarget.TYPE)
annotation class Anno1(val s: String)
@Target(AnnotationTarget.TYPE)
annotation class Anno2
@Target(AnnotationTarget.TYPE)
annotation class Anno3
@Target(AnnotationTarget.TYPE)
annotation class BaseAnnotation
typealias FirstTypeAlias = @Anno1("s") BaseAnnotation
typealias SecondTypeAlias = @Anno2 FirstTypeAlias
fun f<caret>oo2(): List<List<@Anno3 SecondTypeAlias>>? = null
@@ -0,0 +1 @@
fun foo2(): kotlin.collections.List<kotlin.collections.List<@Anno1(s = "s") @Anno2 @Anno3 BaseAnnotation>>?
@@ -0,0 +1,46 @@
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: /foo2
contextReceivers: []
contractEffects: []
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: false
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: foo2
origin: SOURCE
receiverParameter: null
returnType: KtUsualClassType:
type: kotlin/collections/List<kotlin/collections/List<@R|Anno3|() SecondTypeAlias>>?
annotationsList: []
ownTypeArguments: [
KtUsualClassType:
type: kotlin/collections/List<@R|Anno3|() SecondTypeAlias>
annotationsList: []
ownTypeArguments: [
KtUsualClassType:
type: @R|Anno1|(s = String(s)) @R|Anno2|() @R|Anno3|() BaseAnnotation
annotationsList: [
Anno1(s = "s")
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno3()
psi: KtAnnotationEntry
]
ownTypeArguments: []
]
]
symbolKind: TOP_LEVEL
typeParameters: []
valueParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1,51 @@
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: /foo2
contextReceivers: []
contractEffects: []
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: true
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: foo2
origin: SOURCE
receiverParameter: KtReceiverParameterSymbol:
annotationsList: []
origin: SOURCE
owningCallableSymbol: KtFunctionSymbol(/foo2)
type: KtTypeParameterType:
type: T
annotationsList: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
returnType: KtUsualClassType:
type: kotlin/collections/List<kotlin/collections/List<@R|BaseAnnotation|() T>>?
annotationsList: []
ownTypeArguments: [
KtUsualClassType:
type: kotlin/collections/List<@R|BaseAnnotation|() T>
annotationsList: []
ownTypeArguments: [
KtTypeParameterType:
type: @R|BaseAnnotation|() T
annotationsList: [
BaseAnnotation()
psi: KtAnnotationEntry
]
]
]
symbolKind: TOP_LEVEL
typeParameters: [
KtTypeParameterSymbol(T)
]
valueParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1,14 @@
// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE_K1
// PRETTY_RENDERER_OPTION: FULLY_EXPANDED_TYPES
@Target(AnnotationTarget.TYPE)
annotation class Anno1(val s: String)
@Target(AnnotationTarget.TYPE)
annotation class Anno2
@Target(AnnotationTarget.TYPE)
annotation class BaseAnnotation
typealias FirstTypeAlias = @Anno1("s") BaseAnnotation
typealias SecondTypeAlias = @Anno2 FirstTypeAlias
fun <T> T.f<caret>oo2(): List<List<@SecondTypeAlias T>>? = null
@@ -0,0 +1 @@
fun <T> T.foo2(): kotlin.collections.List<kotlin.collections.List<@BaseAnnotation T>>?
@@ -0,0 +1,51 @@
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: /foo2
contextReceivers: []
contractEffects: []
hasStableParameterNames: true
isBuiltinFunctionInvoke: false
isExtension: true
isExternal: false
isInfix: false
isInline: false
isOperator: false
isOverride: false
isStatic: false
isSuspend: false
modality: FINAL
name: foo2
origin: SOURCE
receiverParameter: KtReceiverParameterSymbol:
annotationsList: []
origin: SOURCE
owningCallableSymbol: KtFunctionSymbol(/foo2)
type: KtTypeParameterType:
type: T
annotationsList: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
returnType: KtUsualClassType:
type: kotlin/collections/List<kotlin/collections/List<@R|SecondTypeAlias|() T>>?
annotationsList: []
ownTypeArguments: [
KtUsualClassType:
type: kotlin/collections/List<@R|SecondTypeAlias|() T>
annotationsList: []
ownTypeArguments: [
KtTypeParameterType:
type: @R|SecondTypeAlias|() T
annotationsList: [
BaseAnnotation()
psi: KtAnnotationEntry
]
]
]
symbolKind: TOP_LEVEL
typeParameters: [
KtTypeParameterSymbol(T)
]
valueParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null