[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
@@ -106,6 +106,72 @@ public class Fe10IdeNormalAnalysisSourceModuleSingleSymbolByPsiGenerated extends
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/setterWithAnnotations.kt");
}
@Test
@TestMetadata("typeAnnotationsOnFunctionParameterType.kt")
public void testTypeAnnotationsOnFunctionParameterType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnFunctionParameterType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnFunctionReceiverType.kt")
public void testTypeAnnotationsOnFunctionReceiverType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnFunctionReceiverType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnPropertyGetterReturnType.kt")
public void testTypeAnnotationsOnPropertyGetterReturnType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnPropertyGetterReturnType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnPropertyReceiverType.kt")
public void testTypeAnnotationsOnPropertyReceiverType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnPropertyReceiverType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnPropertyReturnType.kt")
public void testTypeAnnotationsOnPropertyReturnType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnPropertyReturnType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnPropertySetterParameterType.kt")
public void testTypeAnnotationsOnPropertySetterParameterType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnPropertySetterParameterType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnPropertySetterParameterTypeWithAnotherAnnotation.kt")
public void testTypeAnnotationsOnPropertySetterParameterTypeWithAnotherAnnotation() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnPropertySetterParameterTypeWithAnotherAnnotation.kt");
}
@Test
@TestMetadata("typeAnnotationsOnSuperClassCall.kt")
public void testTypeAnnotationsOnSuperClassCall() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnSuperClassCall.kt");
}
@Test
@TestMetadata("typeAnnotationsOnSuperClassCallOnAnonymousObject.kt")
public void testTypeAnnotationsOnSuperClassCallOnAnonymousObject() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnSuperClassCallOnAnonymousObject.kt");
}
@Test
@TestMetadata("typeAnnotationsOnSuperInterface.kt")
public void testTypeAnnotationsOnSuperInterface() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnSuperInterface.kt");
}
@Test
@TestMetadata("typeAnnotationsOnSuperInterfaceOnAnonymousObject.kt")
public void testTypeAnnotationsOnSuperInterfaceOnAnonymousObject() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnSuperInterfaceOnAnonymousObject.kt");
}
@Test
@TestMetadata("typeAnnotationsWithTypeAlias.kt")
public void testTypeAnnotationsWithTypeAlias() throws Exception {
@@ -124,6 +124,12 @@ public class Fe10IdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated ext
runTest("analysis/analysis-api/testData/symbols/symbolByReference/javaField.kt");
}
@Test
@TestMetadata("javaFieldWithTypeAnnotation.kt")
public void testJavaFieldWithTypeAnnotation() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByReference/javaFieldWithTypeAnnotation.kt");
}
@Test
@TestMetadata("javaMethod.kt")
public void testJavaMethod() throws Exception {
@@ -178,6 +184,12 @@ public class Fe10IdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated ext
runTest("analysis/analysis-api/testData/symbols/symbolByReference/setterValueParameter.kt");
}
@Test
@TestMetadata("typeAnnotationOnBackingField.kt")
public void testTypeAnnotationOnBackingField() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByReference/typeAnnotationOnBackingField.kt");
}
@Test
@TestMetadata("valueParameter.kt")
public void testValueParameter() throws Exception {
@@ -106,6 +106,72 @@ public class FirIdeNormalAnalysisSourceModuleSingleSymbolByPsiGenerated extends
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/setterWithAnnotations.kt");
}
@Test
@TestMetadata("typeAnnotationsOnFunctionParameterType.kt")
public void testTypeAnnotationsOnFunctionParameterType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnFunctionParameterType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnFunctionReceiverType.kt")
public void testTypeAnnotationsOnFunctionReceiverType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnFunctionReceiverType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnPropertyGetterReturnType.kt")
public void testTypeAnnotationsOnPropertyGetterReturnType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnPropertyGetterReturnType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnPropertyReceiverType.kt")
public void testTypeAnnotationsOnPropertyReceiverType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnPropertyReceiverType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnPropertyReturnType.kt")
public void testTypeAnnotationsOnPropertyReturnType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnPropertyReturnType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnPropertySetterParameterType.kt")
public void testTypeAnnotationsOnPropertySetterParameterType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnPropertySetterParameterType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnPropertySetterParameterTypeWithAnotherAnnotation.kt")
public void testTypeAnnotationsOnPropertySetterParameterTypeWithAnotherAnnotation() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnPropertySetterParameterTypeWithAnotherAnnotation.kt");
}
@Test
@TestMetadata("typeAnnotationsOnSuperClassCall.kt")
public void testTypeAnnotationsOnSuperClassCall() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnSuperClassCall.kt");
}
@Test
@TestMetadata("typeAnnotationsOnSuperClassCallOnAnonymousObject.kt")
public void testTypeAnnotationsOnSuperClassCallOnAnonymousObject() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnSuperClassCallOnAnonymousObject.kt");
}
@Test
@TestMetadata("typeAnnotationsOnSuperInterface.kt")
public void testTypeAnnotationsOnSuperInterface() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnSuperInterface.kt");
}
@Test
@TestMetadata("typeAnnotationsOnSuperInterfaceOnAnonymousObject.kt")
public void testTypeAnnotationsOnSuperInterfaceOnAnonymousObject() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnSuperInterfaceOnAnonymousObject.kt");
}
@Test
@TestMetadata("typeAnnotationsWithTypeAlias.kt")
public void testTypeAnnotationsWithTypeAlias() throws Exception {
@@ -124,6 +124,12 @@ public class FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated exte
runTest("analysis/analysis-api/testData/symbols/symbolByReference/javaField.kt");
}
@Test
@TestMetadata("javaFieldWithTypeAnnotation.kt")
public void testJavaFieldWithTypeAnnotation() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByReference/javaFieldWithTypeAnnotation.kt");
}
@Test
@TestMetadata("javaMethod.kt")
public void testJavaMethod() throws Exception {
@@ -178,6 +184,12 @@ public class FirIdeNormalAnalysisSourceModuleSymbolByReferenceTestGenerated exte
runTest("analysis/analysis-api/testData/symbols/symbolByReference/setterValueParameter.kt");
}
@Test
@TestMetadata("typeAnnotationOnBackingField.kt")
public void testTypeAnnotationOnBackingField() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByReference/typeAnnotationOnBackingField.kt");
}
@Test
@TestMetadata("valueParameter.kt")
public void testValueParameter() throws Exception {
@@ -106,6 +106,72 @@ public class FirStandaloneNormalAnalysisSourceModuleSingleSymbolByPsiGenerated e
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/setterWithAnnotations.kt");
}
@Test
@TestMetadata("typeAnnotationsOnFunctionParameterType.kt")
public void testTypeAnnotationsOnFunctionParameterType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnFunctionParameterType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnFunctionReceiverType.kt")
public void testTypeAnnotationsOnFunctionReceiverType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnFunctionReceiverType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnPropertyGetterReturnType.kt")
public void testTypeAnnotationsOnPropertyGetterReturnType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnPropertyGetterReturnType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnPropertyReceiverType.kt")
public void testTypeAnnotationsOnPropertyReceiverType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnPropertyReceiverType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnPropertyReturnType.kt")
public void testTypeAnnotationsOnPropertyReturnType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnPropertyReturnType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnPropertySetterParameterType.kt")
public void testTypeAnnotationsOnPropertySetterParameterType() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnPropertySetterParameterType.kt");
}
@Test
@TestMetadata("typeAnnotationsOnPropertySetterParameterTypeWithAnotherAnnotation.kt")
public void testTypeAnnotationsOnPropertySetterParameterTypeWithAnotherAnnotation() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnPropertySetterParameterTypeWithAnotherAnnotation.kt");
}
@Test
@TestMetadata("typeAnnotationsOnSuperClassCall.kt")
public void testTypeAnnotationsOnSuperClassCall() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnSuperClassCall.kt");
}
@Test
@TestMetadata("typeAnnotationsOnSuperClassCallOnAnonymousObject.kt")
public void testTypeAnnotationsOnSuperClassCallOnAnonymousObject() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnSuperClassCallOnAnonymousObject.kt");
}
@Test
@TestMetadata("typeAnnotationsOnSuperInterface.kt")
public void testTypeAnnotationsOnSuperInterface() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnSuperInterface.kt");
}
@Test
@TestMetadata("typeAnnotationsOnSuperInterfaceOnAnonymousObject.kt")
public void testTypeAnnotationsOnSuperInterfaceOnAnonymousObject() throws Exception {
runTest("analysis/analysis-api/testData/symbols/singleSymbolByPsi/typeAnnotationsOnSuperInterfaceOnAnonymousObject.kt");
}
@Test
@TestMetadata("typeAnnotationsWithTypeAlias.kt")
public void testTypeAnnotationsWithTypeAlias() throws Exception {
@@ -124,6 +124,12 @@ public class FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerat
runTest("analysis/analysis-api/testData/symbols/symbolByReference/javaField.kt");
}
@Test
@TestMetadata("javaFieldWithTypeAnnotation.kt")
public void testJavaFieldWithTypeAnnotation() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByReference/javaFieldWithTypeAnnotation.kt");
}
@Test
@TestMetadata("javaMethod.kt")
public void testJavaMethod() throws Exception {
@@ -178,6 +184,12 @@ public class FirStandaloneNormalAnalysisSourceModuleSymbolByReferenceTestGenerat
runTest("analysis/analysis-api/testData/symbols/symbolByReference/setterValueParameter.kt");
}
@Test
@TestMetadata("typeAnnotationOnBackingField.kt")
public void testTypeAnnotationOnBackingField() throws Exception {
runTest("analysis/analysis-api/testData/symbols/symbolByReference/typeAnnotationOnBackingField.kt");
}
@Test
@TestMetadata("valueParameter.kt")
public void testValueParameter() throws Exception {
@@ -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
@@ -118,7 +118,7 @@ open class FirTypeResolveTransformer(
}
override fun transformTypeAlias(typeAlias: FirTypeAlias, data: Any?): FirTypeAlias = whileAnalysing(session, typeAlias) {
return withScopeCleanup {
withScopeCleanup {
typeAlias.addTypeParametersScope()
transformDeclaration(typeAlias, data)
} as FirTypeAlias
@@ -128,7 +128,7 @@ open class FirTypeResolveTransformer(
enumEntry.transformReturnTypeRef(this, data)
enumEntry.transformTypeParameters(this, data)
enumEntry.transformAnnotations(this, data)
return enumEntry
enumEntry
}
override fun transformReceiverParameter(receiverParameter: FirReceiverParameter, data: Any?): FirReceiverParameter {
@@ -136,29 +136,32 @@ open class FirTypeResolveTransformer(
}
override fun transformProperty(property: FirProperty, data: Any?): FirProperty = whileAnalysing(session, property) {
return withScopeCleanup {
property.addTypeParametersScope()
property.transformTypeParameters(this, data)
.transformReturnTypeRef(this, data)
.transformReceiverParameter(this, data)
.transformContextReceivers(this, data)
.transformGetter(this, data)
.transformSetter(this, data)
.transformBackingField(this, data)
.transformAnnotations(this, data)
if (property.isFromVararg == true) {
property.transformTypeToArrayType()
property.backingField?.transformTypeToArrayType()
setAccessorTypesByPropertyType(property)
withScopeCleanup {
withDeclaration(property) {
property.addTypeParametersScope()
property.transformTypeParameters(this, data)
.transformReturnTypeRef(this, data)
.transformReceiverParameter(this, data)
.transformContextReceivers(this, data)
.transformGetter(this, data)
.transformSetter(this, data)
.transformBackingField(this, data)
.transformAnnotations(this, data)
if (property.isFromVararg == true) {
property.transformTypeToArrayType()
property.backingField?.transformTypeToArrayType()
setAccessorTypesByPropertyType(property)
}
if (property.returnTypeRef is FirResolvedTypeRef && property.delegate != null) {
setAccessorTypesByPropertyType(property)
}
unboundCyclesInTypeParametersSupertypes(property)
property
}
if (property.returnTypeRef is FirResolvedTypeRef && property.delegate != null) {
setAccessorTypesByPropertyType(property)
}
unboundCyclesInTypeParametersSupertypes(property)
property
}
}
@@ -168,7 +171,7 @@ open class FirTypeResolveTransformer(
}
override fun transformField(field: FirField, data: Any?): FirField = whileAnalysing(session, field) {
return withScopeCleanup {
withScopeCleanup {
field.transformReturnTypeRef(this, data).transformAnnotations(this, data)
field
}
@@ -176,12 +179,14 @@ open class FirTypeResolveTransformer(
override fun transformSimpleFunction(
simpleFunction: FirSimpleFunction,
data: Any?
data: Any?,
): FirSimpleFunction = whileAnalysing(session, simpleFunction) {
return withScopeCleanup {
simpleFunction.addTypeParametersScope()
transformDeclaration(simpleFunction, data).also {
unboundCyclesInTypeParametersSupertypes(it as FirTypeParametersOwner)
withScopeCleanup {
withDeclaration(simpleFunction) {
simpleFunction.addTypeParametersScope()
transformDeclaration(simpleFunction, data).also {
unboundCyclesInTypeParametersSupertypes(it as FirTypeParametersOwner)
}
}
} as FirSimpleFunction
}
@@ -219,10 +224,6 @@ open class FirTypeResolveTransformer(
return implicitTypeRef
}
override fun transformDeclaration(declaration: FirDeclaration, data: Any?): FirDeclaration = withDeclaration(declaration) {
transformElement(declaration, data)
}
override fun transformTypeRef(typeRef: FirTypeRef, data: Any?): FirResolvedTypeRef {
return typeResolverTransformer.withFile(currentFile) {
typeRef.transform(
@@ -232,11 +233,16 @@ open class FirTypeResolveTransformer(
}
}
override fun transformValueParameter(valueParameter: FirValueParameter, data: Any?): FirStatement = whileAnalysing(session, valueParameter) {
valueParameter.transformReturnTypeRef(this, data)
valueParameter.transformAnnotations(this, data)
valueParameter.transformVarargTypeToArrayType()
return valueParameter
override fun transformValueParameter(
valueParameter: FirValueParameter,
data: Any?,
): FirStatement = whileAnalysing(session, valueParameter) {
withDeclaration(valueParameter) {
valueParameter.transformReturnTypeRef(this, data)
valueParameter.transformAnnotations(this, data)
valueParameter.transformVarargTypeToArrayType()
valueParameter
}
}
override fun transformBlock(block: FirBlock, data: Any?): FirStatement {