Add tests for JVM backend diagnostics with K2 light tree
In the vast majority of tests, diagnostics are reported at a slightly different location in LT vs PSI. This is because in the light tree mode, backend errors are reported basically on the start of the IR element, which is for example the keyword "class" for a class and not its name as in K1 or in K2+PSI. Similarly, the end of the diagnostic is at the ending offset of the IR element. Normally it would be a bit user-unfriendly to highlight the whole class as red, starting from the keyword "class" and ending with the closing brace "}". But remember that these are backend diagnostics in the K2+LT mode, which is only possible in the compiler scenario, not in the IDE. And in this case, the ending offset doesn't matter at all because it's not presented to the user, and minor change in the starting offset is not a problem as well. There are some tests which legitimately fail in the LT mode because the corresponding diagnostics haven't been supported. They will be dealt with in subsequent commits: testPropertyInlineCycle testInlineCycle MultifileClasses.testJvmSynthetic testSuspendInlineCycle testIndirectInlineCycle #KT-59586
This commit is contained in:
+6
@@ -0,0 +1,6 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
class C {
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val x<!> = 1<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun getX()<!> = 1<!>
|
||||
}
|
||||
compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/class.kt
Vendored
+3
-2
@@ -1,5 +1,6 @@
|
||||
// FIR_IDENTICAL
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
class C {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>val x<!> = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
}
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
class C {
|
||||
companion object {
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val x<!> = 1<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun getX()<!> = 1<!>
|
||||
}
|
||||
}
|
||||
+3
-2
@@ -1,7 +1,8 @@
|
||||
// FIR_IDENTICAL
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
class C {
|
||||
companion object {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>val x<!> = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
class C(<!CONFLICTING_JVM_DECLARATIONS!>val x: Int<!>) {
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun getX()<!> = 1<!>
|
||||
}
|
||||
+3
-2
@@ -1,4 +1,5 @@
|
||||
// FIR_IDENTICAL
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
class C(<!CONFLICTING_JVM_DECLARATIONS!>val x: Int<!>) {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class C {
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(x: Any)<!> {}<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun Any.foo()<!> {}<!>
|
||||
}
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class C {
|
||||
|
||||
+4
-3
@@ -1,7 +1,8 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class C {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX(t: Any)<!> = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>val Any.x: Int<!>
|
||||
get() = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun getX(t: Any)<!> = 1<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val Any.x: Int<!>
|
||||
get() = 1<!>
|
||||
}
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class C {
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class C {
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun setX(x: Int)<!> {}<!>
|
||||
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>var x: Int<!> = 1<!>
|
||||
}
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
// FIR_IDENTICAL
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class C {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun setX(x: Int)<!> {}
|
||||
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>var x: Int<!> = 1
|
||||
}
|
||||
}
|
||||
|
||||
+4
-3
@@ -1,8 +1,9 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class C {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun setX(x: Int)<!> {}
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun setX(x: Int)<!> {}<!>
|
||||
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>var x: Int<!> = 1
|
||||
set(v) {}
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>var x: Int<!> = 1
|
||||
set(v) {}<!>
|
||||
}
|
||||
|
||||
+2
-1
@@ -1,3 +1,4 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
class C {
|
||||
@@ -5,4 +6,4 @@ class C {
|
||||
|
||||
var x: Int = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>set(v)<!> {}
|
||||
}
|
||||
}
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
fun foo() {
|
||||
class C {
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val x<!> = 1<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun getX()<!> = 1<!>
|
||||
}
|
||||
}
|
||||
+3
-2
@@ -1,7 +1,8 @@
|
||||
// FIR_IDENTICAL
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
fun foo() {
|
||||
class C {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>val x<!> = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
class Outer {
|
||||
fun foo() {
|
||||
class C {
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val x<!> = 1<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun getX()<!> = 1<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-2
@@ -1,4 +1,5 @@
|
||||
// FIR_IDENTICAL
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
class Outer {
|
||||
fun foo() {
|
||||
class C {
|
||||
@@ -6,4 +7,4 @@ class Outer {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
class B {
|
||||
class C {
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val x<!> = 1<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun getX()<!> = 1<!>
|
||||
}
|
||||
}
|
||||
+3
-2
@@ -1,7 +1,8 @@
|
||||
// FIR_IDENTICAL
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
class B {
|
||||
class C {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>val x<!> = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
object C {
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val x<!> = 1<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun getX()<!> = 1<!>
|
||||
}
|
||||
+3
-2
@@ -1,5 +1,6 @@
|
||||
// FIR_IDENTICAL
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
object C {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>val x<!> = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
}
|
||||
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
fun foo() =
|
||||
object {
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val x<!> = 1<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun getX()<!> = 1<!>
|
||||
}
|
||||
+3
-2
@@ -1,6 +1,7 @@
|
||||
// FIR_IDENTICAL
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
fun foo() =
|
||||
object {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>val x<!> = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
}
|
||||
|
||||
+8
@@ -0,0 +1,8 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
class Outer {
|
||||
val x = object {
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val x<!> = 1<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun getX()<!> = 1<!>
|
||||
}
|
||||
}
|
||||
+3
-2
@@ -1,7 +1,8 @@
|
||||
// FIR_IDENTICAL
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
class Outer {
|
||||
val x = object {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>val x<!> = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+4
@@ -0,0 +1,4 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val x<!> = 1<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun getX()<!> = 1<!>
|
||||
+3
-2
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>val x<!> = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
|
||||
|
||||
+5
-3
@@ -1,3 +1,5 @@
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>val x: Int<!>
|
||||
get() = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val x: Int<!>
|
||||
get() = 1<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun getX()<!> = 1<!>
|
||||
|
||||
+3
-1
@@ -1,3 +1,5 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
val x: Int
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>get()<!> = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
|
||||
|
||||
+5
-3
@@ -1,5 +1,7 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
interface T {
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>val x: Int<!>
|
||||
get() = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val x: Int<!>
|
||||
get() = 1<!>
|
||||
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun getX()<!> = 1<!>
|
||||
}
|
||||
|
||||
compiler/testData/diagnostics/testsWithJvmBackend/duplicateJvmSignature/functionAndProperty/trait.kt
Vendored
+3
-1
@@ -1,5 +1,7 @@
|
||||
// COMPARE_WITH_LIGHT_TREE
|
||||
|
||||
interface T {
|
||||
val x: Int
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>get()<!> = 1
|
||||
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user