diff --git a/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/stubs/AnonymousTypeHandler.kt b/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/stubs/AnonymousTypeHandler.kt index 9ed48a0190d..db567431e45 100644 --- a/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/stubs/AnonymousTypeHandler.kt +++ b/plugins/kapt3/src/org/jetbrains/kotlin/kapt3/stubs/AnonymousTypeHandler.kt @@ -63,12 +63,12 @@ class AnonymousTypeHandler(private val converter: ClassFileToSourceStubConverter val actualType = when { isAnonymousObject(declaration) -> findMostSuitableParentForAnonymousType(declaration) - else -> declaration.defaultType + else -> type } - if (type.arguments.isEmpty()) return actualType + if (actualType.arguments.isEmpty()) return actualType - val arguments = type.arguments.map { typeArg -> + val arguments = actualType.arguments.map { typeArg -> if (typeArg.isStarProjection) return@map typeArg TypeProjectionImpl(typeArg.projectionKind, convertPossiblyAnonymousType(typeArg.type)) } diff --git a/plugins/kapt3/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java b/plugins/kapt3/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java index c6536c0a6e6..b93ca2785b3 100644 --- a/plugins/kapt3/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java +++ b/plugins/kapt3/test/org/jetbrains/kotlin/kapt3/test/ClassFileToSourceStubConverterTestGenerated.java @@ -192,6 +192,12 @@ public class ClassFileToSourceStubConverterTestGenerated extends AbstractClassFi doTest(fileName); } + @TestMetadata("kt19700.kt") + public void testKt19700() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("plugins/kapt3/testData/converter/kt19700.kt"); + doTest(fileName); + } + @TestMetadata("mapEntry.kt") public void testMapEntry() throws Exception { String fileName = KotlinTestUtils.navigationMetadata("plugins/kapt3/testData/converter/mapEntry.kt"); diff --git a/plugins/kapt3/testData/converter/kt19700.kt b/plugins/kapt3/testData/converter/kt19700.kt new file mode 100644 index 00000000000..2656d6bb4f4 --- /dev/null +++ b/plugins/kapt3/testData/converter/kt19700.kt @@ -0,0 +1,11 @@ +package test + +class Test { + private val x = object : ListUpdateCallback { + override fun onInserted(position: Int, count: Int) {} + } +} + +interface ListUpdateCallback { + fun onInserted(position: Int, count: Int) +} \ No newline at end of file diff --git a/plugins/kapt3/testData/converter/kt19700.txt b/plugins/kapt3/testData/converter/kt19700.txt new file mode 100644 index 00000000000..a357c1ae126 --- /dev/null +++ b/plugins/kapt3/testData/converter/kt19700.txt @@ -0,0 +1,20 @@ +package test; + +@kotlin.Metadata() +public abstract interface ListUpdateCallback { + + public abstract void onInserted(int position, int count); +} + +//////////////////// + +package test; + +@kotlin.Metadata() +public final class Test { + private final test.ListUpdateCallback x = null; + + public Test() { + super(); + } +}