From 845cde2d238275cf205b3dadff047c18e9348929 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Wed, 5 Jun 2019 18:55:33 +0300 Subject: [PATCH] New J2K: do not add star projection type for raw class literal expression #KT-15791 fixed --- .../kotlin/nj2k/conversions/TypeMappingConversion.kt | 2 +- nj2k/testData/newJ2k/issues/kt-15791.java | 7 +++++++ nj2k/testData/newJ2k/issues/kt-15791.kt | 8 ++++++++ .../NewJavaToKotlinConverterSingleFileTestGenerated.java | 5 +++++ 4 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 nj2k/testData/newJ2k/issues/kt-15791.java create mode 100644 nj2k/testData/newJ2k/issues/kt-15791.kt diff --git a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TypeMappingConversion.kt b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TypeMappingConversion.kt index 694c06a2e19..bcece98da97 100644 --- a/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TypeMappingConversion.kt +++ b/nj2k/src/org/jetbrains/kotlin/nj2k/conversions/TypeMappingConversion.kt @@ -81,12 +81,12 @@ class TypeMappingConversion(val context: NewJ2kConverterContext) : RecursiveAppl private fun JKType.fixRawType(typeElement: JKTypeElement) = when (typeElement.parent) { + is JKClassLiteralExpression -> this is JKKtIsExpression -> addTypeParametersToRawProjectionType(JKStarProjectionTypeImpl()) .updateNullability(Nullability.NotNull) is JKTypeCastExpression -> addTypeParametersToRawProjectionType(JKStarProjectionTypeImpl()) - else -> addTypeParametersToRawProjectionType( JKStarProjectionTypeImpl() diff --git a/nj2k/testData/newJ2k/issues/kt-15791.java b/nj2k/testData/newJ2k/issues/kt-15791.java new file mode 100644 index 00000000000..8a5416c3a0c --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-15791.java @@ -0,0 +1,7 @@ +import java.util.*; + +class A { + public static void main(String[] args) { + List.class.isAssignableFrom(ArrayList.class); + } +} \ No newline at end of file diff --git a/nj2k/testData/newJ2k/issues/kt-15791.kt b/nj2k/testData/newJ2k/issues/kt-15791.kt new file mode 100644 index 00000000000..45e8ebf72ad --- /dev/null +++ b/nj2k/testData/newJ2k/issues/kt-15791.kt @@ -0,0 +1,8 @@ +import java.util.ArrayList + +internal object A { + @JvmStatic + fun main(args: Array) { + List::class.java.isAssignableFrom(ArrayList::class.java) + } +} \ No newline at end of file diff --git a/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverterSingleFileTestGenerated.java b/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverterSingleFileTestGenerated.java index e50841e53e9..f2ac677a924 100644 --- a/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverterSingleFileTestGenerated.java +++ b/nj2k/tests/org/jetbrains/kotlin/nj2k/NewJavaToKotlinConverterSingleFileTestGenerated.java @@ -2676,6 +2676,11 @@ public class NewJavaToKotlinConverterSingleFileTestGenerated extends AbstractNew runTest("nj2k/testData/newJ2k/issues/kt-14248.java"); } + @TestMetadata("kt-15791.java") + public void testKt_15791() throws Exception { + runTest("nj2k/testData/newJ2k/issues/kt-15791.java"); + } + @TestMetadata("kt-16662.java") public void testKt_16662() throws Exception { runTest("nj2k/testData/newJ2k/issues/kt-16662.java");