From 2fbde7a85cd07e5a2ef976797a8962c8db123e66 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Fri, 15 Mar 2024 20:02:54 +0100 Subject: [PATCH] [Analysis API] reuse PsiClassRenderer for PsiType render To align the format with light classes as now we are powered by them ^KT-66603 --- .../psiTypeProvider/AnalysisApiPsiTypeProviderTestUtils.kt | 3 ++- .../psiTypeProvider/psiType/asKtType/typeAnnotation.txt | 2 +- .../psiType/asKtType/typeAnnotationOnString.txt | 2 +- .../psiType/forDeclaration/nestedTypeAnnotation.txt | 2 +- .../suspendFunctionValueParameterNoStdlib.descriptors.txt | 2 +- .../suspendFunctionValueParameterNoStdlib.standalone.fir.txt | 2 +- .../suspendFunctionValueParameterWithStdlib.txt | 2 +- .../psiTypeProvider/psiType/forDeclaration/typeAnnotation.txt | 2 +- .../forDeclaration/wildcardSuppression_false.descriptors.txt | 2 +- .../psiType/forDeclaration/wildcardSuppression_false.txt | 2 +- .../forDeclaration/wildcardSuppression_true.descriptors.txt | 2 +- .../psiType/forDeclaration/wildcardSuppression_true.txt | 2 +- .../tests/org/jetbrains/kotlin/asJava/PsiClassRenderer.kt | 4 ++++ 13 files changed, 17 insertions(+), 12 deletions(-) diff --git a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/psiTypeProvider/AnalysisApiPsiTypeProviderTestUtils.kt b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/psiTypeProvider/AnalysisApiPsiTypeProviderTestUtils.kt index 9f96ae20712..5c9811ea62f 100644 --- a/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/psiTypeProvider/AnalysisApiPsiTypeProviderTestUtils.kt +++ b/analysis/analysis-api-impl-base/tests/org/jetbrains/kotlin/analysis/api/impl/base/test/cases/components/psiTypeProvider/AnalysisApiPsiTypeProviderTestUtils.kt @@ -13,6 +13,7 @@ import com.intellij.psi.PsiType import org.jetbrains.kotlin.analysis.api.KtAnalysisSession import org.jetbrains.kotlin.analysis.api.types.KtType import org.jetbrains.kotlin.asJava.KotlinAsJavaSupport +import org.jetbrains.kotlin.asJava.PsiClassRenderer import org.jetbrains.kotlin.asJava.classes.KtLightClass import org.jetbrains.kotlin.asJava.elements.KtLightElement import org.jetbrains.kotlin.psi.KtClassOrObject @@ -26,7 +27,7 @@ object AnalysisApiPsiTypeProviderTestUtils { context(KtAnalysisSession) fun render(type: KtType?, variance: Variance = Variance.INVARIANT): String? = type?.render(position = variance) - fun render(type: PsiType?): String? = type?.getCanonicalText(/* annotated = */ true) + fun render(type: PsiType?): String? = type?.let(PsiClassRenderer::renderType) internal fun getContainingKtLightClass( declaration: KtDeclaration, diff --git a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/asKtType/typeAnnotation.txt b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/asKtType/typeAnnotation.txt index c49967ece10..369d8686215 100644 --- a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/asKtType/typeAnnotation.txt +++ b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/asKtType/typeAnnotation.txt @@ -1,2 +1,2 @@ -PsiType: @MyAnno KotlinClass +PsiType: @MyAnno() KotlinClass KtType: @MyAnno KotlinClass? diff --git a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/asKtType/typeAnnotationOnString.txt b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/asKtType/typeAnnotationOnString.txt index 164879bd0fa..a0dd33782f3 100644 --- a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/asKtType/typeAnnotationOnString.txt +++ b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/asKtType/typeAnnotationOnString.txt @@ -1,2 +1,2 @@ -PsiType: java.lang.@MyAnno String +PsiType: @MyAnno() java.lang.String KtType: @MyAnno kotlin.String? diff --git a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/nestedTypeAnnotation.txt b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/nestedTypeAnnotation.txt index 96bb560562f..24899a5d332 100644 --- a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/nestedTypeAnnotation.txt +++ b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/nestedTypeAnnotation.txt @@ -1,2 +1,2 @@ KtType: @foo.MyAnno(s = "outer") kotlin.collections.List<@foo.MyAnno(s = "middle") kotlin.collections.List<@foo.AnotherAnnotation(k = foo.Nested::class) kotlin.String>> -PsiType: java.util.@foo.MyAnno("outer") List> +PsiType: @foo.MyAnno(s = "outer") java.util.List> diff --git a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/suspendFunctionValueParameterNoStdlib.descriptors.txt b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/suspendFunctionValueParameterNoStdlib.descriptors.txt index 7db744a4a7e..f48afae3deb 100644 --- a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/suspendFunctionValueParameterNoStdlib.descriptors.txt +++ b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/suspendFunctionValueParameterNoStdlib.descriptors.txt @@ -1,2 +1,2 @@ KtType: suspend (kotlin.Int) -> kotlin.Unit -PsiType: kotlin.jvm.functions.Function2,? extends java.lang.Object> +PsiType: kotlin.jvm.functions.Function2, ? extends java.lang.Object> diff --git a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/suspendFunctionValueParameterNoStdlib.standalone.fir.txt b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/suspendFunctionValueParameterNoStdlib.standalone.fir.txt index 9cc8d64b973..393132dd2f6 100644 --- a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/suspendFunctionValueParameterNoStdlib.standalone.fir.txt +++ b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/suspendFunctionValueParameterNoStdlib.standalone.fir.txt @@ -1,2 +1,2 @@ KtType: suspend (kotlin.Int) -> kotlin.Unit -PsiType: PsiType:Function2, ? extends Object> +PsiType: kotlin.jvm.functions.Function2, ? extends java.lang.Object> diff --git a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/suspendFunctionValueParameterWithStdlib.txt b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/suspendFunctionValueParameterWithStdlib.txt index 7db744a4a7e..f48afae3deb 100644 --- a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/suspendFunctionValueParameterWithStdlib.txt +++ b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/suspendFunctionValueParameterWithStdlib.txt @@ -1,2 +1,2 @@ KtType: suspend (kotlin.Int) -> kotlin.Unit -PsiType: kotlin.jvm.functions.Function2,? extends java.lang.Object> +PsiType: kotlin.jvm.functions.Function2, ? extends java.lang.Object> diff --git a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/typeAnnotation.txt b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/typeAnnotation.txt index 7baa82dabef..84d2015e389 100644 --- a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/typeAnnotation.txt +++ b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/typeAnnotation.txt @@ -1,2 +1,2 @@ KtType: @foo.MyAnno(s = "str1") kotlin.String -PsiType: java.lang.@foo.MyAnno("str" + "1") String +PsiType: @foo.MyAnno(s = "str1") java.lang.String diff --git a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/wildcardSuppression_false.descriptors.txt b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/wildcardSuppression_false.descriptors.txt index 4e7287b1f6a..3cba768aae2 100644 --- a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/wildcardSuppression_false.descriptors.txt +++ b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/wildcardSuppression_false.descriptors.txt @@ -1,2 +1,2 @@ KtType: @kotlin.jvm.JvmSuppressWildcards(suppress = false) (AnimatedContentTransitionScope.() -> EnterTransition?)? -PsiType: kotlin.jvm.functions.Function1,? extends .EnterTransition> +PsiType: kotlin.jvm.functions.Function1, ? extends .EnterTransition> diff --git a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/wildcardSuppression_false.txt b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/wildcardSuppression_false.txt index 084f441fa87..451536b4c89 100644 --- a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/wildcardSuppression_false.txt +++ b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/wildcardSuppression_false.txt @@ -1,2 +1,2 @@ KtType: @kotlin.jvm.JvmSuppressWildcards(suppress = false) (AnimatedContentTransitionScope.() -> EnterTransition?)? -PsiType: kotlin.jvm.functions.@kotlin.jvm.JvmSuppressWildcards(suppress = false) Function1,? extends EnterTransition> +PsiType: @kotlin.jvm.JvmSuppressWildcards(suppress = false) kotlin.jvm.functions.Function1, ? extends EnterTransition> diff --git a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/wildcardSuppression_true.descriptors.txt b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/wildcardSuppression_true.descriptors.txt index 19fbf3a782e..851de10d5ba 100644 --- a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/wildcardSuppression_true.descriptors.txt +++ b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/wildcardSuppression_true.descriptors.txt @@ -1,2 +1,2 @@ KtType: @kotlin.jvm.JvmSuppressWildcards(suppress = true) (AnimatedContentTransitionScope.() -> EnterTransition?)? -PsiType: kotlin.jvm.functions.Function1<.AnimatedContentTransitionScope<.NavBackStackEntry>,.EnterTransition> +PsiType: kotlin.jvm.functions.Function1<.AnimatedContentTransitionScope<.NavBackStackEntry>, .EnterTransition> diff --git a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/wildcardSuppression_true.txt b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/wildcardSuppression_true.txt index 2499b921500..da6ec2411c8 100644 --- a/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/wildcardSuppression_true.txt +++ b/analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/wildcardSuppression_true.txt @@ -1,2 +1,2 @@ KtType: @kotlin.jvm.JvmSuppressWildcards(suppress = true) (AnimatedContentTransitionScope.() -> EnterTransition?)? -PsiType: kotlin.jvm.functions.@kotlin.jvm.JvmSuppressWildcards(suppress = true) Function1,EnterTransition> +PsiType: @kotlin.jvm.JvmSuppressWildcards(suppress = true) kotlin.jvm.functions.Function1, EnterTransition> diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/asJava/PsiClassRenderer.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/asJava/PsiClassRenderer.kt index 3abcb25ec9e..c970152e42c 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/asJava/PsiClassRenderer.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/asJava/PsiClassRenderer.kt @@ -44,6 +44,10 @@ class PsiClassRenderer private constructor( membersFilter: MembersFilter = MembersFilter.DEFAULT ): String = PsiClassRenderer(renderInner, membersFilter).renderClass(psiClass) + + fun renderType(psiType: PsiType): String = with(PsiClassRenderer(renderInner = false, membersFilter = MembersFilter.DEFAULT)) { + psiType.renderType() + } } private fun PrettyPrinter.renderClass(psiClass: PsiClass) {