Skip to content

Commit 9237f28

Browse files
committed
[Test] Reproduce KT-79816
1 parent e86b28e commit 9237f28

File tree

9 files changed

+90
-0
lines changed

9 files changed

+90
-0
lines changed

analysis/low-level-api-fir/tests-gen/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLBlackBoxTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

analysis/low-level-api-fir/tests-gen/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLReversedBlackBoxTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirLightTreeBlackBoxCodegenTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/fir/fir2ir/tests-gen/org/jetbrains/kotlin/test/runners/codegen/FirPsiBlackBoxCodegenTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
// TARGET_BACKEND: JVM_IR
2+
// IGNORE_BACKEND_K2: JVM_IR
3+
// FULL_JDK
4+
// ISSUE: KT-79816
5+
6+
// FILE: JavaSupplier.java
7+
public interface JavaSupplier<V> {
8+
public V get();
9+
}
10+
11+
// FILE: main.kt
12+
import java.util.function.Supplier
13+
14+
fun interface KotlinSupplier<V> {
15+
fun get(): V
16+
}
17+
18+
class KotlinSupplierProxy<V>(supplier: KotlinSupplier<V>) : KotlinSupplier<V> by supplier
19+
class JavaManualSupplierProxy<V>(supplier: JavaSupplier<V>) : JavaSupplier<V> by supplier
20+
class JavaStdlibSupplierProxy<V>(supplier: Supplier<V>) : Supplier<V> by supplier
21+
22+
fun requireNull(x: Any?) {
23+
if (x != null) {
24+
throw IllegalStateException("Value is not null: $x")
25+
}
26+
}
27+
28+
fun box(): String {
29+
val nullKotlinSupplier = KotlinSupplier<Boolean?> { null }
30+
val kotlinProxy = KotlinSupplierProxy(nullKotlinSupplier)
31+
requireNull(kotlinProxy.get())
32+
33+
val nullManualJavaSupplier = JavaSupplier<Boolean?> { null }
34+
val javaManualProxy = JavaManualSupplierProxy(nullManualJavaSupplier)
35+
requireNull(javaManualProxy.get())
36+
37+
val nullJavaStdlibSupplier = Supplier<Boolean?> { null }
38+
val javaStdlibProxy = JavaStdlibSupplierProxy(nullJavaStdlibSupplier)
39+
requireNull(javaStdlibProxy.get())
40+
41+
return "OK"
42+
}

compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/JvmAbiConsistencyTestBoxGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/IrBlackBoxCodegenWithIrInlinerTestGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/codegen/inlineScopes/FirBlackBoxCodegenTestWithInlineScopesGenerated.java

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)