K2: Support Unit-typed synthetic Java property

^KT-57979 Fixed
This commit is contained in:
Denis.Zharkov
2023-04-28 19:50:35 +02:00
committed by Space Team
parent c022c451a4
commit e95b8b843b
8 changed files with 127 additions and 4 deletions
@@ -0,0 +1,44 @@
// ISSUE: KT-57979
// FILE: J.java
import org.jetbrains.annotations.*;
public class J<T> {
@Nullable
public T getValue1() {
return null;
}
public void setValue1(T value) {
}
@NotNull
public T getValue2() {
return null;
}
public void setValue2(T value) {
}
public T getValue3() {
return null;
}
public void setValue3(T value) {
}
}
// FILE: main.kt
fun test(j: J<Unit>) {
j.value1 = Unit
j.value2 = Unit
j.value3 = Unit
j.value1 = null
j.value2 = <!NULL_FOR_NONNULL_TYPE!>null<!>
j.value3 = null
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Unit?")!>j.value1<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Unit")!>j.value2<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Unit..kotlin.Unit?!")!>j.value3<!>
}
@@ -0,0 +1,44 @@
// ISSUE: KT-57979
// FILE: J.java
import org.jetbrains.annotations.*;
public class J<T> {
@Nullable
public T getValue1() {
return null;
}
public void setValue1(T value) {
}
@NotNull
public T getValue2() {
return null;
}
public void setValue2(T value) {
}
public T getValue3() {
return null;
}
public void setValue3(T value) {
}
}
// FILE: main.kt
fun test(j: J<Unit>) {
j.value1 = Unit
j.value2 = Unit
j.value3 = Unit
j.value1 = null
j.value2 = <!NULL_FOR_NONNULL_TYPE!>null<!>
j.value3 = null
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Unit?")!>j.value1<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Unit")!>j.value2<!>
<!DEBUG_INFO_EXPRESSION_TYPE("(kotlin.Unit..kotlin.Unit?)")!>j.value3<!>
}