diff --git a/analysis/decompiled/decompiler-to-file-stubs/testData/clsFileStubBuilder/TypeAliases/TypeAliases.txt b/analysis/decompiled/decompiler-to-file-stubs/testData/clsFileStubBuilder/TypeAliases/TypeAliases.txt index 1c74cfb4ce9..316a462d3ae 100644 --- a/analysis/decompiled/decompiler-to-file-stubs/testData/clsFileStubBuilder/TypeAliases/TypeAliases.txt +++ b/analysis/decompiled/decompiler-to-file-stubs/testData/clsFileStubBuilder/TypeAliases/TypeAliases.txt @@ -13,82 +13,55 @@ PsiJetFileStubImpl[package=test] VALUE_PARAMETER_LIST VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=a] TYPE_REFERENCE - FUNCTION_TYPE - VALUE_PARAMETER_LIST - TYPE_REFERENCE - USER_TYPE - USER_TYPE - REFERENCE_EXPRESSION[referencedName=kotlin] - REFERENCE_EXPRESSION[referencedName=Unit] + 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 - FUNCTION_TYPE - VALUE_PARAMETER_LIST - VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null] - 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 USER_TYPE - USER_TYPE - REFERENCE_EXPRESSION[referencedName=kotlin] - REFERENCE_EXPRESSION[referencedName=Unit] + 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 - REFERENCE_EXPRESSION[referencedName=kotlin] - REFERENCE_EXPRESSION[referencedName=collections] - REFERENCE_EXPRESSION[referencedName=Map] + 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 - 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=String] - TYPE_PROJECTION[projectionKind=NONE] - TYPE_REFERENCE - USER_TYPE - USER_TYPE - REFERENCE_EXPRESSION[referencedName=kotlin] - REFERENCE_EXPRESSION[referencedName=Double] - TYPE_PROJECTION[projectionKind=NONE] - 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=Boolean] + REFERENCE_EXPRESSION[referencedName=kotlin] + REFERENCE_EXPRESSION[referencedName=Boolean] TYPE_REFERENCE USER_TYPE USER_TYPE @@ -115,8 +88,8 @@ PsiJetFileStubImpl[package=test] TYPE_REFERENCE USER_TYPE USER_TYPE - REFERENCE_EXPRESSION[referencedName=dependency] - REFERENCE_EXPRESSION[referencedName=SomeClass] + REFERENCE_EXPRESSION[referencedName=test] + REFERENCE_EXPRESSION[referencedName=Z] TYPE_REFERENCE USER_TYPE USER_TYPE diff --git a/analysis/decompiled/decompiler-to-psi/src/org/jetbrains/kotlin/analysis/decompiler/psi/text/buildDecompiledText.kt b/analysis/decompiled/decompiler-to-psi/src/org/jetbrains/kotlin/analysis/decompiler/psi/text/buildDecompiledText.kt index fd5f21fa7cb..56fb4f0436f 100644 --- a/analysis/decompiled/decompiler-to-psi/src/org/jetbrains/kotlin/analysis/decompiler/psi/text/buildDecompiledText.kt +++ b/analysis/decompiled/decompiler-to-psi/src/org/jetbrains/kotlin/analysis/decompiler/psi/text/buildDecompiledText.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.analysis.decompiler.psi.text +import com.intellij.openapi.util.TextRange import org.jetbrains.kotlin.analysis.decompiler.stub.COMPILED_DEFAULT_INITIALIZER import org.jetbrains.kotlin.analysis.decompiler.stub.COMPILED_DEFAULT_PARAMETER_VALUE import org.jetbrains.kotlin.builtins.StandardNames @@ -19,6 +20,7 @@ import org.jetbrains.kotlin.renderer.DescriptorRendererOptions import org.jetbrains.kotlin.renderer.render import org.jetbrains.kotlin.resolve.DataClassDescriptorResolver import org.jetbrains.kotlin.resolve.DescriptorUtils.isEnumEntry +import org.jetbrains.kotlin.resolve.constants.* import org.jetbrains.kotlin.resolve.descriptorUtil.secondaryConstructors import org.jetbrains.kotlin.types.isFlexible import org.jetbrains.kotlin.util.OperatorNameConventions @@ -40,7 +42,6 @@ fun DescriptorRendererOptions.defaultDecompilerRendererOptions() { defaultParameterValueRenderer = { _ -> COMPILED_DEFAULT_PARAMETER_VALUE } includePropertyConstant = true propertyConstantRenderer = { _ -> COMPILED_DEFAULT_INITIALIZER } - renderTypeExpansions = true } internal fun CallableMemberDescriptor.mustNotBeWrittenToDecompiledText(): Boolean { diff --git a/analysis/decompiled/decompiler-to-stubs/src/org/jetbrains/kotlin/analysis/decompiler/stub/TypeClsStubBuilder.kt b/analysis/decompiled/decompiler-to-stubs/src/org/jetbrains/kotlin/analysis/decompiler/stub/TypeClsStubBuilder.kt index 725bb38c213..9438d565136 100644 --- a/analysis/decompiled/decompiler-to-stubs/src/org/jetbrains/kotlin/analysis/decompiler/stub/TypeClsStubBuilder.kt +++ b/analysis/decompiled/decompiler-to-stubs/src/org/jetbrains/kotlin/analysis/decompiler/stub/TypeClsStubBuilder.kt @@ -40,7 +40,11 @@ class TypeClsStubBuilder(private val c: ClsStubBuilderContext) { additionalAnnotations: () -> List = { emptyList() }, loadTypeAnnotations: (Type) -> List = { c.components.annotationLoader.loadTypeAnnotations(it, c.nameResolver) } ) { - // TODO: Return abbreviated type aliases, see KT-58542 + val abbreviatedType = type.abbreviatedType(c.typeTable) + if (abbreviatedType != null) { + return createTypeReferenceStub(parent, abbreviatedType, additionalAnnotations) + } + val typeReference = KotlinPlaceHolderStubImpl(parent, KtStubElementTypes.TYPE_REFERENCE) val allAnnotationsInType = loadTypeAnnotations(type)