AA: use simple name of local type as JVM internal name

Otherwise, e.g., if a local type is within an anonymous object, full
class id will include that anonymous object too, resulting in invalid
type signature for PsiType.

^KT-59533 Fixed
This commit is contained in:
Jinseong Jeon
2023-06-21 15:20:17 -07:00
committed by Ilya Kirillov
parent 2d178e5273
commit a93bc60655
8 changed files with 59 additions and 15 deletions
@@ -76,6 +76,12 @@ public class Fe10IdeNormalAnalysisSourceModuleAnalysisApiPsiTypeProviderTestGene
runTest("analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/errorTypeInNestedTypeArgument.kt");
}
@Test
@TestMetadata("localClass_exposedAsMemberInAnonymousObject.kt")
public void testLocalClass_exposedAsMemberInAnonymousObject() throws Exception {
runTest("analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/localClass_exposedAsMemberInAnonymousObject.kt");
}
@Test
@TestMetadata("localClass_exposedAsReturnValue.kt")
public void testLocalClass_exposedAsReturnValue() throws Exception {
@@ -76,6 +76,12 @@ public class FirIdeDependentAnalysisSourceModuleAnalysisApiPsiTypeProviderTestGe
runTest("analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/errorTypeInNestedTypeArgument.kt");
}
@Test
@TestMetadata("localClass_exposedAsMemberInAnonymousObject.kt")
public void testLocalClass_exposedAsMemberInAnonymousObject() throws Exception {
runTest("analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/localClass_exposedAsMemberInAnonymousObject.kt");
}
@Test
@TestMetadata("localClass_exposedAsReturnValue.kt")
public void testLocalClass_exposedAsReturnValue() throws Exception {
@@ -76,6 +76,12 @@ public class FirIdeNormalAnalysisSourceModuleAnalysisApiPsiTypeProviderTestGener
runTest("analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/errorTypeInNestedTypeArgument.kt");
}
@Test
@TestMetadata("localClass_exposedAsMemberInAnonymousObject.kt")
public void testLocalClass_exposedAsMemberInAnonymousObject() throws Exception {
runTest("analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/localClass_exposedAsMemberInAnonymousObject.kt");
}
@Test
@TestMetadata("localClass_exposedAsReturnValue.kt")
public void testLocalClass_exposedAsReturnValue() throws Exception {
@@ -76,6 +76,12 @@ public class FirStandaloneNormalAnalysisSourceModuleAnalysisApiPsiTypeProviderTe
runTest("analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/errorTypeInNestedTypeArgument.kt");
}
@Test
@TestMetadata("localClass_exposedAsMemberInAnonymousObject.kt")
public void testLocalClass_exposedAsMemberInAnonymousObject() throws Exception {
runTest("analysis/analysis-api/testData/components/psiTypeProvider/psiType/forDeclaration/localClass_exposedAsMemberInAnonymousObject.kt");
}
@Test
@TestMetadata("localClass_exposedAsReturnValue.kt")
public void testLocalClass_exposedAsReturnValue() throws Exception {
@@ -0,0 +1,25 @@
// WITH_STDLIB
interface Indexer {
fun indexing()
}
interface MyBuilder
fun build(builder: MyBuilder) {
}
fun test(): Indexer {
return object : Indexer {
override fun indexing() {
class TagData(val name: String) {
}
fun foo() {
build(object : MyBuilder {
val tags<caret> = mutableListOf<TagData>()
})
}
}
}
}
@@ -0,0 +1,2 @@
KtType: kotlin.collections.MutableList<TagData>
PsiType: PsiType:List<TagData>