K2: report JVM backend errors in the same way in PSI as LT

Do not try to find PSI element, but always use the IR element offsets
instead. This greatly simplifies test data because we don't need to have
custom PSI- and LT- based diagnostic ranges in every test, and K1/K2
behavior also is mostly the same.

The exact offset ranges are not as important for backend diagnostics, so
it's better to have K2+PSI and K2+LT behaving the same.
This commit is contained in:
Alexander Udalov
2023-07-27 19:12:36 +02:00
committed by Space Team
parent 6069aaee9c
commit 965946d3ef
148 changed files with 267 additions and 860 deletions
@@ -36,22 +36,6 @@ class KtDiagnosticReporterWithImplicitIrBasedContext(
(PsiSourceManager.findPsiElement(this, containingIrFile)?.let(::KtRealPsiSourceElement) (PsiSourceManager.findPsiElement(this, containingIrFile)?.let(::KtRealPsiSourceElement)
?: sourceElement()) ?: sourceElement())
fun atFirstValidFrom(vararg irElements: IrElement, containingIrFile: IrFile): DiagnosticContextImpl? =
atFirstValidFrom(irElements.asIterable(), containingIrFile)
fun atFirstValidFrom(irElements: Iterable<IrElement>, containingIrFile: IrFile): DiagnosticContextImpl? {
var irElement: IrElement? = null
for (e in irElements) {
PsiSourceManager.findPsiElement(e, containingIrFile)?.let {
return at(KtRealPsiSourceElement(it), e, containingIrFile)
}
if (irElement == null && e.startOffset >= 0) {
irElement = e
}
}
return irElement?.let { at(it.sourceElement(), it, containingIrFile) }
}
fun at(irElement: IrElement, containingIrDeclaration: IrDeclaration): DiagnosticContextImpl = fun at(irElement: IrElement, containingIrDeclaration: IrDeclaration): DiagnosticContextImpl =
at(irElement, containingIrDeclaration.file) at(irElement, containingIrDeclaration.file)
@@ -6,6 +6,7 @@
package org.jetbrains.kotlin.backend.jvm.codegen package org.jetbrains.kotlin.backend.jvm.codegen
import org.jetbrains.kotlin.backend.common.lower.ANNOTATION_IMPLEMENTATION import org.jetbrains.kotlin.backend.common.lower.ANNOTATION_IMPLEMENTATION
import org.jetbrains.kotlin.backend.common.sourceElement
import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin import org.jetbrains.kotlin.backend.jvm.JvmLoweredDeclarationOrigin
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
import org.jetbrains.kotlin.diagnostics.KtDiagnosticFactory1 import org.jetbrains.kotlin.diagnostics.KtDiagnosticFactory1
@@ -145,8 +146,10 @@ class JvmSignatureClashDetector(
irDeclarations: Collection<IrDeclaration>, irDeclarations: Collection<IrDeclaration>,
conflictingJvmDeclarationsData: ConflictingJvmDeclarationsData conflictingJvmDeclarationsData: ConflictingJvmDeclarationsData
) { ) {
irDeclarations.mapNotNullTo(LinkedHashSet()) { irDeclaration -> irDeclarations.mapTo(LinkedHashSet()) { irDeclaration ->
classCodegen.context.ktDiagnosticReporter.atFirstValidFrom(irDeclaration, classCodegen.irClass, containingIrFile = irDeclaration.file) // Offset can be negative (SYNTHETIC_OFFSET) for delegated members; report an error on the class in that case.
val reportOn = irDeclaration.takeUnless { it.startOffset < 0 } ?: classCodegen.irClass
classCodegen.context.ktDiagnosticReporter.at(reportOn.sourceElement(), reportOn, irDeclaration.file)
}.forEach { }.forEach {
it.report(diagnosticFactory1, conflictingJvmDeclarationsData) it.report(diagnosticFactory1, conflictingJvmDeclarationsData)
} }
+2 -2
View File
@@ -4,10 +4,10 @@ compiler/testData/cli/jvm/conflictingJvmDeclarations.kt:3:9: error: platform dec
fun getY(): Int defined in Foo fun getY(): Int defined in Foo
get() = 42 get() = 42
^ ^
compiler/testData/cli/jvm/conflictingJvmDeclarations.kt:8:5: error: platform declaration clash: The following declarations have the same JVM signature (getX()I): compiler/testData/cli/jvm/conflictingJvmDeclarations.kt:9:5: error: platform declaration clash: The following declarations have the same JVM signature (getX()I):
fun `<get-x>`(): Int defined in Foo fun `<get-x>`(): Int defined in Foo
fun getX(): Int defined in Foo fun getX(): Int defined in Foo
fun getY(): Int defined in Foo fun getY(): Int defined in Foo
@JvmName("getX") fun getY() = 42
^ ^
COMPILATION_ERROR COMPILATION_ERROR
+2 -2
View File
@@ -28,11 +28,11 @@ compiler/testData/cli/jvm/signatureClash.kt:20:5: error: accidental override: Th
fun getTr(): Int defined in SubTr fun getTr(): Int defined in SubTr
val tr = 1 val tr = 1
^ ^
compiler/testData/cli/jvm/signatureClash.kt:24:7: error: platform declaration clash: The following declarations have the same JVM signature (access$f(LC;)V): compiler/testData/cli/jvm/signatureClash.kt:24:1: error: platform declaration clash: The following declarations have the same JVM signature (access$f(LC;)V):
fun `access$f`(`$this`: C): Unit defined in C fun `access$f`(`$this`: C): Unit defined in C
fun `access$f`(c: C): Unit defined in C fun `access$f`(c: C): Unit defined in C
class C { class C {
^ ^
compiler/testData/cli/jvm/signatureClash.kt:26:5: error: platform declaration clash: The following declarations have the same JVM signature (access$f(LC;)V): compiler/testData/cli/jvm/signatureClash.kt:26:5: error: platform declaration clash: The following declarations have the same JVM signature (access$f(LC;)V):
fun `access$f`(`$this`: C): Unit defined in C fun `access$f`(`$this`: C): Unit defined in C
fun `access$f`(c: C): Unit defined in C fun `access$f`(c: C): Unit defined in C
@@ -1,23 +1,23 @@
compiler/testData/cli/jvm/syntheticAccessorForPropertiesSignatureClash.kt:3:7: error: platform declaration clash: The following declarations have the same JVM signature (access$getFoo$p(LA;)I): compiler/testData/cli/jvm/syntheticAccessorForPropertiesSignatureClash.kt:3:1: error: platform declaration clash: The following declarations have the same JVM signature (access$getFoo$p(LA;)I):
fun `access$getFoo$p`(`$this`: A): Int defined in A fun `access$getFoo$p`(`$this`: A): Int defined in A
fun `access$getFoo$p`(a: A): Int defined in A fun `access$getFoo$p`(a: A): Int defined in A
class A { class A {
^ ^
compiler/testData/cli/jvm/syntheticAccessorForPropertiesSignatureClash.kt:3:7: error: platform declaration clash: The following declarations have the same JVM signature (access$setFoo$p(LA;I)V): compiler/testData/cli/jvm/syntheticAccessorForPropertiesSignatureClash.kt:3:1: error: platform declaration clash: The following declarations have the same JVM signature (access$setFoo$p(LA;I)V):
fun `access$setFoo$p`(`$this`: A, `<set-?>`: Int): Unit defined in A fun `access$setFoo$p`(`$this`: A, `<set-?>`: Int): Unit defined in A
fun `access$setFoo$p`(a: A, d: Int): Unit defined in A fun `access$setFoo$p`(a: A, d: Int): Unit defined in A
class A { class A {
^ ^
compiler/testData/cli/jvm/syntheticAccessorForPropertiesSignatureClash.kt:3:7: error: platform declaration clash: The following declarations have the same JVM signature (access$getFoo$cp()I): compiler/testData/cli/jvm/syntheticAccessorForPropertiesSignatureClash.kt:3:1: error: platform declaration clash: The following declarations have the same JVM signature (access$getFoo$cp()I):
fun `access$getFoo$cp`(): Int defined in A fun `access$getFoo$cp`(): Int defined in A
fun `access$getFoo$cp`(): Int defined in A fun `access$getFoo$cp`(): Int defined in A
class A { class A {
^ ^
compiler/testData/cli/jvm/syntheticAccessorForPropertiesSignatureClash.kt:3:7: error: platform declaration clash: The following declarations have the same JVM signature (access$setFoo$cp(I)V): compiler/testData/cli/jvm/syntheticAccessorForPropertiesSignatureClash.kt:3:1: error: platform declaration clash: The following declarations have the same JVM signature (access$setFoo$cp(I)V):
fun `access$setFoo$cp`(`<set-?>`: Int): Unit defined in A fun `access$setFoo$cp`(`<set-?>`: Int): Unit defined in A
fun `access$setFoo$cp`(d: Int): Unit defined in A fun `access$setFoo$cp`(d: Int): Unit defined in A
class A { class A {
^ ^
compiler/testData/cli/jvm/syntheticAccessorForPropertiesSignatureClash.kt:6:5: error: platform declaration clash: The following declarations have the same JVM signature (access$getFoo$p(LA;)I): compiler/testData/cli/jvm/syntheticAccessorForPropertiesSignatureClash.kt:6:5: error: platform declaration clash: The following declarations have the same JVM signature (access$getFoo$p(LA;)I):
fun `access$getFoo$p`(`$this`: A): Int defined in A fun `access$getFoo$p`(`$this`: A): Int defined in A
fun `access$getFoo$p`(a: A): Int defined in A fun `access$getFoo$p`(a: A): Int defined in A
@@ -1,23 +1,23 @@
compiler/testData/cli/jvm/syntheticAccessorPropertyAndFunSignatureClash.kt:3:7: error: platform declaration clash: The following declarations have the same JVM signature (access$getFoo$p(LA;)I): compiler/testData/cli/jvm/syntheticAccessorPropertyAndFunSignatureClash.kt:3:1: error: platform declaration clash: The following declarations have the same JVM signature (access$getFoo$p(LA;)I):
fun `access$getFoo$p`(`$this`: A): Int defined in A fun `access$getFoo$p`(`$this`: A): Int defined in A
fun `access$getFoo$p`(a: A): Int defined in A fun `access$getFoo$p`(a: A): Int defined in A
class A { class A {
^ ^
compiler/testData/cli/jvm/syntheticAccessorPropertyAndFunSignatureClash.kt:3:7: error: platform declaration clash: The following declarations have the same JVM signature (access$setFoo$p(LA;I)V): compiler/testData/cli/jvm/syntheticAccessorPropertyAndFunSignatureClash.kt:3:1: error: platform declaration clash: The following declarations have the same JVM signature (access$setFoo$p(LA;I)V):
fun `access$setFoo$p`(`$this`: A, `<set-?>`: Int): Unit defined in A fun `access$setFoo$p`(`$this`: A, `<set-?>`: Int): Unit defined in A
fun `access$setFoo$p`(a: A, d: Int): Unit defined in A fun `access$setFoo$p`(a: A, d: Int): Unit defined in A
class A { class A {
^ ^
compiler/testData/cli/jvm/syntheticAccessorPropertyAndFunSignatureClash.kt:3:7: error: platform declaration clash: The following declarations have the same JVM signature (access$getFoo(LA;)I): compiler/testData/cli/jvm/syntheticAccessorPropertyAndFunSignatureClash.kt:3:1: error: platform declaration clash: The following declarations have the same JVM signature (access$getFoo(LA;)I):
fun `access$getFoo`(`$this`: A): Int defined in A fun `access$getFoo`(`$this`: A): Int defined in A
fun `access$getFoo`(a: A): Int defined in A fun `access$getFoo`(a: A): Int defined in A
class A { class A {
^ ^
compiler/testData/cli/jvm/syntheticAccessorPropertyAndFunSignatureClash.kt:3:7: error: platform declaration clash: The following declarations have the same JVM signature (access$setFoo(LA;I)V): compiler/testData/cli/jvm/syntheticAccessorPropertyAndFunSignatureClash.kt:3:1: error: platform declaration clash: The following declarations have the same JVM signature (access$setFoo(LA;I)V):
fun `access$setFoo`(`$this`: A, i: Int): Unit defined in A fun `access$setFoo`(`$this`: A, i: Int): Unit defined in A
fun `access$setFoo`(a: A, d: Int): Unit defined in A fun `access$setFoo`(a: A, d: Int): Unit defined in A
class A { class A {
^ ^
compiler/testData/cli/jvm/syntheticAccessorPropertyAndFunSignatureClash.kt:6:5: error: platform declaration clash: The following declarations have the same JVM signature (access$getFoo$p(LA;)I): compiler/testData/cli/jvm/syntheticAccessorPropertyAndFunSignatureClash.kt:6:5: error: platform declaration clash: The following declarations have the same JVM signature (access$getFoo$p(LA;)I):
fun `access$getFoo$p`(`$this`: A): Int defined in A fun `access$getFoo$p`(`$this`: A): Int defined in A
fun `access$getFoo$p`(a: A): Int defined in A fun `access$getFoo$p`(a: A): Int defined in A
+12 -12
View File
@@ -1,31 +1,31 @@
compiler/testData/cli/jvm/syntheticAccessorSignatureClash.kt:14:7: error: accidental override: The following declarations have the same JVM signature (access$foo(LDerived;)V): compiler/testData/cli/jvm/syntheticAccessorSignatureClash.kt:14:1: error: accidental override: The following declarations have the same JVM signature (access$foo(LDerived;)V):
fun `access$foo`(d: Derived): Unit defined in Derived fun `access$foo`(d: Derived): Unit defined in Derived
fun `access$foo`(`$this`: Derived): Unit defined in Derived fun `access$foo`(`$this`: Derived): Unit defined in Derived
class Derived : Base() { class Derived : Base() {
^ ^
compiler/testData/cli/jvm/syntheticAccessorSignatureClash.kt:14:7: error: accidental override: The following declarations have the same JVM signature (access$getBar$p(LDerived;)I): compiler/testData/cli/jvm/syntheticAccessorSignatureClash.kt:14:1: error: accidental override: The following declarations have the same JVM signature (access$getBar$p(LDerived;)I):
fun `access$getBar$p`(d: Derived): Int defined in Derived fun `access$getBar$p`(d: Derived): Int defined in Derived
fun `access$getBar$p`(`$this`: Derived): Int defined in Derived fun `access$getBar$p`(`$this`: Derived): Int defined in Derived
class Derived : Base() { class Derived : Base() {
^ ^
compiler/testData/cli/jvm/syntheticAccessorSignatureClash.kt:14:7: error: accidental override: The following declarations have the same JVM signature (access$setBar$p(LDerived;I)V): compiler/testData/cli/jvm/syntheticAccessorSignatureClash.kt:14:1: error: accidental override: The following declarations have the same JVM signature (access$setBar$p(LDerived;I)V):
fun `access$setBar$p`(d: Derived, i: Int): Unit defined in Derived fun `access$setBar$p`(d: Derived, i: Int): Unit defined in Derived
fun `access$setBar$p`(`$this`: Derived, `<set-?>`: Int): Unit defined in Derived fun `access$setBar$p`(`$this`: Derived, `<set-?>`: Int): Unit defined in Derived
class Derived : Base() { class Derived : Base() {
^ ^
compiler/testData/cli/jvm/syntheticAccessorSignatureClash.kt:14:7: error: accidental override: The following declarations have the same JVM signature (access$getBaz$p(LDerived;)I): compiler/testData/cli/jvm/syntheticAccessorSignatureClash.kt:14:1: error: accidental override: The following declarations have the same JVM signature (access$getBaz$p(LDerived;)I):
fun `access$getBaz$p`(d: Derived): Int defined in Derived fun `access$getBaz$p`(d: Derived): Int defined in Derived
fun `access$getBaz$p`(`$this`: Derived): Int defined in Derived fun `access$getBaz$p`(`$this`: Derived): Int defined in Derived
class Derived : Base() { class Derived : Base() {
^ ^
compiler/testData/cli/jvm/syntheticAccessorSignatureClash.kt:14:7: error: accidental override: The following declarations have the same JVM signature (access$getBoo$p(LDerived;)I): compiler/testData/cli/jvm/syntheticAccessorSignatureClash.kt:14:1: error: accidental override: The following declarations have the same JVM signature (access$getBoo$p(LDerived;)I):
fun `access$getBoo$p`(d: Derived): Int defined in Derived fun `access$getBoo$p`(d: Derived): Int defined in Derived
fun `access$getBoo$p`(`$this`: Derived): Int defined in Derived fun `access$getBoo$p`(`$this`: Derived): Int defined in Derived
class Derived : Base() { class Derived : Base() {
^ ^
compiler/testData/cli/jvm/syntheticAccessorSignatureClash.kt:14:7: error: accidental override: The following declarations have the same JVM signature (access$setBar1$p(LDerived;I)V): compiler/testData/cli/jvm/syntheticAccessorSignatureClash.kt:14:1: error: accidental override: The following declarations have the same JVM signature (access$setBar1$p(LDerived;I)V):
fun `access$setBar1$p`(d: Derived, i: Int): Unit defined in Derived fun `access$setBar1$p`(d: Derived, i: Int): Unit defined in Derived
fun `access$setBar1$p`(`$this`: Derived, `<set-?>`: Int): Unit defined in Derived fun `access$setBar1$p`(`$this`: Derived, `<set-?>`: Int): Unit defined in Derived
class Derived : Base() { class Derived : Base() {
^ ^
COMPILATION_ERROR COMPILATION_ERROR
@@ -1,15 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<X> { interface Foo<X> {
fun foo(x: X) fun foo(x: X)
@@ -10,6 +10,6 @@ open class FooImpl : Foo<String> {
} }
open class FooImpl2 : FooImpl() { open class FooImpl2 : FooImpl() {
<!ACCIDENTAL_OVERRIDE!>fun foo(x: Any)<!> { <!ACCIDENTAL_OVERRIDE!>fun foo(x: Any) {
} }<!>
} }
@@ -1,10 +1,8 @@
// COMPARE_WITH_LIGHT_TREE
open class B { open class B {
fun getX() = 1 fun getX() = 1
} }
class C : B() { class C : B() {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>val x: Int<!> <!ACCIDENTAL_OVERRIDE!>val x: Int
get() = 1<!> get() = 1<!>
} }
@@ -1,10 +1,8 @@
// COMPARE_WITH_LIGHT_TREE
open class B { open class B {
fun getX() = 1 fun getX() = 1
} }
class C : B() { class C : B() {
val x: Int val x: Int
<!ACCIDENTAL_OVERRIDE!>get()<!> = 1 <!ACCIDENTAL_OVERRIDE!>get() = 1<!>
} }
@@ -1,9 +0,0 @@
// COMPARE_WITH_LIGHT_TREE
open class B {
fun getX() = 1
}
class C : B() {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>val x: Int<!> = 1<!>
}
@@ -1,9 +1,9 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
open class B { open class B {
fun getX() = 1 fun getX() = 1
} }
class C : B() { class C : B() {
<!ACCIDENTAL_OVERRIDE!>val x: Int<!> = 1 <!ACCIDENTAL_OVERRIDE!>val x: Int = 1<!>
} }
@@ -1,10 +0,0 @@
// 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,4 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
open class B { open class B {
val x: Int val x: Int
@@ -6,5 +6,5 @@ open class B {
} }
class C : B() { class C : B() {
<!ACCIDENTAL_OVERRIDE!>fun getX()<!> = 1 <!ACCIDENTAL_OVERRIDE!>fun getX() = 1<!>
} }
@@ -1,10 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
open class Base { open class Base {
@@ -6,5 +6,5 @@ open class Base {
} }
class Derived : Base() { class Derived : Base() {
<!ACCIDENTAL_OVERRIDE!>fun foo(i: Int = 0)<!> {} <!ACCIDENTAL_OVERRIDE!>fun foo(i: Int = 0) {}<!>
} }
@@ -6,4 +6,4 @@ interface D {
val x: Int val x: Int
} }
class <!ACCIDENTAL_OVERRIDE!>C(d: D)<!> : D by d, B <!ACCIDENTAL_OVERRIDE!>class C(d: D) : D by d, B<!>
@@ -1,10 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
open class B { open class B {
@@ -6,5 +6,5 @@ open class B {
} }
class C : B() { class C : B() {
<!ACCIDENTAL_OVERRIDE!>fun foo(l: List<Int>)<!> {} <!ACCIDENTAL_OVERRIDE!>fun foo(l: List<Int>) {}<!>
} }
@@ -1,9 +1,7 @@
// COMPARE_WITH_LIGHT_TREE
interface B { interface B {
fun getX() = 1 fun getX() = 1
} }
class C : B { class C : B {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!><!NOTHING_TO_OVERRIDE!>override<!> val x<!> = 1<!> <!ACCIDENTAL_OVERRIDE!><!NOTHING_TO_OVERRIDE!>override<!> val x = 1<!>
} }
@@ -1,9 +1,7 @@
// COMPARE_WITH_LIGHT_TREE
interface B { interface B {
fun getX() = 1 fun getX() = 1
} }
class C : B { class C : B {
<!ACCIDENTAL_OVERRIDE!><!NOTHING_TO_OVERRIDE!>override<!> val x<!> = 1 <!NOTHING_TO_OVERRIDE!>override<!> <!ACCIDENTAL_OVERRIDE!>val x = 1<!>
} }
@@ -1,10 +1,8 @@
// COMPARE_WITH_LIGHT_TREE
interface T { interface T {
fun getX() = 1 fun getX() = 1
} }
class C : T { class C : T {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>val x: Int<!> <!ACCIDENTAL_OVERRIDE!>val x: Int
get() = 1<!> get() = 1<!>
} }
@@ -1,10 +1,8 @@
// COMPARE_WITH_LIGHT_TREE
interface T { interface T {
fun getX() = 1 fun getX() = 1
} }
class C : T { class C : T {
val x: Int val x: Int
<!ACCIDENTAL_OVERRIDE!>get()<!> = 1 <!ACCIDENTAL_OVERRIDE!>get() = 1<!>
} }
@@ -1,10 +1,8 @@
// COMPARE_WITH_LIGHT_TREE
interface T { interface T {
fun getX(): Int fun getX(): Int
} }
abstract class C : T { abstract class C : T {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>val x: Int<!> <!ACCIDENTAL_OVERRIDE!>val x: Int
get() = 1<!> get() = 1<!>
} }
@@ -1,10 +1,8 @@
// COMPARE_WITH_LIGHT_TREE
interface T { interface T {
fun getX(): Int fun getX(): Int
} }
abstract class C : T { abstract class C : T {
val x: Int val x: Int
<!ACCIDENTAL_OVERRIDE!>get()<!> = 1 <!ACCIDENTAL_OVERRIDE!>get() = 1<!>
} }
@@ -1,10 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
interface T { interface T {
val x: Int val x: Int
@@ -6,5 +6,5 @@ interface T {
} }
class C : T { class C : T {
<!ACCIDENTAL_OVERRIDE!>fun getX()<!> = 1 <!ACCIDENTAL_OVERRIDE!>fun getX() = 1<!>
} }
@@ -1,9 +0,0 @@
// COMPARE_WITH_LIGHT_TREE
interface T {
val x: Int
}
abstract class C : T {
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun getX()<!> = 1<!>
}
@@ -1,9 +1,9 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
interface T { interface T {
val x: Int val x: Int
} }
abstract class C : T { abstract class C : T {
<!ACCIDENTAL_OVERRIDE!>fun getX()<!> = 1 <!ACCIDENTAL_OVERRIDE!>fun getX() = 1<!>
} }
@@ -1,12 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
open class B<T> { open class B<T> {
@@ -8,5 +8,5 @@ open class B<T> {
class C : B<String>() { class C : B<String>() {
override fun foo(t: String) {} override fun foo(t: String) {}
<!ACCIDENTAL_OVERRIDE!>fun foo(o: Any)<!> {} <!ACCIDENTAL_OVERRIDE!>fun foo(o: Any) {}<!>
} }
@@ -1,10 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
interface B<T> { interface B<T> {
@@ -6,5 +6,5 @@ interface B<T> {
} }
class C : B<String> { class C : B<String> {
<!ACCIDENTAL_OVERRIDE!>fun foo(o: Any)<!> {} <!ACCIDENTAL_OVERRIDE!>fun foo(o: Any) {}<!>
} }
@@ -1,12 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
interface B<T> { interface B<T> {
@@ -8,5 +8,5 @@ interface B<T> {
class C : B<String> { class C : B<String> {
override fun foo(t: String) {} override fun foo(t: String) {}
<!ACCIDENTAL_OVERRIDE!>fun foo(o: Any)<!> {} <!ACCIDENTAL_OVERRIDE!>fun foo(o: Any) {}<!>
} }
@@ -1,4 +0,0 @@
// 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,4 +1,4 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
<!CONFLICTING_JVM_DECLARATIONS!>val aa<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>val aa = 1<!>
<!CONFLICTING_JVM_DECLARATIONS!>val Aa<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>val Aa = 1<!>
@@ -1,8 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses // !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
inline class IC(val i: Int) 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)<!> {} <!CONFLICTING_JVM_DECLARATIONS!>fun foo(a: Any?, ic: IC) {}<!>
@@ -1,20 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
public open class A<T> { public open class A<T> {
@@ -15,6 +15,6 @@ interface D {
fun foo(x: A<String>): String fun foo(x: A<String>): String
} }
class <!CONFLICTING_INHERITED_JVM_DECLARATIONS!>B1<!> : A<A<String>>(), D <!CONFLICTING_INHERITED_JVM_DECLARATIONS!>class B1 : A<A<String>>(), D<!>
interface <!CONFLICTING_INHERITED_JVM_DECLARATIONS!>B2<!> : C<A<String>>, D <!CONFLICTING_INHERITED_JVM_DECLARATIONS!>interface B2 : C<A<String>>, D<!>
@@ -1,5 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: List<String>)<!> {} <!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: List<String>) {}<!>
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: MutableList<String>)<!> {} <!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: MutableList<String>) {}<!>
@@ -1,15 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> { interface Foo<T> {
@@ -9,7 +9,7 @@ interface Bar<T> {
fun foo(l: List<T>) fun foo(l: List<T>)
} }
class <!CONFLICTING_JVM_DECLARATIONS!>Baz(f: Foo<String>, b: Bar<Int>)<!> : <!CONFLICTING_JVM_DECLARATIONS!>class Baz(f: Foo<String>, b: Bar<Int>) :
Foo<String> by f, Foo<String> by f,
Bar<Int> by b { Bar<Int> by b {
} }<!>
@@ -1,10 +0,0 @@
// 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,10 +1,10 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> { interface Foo<T> {
fun foo(l: List<T>) fun foo(l: List<T>)
} }
class <!CONFLICTING_JVM_DECLARATIONS!>Bar(f: Foo<String>)<!>: Foo<String> by f { <!CONFLICTING_JVM_DECLARATIONS!>class Bar(f: Foo<String>): Foo<String> by f {
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(l: List<Int>)<!> {} <!CONFLICTING_JVM_DECLARATIONS!>fun foo(l: List<Int>) {}<!>
} }<!>
@@ -1,16 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> { interface Foo<T> {
@@ -7,9 +7,9 @@ interface Foo<T> {
} }
} }
class <!CONFLICTING_JVM_DECLARATIONS!>Bar(f: Foo<String>)<!>: Foo<String> by f { <!CONFLICTING_JVM_DECLARATIONS!>class Bar(f: Foo<String>): Foo<String> by f {
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(l: List<Int>)<!> {} <!CONFLICTING_JVM_DECLARATIONS!>fun foo(l: List<Int>) {}<!>
} }<!>
class BarOther(f: Foo<String>): Foo<String> by f { class BarOther(f: Foo<String>): Foo<String> by f {
override fun foo(l: List<String>) {} override fun foo(l: List<String>) {}
@@ -1,9 +1,7 @@
// COMPARE_WITH_LIGHT_TREE
class G<T> class G<T>
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val <T> G<T>.foo: Int<!> <!CONFLICTING_JVM_DECLARATIONS!>val <T> G<T>.foo: Int
get() = 1<!> get() = 1<!>
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val G<String>.foo: Int<!> <!CONFLICTING_JVM_DECLARATIONS!>val G<String>.foo: Int
get() = 1<!> get() = 1<!>
@@ -1,9 +1,7 @@
// COMPARE_WITH_LIGHT_TREE
class G<T> class G<T>
val <T> G<T>.foo: Int val <T> G<T>.foo: Int
<!CONFLICTING_JVM_DECLARATIONS!>get()<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>get() = 1<!>
val G<String>.foo: Int val G<String>.foo: Int
<!CONFLICTING_JVM_DECLARATIONS!>get()<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>get() = 1<!>
@@ -1,7 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
class G<T> class G<T>
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: G<String>): G<Int><!> {null!!} <!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!!}<!>
@@ -1,13 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> { interface Foo<T> {
@@ -9,5 +9,5 @@ interface Bar<T> {
fun foo(l: List<T>) {} fun foo(l: List<T>) {}
} }
class <!CONFLICTING_INHERITED_JVM_DECLARATIONS!>Baz()<!>: Foo<String>, Bar<Int> { <!CONFLICTING_INHERITED_JVM_DECLARATIONS!>class Baz(): Foo<String>, Bar<Int> {
} }<!>
@@ -1,5 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER -PLATFORM_CLASS_MAPPED_TO_KOTLIN // !DIAGNOSTICS: -UNUSED_PARAMETER -PLATFORM_CLASS_MAPPED_TO_KOTLIN
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: List<String>)<!> {} <!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>) {}<!>
@@ -1,5 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: String)<!> {} <!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: String) {}<!>
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: String?)<!> {} <!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: String?) {}<!>
@@ -1,14 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
interface A<T> { interface A<T> {
@@ -9,6 +9,6 @@ interface B {
fun foo(l: List<Int>) {} fun foo(l: List<Int>) {}
} }
class <!ACCIDENTAL_OVERRIDE!>C(f: A<String>)<!>: A<String> by f, B <!ACCIDENTAL_OVERRIDE!>class C(f: A<String>): A<String> by f, B<!>
<!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class D<!>(f: A<Int>): A<Int> by f, B <!DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE!>class D<!>(f: A<Int>): A<Int> by f, B
@@ -1,14 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo<T> { interface Foo<T> {
@@ -10,5 +10,5 @@ interface Bar<T> {
} }
class Baz(): Foo<String>, Bar<Int> { class Baz(): Foo<String>, Bar<Int> {
<!ACCIDENTAL_OVERRIDE!>fun foo(l: List<Long>)<!> {} <!ACCIDENTAL_OVERRIDE!>fun foo(l: List<Long>) {}<!>
} }
@@ -1,5 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER -PLATFORM_CLASS_MAPPED_TO_KOTLIN // !DIAGNOSTICS: -UNUSED_PARAMETER -PLATFORM_CLASS_MAPPED_TO_KOTLIN
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: java.lang.String)<!> {} <!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: java.lang.String) {}<!>
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: String)<!> {} <!CONFLICTING_JVM_DECLARATIONS!>fun foo(s: String) {}<!>
@@ -1,5 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
<!CONFLICTING_JVM_DECLARATIONS!>fun <T> foo(x: T): T<!> {null!!} <!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!!}<!>
@@ -1,7 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo interface Foo
<!CONFLICTING_JVM_DECLARATIONS!>fun <T: Foo> foo(x: T): T<!> {null!!} <!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!!}<!>
@@ -1,9 +0,0 @@
// 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,9 +1,9 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo interface Foo
interface Bar interface Bar
<!CONFLICTING_JVM_DECLARATIONS!>fun <T> foo(x: T): T<!> where T: Foo, T: Bar {null!!} <!CONFLICTING_JVM_DECLARATIONS!>fun <T> foo(x: T): T where T: Foo, T: Bar {null!!}<!>
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: Foo): Foo<!> {null!!} <!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: Foo): Foo {null!!}<!>
fun foo(x: Bar): Bar {null!!} fun foo(x: Bar): Bar {null!!}
@@ -1,9 +0,0 @@
// 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,9 +1,9 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
interface Foo interface Foo
interface Bar interface Bar
<!CONFLICTING_JVM_DECLARATIONS!>fun <T> foo(x: T): T<!> where T: Foo, T: Bar {null!!} <!CONFLICTING_JVM_DECLARATIONS!>fun <T> foo(x: T): T where T: Foo, T: Bar {null!!}<!>
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: Foo): Foo<!> {null!!} <!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: Foo): Foo {null!!}<!>
fun foo(x: Bar): Bar {null!!} fun foo(x: Bar): Bar {null!!}
@@ -1,8 +1,6 @@
// COMPARE_WITH_LIGHT_TREE
enum class E { enum class E {
ENTRY; ENTRY;
fun <!VIRTUAL_MEMBER_HIDDEN!>getDeclaringClass<!>() {} fun <!VIRTUAL_MEMBER_HIDDEN!>getDeclaringClass<!>() {}
<!ACCIDENTAL_OVERRIDE{LT}!><!ACCIDENTAL_OVERRIDE{PSI}!>fun <!VIRTUAL_MEMBER_HIDDEN!>finalize<!>()<!> {}<!> <!ACCIDENTAL_OVERRIDE!>fun <!VIRTUAL_MEMBER_HIDDEN!>finalize<!>() {}<!>
} }
@@ -1,5 +1,3 @@
// COMPARE_WITH_LIGHT_TREE
enum class E { enum class E {
ENTRY; ENTRY;
@@ -1,20 +0,0 @@
// 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,20 +1,20 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !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) // KT-7174 Report error on members with the same signature as non-overridable methods from mapped Java types (like Object.wait/notify)
class A { class A {
<!ACCIDENTAL_OVERRIDE!>fun notify()<!> {} <!ACCIDENTAL_OVERRIDE!>fun notify() {}<!>
<!ACCIDENTAL_OVERRIDE!>fun notifyAll()<!> {} <!ACCIDENTAL_OVERRIDE!>fun notifyAll() {}<!>
<!ACCIDENTAL_OVERRIDE!>fun wait()<!> {} <!ACCIDENTAL_OVERRIDE!>fun wait() {}<!>
<!ACCIDENTAL_OVERRIDE!>fun wait(l: Long)<!> {} <!ACCIDENTAL_OVERRIDE!>fun wait(l: Long) {}<!>
<!ACCIDENTAL_OVERRIDE!>fun wait(l: Long, i: Int)<!> {} <!ACCIDENTAL_OVERRIDE!>fun wait(l: Long, i: Int) {}<!>
<!ACCIDENTAL_OVERRIDE!>fun getClass(): Class<Any><!> = null!! <!ACCIDENTAL_OVERRIDE!>fun getClass(): Class<Any> = null!!<!>
} }
<!ACCIDENTAL_OVERRIDE!>fun notify()<!> {} <!ACCIDENTAL_OVERRIDE!>fun notify() {}<!>
<!ACCIDENTAL_OVERRIDE!>fun notifyAll()<!> {} <!ACCIDENTAL_OVERRIDE!>fun notifyAll() {}<!>
<!ACCIDENTAL_OVERRIDE!>fun wait()<!> {} <!ACCIDENTAL_OVERRIDE!>fun wait() {}<!>
<!ACCIDENTAL_OVERRIDE!>fun wait(l: Long)<!> {} <!ACCIDENTAL_OVERRIDE!>fun wait(l: Long) {}<!>
<!ACCIDENTAL_OVERRIDE!>fun wait(l: Long, i: Int)<!> {} <!ACCIDENTAL_OVERRIDE!>fun wait(l: Long, i: Int) {}<!>
<!ACCIDENTAL_OVERRIDE!>fun getClass(): Class<Any><!> = null!! <!ACCIDENTAL_OVERRIDE!>fun getClass(): Class<Any> = null!!<!>
@@ -1,6 +0,0 @@
// 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,6 +1,6 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
class C { class C {
<!CONFLICTING_JVM_DECLARATIONS!>val x<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>val x = 1<!>
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>fun getX() = 1<!>
} }
@@ -1,8 +0,0 @@
// 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,8 +1,8 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
class C { class C {
companion object { companion object {
<!CONFLICTING_JVM_DECLARATIONS!>val x<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>val x = 1<!>
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>fun getX() = 1<!>
} }
} }
@@ -1,5 +0,0 @@
// COMPARE_WITH_LIGHT_TREE
class C(<!CONFLICTING_JVM_DECLARATIONS!>val x: Int<!>) {
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun getX()<!> = 1<!>
}
@@ -1,5 +1,5 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
class C(<!CONFLICTING_JVM_DECLARATIONS!>val x: Int<!>) { class C(<!CONFLICTING_JVM_DECLARATIONS!>val x: Int<!>) {
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>fun getX() = 1<!>
} }
@@ -1,7 +0,0 @@
// 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,7 +1,7 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
class C { class C {
<!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: Any)<!> {} <!CONFLICTING_JVM_DECLARATIONS!>fun foo(x: Any) {}<!>
<!CONFLICTING_JVM_DECLARATIONS!>fun Any.foo()<!> {} <!CONFLICTING_JVM_DECLARATIONS!>fun Any.foo() {}<!>
} }
@@ -1,8 +1,7 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
class C { class C {
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun getX(t: Any)<!> = 1<!> <!CONFLICTING_JVM_DECLARATIONS!>fun getX(t: Any) = 1<!>
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>val Any.x: Int<!> <!CONFLICTING_JVM_DECLARATIONS!>val Any.x: Int
get() = 1<!> get() = 1<!>
} }
@@ -1,8 +1,7 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
class C { class C {
<!CONFLICTING_JVM_DECLARATIONS!>fun getX(t: Any)<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>fun getX(t: Any) = 1<!>
val Any.x: Int val Any.x: Int
<!CONFLICTING_JVM_DECLARATIONS!>get()<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>get() = 1<!>
} }
@@ -1,8 +0,0 @@
// 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 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
class C { class C {
<!CONFLICTING_JVM_DECLARATIONS!>fun setX(x: Int)<!> {} <!CONFLICTING_JVM_DECLARATIONS!>fun setX(x: Int) {}<!>
<!CONFLICTING_JVM_DECLARATIONS!>var x: Int<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>var x: Int = 1<!>
} }
@@ -1,9 +1,8 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
class C { class C {
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>fun setX(x: Int)<!> {}<!> <!CONFLICTING_JVM_DECLARATIONS!>fun setX(x: Int) {}<!>
<!CONFLICTING_JVM_DECLARATIONS{LT}!><!CONFLICTING_JVM_DECLARATIONS{PSI}!>var x: Int<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>var x: Int = 1
set(v) {}<!> set(v) {}<!>
} }
@@ -1,9 +1,8 @@
// COMPARE_WITH_LIGHT_TREE
// !DIAGNOSTICS: -UNUSED_PARAMETER // !DIAGNOSTICS: -UNUSED_PARAMETER
class C { class C {
<!CONFLICTING_JVM_DECLARATIONS!>fun setX(x: Int)<!> {} <!CONFLICTING_JVM_DECLARATIONS!>fun setX(x: Int) {}<!>
var x: Int = 1 var x: Int = 1
<!CONFLICTING_JVM_DECLARATIONS!>set(v)<!> {} <!CONFLICTING_JVM_DECLARATIONS!>set(v) {}<!>
} }
@@ -1,8 +0,0 @@
// 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,8 +1,8 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
fun foo() { fun foo() {
class C { class C {
<!CONFLICTING_JVM_DECLARATIONS!>val x<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>val x = 1<!>
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>fun getX() = 1<!>
} }
} }
@@ -1,10 +0,0 @@
// 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,10 +1,10 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
class Outer { class Outer {
fun foo() { fun foo() {
class C { class C {
<!CONFLICTING_JVM_DECLARATIONS!>val x<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>val x = 1<!>
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>fun getX() = 1<!>
} }
} }
} }
@@ -1,8 +0,0 @@
// 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,8 +1,8 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
class B { class B {
class C { class C {
<!CONFLICTING_JVM_DECLARATIONS!>val x<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>val x = 1<!>
<!CONFLICTING_JVM_DECLARATIONS!>fun getX()<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>fun getX() = 1<!>
} }
} }
@@ -1,6 +0,0 @@
// 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,6 +1,6 @@
// COMPARE_WITH_LIGHT_TREE // FIR_IDENTICAL
object C { object C {
<!CONFLICTING_JVM_DECLARATIONS!>val x<!> = 1 <!CONFLICTING_JVM_DECLARATIONS!>val x = 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