[K2] Properly report diagnostics on const properties with Java usages

#KT-63752
#KT-59894
#KT-61920 Fixed
This commit is contained in:
Ivan Kylchik
2023-11-21 15:15:58 +01:00
committed by Space Team
parent 9f64edb31e
commit 1125891a13
18 changed files with 255 additions and 83 deletions
@@ -1,26 +0,0 @@
// FILE: A.java
public class A {
public static final int X = 1;
public static final int Y;
public final int z = 3;
static {
Y = 2;
}
}
// FILE: main.kt
annotation class Ann(val x: Int)
@Ann(A.X)
fun main1() {}
@Ann(A.Y)
fun main2() {}
val q = A()
@Ann(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>q.z<!>)
fun main3() {}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// FILE: A.java
public class A {
@@ -0,0 +1,10 @@
// FIR_IDENTICAL
// TARGET_BACKEND: JVM
// FILE: Foo.java
public interface Foo {
public static final long A = System.currentTimeMillis();
}
// FILE: test.kt
const val b = <!CONST_VAL_WITH_NON_CONST_INITIALIZER!>Foo.A<!>
@@ -1,3 +1,6 @@
// IGNORE_REVERSED_RESOLVE
// IGNORE_CONTRACT_VIOLATIONS
// See KT-63752 about ignores
// FIR_IDENTICAL
// FILE: Bar.java
@@ -1,24 +0,0 @@
// TARGET_BACKEND: JVM
// FILE: Bar.java
package one.two;
public class Bar {
public static final int BAR1 = SOME_WRONG_EXPRESSION;
public static final int BAR2 = MainKt.FOO + 1;
public static final int BAR3 = Doo.DOO + 1;
}
// FILE: Main.kt
package one.two
const val FOO = 1
class Doo {
companion object {
const val DOO = 1
}
}
const val BAZ1 = Bar.BAR1 + 1
const val BAZ2 = Bar.BAR2 + 1
const val BAZ3 = Bar.BAR3 + 1
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// TARGET_BACKEND: JVM
// FILE: Bar.java
package one.two;