From bd05ef19de262bddcccd08097f964f8763acdd45 Mon Sep 17 00:00:00 2001 From: "Denis.Zharkov" Date: Tue, 6 Apr 2021 18:04:29 +0300 Subject: [PATCH] Add blackbox test for definitely-not-null types ^KT-26245 Fixed --- .../FirBlackBoxCodegenTestGenerated.java | 6 ++++ .../definitelyNotNullTypes.kt | 31 +++++++++++++++++++ .../codegen/BlackBoxCodegenTestGenerated.java | 6 ++++ .../IrBlackBoxCodegenTestGenerated.java | 6 ++++ .../LightAnalysisModeTestGenerated.java | 5 +++ 5 files changed, 54 insertions(+) create mode 100644 compiler/testData/codegen/box/notNullAssertions/definitelyNotNullTypes.kt diff --git a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java index 4350ff8de9a..708a1c70a5d 100644 --- a/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java +++ b/compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirBlackBoxCodegenTestGenerated.java @@ -25296,6 +25296,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT runTest("compiler/testData/codegen/box/notNullAssertions/callAssertions.kt"); } + @Test + @TestMetadata("definitelyNotNullTypes.kt") + public void testDefinitelyNotNullTypes() throws Exception { + runTest("compiler/testData/codegen/box/notNullAssertions/definitelyNotNullTypes.kt"); + } + @Test @TestMetadata("delegation.kt") public void testDelegation() throws Exception { diff --git a/compiler/testData/codegen/box/notNullAssertions/definitelyNotNullTypes.kt b/compiler/testData/codegen/box/notNullAssertions/definitelyNotNullTypes.kt new file mode 100644 index 00000000000..a2af61c520c --- /dev/null +++ b/compiler/testData/codegen/box/notNullAssertions/definitelyNotNullTypes.kt @@ -0,0 +1,31 @@ +// !LANGUAGE: +DefinitelyNotNullTypeParameters +ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated +// TARGET_BACKEND: JVM +// IGNORE_BACKEND_FIR: JVM_IR + +// FILE: JClass.java + +import org.jetbrains.annotations.*; + +public abstract class JClass { + public void foo(@NotNull T x) {} + + public static void test(JClass w) { + w.foo(null); + } +} + +// FILE: main.kt +class KDerived : JClass() { + override fun foo(e: E!!) { + throw RuntimeException("Should not be called") + } +} + +fun box(): String { + try { + JClass.test(KDerived()) + } catch (e: java.lang.NullPointerException) { + return "OK" + } + return "fail" +} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java index 4724cdf0f68..879300842fb 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/BlackBoxCodegenTestGenerated.java @@ -25278,6 +25278,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest { runTest("compiler/testData/codegen/box/notNullAssertions/callAssertions.kt"); } + @Test + @TestMetadata("definitelyNotNullTypes.kt") + public void testDefinitelyNotNullTypes() throws Exception { + runTest("compiler/testData/codegen/box/notNullAssertions/definitelyNotNullTypes.kt"); + } + @Test @TestMetadata("delegation.kt") public void testDelegation() throws Exception { diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java index f1922857855..d7098734a47 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java @@ -25296,6 +25296,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes runTest("compiler/testData/codegen/box/notNullAssertions/callAssertions.kt"); } + @Test + @TestMetadata("definitelyNotNullTypes.kt") + public void testDefinitelyNotNullTypes() throws Exception { + runTest("compiler/testData/codegen/box/notNullAssertions/definitelyNotNullTypes.kt"); + } + @Test @TestMetadata("delegation.kt") public void testDelegation() throws Exception { diff --git a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java index 800e1ae0681..5da2e319333 100644 --- a/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java +++ b/compiler/tests-gen/org/jetbrains/kotlin/codegen/LightAnalysisModeTestGenerated.java @@ -21415,6 +21415,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes runTest("compiler/testData/codegen/box/notNullAssertions/callAssertions.kt"); } + @TestMetadata("definitelyNotNullTypes.kt") + public void testDefinitelyNotNullTypes() throws Exception { + runTest("compiler/testData/codegen/box/notNullAssertions/definitelyNotNullTypes.kt"); + } + @TestMetadata("delegation.kt") public void testDelegation() throws Exception { runTest("compiler/testData/codegen/box/notNullAssertions/delegation.kt");