diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/types/JKTypeFactory.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/types/JKTypeFactory.kt index 4ceae747210..9c58376ecc9 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/types/JKTypeFactory.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/types/JKTypeFactory.kt @@ -132,7 +132,10 @@ class JKTypeFactory(val symbolProvider: JKSymbolProvider) { else -> JKClassType( symbolProvider.provideClassSymbol(type.getJetTypeFqName(false)),//TODO constructor fqName - type.arguments.map { fromKotlinType(it.type) }, + type.arguments.map { typeArgument -> + if (typeArgument.isStarProjection) JKStarProjectionTypeImpl + else fromKotlinType(typeArgument.type) + }, if (type.isNullable()) Nullability.Nullable else Nullability.NotNull ) } diff --git a/nj2k/testData/newJ2k/types/recursiveType.external.kt b/nj2k/testData/newJ2k/types/recursiveType.external.kt new file mode 100644 index 00000000000..ac5bd61cc26 --- /dev/null +++ b/nj2k/testData/newJ2k/types/recursiveType.external.kt @@ -0,0 +1,5 @@ +class TestClass> + +class TestClass2 { + fun test(testClass: TestClass<*>?) = Unit +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/types/recursiveType.java b/nj2k/testData/newJ2k/types/recursiveType.java new file mode 100644 index 00000000000..a82d4a18130 --- /dev/null +++ b/nj2k/testData/newJ2k/types/recursiveType.java @@ -0,0 +1,6 @@ +public class Unconvertable { + public void cantConvertThis() { + TestClass2 tester = new TestClass2(); + tester.test(null); + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/types/recursiveType.kt b/nj2k/testData/newJ2k/types/recursiveType.kt new file mode 100644 index 00000000000..33727273721 --- /dev/null +++ b/nj2k/testData/newJ2k/types/recursiveType.kt @@ -0,0 +1,6 @@ +class Unconvertable { + fun cantConvertThis() { + val tester = TestClass2() + tester.test(null) + } +}