[FIR] FirTypeResolveTransformer: support lazy type annotations for all declarations

^KTIJ-23547
^KTIJ-24141
This commit is contained in:
Dmitrii Gridin
2023-01-17 16:30:03 +01:00
committed by Space Team
parent 73cdaf5c3c
commit 7f24a38997
70 changed files with 1629 additions and 39 deletions
@@ -0,0 +1 @@
fun foo(para: @Anno3 @Anno2 @Anno1 BaseInterface)
@@ -0,0 +1,53 @@
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: /foo
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: foo
origin: SOURCE
receiverParameter: null
returnType: kotlin/Unit
symbolKind: TOP_LEVEL
typeParameters: []
valueParameters: [
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: para
origin: SOURCE
receiverParameter: null
returnType: [
Anno3()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1()
psi: KtAnnotationEntry
] @R|Anno3|() @R|Anno2|() @R|Anno1|() @R|Anno3|() SecondTypeAlias
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
]
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1,18 @@
// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE_K1
// PRETTY_RENDERER_OPTION: FULLY_EXPANDED_TYPES
@Target(AnnotationTarget.TYPE)
annotation class Anno1
@Target(AnnotationTarget.TYPE)
annotation class Anno2
@Target(AnnotationTarget.TYPE)
annotation class Anno3
interface BaseInterface
typealias FirstTypeAlias = @Anno1 BaseInterface
typealias SecondTypeAlias = @Anno2 FirstTypeAlias
fun f<caret>oo(para: @Anno3 SecondTypeAlias) {
}
@@ -0,0 +1 @@
fun foo(para: @Anno1 @Anno2 @Anno3 BaseInterface)
@@ -0,0 +1,53 @@
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: /foo
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: foo
origin: SOURCE
receiverParameter: null
returnType: kotlin/Unit
symbolKind: TOP_LEVEL
typeParameters: []
valueParameters: [
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: para
origin: SOURCE
receiverParameter: null
returnType: [
Anno1()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno3()
psi: KtAnnotationEntry
] @R|Anno1|() @R|Anno2|() @R|Anno3|() BaseInterface
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
]
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1 @@
fun @Anno3 @Anno2 @Anno1 BaseInterface.foo()
@@ -0,0 +1,39 @@
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: /foo
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: foo
origin: SOURCE
receiverParameter: KtReceiverParameterSymbol:
annotationsList: []
origin: SOURCE
owningCallableSymbol: KtFunctionSymbol(/foo)
type: [
Anno3()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1()
psi: KtAnnotationEntry
] @R|Anno3|() @R|Anno2|() @R|Anno1|() @R|Anno3|() SecondTypeAlias
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
returnType: kotlin/Unit
symbolKind: TOP_LEVEL
typeParameters: []
valueParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1,18 @@
// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE_K1
// PRETTY_RENDERER_OPTION: FULLY_EXPANDED_TYPES
@Target(AnnotationTarget.TYPE)
annotation class Anno1
@Target(AnnotationTarget.TYPE)
annotation class Anno2
@Target(AnnotationTarget.TYPE)
annotation class Anno3
interface BaseInterface
typealias FirstTypeAlias = @Anno1 BaseInterface
typealias SecondTypeAlias = @Anno2 FirstTypeAlias
fun @Anno3 SecondTypeAlias.f<caret>oo() {
}
@@ -0,0 +1 @@
fun @Anno1 @Anno2 @Anno3 BaseInterface.foo()
@@ -0,0 +1,39 @@
KtFunctionSymbol:
annotationsList: []
callableIdIfNonLocal: /foo
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: foo
origin: SOURCE
receiverParameter: KtReceiverParameterSymbol:
annotationsList: []
origin: SOURCE
owningCallableSymbol: KtFunctionSymbol(/foo)
type: [
Anno1()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno3()
psi: KtAnnotationEntry
] @R|Anno1|() @R|Anno2|() @R|Anno3|() BaseInterface
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
returnType: kotlin/Unit
symbolKind: TOP_LEVEL
typeParameters: []
valueParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1,27 @@
KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: true
hasStableParameterNames: true
isDefault: false
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverParameter: null
returnType: [
Anno3()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1()
psi: KtAnnotationEntry
] @R|Anno3|() @R|Anno2|() @R|Anno1|() @R|Anno3|() SecondTypeAlias
symbolKind: ACCESSOR
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
@Target(AnnotationTarget.TYPE)
annotation class Anno2
@Target(AnnotationTarget.TYPE)
annotation class Anno3
interface BaseInterface
typealias FirstTypeAlias = @Anno1 BaseInterface
typealias SecondTypeAlias = @Anno2 FirstTypeAlias
val foo: @Anno3 SecondTypeAlias
ge<caret>t() {}
@@ -0,0 +1,27 @@
KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: true
hasStableParameterNames: true
isDefault: false
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverParameter: null
returnType: [
Anno1()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno3()
psi: KtAnnotationEntry
] @R|Anno1|() @R|Anno2|() @R|Anno3|() BaseInterface
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1 @@
val @Anno3 @Anno2 @Anno1 BaseInterface.foo: kotlin.Int
@@ -0,0 +1,77 @@
KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /foo
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverParameter: KtReceiverParameterSymbol:
annotationsList: []
origin: SOURCE
owningCallableSymbol: KtKotlinPropertySymbol(/foo)
type: [
Anno3()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1()
psi: KtAnnotationEntry
] @R|Anno3|() @R|Anno2|() @R|Anno1|() @R|Anno3|() SecondTypeAlias
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
returnType: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: null
isConst: false
isDelegatedProperty: false
isExtension: true
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: foo
origin: SOURCE
receiverParameter: KtReceiverParameterSymbol:
annotationsList: []
origin: SOURCE
owningCallableSymbol: KtKotlinPropertySymbol(/foo)
type: [
Anno3()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1()
psi: KtAnnotationEntry
] @R|Anno3|() @R|Anno2|() @R|Anno1|() @R|Anno3|() SecondTypeAlias
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
returnType: kotlin/Int
setter: null
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getFoo
javaSetterName: null
setterDeprecationStatus: null
@@ -0,0 +1,16 @@
// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE_K1
// PRETTY_RENDERER_OPTION: FULLY_EXPANDED_TYPES
@Target(AnnotationTarget.TYPE)
annotation class Anno1
@Target(AnnotationTarget.TYPE)
annotation class Anno2
@Target(AnnotationTarget.TYPE)
annotation class Anno3
interface BaseInterface
typealias FirstTypeAlias = @Anno1 BaseInterface
typealias SecondTypeAlias = @Anno2 FirstTypeAlias
val @Anno3 SecondTypeAlias.fo<caret>o: Int
@@ -0,0 +1 @@
val @Anno1 @Anno2 @Anno3 BaseInterface.foo: kotlin.Int
@@ -0,0 +1,77 @@
KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /foo
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverParameter: KtReceiverParameterSymbol:
annotationsList: []
origin: SOURCE
owningCallableSymbol: KtKotlinPropertySymbol(/foo)
type: [
Anno1()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno3()
psi: KtAnnotationEntry
] @R|Anno1|() @R|Anno2|() @R|Anno3|() BaseInterface
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
returnType: kotlin/Int
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: null
isConst: false
isDelegatedProperty: false
isExtension: true
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: foo
origin: SOURCE
receiverParameter: KtReceiverParameterSymbol:
annotationsList: []
origin: SOURCE
owningCallableSymbol: KtKotlinPropertySymbol(/foo)
type: [
Anno1()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno3()
psi: KtAnnotationEntry
] @R|Anno1|() @R|Anno2|() @R|Anno3|() BaseInterface
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
returnType: kotlin/Int
setter: null
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getFoo
javaSetterName: null
setterDeprecationStatus: null
@@ -0,0 +1 @@
val foo: @Anno3 @Anno2 @Anno1 BaseInterface
@@ -0,0 +1,65 @@
KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /foo
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverParameter: null
returnType: [
Anno3()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1()
psi: KtAnnotationEntry
] @R|Anno3|() @R|Anno2|() @R|Anno1|() @R|Anno3|() SecondTypeAlias
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: null
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: foo
origin: SOURCE
receiverParameter: null
returnType: [
Anno3()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1()
psi: KtAnnotationEntry
] @R|Anno3|() @R|Anno2|() @R|Anno1|() @R|Anno3|() SecondTypeAlias
setter: null
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getFoo
javaSetterName: null
setterDeprecationStatus: null
@@ -0,0 +1,16 @@
// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE_K1
// PRETTY_RENDERER_OPTION: FULLY_EXPANDED_TYPES
@Target(AnnotationTarget.TYPE)
annotation class Anno1
@Target(AnnotationTarget.TYPE)
annotation class Anno2
@Target(AnnotationTarget.TYPE)
annotation class Anno3
interface BaseInterface
typealias FirstTypeAlias = @Anno1 BaseInterface
typealias SecondTypeAlias = @Anno2 FirstTypeAlias
val fo<caret>o: @Anno3 SecondTypeAlias
@@ -0,0 +1 @@
val foo: @Anno1 @Anno2 @Anno3 BaseInterface
@@ -0,0 +1,65 @@
KtKotlinPropertySymbol:
annotationsList: []
callableIdIfNonLocal: /foo
contextReceivers: []
getter: KtPropertyGetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: false
hasStableParameterNames: true
isDefault: true
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
receiverParameter: null
returnType: [
Anno1()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno3()
psi: KtAnnotationEntry
] @R|Anno1|() @R|Anno2|() @R|Anno3|() BaseInterface
symbolKind: ACCESSOR
typeParameters: []
valueParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
hasBackingField: true
hasGetter: true
hasSetter: false
initializer: null
isConst: false
isDelegatedProperty: false
isExtension: false
isFromPrimaryConstructor: false
isLateInit: false
isOverride: false
isStatic: false
isVal: true
modality: FINAL
name: foo
origin: SOURCE
receiverParameter: null
returnType: [
Anno1()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno3()
psi: KtAnnotationEntry
] @R|Anno1|() @R|Anno2|() @R|Anno3|() BaseInterface
setter: null
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
getterDeprecationStatus: null
javaGetterName: getFoo
javaSetterName: null
setterDeprecationStatus: null
@@ -0,0 +1 @@
set(value: @Anno3 @Anno2 @Anno1 BaseInterface)
@@ -0,0 +1,73 @@
KtPropertySetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: true
hasStableParameterNames: true
isDefault: false
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
parameter: KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: value
origin: SOURCE
receiverParameter: null
returnType: [
Anno3()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1()
psi: KtAnnotationEntry
] @R|Anno3|() @R|Anno2|() @R|Anno1|() @R|Anno3|() SecondTypeAlias
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
receiverParameter: null
returnType: kotlin/Unit
symbolKind: ACCESSOR
typeParameters: []
valueParameters: [
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: value
origin: SOURCE
receiverParameter: null
returnType: [
Anno3()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1()
psi: KtAnnotationEntry
] @R|Anno3|() @R|Anno2|() @R|Anno1|() @R|Anno3|() SecondTypeAlias
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
]
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1,19 @@
// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE_K1
// PRETTY_RENDERER_OPTION: FULLY_EXPANDED_TYPES
@Target(AnnotationTarget.TYPE)
annotation class Anno1
@Target(AnnotationTarget.TYPE)
annotation class Anno2
@Target(AnnotationTarget.TYPE)
annotation class Anno3
interface BaseInterface
typealias FirstTypeAlias = @Anno1 BaseInterface
typealias SecondTypeAlias = @Anno2 FirstTypeAlias
var foo: @Anno3 SecondTypeAlias = TODO()
s<caret>et(value) {
field = value
}
@@ -0,0 +1 @@
set(value: @Anno1 @Anno2 @Anno3 BaseInterface)
@@ -0,0 +1,73 @@
KtPropertySetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: true
hasStableParameterNames: true
isDefault: false
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
parameter: KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: value
origin: SOURCE
receiverParameter: null
returnType: [
Anno1()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno3()
psi: KtAnnotationEntry
] @R|Anno1|() @R|Anno2|() @R|Anno3|() BaseInterface
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
receiverParameter: null
returnType: kotlin/Unit
symbolKind: ACCESSOR
typeParameters: []
valueParameters: [
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: value
origin: SOURCE
receiverParameter: null
returnType: [
Anno1()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno3()
psi: KtAnnotationEntry
] @R|Anno1|() @R|Anno2|() @R|Anno3|() BaseInterface
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
]
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1 @@
set(value: @Anno4 @Anno2 @Anno1 BaseInterface)
@@ -0,0 +1,73 @@
KtPropertySetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: true
hasStableParameterNames: true
isDefault: false
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
parameter: KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: value
origin: SOURCE
receiverParameter: null
returnType: [
Anno4()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1()
psi: KtAnnotationEntry
] @R|Anno4|() @R|Anno2|() @R|Anno1|() @R|Anno4|() SecondTypeAlias
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
receiverParameter: null
returnType: kotlin/Unit
symbolKind: ACCESSOR
typeParameters: []
valueParameters: [
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: value
origin: SOURCE
receiverParameter: null
returnType: [
Anno4()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1()
psi: KtAnnotationEntry
] @R|Anno4|() @R|Anno2|() @R|Anno1|() @R|Anno4|() SecondTypeAlias
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
]
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1,21 @@
// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE_K1
// PRETTY_RENDERER_OPTION: FULLY_EXPANDED_TYPES
@Target(AnnotationTarget.TYPE)
annotation class Anno1
@Target(AnnotationTarget.TYPE)
annotation class Anno2
@Target(AnnotationTarget.TYPE)
annotation class Anno3
@Target(AnnotationTarget.TYPE)
annotation class Anno4
interface BaseInterface
typealias FirstTypeAlias = @Anno1 BaseInterface
typealias SecondTypeAlias = @Anno2 FirstTypeAlias
var foo: @Anno3 SecondTypeAlias = TODO()
s<caret>et(value: @Anno4 SecondTypeAlias) {
field = value
}
@@ -0,0 +1 @@
set(value: @Anno1 @Anno2 @Anno4 BaseInterface)
@@ -0,0 +1,73 @@
KtPropertySetterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
hasBody: true
hasStableParameterNames: true
isDefault: false
isExtension: false
isInline: false
isOverride: false
modality: FINAL
origin: SOURCE
parameter: KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: value
origin: SOURCE
receiverParameter: null
returnType: [
Anno1()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno4()
psi: KtAnnotationEntry
] @R|Anno1|() @R|Anno2|() @R|Anno4|() BaseInterface
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
receiverParameter: null
returnType: kotlin/Unit
symbolKind: ACCESSOR
typeParameters: []
valueParameters: [
KtValueParameterSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
generatedPrimaryConstructorProperty: null
hasDefaultValue: false
isCrossinline: false
isExtension: false
isImplicitLambdaParameter: false
isNoinline: false
isVararg: false
name: value
origin: SOURCE
receiverParameter: null
returnType: [
Anno1()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno4()
psi: KtAnnotationEntry
] @R|Anno1|() @R|Anno2|() @R|Anno4|() BaseInterface
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
]
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1 @@
class Foo : @Anno3 @Anno2 @Anno1 BaseClass()
@@ -0,0 +1,29 @@
KtNamedClassOrObjectSymbol:
annotationsList: []
classIdIfNonLocal: Foo
classKind: CLASS
companionObject: null
contextReceivers: []
isData: false
isExternal: false
isFun: false
isInline: false
isInner: false
modality: FINAL
name: Foo
origin: SOURCE
superTypes: [
[
Anno3()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1()
psi: KtAnnotationEntry
] @R|Anno3|() @R|Anno2|() @R|Anno1|() @R|Anno3|() SecondTypeAlias
]
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1,16 @@
// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE_K1
// PRETTY_RENDERER_OPTION: FULLY_EXPANDED_TYPES
@Target(AnnotationTarget.TYPE)
annotation class Anno1
@Target(AnnotationTarget.TYPE)
annotation class Anno2
@Target(AnnotationTarget.TYPE)
annotation class Anno3
open class BaseClass
typealias FirstTypeAlias = @Anno1 BaseClass
typealias SecondTypeAlias = @Anno2 FirstTypeAlias
class F<caret>oo : @Anno3 SecondTypeAlias()
@@ -0,0 +1 @@
class Foo : @Anno1 @Anno2 @Anno3 BaseClass()
@@ -0,0 +1,29 @@
KtNamedClassOrObjectSymbol:
annotationsList: []
classIdIfNonLocal: Foo
classKind: CLASS
companionObject: null
contextReceivers: []
isData: false
isExternal: false
isFun: false
isInline: false
isInner: false
modality: FINAL
name: Foo
origin: SOURCE
superTypes: [
[
Anno1()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno3()
psi: KtAnnotationEntry
] @R|Anno1|() @R|Anno2|() @R|Anno3|() BaseClass
]
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1 @@
object : @Anno3 @Anno2 @Anno1 BaseClass()
@@ -0,0 +1,20 @@
KtAnonymousObjectSymbol:
annotationsList: []
classIdIfNonLocal: null
classKind: ANONYMOUS_OBJECT
name: null
origin: SOURCE
superTypes: [
[
Anno3()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1()
psi: KtAnnotationEntry
] @R|Anno3|() @R|Anno2|() @R|Anno1|() @R|Anno3|() SecondTypeAlias
]
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1,16 @@
// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE
// PRETTY_RENDERER_OPTION: FULLY_EXPANDED_TYPES
@Target(AnnotationTarget.TYPE)
annotation class Anno1
@Target(AnnotationTarget.TYPE)
annotation class Anno2
@Target(AnnotationTarget.TYPE)
annotation class Anno3
open class BaseClass
typealias FirstTypeAlias = @Anno1 BaseClass
typealias SecondTypeAlias = @Anno2 FirstTypeAlias
val obj = ob<caret>ject : @Anno3 SecondTypeAlias()
@@ -0,0 +1 @@
object : @Anno1 @Anno2 @Anno3 BaseClass()
@@ -0,0 +1,20 @@
KtAnonymousObjectSymbol:
annotationsList: []
classIdIfNonLocal: null
classKind: ANONYMOUS_OBJECT
name: null
origin: SOURCE
superTypes: [
[
Anno1()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno3()
psi: KtAnnotationEntry
] @R|Anno1|() @R|Anno2|() @R|Anno3|() BaseClass
]
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1 @@
class Foo : @Anno3 @Anno2 @Anno1 BaseInterface
@@ -0,0 +1,30 @@
KtNamedClassOrObjectSymbol:
annotationsList: []
classIdIfNonLocal: Foo
classKind: CLASS
companionObject: null
contextReceivers: []
isData: false
isExternal: false
isFun: false
isInline: false
isInner: false
modality: FINAL
name: Foo
origin: SOURCE
superTypes: [
kotlin/Any
[
Anno3()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1()
psi: KtAnnotationEntry
] @R|Anno3|() @R|Anno2|() @R|Anno1|() @R|Anno3|() SecondTypeAlias
]
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1,16 @@
// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE_K1
// PRETTY_RENDERER_OPTION: FULLY_EXPANDED_TYPES
@Target(AnnotationTarget.TYPE)
annotation class Anno1
@Target(AnnotationTarget.TYPE)
annotation class Anno2
@Target(AnnotationTarget.TYPE)
annotation class Anno3
interface BaseInterface
typealias FirstTypeAlias = @Anno1 BaseInterface
typealias SecondTypeAlias = @Anno2 FirstTypeAlias
class F<caret>oo : @Anno3 SecondTypeAlias
@@ -0,0 +1 @@
class Foo : @Anno1 @Anno2 @Anno3 BaseInterface
@@ -0,0 +1,29 @@
KtNamedClassOrObjectSymbol:
annotationsList: []
classIdIfNonLocal: Foo
classKind: CLASS
companionObject: null
contextReceivers: []
isData: false
isExternal: false
isFun: false
isInline: false
isInner: false
modality: FINAL
name: Foo
origin: SOURCE
superTypes: [
[
Anno1()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno3()
psi: KtAnnotationEntry
] @R|Anno1|() @R|Anno2|() @R|Anno3|() BaseInterface
]
symbolKind: TOP_LEVEL
typeParameters: []
visibility: Public
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1 @@
object : @Anno3 @Anno2 @Anno1 BaseInterface
@@ -0,0 +1,20 @@
KtAnonymousObjectSymbol:
annotationsList: []
classIdIfNonLocal: null
classKind: ANONYMOUS_OBJECT
name: null
origin: SOURCE
superTypes: [
[
Anno3()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1()
psi: KtAnnotationEntry
] @R|Anno3|() @R|Anno2|() @R|Anno1|() @R|Anno3|() SecondTypeAlias
]
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1,18 @@
// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE
// PRETTY_RENDERER_OPTION: FULLY_EXPANDED_TYPES
@Target(AnnotationTarget.TYPE)
annotation class Anno1
@Target(AnnotationTarget.TYPE)
annotation class Anno2
@Target(AnnotationTarget.TYPE)
annotation class Anno3
interface BaseInterface
typealias FirstTypeAlias = @Anno1 BaseInterface
typealias SecondTypeAlias = @Anno2 FirstTypeAlias
val obj = obje<caret>ct : @Anno3 SecondTypeAlias {
}
@@ -0,0 +1 @@
object : @Anno1 @Anno2 @Anno3 BaseInterface
@@ -0,0 +1,20 @@
KtAnonymousObjectSymbol:
annotationsList: []
classIdIfNonLocal: null
classKind: ANONYMOUS_OBJECT
name: null
origin: SOURCE
superTypes: [
[
Anno1()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno3()
psi: KtAnnotationEntry
] @R|Anno1|() @R|Anno2|() @R|Anno3|() BaseInterface
]
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1,2 @@
@Anno1
var field: @Anno1 kotlin.String!
@@ -0,0 +1,24 @@
KtJavaFieldSymbol:
annotationsList: [
Anno1()
psi: null
]
callableIdIfNonLocal: /JavaClass.field
contextReceivers: []
isExtension: false
isStatic: false
isVal: false
modality: FINAL
name: field
origin: JAVA
receiverParameter: null
returnType: [
Anno1()
psi: null
] @R|Anno1|() @R|Anno1|() kotlin/String!
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): JavaClass
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1,14 @@
// DO_NOT_CHECK_SYMBOL_RESTORE_K1
// FILE: main.kt
@Target(AnnotationTarget.TYPE)
annotation class Anno1
fun some() {
val jClass = JavaClass()
jClass.<caret>field;
}
// FILE: JavaClass.java
public class JavaClass {
public @Anno1 String field = 1;
}
@@ -0,0 +1,2 @@
@Anno1
open var field: kotlin.String!
@@ -0,0 +1,21 @@
KtJavaFieldSymbol:
annotationsList: [
Anno1()
psi: null
]
callableIdIfNonLocal: /JavaClass.field
contextReceivers: []
isExtension: false
isStatic: false
isVal: false
modality: OPEN
name: field
origin: JAVA
receiverParameter: null
returnType: kotlin/String!
symbolKind: CLASS_MEMBER
typeParameters: []
visibility: Public
getDispatchReceiver(): JavaClass
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1,21 @@
KtBackingFieldSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
isExtension: false
name: field
origin: PROPERTY_BACKING_FIELD
owningProperty: KtKotlinPropertySymbol(/foo)
receiverParameter: null
returnType: [
Anno3()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno1()
psi: KtAnnotationEntry
] @R|Anno3|() @R|Anno2|() @R|Anno1|() @R|Anno3|() SecondTypeAlias
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null
@@ -0,0 +1,21 @@
// DO_NOT_CHECK_NON_PSI_SYMBOL_RESTORE_K1
// PRETTY_RENDERER_OPTION: FULLY_EXPANDED_TYPES
@Target(AnnotationTarget.TYPE)
annotation class Anno1
@Target(AnnotationTarget.TYPE)
annotation class Anno2
@Target(AnnotationTarget.TYPE)
annotation class Anno3
@Target(AnnotationTarget.TYPE)
annotation class Anno3
interface BaseInterface
typealias FirstTypeAlias = @Anno1 BaseInterface
typealias SecondTypeAlias = @Anno2 FirstTypeAlias
val foo: @Anno3 SecondTypeAlias = TODO()
get() {
return fie<caret>ld
}
@@ -0,0 +1,21 @@
KtBackingFieldSymbol:
annotationsList: []
callableIdIfNonLocal: null
contextReceivers: []
isExtension: false
name: field
origin: PROPERTY_BACKING_FIELD
owningProperty: KtKotlinPropertySymbol(/foo)
receiverParameter: null
returnType: [
Anno1()
psi: KtAnnotationEntry
Anno2()
psi: KtAnnotationEntry
Anno3()
psi: KtAnnotationEntry
] @R|Anno1|() @R|Anno2|() @R|Anno3|() BaseInterface
symbolKind: LOCAL
typeParameters: []
getContainingModule: KtSourceModule "Sources of main"
deprecationStatus: null