From 3779acbc3d139ffdc8fb5f592717e8ef871c5108 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Thu, 16 Dec 2021 18:22:54 +0300 Subject: [PATCH] Add testdata from intellij for cls stub building tests and generate tests --- .../AnnotatedFlexibleTypes.kt | 7 + .../AnnotatedFlexibleTypes.txt | 47 ++ .../AnnotatedFlexibleTypes/d/JavaClass.java | 14 + .../AnnotatedParameterInEnumConstructor.kt | 8 + .../AnnotatedParameterInEnumConstructor.txt | 53 +++ ...notatedParameterInInnerClassConstructor.kt | 16 + ...otatedParameterInInnerClassConstructor.txt | 78 +++ .../AnnotationClass/AnnotationClass.kt | 3 + .../AnnotationClass/AnnotationClass.txt | 45 ++ .../AnnotationValues/AnnotationValues.kt | 109 +++++ .../AnnotationValues/AnnotationValues.txt | 103 ++++ .../Annotations/Annotations.kt | 72 +++ .../Annotations/Annotations.txt | 393 ++++++++++++++++ .../AnnotationsOnNullableTypes.kt | 31 ++ .../AnnotationsOnNullableTypes.txt | 227 +++++++++ .../AnnotationsOnParenthesizedTypes.kt | 29 ++ .../AnnotationsOnParenthesizedTypes.txt | 198 ++++++++ .../AnonymousReturnWithGenericType.kt | 9 + .../AnonymousReturnWithGenericType.txt | 47 ++ .../ClassMembers/ClassMembers.kt | 17 + .../ClassMembers/ClassMembers.txt | 106 +++++ .../ClassObject/ClassObject.kt | 41 ++ .../ClassObject/ClassObject.txt | 163 +++++++ .../clsFileStubBuilder/Const/Const.kt | 5 + .../clsFileStubBuilder/Const/Const.txt | 14 + .../clsFileStubBuilder/Contracts/Contracts.kt | 12 + .../Contracts/Contracts.txt | 18 + .../clsFileStubBuilder/DataClass/DataClass.kt | 5 + .../DataClass/DataClass.txt | 64 +++ .../Delegation/Delegation.kt | 14 + .../Delegation/Delegation.txt | 39 ++ .../DependencyOnNestedClasses/Dependency.kt | 14 + .../DependencyOnNestedClasses.kt | 9 + .../DependencyOnNestedClasses.txt | 67 +++ .../testData/clsFileStubBuilder/Enum/Enum.kt | 16 + .../testData/clsFileStubBuilder/Enum/Enum.txt | 79 ++++ .../FlexibleTypes/FlexibleTypes.kt | 11 + .../FlexibleTypes/FlexibleTypes.txt | 42 ++ .../clsFileStubBuilder/FlexibleTypes/ft.kt | 3 + .../FunInterfaceDeclaration.kt | 13 + .../FunInterfaceDeclaration.txt | 37 ++ .../InheritingClasses/InheritingClasses.kt | 46 ++ .../InheritingClasses/InheritingClasses.txt | 345 ++++++++++++++ .../InnerClassEnumEntry.kt | 5 + .../InnerClassEnumEntry.txt | 22 + .../InnerTypes/InnerTypes.kt | 17 + .../InnerTypes/InnerTypes.txt | 217 +++++++++ .../LocalClass/LocalClass.kt | 18 + .../LocalClass/LocalClass.txt | 41 ++ .../clsFileStubBuilder/Modifiers/Modifiers.kt | 25 + .../Modifiers/Modifiers.txt | 169 +++++++ .../MultifileClass/MultifileClass.kt | 14 + .../MultifileClass/MultifileClass.txt | 127 +++++ .../MultifileClass/SecondPart.kt | 7 + .../NamedCompanionObject.kt | 45 ++ .../NamedCompanionObject.txt | 163 +++++++ .../NestedClasses/NestedClasses.kt | 37 ++ .../NestedClasses/NestedClasses.txt | 187 ++++++++ .../clsFileStubBuilder/Objects/Objects.kt | 29 ++ .../clsFileStubBuilder/Objects/Objects.txt | 75 +++ .../PrivateConstField/PrivateConstField.kt | 16 + .../PrivateConstField/PrivateConstField.txt | 75 +++ .../PrivateToThis/PrivateToThis.kt | 15 + .../PrivateToThis/PrivateToThis.txt | 39 ++ .../clsFileStubBuilder/Sealed/Sealed.kt | 6 + .../clsFileStubBuilder/Sealed/Sealed.txt | 33 ++ .../SecondaryConstructors.kt | 29 ++ .../SecondaryConstructors.txt | 100 ++++ .../SuspendLambda/SuspendLambda.kt | 31 ++ .../SuspendLambda/SuspendLambda.txt | 322 +++++++++++++ .../TopJvmPackageName/TopJvmPackageName.kt | 9 + .../TopJvmPackageName/TopJvmPackageName.txt | 21 + .../TopLevelMembersAnnotatedKt.txt | 104 ++++ .../TopLevelMembersAnnotatedKt/annotations.kt | 5 + .../topLevelMembersAnnotated.kt | 10 + .../TopLevelMembersKt/TopLevelMembers.kt | 38 ++ .../TopLevelMembersKt/TopLevelMembersKt.txt | 170 +++++++ .../TypeAliases/Dependency.kt | 9 + .../TypeAliases/TypeAliases.kt | 39 ++ .../TypeAliases/TypeAliases.txt | 153 ++++++ .../TypeBoundsAndDelegationSpecifiers.kt | 6 + .../TypeBoundsAndDelegationSpecifiers.txt | 69 +++ .../TypeModifiers/TypeModifiers.kt | 9 + .../TypeModifiers/TypeModifiers.txt | 67 +++ .../TypeParams/TypeParams.kt | 44 ++ .../TypeParams/TypeParams.txt | 416 ++++++++++++++++ .../clsFileStubBuilder/Types/Types.kt | 27 ++ .../clsFileStubBuilder/Types/Types.txt | 444 ++++++++++++++++++ .../builder/ClsStubBuilderTestGenerated.java | 236 ++++++++++ 89 files changed, 6409 insertions(+) create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedFlexibleTypes/AnnotatedFlexibleTypes.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedFlexibleTypes/AnnotatedFlexibleTypes.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedFlexibleTypes/d/JavaClass.java create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInEnumConstructor/AnnotatedParameterInEnumConstructor.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInEnumConstructor/AnnotatedParameterInEnumConstructor.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInInnerClassConstructor/AnnotatedParameterInInnerClassConstructor.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInInnerClassConstructor/AnnotatedParameterInInnerClassConstructor.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationClass/AnnotationClass.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationClass/AnnotationClass.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationValues/AnnotationValues.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationValues/AnnotationValues.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Annotations/Annotations.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Annotations/Annotations.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnNullableTypes/AnnotationsOnNullableTypes.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnNullableTypes/AnnotationsOnNullableTypes.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnParenthesizedTypes/AnnotationsOnParenthesizedTypes.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnParenthesizedTypes/AnnotationsOnParenthesizedTypes.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnonymousReturnWithGenericType/AnonymousReturnWithGenericType.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnonymousReturnWithGenericType/AnonymousReturnWithGenericType.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassMembers/ClassMembers.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassMembers/ClassMembers.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassObject/ClassObject.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassObject/ClassObject.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Const/Const.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Const/Const.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Contracts/Contracts.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Contracts/Contracts.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DataClass/DataClass.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DataClass/DataClass.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Delegation/Delegation.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Delegation/Delegation.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DependencyOnNestedClasses/Dependency.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DependencyOnNestedClasses/DependencyOnNestedClasses.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DependencyOnNestedClasses/DependencyOnNestedClasses.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Enum/Enum.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Enum/Enum.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FlexibleTypes/FlexibleTypes.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FlexibleTypes/FlexibleTypes.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FlexibleTypes/ft.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FunInterfaceDeclaration/FunInterfaceDeclaration.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FunInterfaceDeclaration/FunInterfaceDeclaration.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InheritingClasses/InheritingClasses.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InheritingClasses/InheritingClasses.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerClassEnumEntry/InnerClassEnumEntry.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerClassEnumEntry/InnerClassEnumEntry.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerTypes/InnerTypes.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerTypes/InnerTypes.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/LocalClass/LocalClass.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/LocalClass/LocalClass.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Modifiers/Modifiers.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Modifiers/Modifiers.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/MultifileClass/MultifileClass.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/MultifileClass/MultifileClass.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/MultifileClass/SecondPart.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NamedCompanionObject/NamedCompanionObject.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NamedCompanionObject/NamedCompanionObject.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NestedClasses/NestedClasses.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NestedClasses/NestedClasses.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Objects/Objects.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Objects/Objects.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateConstField/PrivateConstField.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateConstField/PrivateConstField.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateToThis/PrivateToThis.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateToThis/PrivateToThis.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Sealed/Sealed.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Sealed/Sealed.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SecondaryConstructors/SecondaryConstructors.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SecondaryConstructors/SecondaryConstructors.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SuspendLambda/SuspendLambda.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SuspendLambda/SuspendLambda.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopJvmPackageName/TopJvmPackageName.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopJvmPackageName/TopJvmPackageName.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersAnnotatedKt/TopLevelMembersAnnotatedKt.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersAnnotatedKt/annotations.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersAnnotatedKt/topLevelMembersAnnotated.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersKt/TopLevelMembers.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersKt/TopLevelMembersKt.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeAliases/Dependency.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeAliases/TypeAliases.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeAliases/TypeAliases.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeBoundsAndDelegationSpecifiers/TypeBoundsAndDelegationSpecifiers.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeBoundsAndDelegationSpecifiers/TypeBoundsAndDelegationSpecifiers.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeModifiers/TypeModifiers.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeModifiers/TypeModifiers.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeParams/TypeParams.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeParams/TypeParams.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Types/Types.kt create mode 100644 compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Types/Types.txt create mode 100644 compiler/psi/cls-psi-file-stub-builder/tests/org/jetbrains/kotlin/psi/stubs/file/builder/ClsStubBuilderTestGenerated.java diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedFlexibleTypes/AnnotatedFlexibleTypes.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedFlexibleTypes/AnnotatedFlexibleTypes.kt new file mode 100644 index 00000000000..d29f2c788ee --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedFlexibleTypes/AnnotatedFlexibleTypes.kt @@ -0,0 +1,7 @@ +package test + +public class AnnotatedFlexibleTypes(val javaClass: d.JavaClass) { + fun foo() = javaClass.foo() + + val bar = javaClass.bar() +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedFlexibleTypes/AnnotatedFlexibleTypes.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedFlexibleTypes/AnnotatedFlexibleTypes.txt new file mode 100644 index 00000000000..fd4ad408ad7 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedFlexibleTypes/AnnotatedFlexibleTypes.txt @@ -0,0 +1,47 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/AnnotatedFlexibleTypes, fqName=test.AnnotatedFlexibleTypes, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=AnnotatedFlexibleTypes, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=javaClass] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=d] + REFERENCE_EXPRESSION[referencedName=JavaClass] + CLASS_BODY + PROPERTY[fqName=test.AnnotatedFlexibleTypes.bar, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=bar] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=MutableCollection] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.AnnotatedFlexibleTypes.javaClass, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=javaClass] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=d] + REFERENCE_EXPRESSION[referencedName=JavaClass] + FUN[fqName=test.AnnotatedFlexibleTypes.foo, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=foo] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedFlexibleTypes/d/JavaClass.java b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedFlexibleTypes/d/JavaClass.java new file mode 100644 index 00000000000..7986c6d6b04 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedFlexibleTypes/d/JavaClass.java @@ -0,0 +1,14 @@ +package d; + +import org.jetbrains.annotations.*; +import kotlin.annotations.jvm.*; + +public abstract class JavaClass { + @NotNull + @Nullable + public abstract Integer foo(); + + @Mutable + @ReadOnly + public abstract java.util.Collection bar(); +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInEnumConstructor/AnnotatedParameterInEnumConstructor.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInEnumConstructor/AnnotatedParameterInEnumConstructor.kt new file mode 100644 index 00000000000..d2c28a62e00 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInEnumConstructor/AnnotatedParameterInEnumConstructor.kt @@ -0,0 +1,8 @@ +package test + +annotation class AnnoA +annotation class AnnoB + +enum class AnnotatedParameterInEnumConstructor(@AnnoA a: String, @AnnoB b: String) { + A("1", "b") +} diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInEnumConstructor/AnnotatedParameterInEnumConstructor.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInEnumConstructor/AnnotatedParameterInEnumConstructor.txt new file mode 100644 index 00000000000..caa91d9fb3f --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInEnumConstructor/AnnotatedParameterInEnumConstructor.txt @@ -0,0 +1,53 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/AnnotatedParameterInEnumConstructor, fqName=test.AnnotatedParameterInEnumConstructor, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=AnnotatedParameterInEnumConstructor, superNames=[Enum]] + MODIFIER_LIST[enum public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[private] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=a] + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=AnnoA] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=AnnoA] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=b] + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=AnnoB] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=AnnoB] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Enum] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=AnnotatedParameterInEnumConstructor] + CLASS_BODY + ENUM_ENTRY[classId=null, fqName=test.AnnotatedParameterInEnumConstructor.A, isEnumEntry=true, isInterface=false, isLocal=false, isTopLevel=false, name=A, superNames=[]] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInInnerClassConstructor/AnnotatedParameterInInnerClassConstructor.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInInnerClassConstructor/AnnotatedParameterInInnerClassConstructor.kt new file mode 100644 index 00000000000..efb3618595c --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInInnerClassConstructor/AnnotatedParameterInInnerClassConstructor.kt @@ -0,0 +1,16 @@ +package test + +annotation class AnnoA +annotation class AnnoB + +class AnnotatedParameterInInnerClassConstructor { + + inner class Inner(@AnnoA a: String, @AnnoB b: String) { + + } + + inner class InnerGeneric(@AnnoA a: T, @AnnoB + b: String) { + + } +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInInnerClassConstructor/AnnotatedParameterInInnerClassConstructor.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInInnerClassConstructor/AnnotatedParameterInInnerClassConstructor.txt new file mode 100644 index 00000000000..216ae99c2fc --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInInnerClassConstructor/AnnotatedParameterInInnerClassConstructor.txt @@ -0,0 +1,78 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/AnnotatedParameterInInnerClassConstructor, fqName=test.AnnotatedParameterInInnerClassConstructor, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=AnnotatedParameterInInnerClassConstructor, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=test/AnnotatedParameterInInnerClassConstructor.Inner, fqName=test.AnnotatedParameterInInnerClassConstructor.Inner, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Inner, superNames=[]] + MODIFIER_LIST[inner public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=a] + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=AnnoA] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=AnnoA] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=b] + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=AnnoB] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=AnnoB] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + CLASS_BODY + CLASS[classId=test/AnnotatedParameterInInnerClassConstructor.InnerGeneric, fqName=test.AnnotatedParameterInInnerClassConstructor.InnerGeneric, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=InnerGeneric, superNames=[]] + MODIFIER_LIST[inner public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=a] + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=AnnoA] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=AnnoA] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=b] + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=AnnoB] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=AnnoB] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + CLASS_BODY diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationClass/AnnotationClass.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationClass/AnnotationClass.kt new file mode 100644 index 00000000000..7cae7e46753 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationClass/AnnotationClass.kt @@ -0,0 +1,3 @@ +package test.a + +public annotation class AnnotationClass(val i: Int, val j: String = "a") \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationClass/AnnotationClass.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationClass/AnnotationClass.txt new file mode 100644 index 00000000000..54d7edf0d69 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationClass/AnnotationClass.txt @@ -0,0 +1,45 @@ +PsiJetFileStubImpl[package=test.a] + PACKAGE_DIRECTIVE + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=a] + IMPORT_LIST + CLASS[classId=test/a/AnnotationClass, fqName=test.a.AnnotationClass, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=AnnotationClass, superNames=[Annotation]] + MODIFIER_LIST[public final annotation] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=i] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=j] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Annotation] + CLASS_BODY + PROPERTY[fqName=test.a.AnnotationClass.i, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=i] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.a.AnnotationClass.j, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=j] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationValues/AnnotationValues.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationValues/AnnotationValues.kt new file mode 100644 index 00000000000..91075a60deb --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationValues/AnnotationValues.kt @@ -0,0 +1,109 @@ +package test + +import test.E.E1 +import kotlin.reflect.KClass + +const val CONSTANT = 12 + +class AnnotationValues { + @Simple( + 12, + 12L, + 12, + + 3.3, + f = 3.3F, + + c = 'a', + + b1 = true, + b2 = false + ) + class WithSimple + + @StringLiteral("some", "", "H$CONSTANT") + class WithStringLiteral + + @EnumLiteral(E1, E.E2, e3 = test.E.E2) + class WithEnumLiteral + + @VarArg(1, 2, 3) + class WithVarArg + + @Arrays( + [1, 2, 3], + [1L], + [], + [2.2], + ['a'], + [true, false] + ) + class WithArrays + + @ClassLiteral( + WithClassLiteral::class, + String::class + ) + class WithClassLiteral + + @Outer("value", nested = Nested(12, "nested value")) + class WithNested +} + +annotation class Simple( + val i: Int, + val l: Long, + val b: Byte, + + val d: Double, + val f: Float, + + val c: Char, + + val b1: Boolean, + val b2: Boolean +) + +annotation class StringLiteral( + val s1: String, + val s2: String, + val s3: String +) + +enum class E { + E1, E2 +} +annotation class EnumLiteral( + val e1: E, + val e2: E, + val e3: E +) + +annotation class VarArg( + vararg val v: Int +) + +annotation class Arrays( + val ia: IntArray, + val la: LongArray, + val fa: FloatArray, + val da: DoubleArray, + val ca: CharArray, + val ba: BooleanArray +) + +annotation class ClassLiteral( + val c1: KClass<*>, + val c2: KClass<*> +) + + +annotation class Nested( + val i: Int, + val s: String +) + +annotation class Outer( + val some: String, + val nested: Nested +) diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationValues/AnnotationValues.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationValues/AnnotationValues.txt new file mode 100644 index 00000000000..21f2118e991 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationValues/AnnotationValues.txt @@ -0,0 +1,103 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/AnnotationValues, fqName=test.AnnotationValues, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=AnnotationValues, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=test/AnnotationValues.WithArrays, fqName=test.AnnotationValues.WithArrays, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=WithArrays, superNames=[]] + MODIFIER_LIST[public final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=Arrays] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=Arrays] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=test/AnnotationValues.WithClassLiteral, fqName=test.AnnotationValues.WithClassLiteral, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=WithClassLiteral, superNames=[]] + MODIFIER_LIST[public final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=ClassLiteral] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=ClassLiteral] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=test/AnnotationValues.WithEnumLiteral, fqName=test.AnnotationValues.WithEnumLiteral, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=WithEnumLiteral, superNames=[]] + MODIFIER_LIST[public final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=EnumLiteral] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=EnumLiteral] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=test/AnnotationValues.WithNested, fqName=test.AnnotationValues.WithNested, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=WithNested, superNames=[]] + MODIFIER_LIST[public final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=Outer] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=Outer] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=test/AnnotationValues.WithSimple, fqName=test.AnnotationValues.WithSimple, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=WithSimple, superNames=[]] + MODIFIER_LIST[public final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=Simple] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=Simple] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=test/AnnotationValues.WithStringLiteral, fqName=test.AnnotationValues.WithStringLiteral, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=WithStringLiteral, superNames=[]] + MODIFIER_LIST[public final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=StringLiteral] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=StringLiteral] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=test/AnnotationValues.WithVarArg, fqName=test.AnnotationValues.WithVarArg, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=WithVarArg, superNames=[]] + MODIFIER_LIST[public final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=VarArg] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=VarArg] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Annotations/Annotations.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Annotations/Annotations.kt new file mode 100644 index 00000000000..80b4bcf9121 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Annotations/Annotations.kt @@ -0,0 +1,72 @@ +@a public class Annotations private @a constructor(private @property:a @param:a val c1: Int, @property:a @param:a val c2: Int) { + @a() val hasValueArguments = 42 + + protected @a fun f() { + } + + inline fun inlineFun() { } + + private fun annotationWithVararg(@a vararg i: Int) {} + + @b(E.E1) private val c: Int = 1 + + @a @b(E.E2) public fun g(@a p1: E) { + } + + var withCustomAccessors: Int = 0 + //TODO: accessor modifiers are lost + @a get + @a private set + + + private @b(E.E2) companion object { + @f val field = 42 + } + + class Nested @a private @b(E.E1) @b(E.E2) constructor() + + enum class En { Entry1, @a @b(E.E2) Entry2, @a @c Entry3 } + + fun types(param: @a @b(E.E1) LongRange): @a @b(E.E2) Unit {} + + fun @receiver:a Int.foo() {} + val @receiver:a Int.receiverField: String? get() = null + + @get: a + val getterField : String? = null + + @set: a + var setterField : String? = null + + @field: a + val ownField : String? = null + + @setparam:a + var setParam: String? = null + + @delegate:a + val deleage by lazy { 12 } + + class ClassWithConstructor(@param: a val b: Int) +} + +@Target(AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FUNCTION, + AnnotationTarget.CONSTRUCTOR, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, + AnnotationTarget.TYPE, AnnotationTarget.CLASS, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.FIELD) +annotation class a + +@Target(AnnotationTarget.PROPERTY, AnnotationTarget.FUNCTION, AnnotationTarget.CLASS, + AnnotationTarget.CONSTRUCTOR, AnnotationTarget.TYPE) +@Retention(AnnotationRetention.SOURCE) +@Repeatable +annotation class b(val e: E) + +@Target(AnnotationTarget.PROPERTY, AnnotationTarget.VALUE_PARAMETER, AnnotationTarget.FUNCTION, + AnnotationTarget.CONSTRUCTOR, AnnotationTarget.PROPERTY_GETTER, AnnotationTarget.PROPERTY_SETTER, + AnnotationTarget.TYPE, AnnotationTarget.CLASS) +annotation class c + +@Target(AnnotationTarget.FIELD) +annotation class f + +enum class E { E1, E2 } diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Annotations/Annotations.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Annotations/Annotations.txt new file mode 100644 index 00000000000..62d59addf01 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Annotations/Annotations.txt @@ -0,0 +1,393 @@ +PsiJetFileStubImpl[package=] + PACKAGE_DIRECTIVE + IMPORT_LIST + CLASS[classId=/Annotations, fqName=Annotations, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=Annotations, superNames=[]] + MODIFIER_LIST[public final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[private] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=c1] + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=c2] + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + CLASS_BODY + OBJECT_DECLARATION[classId=/Annotations.Companion, fqName=Annotations.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]] + MODIFIER_LIST[private companion] + CLASS_BODY + PROPERTY[fqName=Annotations.Companion.field, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=field] + MODIFIER_LIST[public final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=f] + ANNOTATION_TARGET[useSiteTarget=FIELD] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=f] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=Deprecated] + ANNOTATION_TARGET[useSiteTarget=FIELD] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=java] + REFERENCE_EXPRESSION[referencedName=lang] + REFERENCE_EXPRESSION[referencedName=Deprecated] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=Annotations.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=c] + MODIFIER_LIST[private final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=Annotations.c1, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=c1] + MODIFIER_LIST[private final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=Annotations.c2, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=c2] + MODIFIER_LIST[public final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=Annotations.deleage, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=deleage] + MODIFIER_LIST[public final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + ANNOTATION_TARGET[useSiteTarget=PROPERTY_DELEGATE_FIELD] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=Annotations.getterField, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=getterField] + MODIFIER_LIST[public final] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + PROPERTY[fqName=Annotations.hasValueArguments, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=hasValueArguments] + MODIFIER_LIST[public final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=Annotations.ownField, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=ownField] + MODIFIER_LIST[public final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + ANNOTATION_TARGET[useSiteTarget=FIELD] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + PROPERTY[fqName=Annotations.setParam, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=setParam] + MODIFIER_LIST[public final] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + PROPERTY[fqName=Annotations.setterField, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=setterField] + MODIFIER_LIST[public final] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + PROPERTY[fqName=Annotations.withCustomAccessors, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=withCustomAccessors] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=Annotations.receiverField, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=true, isTopLevel=false, isVar=false, name=receiverField] + MODIFIER_LIST[public final] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + ANNOTATION_TARGET[useSiteTarget=RECEIVER] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + FUN[fqName=Annotations.annotationWithVararg, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=annotationWithVararg] + MODIFIER_LIST[private final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=i] + MODIFIER_LIST[vararg] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=Annotations.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[protected final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=Annotations.g, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=g] + MODIFIER_LIST[public final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p1] + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=E] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=Annotations.inlineFun, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=false, isTopLevel=false, mayHaveContract=false, name=inlineFun] + MODIFIER_LIST[public final inline] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T] + MODIFIER_LIST[reified] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=F] + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=Annotations.types, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=types] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=param] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=ranges] + REFERENCE_EXPRESSION[referencedName=LongRange] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=Annotations.foo, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=true, isTopLevel=false, mayHaveContract=false, name=foo] + MODIFIER_LIST[public final] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + ANNOTATION_TARGET[useSiteTarget=RECEIVER] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + CLASS[classId=/Annotations.ClassWithConstructor, fqName=Annotations.ClassWithConstructor, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=ClassWithConstructor, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=b] + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + CLASS_BODY + PROPERTY[fqName=Annotations.ClassWithConstructor.b, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=b] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + CLASS[classId=/Annotations.En, fqName=Annotations.En, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=En, superNames=[Enum]] + MODIFIER_LIST[enum public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[private] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Enum] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=Annotations] + REFERENCE_EXPRESSION[referencedName=En] + CLASS_BODY + ENUM_ENTRY[classId=null, fqName=Annotations.En.Entry1, isEnumEntry=true, isInterface=false, isLocal=false, isTopLevel=false, name=Entry1, superNames=[]] + ENUM_ENTRY[classId=null, fqName=Annotations.En.Entry2, isEnumEntry=true, isInterface=false, isLocal=false, isTopLevel=false, name=Entry2, superNames=[]] + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + ENUM_ENTRY[classId=null, fqName=Annotations.En.Entry3, isEnumEntry=true, isInterface=false, isLocal=false, isTopLevel=false, name=Entry3, superNames=[]] + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=c] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=c] + CLASS[classId=/Annotations.Nested, fqName=Annotations.Nested, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Nested, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[private] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + VALUE_PARAMETER_LIST + CLASS_BODY diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnNullableTypes/AnnotationsOnNullableTypes.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnNullableTypes/AnnotationsOnNullableTypes.kt new file mode 100644 index 00000000000..311a08b5390 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnNullableTypes/AnnotationsOnNullableTypes.kt @@ -0,0 +1,31 @@ +public class AnnotationsOnNullableTypes { + fun B<@A C?>.receiverArgument() {} + + fun parameter(a: @A C?) {} + + fun parameterArgument(a: B<@A C?>) {} + + fun returnValue(): @A C? = null + + fun returnTypeParameterValue(): @A T? = null + + fun returnArgument(): B<@A C?> = null!! + + val lambdaType: @A() (() -> C)? = null + + val lambdaParameter: (@A C?) -> C = null!! + + val lambdaReturnValue: () -> @A C? = null!! + + val lambdaReceiver: (@A C?).() -> C = null!! + + val lambdaTypeWithNullableReceiver: @A C?.() -> C = null!! + + fun @receiver:A C?.functionWithAnnotatedReceiver() {} +} + +@Target(AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER, AnnotationTarget.VALUE_PARAMETER) +annotation class A + +interface B +interface C \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnNullableTypes/AnnotationsOnNullableTypes.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnNullableTypes/AnnotationsOnNullableTypes.txt new file mode 100644 index 00000000000..7deca3695fe --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnNullableTypes/AnnotationsOnNullableTypes.txt @@ -0,0 +1,227 @@ +PsiJetFileStubImpl[package=] + PACKAGE_DIRECTIVE + IMPORT_LIST + CLASS[classId=/AnnotationsOnNullableTypes, fqName=AnnotationsOnNullableTypes, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=AnnotationsOnNullableTypes, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + PROPERTY[fqName=AnnotationsOnNullableTypes.lambdaParameter, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaParameter] + MODIFIER_LIST[public final] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + NULLABLE_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + PROPERTY[fqName=AnnotationsOnNullableTypes.lambdaReceiver, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaReceiver] + MODIFIER_LIST[public final] + TYPE_REFERENCE + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + NULLABLE_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + PROPERTY[fqName=AnnotationsOnNullableTypes.lambdaReturnValue, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaReturnValue] + MODIFIER_LIST[public final] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + NULLABLE_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + PROPERTY[fqName=AnnotationsOnNullableTypes.lambdaType, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaType] + MODIFIER_LIST[public final] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + NULLABLE_TYPE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + PROPERTY[fqName=AnnotationsOnNullableTypes.lambdaTypeWithNullableReceiver, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaTypeWithNullableReceiver] + MODIFIER_LIST[public final] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + FUN[fqName=AnnotationsOnNullableTypes.parameter, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=parameter] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=a] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + NULLABLE_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=AnnotationsOnNullableTypes.parameterArgument, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=parameterArgument] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=a] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=B] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + NULLABLE_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=AnnotationsOnNullableTypes.returnArgument, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=returnArgument] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=B] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + NULLABLE_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + FUN[fqName=AnnotationsOnNullableTypes.returnTypeParameterValue, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=false, isTopLevel=false, mayHaveContract=false, name=returnTypeParameterValue] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + NULLABLE_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + FUN[fqName=AnnotationsOnNullableTypes.returnValue, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=returnValue] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + NULLABLE_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + FUN[fqName=AnnotationsOnNullableTypes.functionWithAnnotatedReceiver, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=true, isTopLevel=false, mayHaveContract=false, name=functionWithAnnotatedReceiver] + MODIFIER_LIST[public final] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + ANNOTATION_TARGET[useSiteTarget=RECEIVER] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + NULLABLE_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=AnnotationsOnNullableTypes.receiverArgument, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=true, isTopLevel=false, mayHaveContract=false, name=receiverArgument] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=B] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + NULLABLE_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnParenthesizedTypes/AnnotationsOnParenthesizedTypes.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnParenthesizedTypes/AnnotationsOnParenthesizedTypes.kt new file mode 100644 index 00000000000..82f4e8dfc44 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnParenthesizedTypes/AnnotationsOnParenthesizedTypes.kt @@ -0,0 +1,29 @@ +public class AnnotationsOnParenthesizedTypes { + fun B<(@A C)>.receiverArgument() {} + + fun parameter(a: (@A C)) {} + + fun parameterArgument(a: B<(@A C)>) {} + + fun returnValue(): (@A C) = null!! + + fun returnTypeParameterValue(): (@A T) = null!! + + fun returnArgument(): B<(@A C)> = null!! + + val lambdaType: (@A() (() -> C)) = null!! + + val lambdaParameter: ((@A C)) -> C = null!! + + val lambdaReturnValue: () -> (@A C) = null!! + + val lambdaReceiver: (@A C).() -> C = null!! + + val lambdaTypeWithNullableReceiver: (@A C)?.() -> C = null!! +} + +@Target(AnnotationTarget.TYPE, AnnotationTarget.TYPE_PARAMETER) +annotation class A + +interface B +interface C \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnParenthesizedTypes/AnnotationsOnParenthesizedTypes.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnParenthesizedTypes/AnnotationsOnParenthesizedTypes.txt new file mode 100644 index 00000000000..510228d0d7f --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnParenthesizedTypes/AnnotationsOnParenthesizedTypes.txt @@ -0,0 +1,198 @@ +PsiJetFileStubImpl[package=] + PACKAGE_DIRECTIVE + IMPORT_LIST + CLASS[classId=/AnnotationsOnParenthesizedTypes, fqName=AnnotationsOnParenthesizedTypes, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=AnnotationsOnParenthesizedTypes, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + PROPERTY[fqName=AnnotationsOnParenthesizedTypes.lambdaParameter, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaParameter] + MODIFIER_LIST[public final] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + PROPERTY[fqName=AnnotationsOnParenthesizedTypes.lambdaReceiver, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaReceiver] + MODIFIER_LIST[public final] + TYPE_REFERENCE + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + PROPERTY[fqName=AnnotationsOnParenthesizedTypes.lambdaReturnValue, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaReturnValue] + MODIFIER_LIST[public final] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + PROPERTY[fqName=AnnotationsOnParenthesizedTypes.lambdaType, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaType] + MODIFIER_LIST[public final] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + FUNCTION_TYPE + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + PROPERTY[fqName=AnnotationsOnParenthesizedTypes.lambdaTypeWithNullableReceiver, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaTypeWithNullableReceiver] + MODIFIER_LIST[public final] + TYPE_REFERENCE + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + NULLABLE_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + FUN[fqName=AnnotationsOnParenthesizedTypes.parameter, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=parameter] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=a] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=AnnotationsOnParenthesizedTypes.parameterArgument, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=parameterArgument] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=a] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=B] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=AnnotationsOnParenthesizedTypes.returnArgument, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=returnArgument] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=B] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + FUN[fqName=AnnotationsOnParenthesizedTypes.returnTypeParameterValue, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=false, isTopLevel=false, mayHaveContract=false, name=returnTypeParameterValue] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + FUN[fqName=AnnotationsOnParenthesizedTypes.returnValue, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=returnValue] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + FUN[fqName=AnnotationsOnParenthesizedTypes.receiverArgument, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=true, isTopLevel=false, mayHaveContract=false, name=receiverArgument] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=B] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + USER_TYPE + REFERENCE_EXPRESSION[referencedName=C] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnonymousReturnWithGenericType/AnonymousReturnWithGenericType.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnonymousReturnWithGenericType/AnonymousReturnWithGenericType.kt new file mode 100644 index 00000000000..cf8ddcd0256 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnonymousReturnWithGenericType/AnonymousReturnWithGenericType.kt @@ -0,0 +1,9 @@ +interface Foo + +class AnonymousReturnWithGenericType { + val v1 = object : Foo {} + fun f1() = object : Foo {} + + private val v2 = object : Foo {} + private fun f2() = object : Foo {} +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnonymousReturnWithGenericType/AnonymousReturnWithGenericType.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnonymousReturnWithGenericType/AnonymousReturnWithGenericType.txt new file mode 100644 index 00000000000..b2220af5ffb --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnonymousReturnWithGenericType/AnonymousReturnWithGenericType.txt @@ -0,0 +1,47 @@ +PsiJetFileStubImpl[package=] + PACKAGE_DIRECTIVE + IMPORT_LIST + CLASS[classId=/AnonymousReturnWithGenericType, fqName=AnonymousReturnWithGenericType, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=AnonymousReturnWithGenericType, superNames=[]] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + PROPERTY[fqName=AnonymousReturnWithGenericType.v1, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=v1] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=Foo] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + PROPERTY[fqName=AnonymousReturnWithGenericType.v2, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=v2] + MODIFIER_LIST[private final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Any] + FUN[fqName=AnonymousReturnWithGenericType.f1, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f1] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=Foo] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + FUN[fqName=AnonymousReturnWithGenericType.f2, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f2] + MODIFIER_LIST[private final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Any] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassMembers/ClassMembers.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassMembers/ClassMembers.kt new file mode 100644 index 00000000000..e87e8fd9ad1 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassMembers/ClassMembers.kt @@ -0,0 +1,17 @@ +package test + +abstract class ClassMembers(private val p: Int, public open var p2: String, p3: Int, p4: Int = 10, final val p5: String = "aaa") { + val foo = 3 + fun bar(): Int { + return 3 + } + + open fun openFun() { + } + + abstract fun abstractFun() + + open val openVal = 3 + + abstract var abstractVar: Int +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassMembers/ClassMembers.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassMembers/ClassMembers.txt new file mode 100644 index 00000000000..8fa15d85bfc --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassMembers/ClassMembers.txt @@ -0,0 +1,106 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/ClassMembers, fqName=test.ClassMembers, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=ClassMembers, superNames=[]] + MODIFIER_LIST[abstract public] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p2] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p3] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p4] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p5] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + CLASS_BODY + PROPERTY[fqName=test.ClassMembers.abstractVar, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=abstractVar] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.ClassMembers.foo, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=foo] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.ClassMembers.openVal, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=openVal] + MODIFIER_LIST[open public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.ClassMembers.p, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=p] + MODIFIER_LIST[private final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.ClassMembers.p2, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=p2] + MODIFIER_LIST[open public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + PROPERTY[fqName=test.ClassMembers.p5, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=p5] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + FUN[fqName=test.ClassMembers.abstractFun, hasBlockBody=true, hasBody=false, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=abstractFun] + MODIFIER_LIST[abstract public] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.ClassMembers.bar, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=bar] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.ClassMembers.openFun, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=openFun] + MODIFIER_LIST[open public] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassObject/ClassObject.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassObject/ClassObject.kt new file mode 100644 index 00000000000..0936f8f0f46 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassObject/ClassObject.kt @@ -0,0 +1,41 @@ +package test.class_object + +class ClassObject { + fun f() { + } + + val c = 1 + + public companion object { + val j = 0 + fun z() = 0 + + class A { + class B { + val i: Int = 0 + fun f() = 0 + } + } + } + + + class B { + companion object { + class C { + companion object { + class D { + companion object { + val i = 3 + fun f() { + } + + enum class En + + annotation class Anno + } + } + } + } + } + } +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassObject/ClassObject.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassObject/ClassObject.txt new file mode 100644 index 00000000000..bb5037c38f7 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassObject/ClassObject.txt @@ -0,0 +1,163 @@ +PsiJetFileStubImpl[package=test.class_object] + PACKAGE_DIRECTIVE + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=class_object] + IMPORT_LIST + CLASS[classId=test/class_object/ClassObject, fqName=test.class_object.ClassObject, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=ClassObject, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + OBJECT_DECLARATION[classId=test/class_object/ClassObject.Companion, fqName=test.class_object.ClassObject.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]] + MODIFIER_LIST[public companion] + CLASS_BODY + PROPERTY[fqName=test.class_object.ClassObject.Companion.j, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=j] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.class_object.ClassObject.Companion.z, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=z] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + CLASS[classId=test/class_object/ClassObject.Companion.A, fqName=test.class_object.ClassObject.Companion.A, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=A, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=test/class_object/ClassObject.Companion.A.B, fqName=test.class_object.ClassObject.Companion.A.B, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=B, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + PROPERTY[fqName=test.class_object.ClassObject.Companion.A.B.i, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=i] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.class_object.ClassObject.Companion.A.B.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.class_object.ClassObject.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=c] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.class_object.ClassObject.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + CLASS[classId=test/class_object/ClassObject.B, fqName=test.class_object.ClassObject.B, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=B, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + OBJECT_DECLARATION[classId=test/class_object/ClassObject.B.Companion, fqName=test.class_object.ClassObject.B.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]] + MODIFIER_LIST[public companion] + CLASS_BODY + CLASS[classId=test/class_object/ClassObject.B.Companion.C, fqName=test.class_object.ClassObject.B.Companion.C, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=C, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + OBJECT_DECLARATION[classId=test/class_object/ClassObject.B.Companion.C.Companion, fqName=test.class_object.ClassObject.B.Companion.C.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]] + MODIFIER_LIST[public companion] + CLASS_BODY + CLASS[classId=test/class_object/ClassObject.B.Companion.C.Companion.D, fqName=test.class_object.ClassObject.B.Companion.C.Companion.D, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=D, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + OBJECT_DECLARATION[classId=test/class_object/ClassObject.B.Companion.C.Companion.D.Companion, fqName=test.class_object.ClassObject.B.Companion.C.Companion.D.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]] + MODIFIER_LIST[public companion] + CLASS_BODY + PROPERTY[fqName=test.class_object.ClassObject.B.Companion.C.Companion.D.Companion.i, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=i] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.class_object.ClassObject.B.Companion.C.Companion.D.Companion.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + CLASS[classId=test/class_object/ClassObject.B.Companion.C.Companion.D.Companion.Anno, fqName=test.class_object.ClassObject.B.Companion.C.Companion.D.Companion.Anno, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Anno, superNames=[Annotation]] + MODIFIER_LIST[public final annotation] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Annotation] + CLASS_BODY + CLASS[classId=test/class_object/ClassObject.B.Companion.C.Companion.D.Companion.En, fqName=test.class_object.ClassObject.B.Companion.C.Companion.D.Companion.En, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=En, superNames=[Enum]] + MODIFIER_LIST[enum public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[private] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Enum] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=class_object] + REFERENCE_EXPRESSION[referencedName=ClassObject] + REFERENCE_EXPRESSION[referencedName=B] + REFERENCE_EXPRESSION[referencedName=Companion] + REFERENCE_EXPRESSION[referencedName=C] + REFERENCE_EXPRESSION[referencedName=Companion] + REFERENCE_EXPRESSION[referencedName=D] + REFERENCE_EXPRESSION[referencedName=Companion] + REFERENCE_EXPRESSION[referencedName=En] + CLASS_BODY diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Const/Const.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Const/Const.kt new file mode 100644 index 00000000000..2c5b0346688 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Const/Const.kt @@ -0,0 +1,5 @@ +package test + +object Const { + const private val inObject = 1 +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Const/Const.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Const/Const.txt new file mode 100644 index 00000000000..f6b6f71d648 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Const/Const.txt @@ -0,0 +1,14 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + OBJECT_DECLARATION[classId=test/Const, fqName=test.Const, isCompanion=false, isLocal=false, isObjectLiteral=false, isTopLevel=true, name=Const, superNames=[]] + MODIFIER_LIST[public] + CLASS_BODY + PROPERTY[fqName=test.Const.inObject, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=inObject] + MODIFIER_LIST[private final const] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Contracts/Contracts.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Contracts/Contracts.kt new file mode 100644 index 00000000000..125781a7462 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Contracts/Contracts.kt @@ -0,0 +1,12 @@ +// JVM_FILE_NAME: ContractsKt + +package test + +import kotlin.contracts.* + +@OptIn(ExperimentalContracts::class) +fun myRequire(x: Boolean) { + contract { + returns(true) implies (x) + } +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Contracts/Contracts.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Contracts/Contracts.txt new file mode 100644 index 00000000000..344f711884a --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Contracts/Contracts.txt @@ -0,0 +1,18 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + FUN[fqName=test.myRequire, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=true, name=myRequire] + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=x] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Boolean] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DataClass/DataClass.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DataClass/DataClass.kt new file mode 100644 index 00000000000..9e0f90389e5 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DataClass/DataClass.kt @@ -0,0 +1,5 @@ +package a.b.c + +public data class DataClass(val i: Int, val j: String) { + fun f() = 3 +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DataClass/DataClass.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DataClass/DataClass.txt new file mode 100644 index 00000000000..29b338ac778 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DataClass/DataClass.txt @@ -0,0 +1,64 @@ +PsiJetFileStubImpl[package=a.b.c] + PACKAGE_DIRECTIVE + DOT_QUALIFIED_EXPRESSION + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=b] + REFERENCE_EXPRESSION[referencedName=c] + IMPORT_LIST + CLASS[classId=a/b/c/DataClass, fqName=a.b.c.DataClass, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=DataClass, superNames=[]] + MODIFIER_LIST[public final data] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=i] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=j] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + CLASS_BODY + PROPERTY[fqName=a.b.c.DataClass.i, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=i] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=a.b.c.DataClass.j, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=j] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + FUN[fqName=a.b.c.DataClass.component1, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=component1] + MODIFIER_LIST[public final operator] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=a.b.c.DataClass.component2, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=component2] + MODIFIER_LIST[public final operator] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + FUN[fqName=a.b.c.DataClass.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Delegation/Delegation.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Delegation/Delegation.kt new file mode 100644 index 00000000000..e89e93081f3 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Delegation/Delegation.kt @@ -0,0 +1,14 @@ +interface T { + fun f() + val g: Int +} + +class A() : T { + override val g = 3 + override fun f() { + } +} + +class Delegation(val c: Int = 3, a: A) : T by a { + fun ff(): Int = 3 +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Delegation/Delegation.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Delegation/Delegation.txt new file mode 100644 index 00000000000..aa0bcbe03d1 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Delegation/Delegation.txt @@ -0,0 +1,39 @@ +PsiJetFileStubImpl[package=] + PACKAGE_DIRECTIVE + IMPORT_LIST + CLASS[classId=/Delegation, fqName=Delegation, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=Delegation, superNames=[T]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=c] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=a] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + CLASS_BODY + PROPERTY[fqName=Delegation.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=c] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=Delegation.ff, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=ff] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DependencyOnNestedClasses/Dependency.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DependencyOnNestedClasses/Dependency.kt new file mode 100644 index 00000000000..c1c94cccd8c --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DependencyOnNestedClasses/Dependency.kt @@ -0,0 +1,14 @@ +package dependency + +class D { + inner class Inner { + inner class Inner + } + open class Nested { + class Nested + } + + companion object { + class NestedInClassObject + } +} diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DependencyOnNestedClasses/DependencyOnNestedClasses.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DependencyOnNestedClasses/DependencyOnNestedClasses.kt new file mode 100644 index 00000000000..1aa84bcc86a --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DependencyOnNestedClasses/DependencyOnNestedClasses.kt @@ -0,0 +1,9 @@ +package test + +import dependency.* + +public class DependencyOnNestedClasses : D.Nested() { + fun f(nc: D.Companion.NestedInClassObject, i: D.Inner, ii: D.Inner.Inner, nn: D.Nested.Nested): D.Nested { + return D.Nested() + } +} diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DependencyOnNestedClasses/DependencyOnNestedClasses.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DependencyOnNestedClasses/DependencyOnNestedClasses.txt new file mode 100644 index 00000000000..20624dc7c5b --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DependencyOnNestedClasses/DependencyOnNestedClasses.txt @@ -0,0 +1,67 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/DependencyOnNestedClasses, fqName=test.DependencyOnNestedClasses, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=DependencyOnNestedClasses, superNames=[Nested]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=dependency] + REFERENCE_EXPRESSION[referencedName=D] + REFERENCE_EXPRESSION[referencedName=Nested] + CLASS_BODY + FUN[fqName=test.DependencyOnNestedClasses.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=nc] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=dependency] + REFERENCE_EXPRESSION[referencedName=D] + REFERENCE_EXPRESSION[referencedName=Companion] + REFERENCE_EXPRESSION[referencedName=NestedInClassObject] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=i] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=dependency] + REFERENCE_EXPRESSION[referencedName=D] + REFERENCE_EXPRESSION[referencedName=Inner] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=ii] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=dependency] + REFERENCE_EXPRESSION[referencedName=D] + REFERENCE_EXPRESSION[referencedName=Inner] + REFERENCE_EXPRESSION[referencedName=Inner] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=nn] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=dependency] + REFERENCE_EXPRESSION[referencedName=D] + REFERENCE_EXPRESSION[referencedName=Nested] + REFERENCE_EXPRESSION[referencedName=Nested] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=dependency] + REFERENCE_EXPRESSION[referencedName=D] + REFERENCE_EXPRESSION[referencedName=Nested] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Enum/Enum.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Enum/Enum.kt new file mode 100644 index 00000000000..16679632002 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Enum/Enum.kt @@ -0,0 +1,16 @@ +package a.b.c.test.enum + +enum class Enum { + A, B, C, D, E, F { + override fun f() = 4 + }; + + open fun f() = 3 + + companion object { + @Ann + val c: Int = 1 + } +} + +annotation class Ann diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Enum/Enum.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Enum/Enum.txt new file mode 100644 index 00000000000..d7d119fa049 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Enum/Enum.txt @@ -0,0 +1,79 @@ +PsiJetFileStubImpl[package=a.b.c.test.enum] + PACKAGE_DIRECTIVE + DOT_QUALIFIED_EXPRESSION + DOT_QUALIFIED_EXPRESSION + DOT_QUALIFIED_EXPRESSION + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=b] + REFERENCE_EXPRESSION[referencedName=c] + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=enum] + IMPORT_LIST + CLASS[classId=a/b/c/test/enum/Enum, fqName=a.b.c.test.enum.Enum, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=Enum, superNames=[Enum]] + MODIFIER_LIST[enum public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[private] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Enum] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=b] + REFERENCE_EXPRESSION[referencedName=c] + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=enum] + REFERENCE_EXPRESSION[referencedName=Enum] + CLASS_BODY + ENUM_ENTRY[classId=null, fqName=a.b.c.test.enum.Enum.A, isEnumEntry=true, isInterface=false, isLocal=false, isTopLevel=false, name=A, superNames=[]] + ENUM_ENTRY[classId=null, fqName=a.b.c.test.enum.Enum.B, isEnumEntry=true, isInterface=false, isLocal=false, isTopLevel=false, name=B, superNames=[]] + ENUM_ENTRY[classId=null, fqName=a.b.c.test.enum.Enum.C, isEnumEntry=true, isInterface=false, isLocal=false, isTopLevel=false, name=C, superNames=[]] + ENUM_ENTRY[classId=null, fqName=a.b.c.test.enum.Enum.D, isEnumEntry=true, isInterface=false, isLocal=false, isTopLevel=false, name=D, superNames=[]] + ENUM_ENTRY[classId=null, fqName=a.b.c.test.enum.Enum.E, isEnumEntry=true, isInterface=false, isLocal=false, isTopLevel=false, name=E, superNames=[]] + ENUM_ENTRY[classId=null, fqName=a.b.c.test.enum.Enum.F, isEnumEntry=true, isInterface=false, isLocal=false, isTopLevel=false, name=F, superNames=[]] + OBJECT_DECLARATION[classId=a/b/c/test/enum/Enum.Companion, fqName=a.b.c.test.enum.Enum.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]] + MODIFIER_LIST[public companion] + CLASS_BODY + PROPERTY[fqName=a.b.c.test.enum.Enum.Companion.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=c] + MODIFIER_LIST[public final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=Ann] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=b] + REFERENCE_EXPRESSION[referencedName=c] + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=enum] + REFERENCE_EXPRESSION[referencedName=Ann] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=a.b.c.test.enum.Enum.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[open public] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FlexibleTypes/FlexibleTypes.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FlexibleTypes/FlexibleTypes.kt new file mode 100644 index 00000000000..c60d8368e1d --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FlexibleTypes/FlexibleTypes.kt @@ -0,0 +1,11 @@ +package test + +import kotlin.internal.flexible.ft + +abstract class FlexibleTypes() { + abstract fun collection(): ft, List> + + abstract val p: ft + + fun withBody(): ft { return 1 } +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FlexibleTypes/FlexibleTypes.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FlexibleTypes/FlexibleTypes.txt new file mode 100644 index 00000000000..6aa419687c2 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FlexibleTypes/FlexibleTypes.txt @@ -0,0 +1,42 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/FlexibleTypes, fqName=test.FlexibleTypes, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=FlexibleTypes, superNames=[]] + MODIFIER_LIST[abstract public] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + PROPERTY[fqName=test.FlexibleTypes.p, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=p] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.FlexibleTypes.collection, hasBlockBody=true, hasBody=false, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=collection] + MODIFIER_LIST[abstract public] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=List] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.FlexibleTypes.withBody, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=withBody] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FlexibleTypes/ft.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FlexibleTypes/ft.kt new file mode 100644 index 00000000000..331750ac1ce --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FlexibleTypes/ft.kt @@ -0,0 +1,3 @@ +package kotlin.internal.flexible + +class ft \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FunInterfaceDeclaration/FunInterfaceDeclaration.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FunInterfaceDeclaration/FunInterfaceDeclaration.kt new file mode 100644 index 00000000000..74c549bdb29 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FunInterfaceDeclaration/FunInterfaceDeclaration.kt @@ -0,0 +1,13 @@ +package test + +class FunInterfaceDeclaration { + @Suppress("UNSUPPORTED_FEATURE") + fun interface KRunnable { + fun invoke() + } + + @Suppress("UNSUPPORTED_FEATURE") + fun interface GenericKRunnable { + fun invoke(t: T): R + } +} diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FunInterfaceDeclaration/FunInterfaceDeclaration.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FunInterfaceDeclaration/FunInterfaceDeclaration.txt new file mode 100644 index 00000000000..f41ceb7e0eb --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FunInterfaceDeclaration/FunInterfaceDeclaration.txt @@ -0,0 +1,37 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/FunInterfaceDeclaration, fqName=test.FunInterfaceDeclaration, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=FunInterfaceDeclaration, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=test/FunInterfaceDeclaration.GenericKRunnable, fqName=test.FunInterfaceDeclaration.GenericKRunnable, isEnumEntry=false, isInterface=true, isLocal=false, isTopLevel=false, name=GenericKRunnable, superNames=[]] + MODIFIER_LIST[public fun] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=R] + CLASS_BODY + FUN[fqName=test.FunInterfaceDeclaration.GenericKRunnable.invoke, hasBlockBody=true, hasBody=false, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=invoke] + MODIFIER_LIST[abstract public] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=t] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=R] + CLASS[classId=test/FunInterfaceDeclaration.KRunnable, fqName=test.FunInterfaceDeclaration.KRunnable, isEnumEntry=false, isInterface=true, isLocal=false, isTopLevel=false, name=KRunnable, superNames=[]] + MODIFIER_LIST[public fun] + CLASS_BODY + FUN[fqName=test.FunInterfaceDeclaration.KRunnable.invoke, hasBlockBody=true, hasBody=false, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=invoke] + MODIFIER_LIST[abstract public] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InheritingClasses/InheritingClasses.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InheritingClasses/InheritingClasses.kt new file mode 100644 index 00000000000..861b907c8cb --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InheritingClasses/InheritingClasses.kt @@ -0,0 +1,46 @@ +package a + +class InheritingClasses { + abstract class A(override val c: Int = 1) : C { + open fun of() = 3 + abstract fun af(): Int + open val op = 4 + abstract val ap: Int + } + + open class B : A(2) { + override fun of() = 4 + override fun af() = 5 + override val op = 5 + override val ap = 5 + } + + interface C { + val c: Int + } + + interface D : C { + override val c: Int + } + + interface E + class G : B(), C, D, E + + + class InheritAny { + interface SomeTrait + interface SomeTrait2 + + class ImplicitAny + + class ExplicitAny : Any() + + class OnlyTrait : SomeTrait + class OnlyTraits : SomeTrait, SomeTrait2 + + class TraitWithExplicitAny : Any(), SomeTrait + class TraitsWithExplicitAny : SomeTrait2, Any(), SomeTrait + } + + abstract class InheritFunctionType : ((Int, String) -> Int) +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InheritingClasses/InheritingClasses.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InheritingClasses/InheritingClasses.txt new file mode 100644 index 00000000000..7a332259b73 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InheritingClasses/InheritingClasses.txt @@ -0,0 +1,345 @@ +PsiJetFileStubImpl[package=a] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=a] + IMPORT_LIST + CLASS[classId=a/InheritingClasses, fqName=a.InheritingClasses, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=InheritingClasses, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=a/InheritingClasses.A, fqName=a.InheritingClasses.A, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=A, superNames=[C]] + MODIFIER_LIST[abstract public] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=c] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=InheritingClasses] + REFERENCE_EXPRESSION[referencedName=C] + CLASS_BODY + PROPERTY[fqName=a.InheritingClasses.A.ap, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=ap] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=a.InheritingClasses.A.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=c] + MODIFIER_LIST[open public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=a.InheritingClasses.A.op, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=op] + MODIFIER_LIST[open public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=a.InheritingClasses.A.af, hasBlockBody=true, hasBody=false, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=af] + MODIFIER_LIST[abstract public] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=a.InheritingClasses.A.of, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=of] + MODIFIER_LIST[open public] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + CLASS[classId=a/InheritingClasses.B, fqName=a.InheritingClasses.B, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=B, superNames=[A]] + MODIFIER_LIST[open public] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=InheritingClasses] + REFERENCE_EXPRESSION[referencedName=A] + CLASS_BODY + PROPERTY[fqName=a.InheritingClasses.B.ap, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=ap] + MODIFIER_LIST[open public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=a.InheritingClasses.B.op, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=op] + MODIFIER_LIST[open public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=a.InheritingClasses.B.af, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=af] + MODIFIER_LIST[open public] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=a.InheritingClasses.B.of, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=of] + MODIFIER_LIST[open public] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + CLASS[classId=a/InheritingClasses.C, fqName=a.InheritingClasses.C, isEnumEntry=false, isInterface=true, isLocal=false, isTopLevel=false, name=C, superNames=[]] + MODIFIER_LIST[public] + CLASS_BODY + PROPERTY[fqName=a.InheritingClasses.C.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=c] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + CLASS[classId=a/InheritingClasses.D, fqName=a.InheritingClasses.D, isEnumEntry=false, isInterface=true, isLocal=false, isTopLevel=false, name=D, superNames=[C]] + MODIFIER_LIST[public] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T] + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=InheritingClasses] + REFERENCE_EXPRESSION[referencedName=C] + CLASS_BODY + PROPERTY[fqName=a.InheritingClasses.D.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=c] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + CLASS[classId=a/InheritingClasses.E, fqName=a.InheritingClasses.E, isEnumEntry=false, isInterface=true, isLocal=false, isTopLevel=false, name=E, superNames=[]] + MODIFIER_LIST[public] + CLASS_BODY + CLASS[classId=a/InheritingClasses.G, fqName=a.InheritingClasses.G, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=G, superNames=[B, C, D, E]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=InheritingClasses] + REFERENCE_EXPRESSION[referencedName=B] + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=InheritingClasses] + REFERENCE_EXPRESSION[referencedName=C] + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=InheritingClasses] + REFERENCE_EXPRESSION[referencedName=D] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=InheritingClasses] + REFERENCE_EXPRESSION[referencedName=E] + CLASS_BODY + CLASS[classId=a/InheritingClasses.InheritAny, fqName=a.InheritingClasses.InheritAny, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=InheritAny, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=a/InheritingClasses.InheritAny.ExplicitAny, fqName=a.InheritingClasses.InheritAny.ExplicitAny, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=ExplicitAny, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=a/InheritingClasses.InheritAny.ImplicitAny, fqName=a.InheritingClasses.InheritAny.ImplicitAny, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=ImplicitAny, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=a/InheritingClasses.InheritAny.OnlyTrait, fqName=a.InheritingClasses.InheritAny.OnlyTrait, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=OnlyTrait, superNames=[SomeTrait]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=InheritingClasses] + REFERENCE_EXPRESSION[referencedName=InheritAny] + REFERENCE_EXPRESSION[referencedName=SomeTrait] + CLASS_BODY + CLASS[classId=a/InheritingClasses.InheritAny.OnlyTraits, fqName=a.InheritingClasses.InheritAny.OnlyTraits, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=OnlyTraits, superNames=[SomeTrait, SomeTrait2]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=InheritingClasses] + REFERENCE_EXPRESSION[referencedName=InheritAny] + REFERENCE_EXPRESSION[referencedName=SomeTrait] + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=InheritingClasses] + REFERENCE_EXPRESSION[referencedName=InheritAny] + REFERENCE_EXPRESSION[referencedName=SomeTrait2] + CLASS_BODY + CLASS[classId=a/InheritingClasses.InheritAny.SomeTrait, fqName=a.InheritingClasses.InheritAny.SomeTrait, isEnumEntry=false, isInterface=true, isLocal=false, isTopLevel=false, name=SomeTrait, superNames=[]] + MODIFIER_LIST[public] + CLASS_BODY + CLASS[classId=a/InheritingClasses.InheritAny.SomeTrait2, fqName=a.InheritingClasses.InheritAny.SomeTrait2, isEnumEntry=false, isInterface=true, isLocal=false, isTopLevel=false, name=SomeTrait2, superNames=[]] + MODIFIER_LIST[public] + CLASS_BODY + CLASS[classId=a/InheritingClasses.InheritAny.TraitWithExplicitAny, fqName=a.InheritingClasses.InheritAny.TraitWithExplicitAny, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=TraitWithExplicitAny, superNames=[Any, SomeTrait]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Any] + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=InheritingClasses] + REFERENCE_EXPRESSION[referencedName=InheritAny] + REFERENCE_EXPRESSION[referencedName=SomeTrait] + CLASS_BODY + CLASS[classId=a/InheritingClasses.InheritAny.TraitsWithExplicitAny, fqName=a.InheritingClasses.InheritAny.TraitsWithExplicitAny, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=TraitsWithExplicitAny, superNames=[SomeTrait2, Any, SomeTrait]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=InheritingClasses] + REFERENCE_EXPRESSION[referencedName=InheritAny] + REFERENCE_EXPRESSION[referencedName=SomeTrait2] + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Any] + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=InheritingClasses] + REFERENCE_EXPRESSION[referencedName=InheritAny] + REFERENCE_EXPRESSION[referencedName=SomeTrait] + CLASS_BODY + CLASS[classId=a/InheritingClasses.InheritFunctionType, fqName=a.InheritingClasses.InheritFunctionType, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=InheritFunctionType, superNames=[]] + MODIFIER_LIST[abstract public] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + CLASS_BODY diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerClassEnumEntry/InnerClassEnumEntry.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerClassEnumEntry/InnerClassEnumEntry.kt new file mode 100644 index 00000000000..cb6135a8722 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerClassEnumEntry/InnerClassEnumEntry.kt @@ -0,0 +1,5 @@ +enum class InnerClassEnumEntry { + ENTRY { + inner class InnerClass + } +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerClassEnumEntry/InnerClassEnumEntry.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerClassEnumEntry/InnerClassEnumEntry.txt new file mode 100644 index 00000000000..d1742328a11 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerClassEnumEntry/InnerClassEnumEntry.txt @@ -0,0 +1,22 @@ +PsiJetFileStubImpl[package=] + PACKAGE_DIRECTIVE + IMPORT_LIST + CLASS[classId=/InnerClassEnumEntry, fqName=InnerClassEnumEntry, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=InnerClassEnumEntry, superNames=[Enum]] + MODIFIER_LIST[enum public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[private] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Enum] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=InnerClassEnumEntry] + CLASS_BODY + ENUM_ENTRY[classId=null, fqName=InnerClassEnumEntry.ENTRY, isEnumEntry=true, isInterface=false, isLocal=false, isTopLevel=false, name=ENTRY, superNames=[]] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerTypes/InnerTypes.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerTypes/InnerTypes.kt new file mode 100644 index 00000000000..14a70571610 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerTypes/InnerTypes.kt @@ -0,0 +1,17 @@ +package test + +class InnerTypes { + inner class Inner { + inner class Inner3 { + fun foo( + x: InnerTypes.Inner, + y: Inner, + z: InnerTypes.Inner.Inner3, + w: Inner3<*>) {} + } + } + + inner class Inner2 + + fun bar(x: InnerTypes.Inner2, y: Inner2) {} +} diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerTypes/InnerTypes.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerTypes/InnerTypes.txt new file mode 100644 index 00000000000..ec9dfd3e05f --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerTypes/InnerTypes.txt @@ -0,0 +1,217 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/InnerTypes, fqName=test.InnerTypes, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=InnerTypes, superNames=[]] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=E] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=F] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + FUN[fqName=test.InnerTypes.bar, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=bar] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=x] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=InnerTypes] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Double] + REFERENCE_EXPRESSION[referencedName=Inner2] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=y] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=InnerTypes] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=E] + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=F] + REFERENCE_EXPRESSION[referencedName=Inner2] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + CLASS[classId=test/InnerTypes.Inner, fqName=test.InnerTypes.Inner, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Inner, superNames=[]] + MODIFIER_LIST[inner public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=G] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=H] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=test/InnerTypes.Inner.Inner3, fqName=test.InnerTypes.Inner.Inner3, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Inner3, superNames=[]] + MODIFIER_LIST[inner public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=I] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + FUN[fqName=test.InnerTypes.Inner.Inner3.foo, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=foo] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=x] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=InnerTypes] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=F] + REFERENCE_EXPRESSION[referencedName=Inner] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G] + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=y] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=InnerTypes] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=E] + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=F] + REFERENCE_EXPRESSION[referencedName=Inner] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=E] + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Double] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=z] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=InnerTypes] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=F] + REFERENCE_EXPRESSION[referencedName=Inner] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G] + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + REFERENCE_EXPRESSION[referencedName=Inner3] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Double] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=w] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=InnerTypes] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=E] + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=F] + REFERENCE_EXPRESSION[referencedName=Inner] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G] + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=H] + REFERENCE_EXPRESSION[referencedName=Inner3] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=STAR] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + CLASS[classId=test/InnerTypes.Inner2, fqName=test.InnerTypes.Inner2, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Inner2, superNames=[]] + MODIFIER_LIST[inner public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/LocalClass/LocalClass.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/LocalClass/LocalClass.kt new file mode 100644 index 00000000000..0897ef8ae9b --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/LocalClass/LocalClass.kt @@ -0,0 +1,18 @@ +package test + +class LocalClass { + private fun foo() = run { + class Local + + Local() + } + + private val bar = object {} + + private val sam = Runnable {} + + private val sub = object : Runnable { + override fun run() { + } + } +} diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/LocalClass/LocalClass.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/LocalClass/LocalClass.txt new file mode 100644 index 00000000000..7e1c85a61d7 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/LocalClass/LocalClass.txt @@ -0,0 +1,41 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/LocalClass, fqName=test.LocalClass, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=LocalClass, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + PROPERTY[fqName=test.LocalClass.bar, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=bar] + MODIFIER_LIST[private final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Any] + PROPERTY[fqName=test.LocalClass.sam, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=sam] + MODIFIER_LIST[private final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=java] + REFERENCE_EXPRESSION[referencedName=lang] + REFERENCE_EXPRESSION[referencedName=Runnable] + PROPERTY[fqName=test.LocalClass.sub, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=sub] + MODIFIER_LIST[private final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Any] + FUN[fqName=test.LocalClass.foo, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=foo] + MODIFIER_LIST[private final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Any] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Modifiers/Modifiers.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Modifiers/Modifiers.kt new file mode 100644 index 00000000000..f59daea86a3 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Modifiers/Modifiers.kt @@ -0,0 +1,25 @@ +package test +import kotlin.coroutines.* + +data class Modifiers(val x: Int) { + external fun extFun() + + var extVar: Int = 1 + external get + external set + + tailrec fun sum(x: Long, sum: Long): Long { + if (x == 0.toLong()) return sum + return sum(x - 1, sum + x) + } + + inline fun inlined(crossinline arg1: ()->Unit, noinline arg2: ()->Unit): Unit {} + + override operator fun equals(other: Any?) = false + + annotation class Ann + + suspend fun suspend(x: Continuation) {} + + fun builder(c: suspend Any.() -> Unit) {} +} diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Modifiers/Modifiers.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Modifiers/Modifiers.txt new file mode 100644 index 00000000000..d7d45a07ed0 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Modifiers/Modifiers.txt @@ -0,0 +1,169 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/Modifiers, fqName=test.Modifiers, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=Modifiers, superNames=[]] + MODIFIER_LIST[public final data] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=x] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + CLASS_BODY + PROPERTY[fqName=test.Modifiers.extVar, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=extVar] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.Modifiers.x, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=x] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.Modifiers.builder, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=builder] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=c] + TYPE_REFERENCE + MODIFIER_LIST[suspend] + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Any] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.Modifiers.component1, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=component1] + MODIFIER_LIST[public final operator] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.Modifiers.equals, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=equals] + MODIFIER_LIST[open public operator] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=other] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Any] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Boolean] + FUN[fqName=test.Modifiers.extFun, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=extFun] + MODIFIER_LIST[public final external] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.Modifiers.inlined, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=inlined] + MODIFIER_LIST[public final inline] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=arg1] + MODIFIER_LIST[crossinline] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=arg2] + MODIFIER_LIST[noinline] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.Modifiers.sum, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=sum] + MODIFIER_LIST[public final tailrec] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=x] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Long] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=sum] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Long] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Long] + FUN[fqName=test.Modifiers.suspend, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=suspend] + MODIFIER_LIST[public final suspend] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=x] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=coroutines] + REFERENCE_EXPRESSION[referencedName=Continuation] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + CLASS[classId=test/Modifiers.Ann, fqName=test.Modifiers.Ann, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Ann, superNames=[Annotation]] + MODIFIER_LIST[public final annotation] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Annotation] + CLASS_BODY diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/MultifileClass/MultifileClass.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/MultifileClass/MultifileClass.kt new file mode 100644 index 00000000000..cf774167b4b --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/MultifileClass/MultifileClass.kt @@ -0,0 +1,14 @@ +@file:[JvmName("MultifileClass") JvmMultifileClass] +package test + +fun p1Fun() {} +fun String.p1ExtFun() {} +fun p1ExprFun(): Int = 0 +fun p1FunWithParams(x: Int): Int { return x } + +val p1Val: Int = 0 +val String.p1ExtVal: Int get() = 0 +var p1Var: Int = 0 + +@Deprecated("deprecated") +const val annotatedConstVal = 42 diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/MultifileClass/MultifileClass.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/MultifileClass/MultifileClass.txt new file mode 100644 index 00000000000..9b8997034e1 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/MultifileClass/MultifileClass.txt @@ -0,0 +1,127 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + PROPERTY[fqName=test.annotatedConstVal, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=false, name=annotatedConstVal] + MODIFIER_LIST[public const] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=Deprecated] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Deprecated] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.p1Val, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=false, name=p1Val] + MODIFIER_LIST[public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.p1Var, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=true, name=p1Var] + MODIFIER_LIST[public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.p1ExtVal, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=true, isTopLevel=true, isVar=false, name=p1ExtVal] + MODIFIER_LIST[public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.p1ExprFun, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=p1ExprFun] + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.p1Fun, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=p1Fun] + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.p1FunWithParams, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=p1FunWithParams] + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=x] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.p1ExtFun, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=true, isTopLevel=true, mayHaveContract=false, name=p1ExtFun] + MODIFIER_LIST[public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + PROPERTY[fqName=test.p2Val, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=false, name=p2Val] + MODIFIER_LIST[public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.p2ExtVal, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=true, isTopLevel=true, isVar=false, name=p2ExtVal] + MODIFIER_LIST[public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.p2Fun, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=p2Fun] + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.p2ExtFun, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=true, isTopLevel=true, mayHaveContract=false, name=p2ExtFun] + MODIFIER_LIST[public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/MultifileClass/SecondPart.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/MultifileClass/SecondPart.kt new file mode 100644 index 00000000000..98afe03f826 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/MultifileClass/SecondPart.kt @@ -0,0 +1,7 @@ +@file:[JvmName("MultifileClass") JvmMultifileClass] +package test + +fun p2Fun() {} +fun String.p2ExtFun() {} +val p2Val: Int = 0 +val String.p2ExtVal: Int get() = 0 \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NamedCompanionObject/NamedCompanionObject.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NamedCompanionObject/NamedCompanionObject.kt new file mode 100644 index 00000000000..568f2af652c --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NamedCompanionObject/NamedCompanionObject.kt @@ -0,0 +1,45 @@ +package test + +class NamedCompanionObject { + fun f() { + } + + val c = 1 + + public companion object Named { + val j = 0 + fun z() = 0 + + class A { + class B { + val i: Int = 0 + fun f() = 0 + } + } + } + + + class B { + companion object NamedInB { + class C { + companion object NamedInC { + class D { + companion object Companion { + val i = 3 + fun f() { + } + + enum class En { + A; + + companion object NamedInEn + } + + annotation class Anno + } + } + } + } + } + } +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NamedCompanionObject/NamedCompanionObject.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NamedCompanionObject/NamedCompanionObject.txt new file mode 100644 index 00000000000..a140192b7a0 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NamedCompanionObject/NamedCompanionObject.txt @@ -0,0 +1,163 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/NamedCompanionObject, fqName=test.NamedCompanionObject, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=NamedCompanionObject, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + OBJECT_DECLARATION[classId=test/NamedCompanionObject.Named, fqName=test.NamedCompanionObject.Named, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Named, superNames=[]] + MODIFIER_LIST[public companion] + CLASS_BODY + PROPERTY[fqName=test.NamedCompanionObject.Named.j, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=j] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.NamedCompanionObject.Named.z, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=z] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + CLASS[classId=test/NamedCompanionObject.Named.A, fqName=test.NamedCompanionObject.Named.A, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=A, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=test/NamedCompanionObject.Named.A.B, fqName=test.NamedCompanionObject.Named.A.B, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=B, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + PROPERTY[fqName=test.NamedCompanionObject.Named.A.B.i, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=i] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.NamedCompanionObject.Named.A.B.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.NamedCompanionObject.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=c] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.NamedCompanionObject.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + CLASS[classId=test/NamedCompanionObject.B, fqName=test.NamedCompanionObject.B, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=B, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + OBJECT_DECLARATION[classId=test/NamedCompanionObject.B.NamedInB, fqName=test.NamedCompanionObject.B.NamedInB, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=NamedInB, superNames=[]] + MODIFIER_LIST[public companion] + CLASS_BODY + CLASS[classId=test/NamedCompanionObject.B.NamedInB.C, fqName=test.NamedCompanionObject.B.NamedInB.C, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=C, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + OBJECT_DECLARATION[classId=test/NamedCompanionObject.B.NamedInB.C.NamedInC, fqName=test.NamedCompanionObject.B.NamedInB.C.NamedInC, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=NamedInC, superNames=[]] + MODIFIER_LIST[public companion] + CLASS_BODY + CLASS[classId=test/NamedCompanionObject.B.NamedInB.C.NamedInC.D, fqName=test.NamedCompanionObject.B.NamedInB.C.NamedInC.D, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=D, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + OBJECT_DECLARATION[classId=test/NamedCompanionObject.B.NamedInB.C.NamedInC.D.Companion, fqName=test.NamedCompanionObject.B.NamedInB.C.NamedInC.D.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]] + MODIFIER_LIST[public companion] + CLASS_BODY + PROPERTY[fqName=test.NamedCompanionObject.B.NamedInB.C.NamedInC.D.Companion.i, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=i] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.NamedCompanionObject.B.NamedInB.C.NamedInC.D.Companion.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + CLASS[classId=test/NamedCompanionObject.B.NamedInB.C.NamedInC.D.Companion.Anno, fqName=test.NamedCompanionObject.B.NamedInB.C.NamedInC.D.Companion.Anno, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Anno, superNames=[Annotation]] + MODIFIER_LIST[public final annotation] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Annotation] + CLASS_BODY + CLASS[classId=test/NamedCompanionObject.B.NamedInB.C.NamedInC.D.Companion.En, fqName=test.NamedCompanionObject.B.NamedInB.C.NamedInC.D.Companion.En, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=En, superNames=[Enum]] + MODIFIER_LIST[enum public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[private] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Enum] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=NamedCompanionObject] + REFERENCE_EXPRESSION[referencedName=B] + REFERENCE_EXPRESSION[referencedName=NamedInB] + REFERENCE_EXPRESSION[referencedName=C] + REFERENCE_EXPRESSION[referencedName=NamedInC] + REFERENCE_EXPRESSION[referencedName=D] + REFERENCE_EXPRESSION[referencedName=Companion] + REFERENCE_EXPRESSION[referencedName=En] + CLASS_BODY + ENUM_ENTRY[classId=null, fqName=test.NamedCompanionObject.B.NamedInB.C.NamedInC.D.Companion.En.A, isEnumEntry=true, isInterface=false, isLocal=false, isTopLevel=false, name=A, superNames=[]] + OBJECT_DECLARATION[classId=test/NamedCompanionObject.B.NamedInB.C.NamedInC.D.Companion.En.NamedInEn, fqName=test.NamedCompanionObject.B.NamedInB.C.NamedInC.D.Companion.En.NamedInEn, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=NamedInEn, superNames=[]] + MODIFIER_LIST[public companion] + CLASS_BODY diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NestedClasses/NestedClasses.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NestedClasses/NestedClasses.kt new file mode 100644 index 00000000000..cc689fa1b0e --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NestedClasses/NestedClasses.kt @@ -0,0 +1,37 @@ +package test + +class NestedClasses { + fun f() { + } + + val c: Int = 0 + + private class Nested { + fun f(p1: TN) { + } + + val c = 1 + + public class NN { + fun f(p1: TNN) { + } + + val c = 1 + } + + inner class NI { + fun f(p1: TN, p2: TNI) { + } + } + } + + public inner class Inner { + fun f(p1: TI) { + } + + private inner class II { + fun f(p1: TII, p2: II>, p3: TOuter) { + } + } + } +} diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NestedClasses/NestedClasses.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NestedClasses/NestedClasses.txt new file mode 100644 index 00000000000..c87643bb129 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NestedClasses/NestedClasses.txt @@ -0,0 +1,187 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/NestedClasses, fqName=test.NestedClasses, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=NestedClasses, superNames=[]] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=TOuter] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + PROPERTY[fqName=test.NestedClasses.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=c] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.NestedClasses.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + CLASS[classId=test/NestedClasses.Inner, fqName=test.NestedClasses.Inner, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Inner, superNames=[]] + MODIFIER_LIST[inner public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=TI] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=TOuter] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + FUN[fqName=test.NestedClasses.Inner.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p1] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=TI] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + CLASS[classId=test/NestedClasses.Inner.II, fqName=test.NestedClasses.Inner.II, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=II, superNames=[]] + MODIFIER_LIST[inner private final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=TII] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + FUN[fqName=test.NestedClasses.Inner.II.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p1] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=TII] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p2] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=NestedClasses] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=TOuter] + REFERENCE_EXPRESSION[referencedName=Inner] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=TI] + REFERENCE_EXPRESSION[referencedName=II] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=NestedClasses] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=TOuter] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p3] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=TOuter] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + CLASS[classId=test/NestedClasses.Nested, fqName=test.NestedClasses.Nested, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Nested, superNames=[]] + MODIFIER_LIST[private final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=TN] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + PROPERTY[fqName=test.NestedClasses.Nested.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=c] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.NestedClasses.Nested.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p1] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=TN] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + CLASS[classId=test/NestedClasses.Nested.NI, fqName=test.NestedClasses.Nested.NI, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=NI, superNames=[]] + MODIFIER_LIST[inner public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=TNI] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=TN] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + FUN[fqName=test.NestedClasses.Nested.NI.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p1] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=TN] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p2] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=TNI] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + CLASS[classId=test/NestedClasses.Nested.NN, fqName=test.NestedClasses.Nested.NN, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=NN, superNames=[]] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=TNN] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + PROPERTY[fqName=test.NestedClasses.Nested.NN.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=c] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=test.NestedClasses.Nested.NN.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p1] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=TNN] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Objects/Objects.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Objects/Objects.kt new file mode 100644 index 00000000000..a7f36afe203 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Objects/Objects.kt @@ -0,0 +1,29 @@ +public object Objects { + + val c = 0 + + fun f() { + } + + private object InnerObject : A { + val c = 0 + + fun f() { + } + } + + public object OtherObject : NestedClass() { + + val c = 0 + + fun f() { + } + } + + public open class NestedClass + + +} + +interface A { +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Objects/Objects.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Objects/Objects.txt new file mode 100644 index 00000000000..df62221e586 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Objects/Objects.txt @@ -0,0 +1,75 @@ +PsiJetFileStubImpl[package=] + PACKAGE_DIRECTIVE + IMPORT_LIST + OBJECT_DECLARATION[classId=/Objects, fqName=Objects, isCompanion=false, isLocal=false, isObjectLiteral=false, isTopLevel=true, name=Objects, superNames=[]] + MODIFIER_LIST[public] + CLASS_BODY + PROPERTY[fqName=Objects.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=c] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=Objects.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + OBJECT_DECLARATION[classId=/Objects.InnerObject, fqName=Objects.InnerObject, isCompanion=false, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=InnerObject, superNames=[A]] + MODIFIER_LIST[private] + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=A] + CLASS_BODY + PROPERTY[fqName=Objects.InnerObject.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=c] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=Objects.InnerObject.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + CLASS[classId=/Objects.NestedClass, fqName=Objects.NestedClass, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=NestedClass, superNames=[]] + MODIFIER_LIST[open public] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + OBJECT_DECLARATION[classId=/Objects.OtherObject, fqName=Objects.OtherObject, isCompanion=false, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=OtherObject, superNames=[NestedClass]] + MODIFIER_LIST[public] + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=Objects] + REFERENCE_EXPRESSION[referencedName=NestedClass] + CLASS_BODY + PROPERTY[fqName=Objects.OtherObject.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=c] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=Objects.OtherObject.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateConstField/PrivateConstField.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateConstField/PrivateConstField.kt new file mode 100644 index 00000000000..8c241547872 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateConstField/PrivateConstField.kt @@ -0,0 +1,16 @@ +package test + +@Retention(AnnotationRetention.RUNTIME) +annotation class A + +class PrivateConstField { + private companion object { + const val CONST: Int = 10 + @A + const val CONST_WITH_ANNOTATION: Int = 10 + + val field: Int = 10 + @A + val fieldWithAnnotation: Int = 10 + } +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateConstField/PrivateConstField.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateConstField/PrivateConstField.txt new file mode 100644 index 00000000000..3751359f238 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateConstField/PrivateConstField.txt @@ -0,0 +1,75 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/PrivateConstField, fqName=test.PrivateConstField, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=PrivateConstField, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + OBJECT_DECLARATION[classId=test/PrivateConstField.Companion, fqName=test.PrivateConstField.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]] + MODIFIER_LIST[private companion] + CLASS_BODY + PROPERTY[fqName=test.PrivateConstField.Companion.CONST, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=CONST] + MODIFIER_LIST[public final const] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.PrivateConstField.Companion.CONST_WITH_ANNOTATION, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=CONST_WITH_ANNOTATION] + MODIFIER_LIST[public final const] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=A] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=Deprecated] + ANNOTATION_TARGET[useSiteTarget=FIELD] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=java] + REFERENCE_EXPRESSION[referencedName=lang] + REFERENCE_EXPRESSION[referencedName=Deprecated] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.PrivateConstField.Companion.field, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=field] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.PrivateConstField.Companion.fieldWithAnnotation, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=fieldWithAnnotation] + MODIFIER_LIST[public final] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=A] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=Deprecated] + ANNOTATION_TARGET[useSiteTarget=FIELD] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=java] + REFERENCE_EXPRESSION[referencedName=lang] + REFERENCE_EXPRESSION[referencedName=Deprecated] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateToThis/PrivateToThis.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateToThis/PrivateToThis.kt new file mode 100644 index 00000000000..f5afeb33273 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateToThis/PrivateToThis.kt @@ -0,0 +1,15 @@ +package p + +class PrivateToThis { + private val foo: I = null!! + private var bar: I = null!! + + private val val_with_accessors: I + get() = null!! + + private var var_with_accessors: I + get() = null!! + set(value: I) {} + + private fun bas(): I = null!! +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateToThis/PrivateToThis.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateToThis/PrivateToThis.txt new file mode 100644 index 00000000000..f47bd949cdc --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateToThis/PrivateToThis.txt @@ -0,0 +1,39 @@ +PsiJetFileStubImpl[package=p] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=p] + IMPORT_LIST + CLASS[classId=p/PrivateToThis, fqName=p.PrivateToThis, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=PrivateToThis, superNames=[]] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=true, isOutVariance=false, name=I] + MODIFIER_LIST[in] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + PROPERTY[fqName=p.PrivateToThis.bar, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=bar] + MODIFIER_LIST[private final] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=I] + PROPERTY[fqName=p.PrivateToThis.foo, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=foo] + MODIFIER_LIST[private final] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=I] + PROPERTY[fqName=p.PrivateToThis.val_with_accessors, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=val_with_accessors] + MODIFIER_LIST[private final] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=I] + PROPERTY[fqName=p.PrivateToThis.var_with_accessors, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=var_with_accessors] + MODIFIER_LIST[private final] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=I] + FUN[fqName=p.PrivateToThis.bas, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=bas] + MODIFIER_LIST[private final] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=I] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Sealed/Sealed.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Sealed/Sealed.kt new file mode 100644 index 00000000000..53be5967af5 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Sealed/Sealed.kt @@ -0,0 +1,6 @@ +package test + +sealed class Sealed { + class Nested: Sealed() + object Top: Sealed() +} diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Sealed/Sealed.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Sealed/Sealed.txt new file mode 100644 index 00000000000..cf87da7156d --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Sealed/Sealed.txt @@ -0,0 +1,33 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/Sealed, fqName=test.Sealed, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=Sealed, superNames=[]] + MODIFIER_LIST[public sealed] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[protected] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=test/Sealed.Nested, fqName=test.Sealed.Nested, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Nested, superNames=[Sealed]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=Sealed] + CLASS_BODY + OBJECT_DECLARATION[classId=test/Sealed.Top, fqName=test.Sealed.Top, isCompanion=false, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Top, superNames=[Sealed]] + MODIFIER_LIST[public] + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=Sealed] + CLASS_BODY diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SecondaryConstructors/SecondaryConstructors.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SecondaryConstructors/SecondaryConstructors.kt new file mode 100644 index 00000000000..6530f879197 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SecondaryConstructors/SecondaryConstructors.kt @@ -0,0 +1,29 @@ +package test + +import java.io.Serializable + +class SecondaryConstructors(x: Boolean) { + init { + } + + @anno constructor(x: String) : this(x == "abc") { + } + + init { + } + + private constructor(x: Int) : this(x < 0) { + } + + inner class Inner where G : Serializable { + constructor(x: T, g: G) { + } + } + + class Nested { + @anno constructor(z: Int) {} + internal constructor() {} + } +} + +annotation class anno \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SecondaryConstructors/SecondaryConstructors.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SecondaryConstructors/SecondaryConstructors.txt new file mode 100644 index 00000000000..4b1b7125653 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SecondaryConstructors/SecondaryConstructors.txt @@ -0,0 +1,100 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/SecondaryConstructors, fqName=test.SecondaryConstructors, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=SecondaryConstructors, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=x] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Boolean] + CLASS_BODY + SECONDARY_CONSTRUCTOR + MODIFIER_LIST[public] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=anno] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=anno] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=x] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + SECONDARY_CONSTRUCTOR + MODIFIER_LIST[private] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=x] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + CLASS[classId=test/SecondaryConstructors.Inner, fqName=test.SecondaryConstructors.Inner, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Inner, superNames=[]] + MODIFIER_LIST[inner public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=G] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_CONSTRAINT_LIST + TYPE_CONSTRAINT + REFERENCE_EXPRESSION[referencedName=G] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=java] + REFERENCE_EXPRESSION[referencedName=io] + REFERENCE_EXPRESSION[referencedName=Serializable] + CLASS_BODY + SECONDARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=x] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=g] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G] + CLASS[classId=test/SecondaryConstructors.Nested, fqName=test.SecondaryConstructors.Nested, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Nested, superNames=[]] + MODIFIER_LIST[public final] + CLASS_BODY + SECONDARY_CONSTRUCTOR + MODIFIER_LIST[public] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=anno] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=anno] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=z] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + SECONDARY_CONSTRUCTOR + MODIFIER_LIST[internal] + VALUE_PARAMETER_LIST diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SuspendLambda/SuspendLambda.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SuspendLambda/SuspendLambda.kt new file mode 100644 index 00000000000..cb042235c43 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SuspendLambda/SuspendLambda.kt @@ -0,0 +1,31 @@ +package test + +class SuspendLambda { + fun (suspend () -> T).createCoroutine1(completion: Continuation) {} + + fun (suspend R.() -> T).createCoroutine2(receiver: R, completion: Continuation) {} + + fun (suspend @receiver:A R.() -> T).createCoroutineAnother() {} + + fun testCoroutine(f: suspend (Int) -> T?) {} + + fun testCoroutineWithAnnotation(f: suspend (Int) -> @A T?) {} + + var nullableSuspend: (suspend (P) -> Unit)? = null + var nullableSuspendWithReceiver: (suspend RS.(P) -> Unit)? = null + var nullableSuspendWithNullableParameter: (suspend (P?) -> Unit)? = null + var nullableSuspendWithNullableReceiver: (suspend RS?.(P) -> Unit)? = null + + var nullableSuspendWithAnnotation: (@A() suspend (P) -> Unit)? = null + + fun override(p: String, b: (suspend (P) -> Unit)) = null + fun override(b: (suspend (P) -> Unit)) = null +} + +interface P +interface RS + +@Target(AnnotationTarget.TYPE, AnnotationTarget.VALUE_PARAMETER) +annotation class A + +class Continuation {} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SuspendLambda/SuspendLambda.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SuspendLambda/SuspendLambda.txt new file mode 100644 index 00000000000..5c3bb7d85b7 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SuspendLambda/SuspendLambda.txt @@ -0,0 +1,322 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/SuspendLambda, fqName=test.SuspendLambda, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=SuspendLambda, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + PROPERTY[fqName=test.SuspendLambda.nullableSuspend, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=nullableSuspend] + MODIFIER_LIST[public final] + TYPE_REFERENCE + NULLABLE_TYPE + MODIFIER_LIST[suspend] + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=P] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + PROPERTY[fqName=test.SuspendLambda.nullableSuspendWithAnnotation, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=nullableSuspendWithAnnotation] + MODIFIER_LIST[public final] + TYPE_REFERENCE + NULLABLE_TYPE + MODIFIER_LIST[suspend] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=A] + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=P] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + PROPERTY[fqName=test.SuspendLambda.nullableSuspendWithNullableParameter, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=nullableSuspendWithNullableParameter] + MODIFIER_LIST[public final] + TYPE_REFERENCE + NULLABLE_TYPE + MODIFIER_LIST[suspend] + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=P] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + PROPERTY[fqName=test.SuspendLambda.nullableSuspendWithNullableReceiver, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=nullableSuspendWithNullableReceiver] + MODIFIER_LIST[public final] + TYPE_REFERENCE + NULLABLE_TYPE + MODIFIER_LIST[suspend] + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=RS] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=P] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + PROPERTY[fqName=test.SuspendLambda.nullableSuspendWithReceiver, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=nullableSuspendWithReceiver] + MODIFIER_LIST[public final] + TYPE_REFERENCE + NULLABLE_TYPE + MODIFIER_LIST[suspend] + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=RS] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=P] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.SuspendLambda.override, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=override] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=b] + TYPE_REFERENCE + MODIFIER_LIST[suspend] + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=P] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Nothing] + FUN[fqName=test.SuspendLambda.override, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=override] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=b] + TYPE_REFERENCE + MODIFIER_LIST[suspend] + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=P] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Nothing] + FUN[fqName=test.SuspendLambda.testCoroutine, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=false, isTopLevel=false, mayHaveContract=false, name=testCoroutine] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=f] + TYPE_REFERENCE + MODIFIER_LIST[suspend] + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.SuspendLambda.testCoroutineWithAnnotation, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=false, isTopLevel=false, mayHaveContract=false, name=testCoroutineWithAnnotation] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=f] + TYPE_REFERENCE + MODIFIER_LIST[suspend] + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=A] + NULLABLE_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.SuspendLambda.createCoroutine1, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=true, isTopLevel=false, mayHaveContract=false, name=createCoroutine1] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T] + TYPE_REFERENCE + MODIFIER_LIST[suspend] + FUNCTION_TYPE + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=completion] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=Continuation] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.SuspendLambda.createCoroutine2, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=true, isTopLevel=false, mayHaveContract=false, name=createCoroutine2] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=R] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T] + TYPE_REFERENCE + MODIFIER_LIST[suspend] + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=R] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=receiver] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=R] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=completion] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=Continuation] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.SuspendLambda.createCoroutineAnother, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=true, isTopLevel=false, mayHaveContract=false, name=createCoroutineAnother] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=R] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T] + TYPE_REFERENCE + MODIFIER_LIST[suspend] + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=R] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopJvmPackageName/TopJvmPackageName.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopJvmPackageName/TopJvmPackageName.kt new file mode 100644 index 00000000000..ee5f3dcd2e1 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopJvmPackageName/TopJvmPackageName.kt @@ -0,0 +1,9 @@ +@file:Suppress("UNCHECKED_CAST", "NOTHING_TO_INLINE", "INVISIBLE_MEMBER", "INVISIBLE_REFERENCE") +@file:JvmName("OtherKt") +@file:kotlin.jvm.JvmPackageName("some.other.jvm") +package some.other + +@SinceKotlin("1.2") +fun foo() {} + +// JVM_FILE_NAME: OtherKt \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopJvmPackageName/TopJvmPackageName.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopJvmPackageName/TopJvmPackageName.txt new file mode 100644 index 00000000000..6da43b31553 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopJvmPackageName/TopJvmPackageName.txt @@ -0,0 +1,21 @@ +PsiJetFileStubImpl[package=some.other] + PACKAGE_DIRECTIVE + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION[referencedName=some] + REFERENCE_EXPRESSION[referencedName=other] + IMPORT_LIST + FUN[fqName=some.other.foo, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=foo] + MODIFIER_LIST[public] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=SinceKotlin] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=SinceKotlin] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersAnnotatedKt/TopLevelMembersAnnotatedKt.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersAnnotatedKt/TopLevelMembersAnnotatedKt.txt new file mode 100644 index 00000000000..18b6051b36d --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersAnnotatedKt/TopLevelMembersAnnotatedKt.txt @@ -0,0 +1,104 @@ +PsiJetFileStubImpl[package=a.b.c.topLevelMembersAnnotated] + PACKAGE_DIRECTIVE + DOT_QUALIFIED_EXPRESSION + DOT_QUALIFIED_EXPRESSION + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=b] + REFERENCE_EXPRESSION[referencedName=c] + REFERENCE_EXPRESSION[referencedName=topLevelMembersAnnotated] + IMPORT_LIST + PROPERTY[fqName=a.b.c.topLevelMembersAnnotated.i, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=false, name=i] + MODIFIER_LIST[public] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=d] + REFERENCE_EXPRESSION[referencedName=e] + REFERENCE_EXPRESSION[referencedName=f] + REFERENCE_EXPRESSION[referencedName=a] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=b] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=d] + REFERENCE_EXPRESSION[referencedName=e] + REFERENCE_EXPRESSION[referencedName=f] + REFERENCE_EXPRESSION[referencedName=b] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=a.b.c.topLevelMembersAnnotated.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=f] + MODIFIER_LIST[public] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=d] + REFERENCE_EXPRESSION[referencedName=e] + REFERENCE_EXPRESSION[referencedName=f] + REFERENCE_EXPRESSION[referencedName=a] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=b] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=d] + REFERENCE_EXPRESSION[referencedName=e] + REFERENCE_EXPRESSION[referencedName=f] + REFERENCE_EXPRESSION[referencedName=b] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p1] + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=a] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=d] + REFERENCE_EXPRESSION[referencedName=e] + REFERENCE_EXPRESSION[referencedName=f] + REFERENCE_EXPRESSION[referencedName=a] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=b] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=d] + REFERENCE_EXPRESSION[referencedName=e] + REFERENCE_EXPRESSION[referencedName=f] + REFERENCE_EXPRESSION[referencedName=b] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=a] + REFERENCE_EXPRESSION[referencedName=b] + REFERENCE_EXPRESSION[referencedName=c] + REFERENCE_EXPRESSION[referencedName=topLevelMembersAnnotated] + REFERENCE_EXPRESSION[referencedName=C] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersAnnotatedKt/annotations.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersAnnotatedKt/annotations.kt new file mode 100644 index 00000000000..e70fd7efdb6 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersAnnotatedKt/annotations.kt @@ -0,0 +1,5 @@ +package d.e.f + +annotation class a + +annotation class b \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersAnnotatedKt/topLevelMembersAnnotated.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersAnnotatedKt/topLevelMembersAnnotated.kt new file mode 100644 index 00000000000..0652180f30b --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersAnnotatedKt/topLevelMembersAnnotated.kt @@ -0,0 +1,10 @@ +package a.b.c.topLevelMembersAnnotated + +import d.e.f.* + +@property:a @property:b val i: Int = 0 + +@a @b fun f(@a @b p1: C): Int = 0 + + +class C \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersKt/TopLevelMembers.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersKt/TopLevelMembers.kt new file mode 100644 index 00000000000..3b9ae59b162 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersKt/TopLevelMembers.kt @@ -0,0 +1,38 @@ +package foo.TopLevelMembers + +fun funWithBlockBody() { +} + +private fun funWithExprBody() = 3 + +private fun funWithParams(c: Int) { +} + +public val immutable: Double = 0.0 + +public var mutable: Float = 0.0f + +public val String.ext: String + get() = this + +public fun Int.ext(i: Int = 3): Int = this + i + +private fun funWithVarargParam(c: Int, vararg v: Int) { +} + +private fun probablyNothing(): Nothing = throw IllegalStateException() + +private val certainlyNothing: kotlin.Nothing = throw IllegalStateException() + +private typealias Alias = (E) -> E + +class Nothing + +@Target(AnnotationTarget.FIELD) +annotation class A + +class D + +public val D.Main: D? get() = null + +@A internal val Main: D? = null diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersKt/TopLevelMembersKt.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersKt/TopLevelMembersKt.txt new file mode 100644 index 00000000000..bf0dfa0931f --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersKt/TopLevelMembersKt.txt @@ -0,0 +1,170 @@ +PsiJetFileStubImpl[package=foo.TopLevelMembers] + PACKAGE_DIRECTIVE + DOT_QUALIFIED_EXPRESSION + REFERENCE_EXPRESSION[referencedName=foo] + REFERENCE_EXPRESSION[referencedName=TopLevelMembers] + IMPORT_LIST + PROPERTY[fqName=foo.TopLevelMembers.Main, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=false, name=Main] + MODIFIER_LIST[internal] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=A] + ANNOTATION_TARGET[useSiteTarget=FIELD] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=foo] + REFERENCE_EXPRESSION[referencedName=TopLevelMembers] + REFERENCE_EXPRESSION[referencedName=A] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=foo] + REFERENCE_EXPRESSION[referencedName=TopLevelMembers] + REFERENCE_EXPRESSION[referencedName=D] + PROPERTY[fqName=foo.TopLevelMembers.certainlyNothing, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=false, name=certainlyNothing] + MODIFIER_LIST[private] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Nothing] + PROPERTY[fqName=foo.TopLevelMembers.immutable, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=false, name=immutable] + MODIFIER_LIST[public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Double] + PROPERTY[fqName=foo.TopLevelMembers.mutable, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=true, name=mutable] + MODIFIER_LIST[public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Float] + PROPERTY[fqName=foo.TopLevelMembers.Main, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=true, isTopLevel=true, isVar=false, name=Main] + MODIFIER_LIST[public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=foo] + REFERENCE_EXPRESSION[referencedName=TopLevelMembers] + REFERENCE_EXPRESSION[referencedName=D] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=foo] + REFERENCE_EXPRESSION[referencedName=TopLevelMembers] + REFERENCE_EXPRESSION[referencedName=D] + PROPERTY[fqName=foo.TopLevelMembers.ext, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=true, isTopLevel=true, isVar=false, name=ext] + MODIFIER_LIST[public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + FUN[fqName=foo.TopLevelMembers.funWithBlockBody, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=funWithBlockBody] + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=foo.TopLevelMembers.funWithExprBody, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=funWithExprBody] + MODIFIER_LIST[private] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + FUN[fqName=foo.TopLevelMembers.funWithParams, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=funWithParams] + MODIFIER_LIST[private] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=c] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=foo.TopLevelMembers.funWithVarargParam, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=funWithVarargParam] + MODIFIER_LIST[private] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=c] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=v] + MODIFIER_LIST[vararg] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=foo.TopLevelMembers.probablyNothing, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, mayHaveContract=false, name=probablyNothing] + MODIFIER_LIST[private] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=foo] + REFERENCE_EXPRESSION[referencedName=TopLevelMembers] + REFERENCE_EXPRESSION[referencedName=Nothing] + FUN[fqName=foo.TopLevelMembers.ext, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=true, isTopLevel=true, mayHaveContract=false, name=ext] + MODIFIER_LIST[public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=i] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPEALIAS[classId=foo/TopLevelMembers/Alias, fqName=foo.TopLevelMembers.Alias, isTopLevel=true, name=Alias] + MODIFIER_LIST[private] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=E] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=E] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=E] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeAliases/Dependency.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeAliases/Dependency.kt new file mode 100644 index 00000000000..da4ee277342 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeAliases/Dependency.kt @@ -0,0 +1,9 @@ +package dependency + +typealias A = () -> Unit + +fun foo(a: A) { + a.invoke() +} + +class SomeClass \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeAliases/TypeAliases.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeAliases/TypeAliases.kt new file mode 100644 index 00000000000..3309a593352 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeAliases/TypeAliases.kt @@ -0,0 +1,39 @@ +package test + +import dependency.* +import kotlin.annotation.AnnotationTarget + +class Outer { + inner class Inner { + @Suppress("TOPLEVEL_TYPEALIASES_ONLY") + typealias TA = Map, Map> + } +} + +@Target(AnnotationTarget.TYPEALIAS) +annotation class Ann + +class TypeAliases { + + class OrderB + + @Suppress("TOPLEVEL_TYPEALIASES_ONLY") + typealias B = (A) -> Unit + + fun foo(a: A, b: B, ta: Outer.Inner.TA) { + b.invoke(a) + } + + @Ann + @Suppress("TOPLEVEL_TYPEALIASES_ONLY") + private typealias Parametrized = Map + + fun order(path: String) {} + fun order(body: Z) {} + + class OrderA +} + + +typealias Z = dependency.SomeClass // dependency.SomeClass is before (lexicography) kotlin.String, but test.Z is after + diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeAliases/TypeAliases.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeAliases/TypeAliases.txt new file mode 100644 index 00000000000..7aafcb92318 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeAliases/TypeAliases.txt @@ -0,0 +1,153 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/TypeAliases, fqName=test.TypeAliases, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=TypeAliases, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + FUN[fqName=test.TypeAliases.foo, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=foo] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=a] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=dependency] + REFERENCE_EXPRESSION[referencedName=A] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=b] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=TypeAliases] + REFERENCE_EXPRESSION[referencedName=B] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=ta] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=Outer] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Double] + REFERENCE_EXPRESSION[referencedName=Inner] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + REFERENCE_EXPRESSION[referencedName=TA] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Boolean] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.TypeAliases.order, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=order] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=path] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.TypeAliases.order, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=order] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=body] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=Z] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + CLASS[classId=test/TypeAliases.OrderA, fqName=test.TypeAliases.OrderA, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=OrderA, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + CLASS[classId=test/TypeAliases.OrderB, fqName=test.TypeAliases.OrderB, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=OrderB, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + TYPEALIAS[classId=test/TypeAliases.B, fqName=test.TypeAliases.B, isTopLevel=false, name=B] + MODIFIER_LIST[public] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=dependency] + REFERENCE_EXPRESSION[referencedName=A] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + TYPEALIAS[classId=test/TypeAliases.Parametrized, fqName=test.TypeAliases.Parametrized, isTopLevel=false, name=Parametrized] + MODIFIER_LIST[private] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=Ann] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=Ann] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=E] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=F] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=Map] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=E] + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=F] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeBoundsAndDelegationSpecifiers/TypeBoundsAndDelegationSpecifiers.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeBoundsAndDelegationSpecifiers/TypeBoundsAndDelegationSpecifiers.kt new file mode 100644 index 00000000000..6dc5c88fc3f --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeBoundsAndDelegationSpecifiers/TypeBoundsAndDelegationSpecifiers.kt @@ -0,0 +1,6 @@ +package test + +open class A +interface T + +class TypeBoundsAndDelegationSpecifiers() : A(), T where H : List, G : CharSequence, C: Any? \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeBoundsAndDelegationSpecifiers/TypeBoundsAndDelegationSpecifiers.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeBoundsAndDelegationSpecifiers/TypeBoundsAndDelegationSpecifiers.txt new file mode 100644 index 00000000000..379a79b417d --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeBoundsAndDelegationSpecifiers/TypeBoundsAndDelegationSpecifiers.txt @@ -0,0 +1,69 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/TypeBoundsAndDelegationSpecifiers, fqName=test.TypeBoundsAndDelegationSpecifiers, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=TypeBoundsAndDelegationSpecifiers, superNames=[A, T]] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=H] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=G] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Any] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=C] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=T] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + SUPER_TYPE_LIST + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=A] + SUPER_TYPE_ENTRY + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=T] + TYPE_CONSTRAINT_LIST + TYPE_CONSTRAINT + REFERENCE_EXPRESSION[referencedName=H] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=List] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + TYPE_CONSTRAINT + REFERENCE_EXPRESSION[referencedName=G] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=CharSequence] + TYPE_CONSTRAINT + REFERENCE_EXPRESSION[referencedName=C] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Any] + CLASS_BODY diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeModifiers/TypeModifiers.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeModifiers/TypeModifiers.kt new file mode 100644 index 00000000000..232f2d1bffd --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeModifiers/TypeModifiers.kt @@ -0,0 +1,9 @@ +public class TypeModifiers { + val function: () -> Unit = null!! + + val suspendFunction: suspend () -> Unit = null!! + + val suspendExtFunction: suspend Any.() -> Unit = null!! + + val functionOnSuspendFunction: (suspend () -> Unit).() -> Unit = null!! +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeModifiers/TypeModifiers.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeModifiers/TypeModifiers.txt new file mode 100644 index 00000000000..f290bed7c5a --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeModifiers/TypeModifiers.txt @@ -0,0 +1,67 @@ +PsiJetFileStubImpl[package=] + PACKAGE_DIRECTIVE + IMPORT_LIST + CLASS[classId=/TypeModifiers, fqName=TypeModifiers, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=TypeModifiers, superNames=[]] + MODIFIER_LIST[public final] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + PROPERTY[fqName=TypeModifiers.function, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=function] + MODIFIER_LIST[public final] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + PROPERTY[fqName=TypeModifiers.functionOnSuspendFunction, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=functionOnSuspendFunction] + MODIFIER_LIST[public final] + TYPE_REFERENCE + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + MODIFIER_LIST[suspend] + FUNCTION_TYPE + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + PROPERTY[fqName=TypeModifiers.suspendExtFunction, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=suspendExtFunction] + MODIFIER_LIST[public final] + TYPE_REFERENCE + MODIFIER_LIST[suspend] + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Any] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + PROPERTY[fqName=TypeModifiers.suspendFunction, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=suspendFunction] + MODIFIER_LIST[public final] + TYPE_REFERENCE + MODIFIER_LIST[suspend] + FUNCTION_TYPE + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeParams/TypeParams.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeParams/TypeParams.kt new file mode 100644 index 00000000000..d60977cee59 --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeParams/TypeParams.kt @@ -0,0 +1,44 @@ +package test + +import java.io.Serializable + +class TypeParams Int, T4, T5 : Any?, T6 : T5, T7> where T1 : Cloneable?, T1 : Serializable, T2 : String, T7 : T6 { + + fun useParams(p1: T1, p2: (T2) -> Unit, p3: T3, p4: T4, P5: T5) { + } + + fun useParamsInOtherOrder(p1: T3, p2: T3, p3: T1, p4: T5, P5: T1) { + } + + fun useParamsInTypeArg(p1: List, p2: Map, p3: (T4).(T2, T3) -> T1) { + + } + + fun withOwnParams(p1: G1, p2: G2, p3: G3, p4: T1, p5: (T2) -> Unit) { + } + + fun withOwnParamsAndTypeConstraints(p1: G1, p2: G2, p3: G3, p4: T1, p5: (T2) -> Unit) where G4 : G1, G3 : String, G3 : Serializable? { + } + + fun withOwnParamsClashing(p1: T1, p2: T2, p3: T3, p4: T4, p5: T5) { + } + + fun T1.withOwnParamExtension(p: T1) { + } + + val G1.withOwnParam: G1 + get() = throw IllegalStateException() + + val G1.withOwnBoundedParam: G1 + get() = throw IllegalStateException() + + val G1.withOwnBoundedParamByOther: G1 + get() = throw IllegalStateException() + + val useSomeParam: T2 + get() = throw IllegalStateException() + + + public inline fun f(g: G, body: (G)-> T): T = body(g) + +} \ No newline at end of file diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeParams/TypeParams.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeParams/TypeParams.txt new file mode 100644 index 00000000000..5e8112de3dc --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeParams/TypeParams.txt @@ -0,0 +1,416 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/TypeParams, fqName=test.TypeParams, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=TypeParams, superNames=[]] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=true, isOutVariance=false, name=T1] + MODIFIER_LIST[in] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Any] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=true, name=T2] + MODIFIER_LIST[out] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T3] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T4] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T5] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T6] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T5] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T7] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T6] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + TYPE_CONSTRAINT_LIST + TYPE_CONSTRAINT + REFERENCE_EXPRESSION[referencedName=T1] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Cloneable] + TYPE_CONSTRAINT + REFERENCE_EXPRESSION[referencedName=T1] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=java] + REFERENCE_EXPRESSION[referencedName=io] + REFERENCE_EXPRESSION[referencedName=Serializable] + CLASS_BODY + PROPERTY[fqName=test.TypeParams.useSomeParam, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=useSomeParam] + MODIFIER_LIST[public final] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T2] + PROPERTY[fqName=test.TypeParams.withOwnBoundedParam, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=true, isTopLevel=false, isVar=false, name=withOwnBoundedParam] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=G1] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G1] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G1] + PROPERTY[fqName=test.TypeParams.withOwnBoundedParamByOther, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=true, isTopLevel=false, isVar=false, name=withOwnBoundedParamByOther] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=G1] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T4] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G1] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G1] + PROPERTY[fqName=test.TypeParams.withOwnParam, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=true, isTopLevel=false, isVar=false, name=withOwnParam] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=G1] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G1] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G1] + FUN[fqName=test.TypeParams.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=false, isTopLevel=false, mayHaveContract=false, name=f] + MODIFIER_LIST[public final inline] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=G] + MODIFIER_LIST[reified] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T] + MODIFIER_LIST[reified] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=g] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=body] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T] + FUN[fqName=test.TypeParams.useParams, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=useParams] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p1] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T1] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p2] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T2] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p3] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T3] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p4] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T4] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=P5] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T5] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.TypeParams.useParamsInOtherOrder, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=useParamsInOtherOrder] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p1] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T3] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p2] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T3] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p3] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T1] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p4] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T5] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=P5] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T1] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.TypeParams.useParamsInTypeArg, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=useParamsInTypeArg] + MODIFIER_LIST[public final] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p1] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=List] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T1] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p2] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=Map] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T4] + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T5] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p3] + TYPE_REFERENCE + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T4] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T2] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T3] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T1] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.TypeParams.withOwnParams, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=false, isTopLevel=false, mayHaveContract=false, name=withOwnParams] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=G1] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=G2] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=G3] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p1] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G1] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p2] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G2] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p3] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G3] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p4] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T1] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p5] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T2] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.TypeParams.withOwnParamsAndTypeConstraints, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=false, isTopLevel=false, mayHaveContract=false, name=withOwnParamsAndTypeConstraints] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=G1] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=G2] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G1] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=G3] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=G4] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G1] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p1] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G1] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p2] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G2] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p3] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=G3] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p4] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T1] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p5] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T2] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + TYPE_CONSTRAINT_LIST + TYPE_CONSTRAINT + REFERENCE_EXPRESSION[referencedName=G3] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=java] + REFERENCE_EXPRESSION[referencedName=io] + REFERENCE_EXPRESSION[referencedName=Serializable] + FUN[fqName=test.TypeParams.withOwnParamsClashing, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=false, isTopLevel=false, mayHaveContract=false, name=withOwnParamsClashing] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T1] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T2] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T3] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p1] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T1] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p2] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T2] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p3] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T3] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p4] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T4] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p5] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T5] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.TypeParams.withOwnParamExtension, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=true, isTopLevel=false, mayHaveContract=false, name=withOwnParamExtension] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T1] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T1] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=p] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=T1] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Types/Types.kt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Types/Types.kt new file mode 100644 index 00000000000..e3d6187be3a --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Types/Types.kt @@ -0,0 +1,27 @@ +package test + +abstract class Types { + val nullable: Int? = null + abstract val list: List + abstract val map: Map + abstract val nullableMap: Map? + abstract val projections: Map + val function: () -> Unit = {} + abstract val functionWithParam: (String, Int) -> List + abstract val extFunction: String.() -> List + abstract val extFunctionWithParam: String.(Int, String) -> List + + abstract val extFunctionWithNullables: String.(Int?, String?) -> List? + abstract val deepExtFunctionType: String.((Int) -> Int, String?) -> List? + + public fun Function3.extOnFunctionType() { + } + + abstract val starList: List<*> + abstract val starFun: Function1<*, *> + abstract val extFun: @ExtensionFunctionType Function2 + abstract val listExtStarFun: List<@ExtensionFunctionType Function1<*, *>> + abstract val funTypeWithStarAndNonStar: Function1<*, Int> + + abstract fun functionTypeWithNamedArgs(fType: (first: String, second: Any?) -> Int) +} diff --git a/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Types/Types.txt b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Types/Types.txt new file mode 100644 index 00000000000..f12faa12bfb --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Types/Types.txt @@ -0,0 +1,444 @@ +PsiJetFileStubImpl[package=test] + PACKAGE_DIRECTIVE + REFERENCE_EXPRESSION[referencedName=test] + IMPORT_LIST + CLASS[classId=test/Types, fqName=test.Types, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=Types, superNames=[]] + MODIFIER_LIST[abstract public] + PRIMARY_CONSTRUCTOR + MODIFIER_LIST[public] + VALUE_PARAMETER_LIST + CLASS_BODY + PROPERTY[fqName=test.Types.deepExtFunctionType, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=deepExtFunctionType] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=List] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + PROPERTY[fqName=test.Types.extFun, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=extFun] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + PROPERTY[fqName=test.Types.extFunction, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=extFunction] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=List] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + PROPERTY[fqName=test.Types.extFunctionWithNullables, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=extFunctionWithNullables] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=List] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + PROPERTY[fqName=test.Types.extFunctionWithParam, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=extFunctionWithParam] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + FUNCTION_TYPE + FUNCTION_TYPE_RECEIVER + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=List] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + PROPERTY[fqName=test.Types.funTypeWithStarAndNonStar, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=funTypeWithStarAndNonStar] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Function1] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=STAR] + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.Types.function, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=function] + MODIFIER_LIST[public final] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + PROPERTY[fqName=test.Types.functionWithParam, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=functionWithParam] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=List] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + PROPERTY[fqName=test.Types.list, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=list] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=List] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.Types.listExtStarFun, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=listExtStarFun] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=List] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + MODIFIER_LIST[] + ANNOTATION_ENTRY[hasValueArguments=false, shortName=ExtensionFunctionType] + CONSTRUCTOR_CALLEE + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=ExtensionFunctionType] + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Function1] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=STAR] + TYPE_PROJECTION[projectionKind=STAR] + PROPERTY[fqName=test.Types.map, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=map] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=Map] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.Types.nullable, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=nullable] + MODIFIER_LIST[public final] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.Types.nullableMap, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=nullableMap] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=Map] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_PROJECTION[projectionKind=NONE] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + PROPERTY[fqName=test.Types.projections, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=projections] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=Map] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=IN] + MODIFIER_LIST[in] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_PROJECTION[projectionKind=OUT] + MODIFIER_LIST[out] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + PROPERTY[fqName=test.Types.starFun, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=starFun] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Function1] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=STAR] + TYPE_PROJECTION[projectionKind=STAR] + PROPERTY[fqName=test.Types.starList, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=starList] + MODIFIER_LIST[abstract public] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=collections] + REFERENCE_EXPRESSION[referencedName=List] + TYPE_ARGUMENT_LIST + TYPE_PROJECTION[projectionKind=STAR] + FUN[fqName=test.Types.functionTypeWithNamedArgs, hasBlockBody=true, hasBody=false, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=functionTypeWithNamedArgs] + MODIFIER_LIST[abstract public] + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=fType] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=String] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + NULLABLE_TYPE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Any] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Int] + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] + FUN[fqName=test.Types.extOnFunctionType, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=true, isTopLevel=false, mayHaveContract=false, name=extOnFunctionType] + MODIFIER_LIST[public final] + TYPE_PARAMETER_LIST + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=P1] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=P2] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=P3] + TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=R] + TYPE_REFERENCE + FUNCTION_TYPE + VALUE_PARAMETER_LIST + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=P1] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=P2] + VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=P3] + TYPE_REFERENCE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=R] + VALUE_PARAMETER_LIST + TYPE_REFERENCE + USER_TYPE + USER_TYPE + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Unit] diff --git a/compiler/psi/cls-psi-file-stub-builder/tests/org/jetbrains/kotlin/psi/stubs/file/builder/ClsStubBuilderTestGenerated.java b/compiler/psi/cls-psi-file-stub-builder/tests/org/jetbrains/kotlin/psi/stubs/file/builder/ClsStubBuilderTestGenerated.java new file mode 100644 index 00000000000..d9891004bdd --- /dev/null +++ b/compiler/psi/cls-psi-file-stub-builder/tests/org/jetbrains/kotlin/psi/stubs/file/builder/ClsStubBuilderTestGenerated.java @@ -0,0 +1,236 @@ +/* + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.psi.stubs.file.builder; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; +import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.util.KtTestUtil; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.runner.RunWith; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder") +@TestDataPath("$PROJECT_ROOT") +@RunWith(JUnit3RunnerWithInners.class) +public class ClsStubBuilderTestGenerated extends AbstractClsStubBuilderTest { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doTest, this, testDataFilePath); + } + + public void testAllFilesPresentInClsFileStubBuilder() throws Exception { + KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder"), Pattern.compile("^([^\\.]+)$"), null, false); + } + + @TestMetadata("AnnotatedFlexibleTypes") + public void testAnnotatedFlexibleTypes() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedFlexibleTypes/"); + } + + @TestMetadata("AnnotatedParameterInEnumConstructor") + public void testAnnotatedParameterInEnumConstructor() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInEnumConstructor/"); + } + + @TestMetadata("AnnotatedParameterInInnerClassConstructor") + public void testAnnotatedParameterInInnerClassConstructor() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotatedParameterInInnerClassConstructor/"); + } + + @TestMetadata("AnnotationClass") + public void testAnnotationClass() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationClass/"); + } + + @TestMetadata("AnnotationValues") + public void testAnnotationValues() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationValues/"); + } + + @TestMetadata("Annotations") + public void testAnnotations() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Annotations/"); + } + + @TestMetadata("AnnotationsOnNullableTypes") + public void testAnnotationsOnNullableTypes() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnNullableTypes/"); + } + + @TestMetadata("AnnotationsOnParenthesizedTypes") + public void testAnnotationsOnParenthesizedTypes() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnnotationsOnParenthesizedTypes/"); + } + + @TestMetadata("AnonymousReturnWithGenericType") + public void testAnonymousReturnWithGenericType() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/AnonymousReturnWithGenericType/"); + } + + @TestMetadata("ClassMembers") + public void testClassMembers() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassMembers/"); + } + + @TestMetadata("ClassObject") + public void testClassObject() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/ClassObject/"); + } + + @TestMetadata("Const") + public void testConst() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Const/"); + } + + @TestMetadata("Contracts") + public void testContracts() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Contracts/"); + } + + @TestMetadata("DataClass") + public void testDataClass() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DataClass/"); + } + + @TestMetadata("Delegation") + public void testDelegation() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Delegation/"); + } + + @TestMetadata("DependencyOnNestedClasses") + public void testDependencyOnNestedClasses() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/DependencyOnNestedClasses/"); + } + + @TestMetadata("Enum") + public void testEnum() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Enum/"); + } + + @TestMetadata("FlexibleTypes") + public void testFlexibleTypes() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FlexibleTypes/"); + } + + @TestMetadata("FunInterfaceDeclaration") + public void testFunInterfaceDeclaration() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/FunInterfaceDeclaration/"); + } + + @TestMetadata("InheritingClasses") + public void testInheritingClasses() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InheritingClasses/"); + } + + @TestMetadata("InnerClassEnumEntry") + public void testInnerClassEnumEntry() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerClassEnumEntry/"); + } + + @TestMetadata("InnerTypes") + public void testInnerTypes() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/InnerTypes/"); + } + + @TestMetadata("LocalClass") + public void testLocalClass() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/LocalClass/"); + } + + @TestMetadata("Modifiers") + public void testModifiers() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Modifiers/"); + } + + @TestMetadata("MultifileClass") + public void testMultifileClass() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/MultifileClass/"); + } + + @TestMetadata("NamedCompanionObject") + public void testNamedCompanionObject() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NamedCompanionObject/"); + } + + @TestMetadata("NestedClasses") + public void testNestedClasses() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/NestedClasses/"); + } + + @TestMetadata("Objects") + public void testObjects() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Objects/"); + } + + @TestMetadata("PrivateConstField") + public void testPrivateConstField() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateConstField/"); + } + + @TestMetadata("PrivateToThis") + public void testPrivateToThis() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/PrivateToThis/"); + } + + @TestMetadata("Sealed") + public void testSealed() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Sealed/"); + } + + @TestMetadata("SecondaryConstructors") + public void testSecondaryConstructors() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SecondaryConstructors/"); + } + + @TestMetadata("SuspendLambda") + public void testSuspendLambda() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/SuspendLambda/"); + } + + @TestMetadata("TopJvmPackageName") + public void testTopJvmPackageName() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopJvmPackageName/"); + } + + @TestMetadata("TopLevelMembersAnnotatedKt") + public void testTopLevelMembersAnnotatedKt() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersAnnotatedKt/"); + } + + @TestMetadata("TopLevelMembersKt") + public void testTopLevelMembersKt() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TopLevelMembersKt/"); + } + + @TestMetadata("TypeAliases") + public void testTypeAliases() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeAliases/"); + } + + @TestMetadata("TypeBoundsAndDelegationSpecifiers") + public void testTypeBoundsAndDelegationSpecifiers() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeBoundsAndDelegationSpecifiers/"); + } + + @TestMetadata("TypeModifiers") + public void testTypeModifiers() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeModifiers/"); + } + + @TestMetadata("TypeParams") + public void testTypeParams() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/TypeParams/"); + } + + @TestMetadata("Types") + public void testTypes() throws Exception { + runTest("compiler/psi/cls-psi-file-stub-builder/testData/clsFileStubBuilder/Types/"); + } +}