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:
Alexander Udalov
2023-06-22 17:19:36 +02:00
parent 69c698134b
commit 5f2ff06296
140 changed files with 1511 additions and 137 deletions
@@ -0,0 +1,15 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<X> {
fun foo(x: X)
}
open class FooImpl : Foo<String> {
override fun foo(x: String) {
}
}
open class FooImpl2 : FooImpl() {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun foo(x: Any)<!> {
}<!>
}
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<X> {
fun foo(x: X)
@@ -1,8 +1,10 @@
// COMPARE_WITH_LIGHT_TREE
open class B {
fun getX() = 1
}
class C : B() {
<!ACCIDENTAL_OVERRIDE!>val x: Int<!>
get() = 1
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>val x: Int<!>
get() = 1<!>
}
@@ -1,3 +1,5 @@
// COMPARE_WITH_LIGHT_TREE
open class B {
fun getX() = 1
}
@@ -5,4 +7,4 @@ open class B {
class C : B() {
val x: Int
<!ACCIDENTAL_OVERRIDE!>get()<!> = 1
}
}
@@ -0,0 +1,9 @@
// COMPARE_WITH_LIGHT_TREE
open class B {
fun getX() = 1
}
class C : B() {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>val x: Int<!> = 1<!>
}
@@ -1,8 +1,9 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
open class B {
fun getX() = 1
}
class C : B() {
<!ACCIDENTAL_OVERRIDE!>val x: Int<!> = 1
}
}
@@ -0,0 +1,10 @@
// COMPARE_WITH_LIGHT_TREE
open class B {
val x: Int
get() = 1
}
class C : B() {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun getX()<!> = 1<!>
}
@@ -1,4 +1,5 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
open class B {
val x: Int
get() = 1
@@ -6,4 +7,4 @@ open class B {
class C : B() {
<!ACCIDENTAL_OVERRIDE!>fun getX()<!> = 1
}
}
@@ -0,0 +1,10 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
open class Base {
open fun `foo$default`(d: Derived, i: Int, mask: Int, mh: Any) {}
}
class Derived : Base() {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun foo(i: Int = 0)<!> {}<!>
}
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
open class Base {
@@ -0,0 +1,10 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
open class B {
fun foo(l: List<String>) {}
}
class C : B() {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun foo(l: List<Int>)<!> {}<!>
}
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
open class B {
@@ -7,4 +7,4 @@ open class B {
class C : B() {
<!ACCIDENTAL_OVERRIDE!>fun foo(l: List<Int>)<!> {}
}
}
@@ -0,0 +1,9 @@
// COMPARE_WITH_LIGHT_TREE
interface B {
fun getX() = 1
}
class C : B {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!><!NOTHING_TO_OVERRIDE!>override<!> val x<!> = 1<!>
}
@@ -1,8 +1,9 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
interface B {
fun getX() = 1
}
class C : B {
<!ACCIDENTAL_OVERRIDE!><!NOTHING_TO_OVERRIDE!>override<!> val x<!> = 1
}
}
@@ -1,8 +1,10 @@
// COMPARE_WITH_LIGHT_TREE
interface T {
fun getX() = 1
}
class C : T {
<!ACCIDENTAL_OVERRIDE!>val x: Int<!>
get() = 1
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>val x: Int<!>
get() = 1<!>
}
@@ -1,3 +1,5 @@
// COMPARE_WITH_LIGHT_TREE
interface T {
fun getX() = 1
}
@@ -5,4 +7,4 @@ interface T {
class C : T {
val x: Int
<!ACCIDENTAL_OVERRIDE!>get()<!> = 1
}
}
@@ -1,8 +1,10 @@
// COMPARE_WITH_LIGHT_TREE
interface T {
fun getX(): Int
}
abstract class C : T {
<!ACCIDENTAL_OVERRIDE!>val x: Int<!>
get() = 1
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>val x: Int<!>
get() = 1<!>
}
@@ -1,3 +1,5 @@
// COMPARE_WITH_LIGHT_TREE
interface T {
fun getX(): Int
}
@@ -5,4 +7,4 @@ interface T {
abstract class C : T {
val x: Int
<!ACCIDENTAL_OVERRIDE!>get()<!> = 1
}
}
@@ -0,0 +1,10 @@
// COMPARE_WITH_LIGHT_TREE
interface T {
val x: Int
get() = 1
}
class C : T {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun getX()<!> = 1<!>
}
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
interface T {
val x: Int
@@ -0,0 +1,9 @@
// COMPARE_WITH_LIGHT_TREE
interface T {
val x: Int
}
abstract class C : T {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun getX()<!> = 1<!>
}
@@ -1,8 +1,9 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
interface T {
val x: Int
}
abstract class C : T {
<!ACCIDENTAL_OVERRIDE!>fun getX()<!> = 1
}
}
@@ -0,0 +1,12 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
open class B<T> {
open fun foo(t: T) {}
}
class C : B<String>() {
override fun foo(t: String) {}
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun foo(o: Any)<!> {}<!>
}
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
open class B<T> {
@@ -9,4 +9,4 @@ class C : B<String>() {
override fun foo(t: String) {}
<!ACCIDENTAL_OVERRIDE!>fun foo(o: Any)<!> {}
}
}
@@ -0,0 +1,10 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface B<T> {
fun foo(t: T) {}
}
class C : B<String> {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun foo(o: Any)<!> {}<!>
}
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface B<T> {
@@ -7,4 +7,4 @@ interface B<T> {
class C : B<String> {
<!ACCIDENTAL_OVERRIDE!>fun foo(o: Any)<!> {}
}
}
@@ -0,0 +1,12 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface B<T> {
fun foo(t: T) {}
}
class C : B<String> {
override fun foo(t: String) {}
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun foo(o: Any)<!> {}<!>
}
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface B<T> {
@@ -9,4 +9,4 @@ class C : B<String> {
override fun foo(t: String) {}
<!ACCIDENTAL_OVERRIDE!>fun foo(o: Any)<!> {}
}
}
@@ -0,0 +1,4 @@
// COMPARE_WITH_LIGHT_TREE
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val aa<!> = 1<!>
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val Aa<!> = 1<!>
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
<!CONFLICTING_JVM_DECLARATIONS!>val aa<!> = 1
<!CONFLICTING_JVM_DECLARATIONS!>val Aa<!> = 1
<!CONFLICTING_JVM_DECLARATIONS!>val Aa<!> = 1
@@ -0,0 +1,8 @@
// COMPARE_WITH_LIGHT_TREE
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class IC(val i: Int)
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(a: Any, ic: IC)<!> {}<!>
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(a: Any?, ic: IC)<!> {}<!>
@@ -1,8 +1,8 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class IC(val i: Int)
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(a: Any, ic: IC)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(a: Any?, ic: IC)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(a: Any?, ic: IC)<!> {}
@@ -0,0 +1,20 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
public open class A<T> {
fun foo(x: T) = "O"
fun foo(x: A<T>) = "K"
}
interface C<E> {
fun foo(x: E): String
fun foo(x: A<E>): String
}
interface D {
fun foo(x: A<String>): String
}
<!CONFLICTING_INHERITED_JVM_DECLARATIONS{LT}!>class <!CONFLICTING_INHERITED_JVM_DECLARATIONS{PSI}!>B1<!> : A<A<String>>(), D<!>
<!CONFLICTING_INHERITED_JVM_DECLARATIONS{LT}!>interface <!CONFLICTING_INHERITED_JVM_DECLARATIONS{PSI}!>B2<!> : C<A<String>>, D<!>
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
public open class A<T> {
@@ -0,0 +1,5 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(s: List<String>)<!> {}<!>
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(s: MutableList<String>)<!> {}<!>
@@ -1,5 +1,5 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: List<String>)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: MutableList<String>)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: MutableList<String>)<!> {}
@@ -0,0 +1,15 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> {
fun foo(l: List<T>)
}
interface Bar<T> {
fun foo(l: List<T>)
}
<!CONFLICTING_JVM_DECLARATIONS{LT}!>class <!CONFLICTING_JVM_DECLARATIONS{PSI}!>Baz(f: Foo<String>, b: Bar<Int>)<!> :
Foo<String> by f,
Bar<Int> by b {
}<!>
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> {
@@ -0,0 +1,10 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> {
fun foo(l: List<T>)
}
<!CONFLICTING_JVM_DECLARATIONS{LT}!>class <!CONFLICTING_JVM_DECLARATIONS{PSI}!>Bar(f: Foo<String>)<!>: Foo<String> by f {
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(l: List<Int>)<!> {}<!>
}<!>
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> {
@@ -0,0 +1,16 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> {
fun foo(l: List<T>) {
}
}
<!CONFLICTING_JVM_DECLARATIONS{LT}!>class <!CONFLICTING_JVM_DECLARATIONS{PSI}!>Bar(f: Foo<String>)<!>: Foo<String> by f {
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(l: List<Int>)<!> {}<!>
}<!>
class BarOther(f: Foo<String>): Foo<String> by f {
override fun foo(l: List<String>) {}
}
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> {
@@ -1,7 +1,9 @@
// COMPARE_WITH_LIGHT_TREE
class G<T>
<!CONFLICTING_JVM_DECLARATIONS!>val <T> G<T>.foo: Int<!>
get() = 1
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val <T> G<T>.foo: Int<!>
get() = 1<!>
<!CONFLICTING_JVM_DECLARATIONS!>val G<String>.foo: Int<!>
get() = 1
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val G<String>.foo: Int<!>
get() = 1<!>
@@ -1,7 +1,9 @@
// COMPARE_WITH_LIGHT_TREE
class G<T>
val <T> G<T>.foo: Int
<!CONFLICTING_JVM_DECLARATIONS!>get()<!> = 1
val G<String>.foo: Int
<!CONFLICTING_JVM_DECLARATIONS!>get()<!> = 1
<!CONFLICTING_JVM_DECLARATIONS!>get()<!> = 1
@@ -0,0 +1,7 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
class G<T>
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(x: G<String>): G<Int><!> {null!!}<!>
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(x: G<Int>): G<String><!> {null!!}<!>
@@ -1,7 +1,7 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
class G<T>
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: G<String>): G<Int><!> {null!!}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: G<Int>): G<String><!> {null!!}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: G<Int>): G<String><!> {null!!}
@@ -0,0 +1,13 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> {
fun foo(l: List<T>) {}
}
interface Bar<T> {
fun foo(l: List<T>) {}
}
<!CONFLICTING_INHERITED_JVM_DECLARATIONS{LT}!>class <!CONFLICTING_INHERITED_JVM_DECLARATIONS{PSI}!>Baz()<!>: Foo<String>, Bar<Int> {
}<!>
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> {
@@ -10,4 +10,4 @@ interface Bar<T> {
}
class <!CONFLICTING_INHERITED_JVM_DECLARATIONS!>Baz()<!>: Foo<String>, Bar<Int> {
}
}
@@ -0,0 +1,5 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER -PLATFORM_CLASS_MAPPED_TO_KOTLIN
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(s: List<String>)<!> {}<!>
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(s: java.util.List<String>)<!> {}<!>
@@ -1,5 +1,5 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER -PLATFORM_CLASS_MAPPED_TO_KOTLIN
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: List<String>)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: java.util.List<String>)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: java.util.List<String>)<!> {}
@@ -0,0 +1,5 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(x: String)<!> {}<!>
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(x: String?)<!> {}<!>
@@ -1,5 +1,5 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: String)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: String?)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: String?)<!> {}
@@ -0,0 +1,14 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface A<T> {
fun foo(l: List<T>)
}
interface B {
fun foo(l: List<Int>) {}
}
<!ACCIDENTAL_OVERRIDE{LT}!>class <!ACCIDENTAL_OVERRIDE{PSI}!>C(f: A<String>)<!>: A<String> by f, B<!>
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class D<!>(f: A<Int>): A<Int> by f, B
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface A<T> {
@@ -0,0 +1,14 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> {
fun foo(l: List<T>) {}
}
interface Bar<T> {
fun foo(l: List<T>) {}
}
class Baz(): Foo<String>, Bar<Int> {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun foo(l: List<Long>)<!> {}<!>
}
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> {
@@ -11,4 +11,4 @@ interface Bar<T> {
class Baz(): Foo<String>, Bar<Int> {
<!ACCIDENTAL_OVERRIDE!>fun foo(l: List<Long>)<!> {}
}
}
@@ -0,0 +1,5 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER -PLATFORM_CLASS_MAPPED_TO_KOTLIN
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(s: java.lang.String)<!> {}<!>
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(s: String)<!> {}<!>
@@ -1,5 +1,5 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER -PLATFORM_CLASS_MAPPED_TO_KOTLIN
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: java.lang.String)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: String)<!> {}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: String)<!> {}
@@ -0,0 +1,5 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun <T> foo(x: T): T<!> {null!!}<!>
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(x: Any): Any<!> {null!!}<!>
@@ -1,5 +1,5 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
<!CONFLICTING_JVM_DECLARATIONS!>fun <T> foo(x: T): T<!> {null!!}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: Any): Any<!> {null!!}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: Any): Any<!> {null!!}
@@ -0,0 +1,7 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun <T: Foo> foo(x: T): T<!> {null!!}<!>
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(x: Foo): Foo<!> {null!!}<!>
@@ -1,7 +1,7 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo
<!CONFLICTING_JVM_DECLARATIONS!>fun <T: Foo> foo(x: T): T<!> {null!!}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: Foo): Foo<!> {null!!}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: Foo): Foo<!> {null!!}
@@ -0,0 +1,9 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo
interface Bar
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun <T> foo(x: T): T<!> where T: Foo, T: Bar {null!!}<!>
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(x: Foo): Foo<!> {null!!}<!>
fun foo(x: Bar): Bar {null!!}
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo
@@ -6,4 +6,4 @@ interface Bar
<!CONFLICTING_JVM_DECLARATIONS!>fun <T> foo(x: T): T<!> where T: Foo, T: Bar {null!!}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: Foo): Foo<!> {null!!}
fun foo(x: Bar): Bar {null!!}
fun foo(x: Bar): Bar {null!!}
@@ -0,0 +1,9 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo
interface Bar
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun <T> foo(x: T): T<!> where T: Foo, T: Bar {null!!}<!>
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun foo(x: Foo): Foo<!> {null!!}<!>
fun foo(x: Bar): Bar {null!!}
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo
@@ -6,4 +6,4 @@ interface Bar
<!CONFLICTING_JVM_DECLARATIONS!>fun <T> foo(x: T): T<!> where T: Foo, T: Bar {null!!}
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: Foo): Foo<!> {null!!}
fun foo(x: Bar): Bar {null!!}
fun foo(x: Bar): Bar {null!!}
@@ -1,6 +1,8 @@
// COMPARE_WITH_LIGHT_TREE
enum class E {
ENTRY;
fun <!VIRTUAL_MEMBER_HIDDEN!>getDeclaringClass<!>() {}
<!ACCIDENTAL_OVERRIDE!>fun <!VIRTUAL_MEMBER_HIDDEN!>finalize<!>()<!> {}
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun <!VIRTUAL_MEMBER_HIDDEN!>finalize<!>()<!> {}<!>
}
@@ -1,3 +1,5 @@
// COMPARE_WITH_LIGHT_TREE
enum class E {
ENTRY;
@@ -0,0 +1,20 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
// KT-7174 Report error on members with the same signature as non-overridable methods from mapped Java types (like Object.wait/notify)
class A {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun notify()<!> {}<!>
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun notifyAll()<!> {}<!>
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun wait()<!> {}<!>
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun wait(l: Long)<!> {}<!>
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun wait(l: Long, i: Int)<!> {}<!>
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun getClass(): Class<Any><!> = null!!<!>
}
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun notify()<!> {}<!>
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun notifyAll()<!> {}<!>
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun wait()<!> {}<!>
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun wait(l: Long)<!> {}<!>
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun wait(l: Long, i: Int)<!> {}<!>
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun getClass(): Class<Any><!> = null!!<!>
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
// KT-7174 Report error on members with the same signature as non-overridable methods from mapped Java types (like Object.wait/notify)
@@ -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<!>
}
@@ -1,5 +1,6 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
class C {
<!CONFLICTING_JVM_DECLARATIONS!>val x<!> = 1
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
}
}
@@ -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<!>
}
}
@@ -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
}
}
}
@@ -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<!>
}
@@ -1,4 +1,5 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
class C(<!CONFLICTING_JVM_DECLARATIONS!>val x: Int<!>) {
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
}
}
@@ -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,4 +1,4 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
@@ -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,3 +1,4 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
@@ -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<!>
}
@@ -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
}
}
@@ -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) {}<!>
}
@@ -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)<!> {}
}
}
@@ -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<!>
}
}
@@ -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
}
}
}
@@ -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<!>
}
}
}
@@ -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
}
}
}
}
@@ -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<!>
}
}
@@ -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
}
}
}
@@ -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<!>
}
@@ -1,5 +1,6 @@
// FIR_IDENTICAL
// COMPARE_WITH_LIGHT_TREE
object C {
<!CONFLICTING_JVM_DECLARATIONS!>val x<!> = 1
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1
}
}
@@ -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<!>
}
@@ -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
}
}
@@ -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<!>
}
}
@@ -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
}
}
}
@@ -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<!>
@@ -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
@@ -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<!>
@@ -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

Some files were not shown because too many files have changed in this diff Show More