Diagnostic tests for duplicate JVM signatures

This commit is contained in:
Andrey Breslav
2014-05-25 18:14:34 +02:00
parent d25b2459d4
commit 27e61a75a1
47 changed files with 622 additions and 41 deletions
@@ -0,0 +1,8 @@
open class B {
fun getX() = 1
}
class C : B() {
val x: Int
<!CONFLICTING_PLATFORM_DECLARATIONS!>get() = 1<!>
}
@@ -0,0 +1,8 @@
open class B {
val x: Int
get() = 1
}
class C : B() {
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
}
@@ -0,0 +1,8 @@
trait T {
fun getX() = 1
}
class C : T {
val x: Int
<!CONFLICTING_PLATFORM_DECLARATIONS!>get() = 1<!>
}
@@ -0,0 +1,8 @@
trait T {
val x: Int
get() = 1
}
class C : T {
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
}
@@ -0,0 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: List<String>) {}<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: MutableList<String>) {}<!>
@@ -0,0 +1,12 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
trait Foo<T> {
fun foo(l: List<T>)
}
trait Bar<T> {
fun foo(l: List<T>)
}
<!CONFLICTING_PLATFORM_DECLARATIONS!>class Baz(f: Foo<String>, b: Bar<Int>): Foo<String> by f, Bar<Int> by b {
}<!>
@@ -0,0 +1,9 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
trait Foo<T> {
fun foo(l: List<T>)
}
class Bar(f: Foo<String>): Foo<String> by f {
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(l: List<Int>) {}<!>
}
@@ -0,0 +1,6 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class G<T>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: G<String>): G<Int> {null!!}<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: G<Int>): G<String> {null!!}<!>
@@ -0,0 +1,12 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
trait Foo<T> {
fun foo(l: List<T>) {}
}
trait Bar<T> {
fun foo(l: List<T>) {}
}
<!CONFLICTING_JVM_DECLARATIONS!>class Baz()<!>: Foo<String>, Bar<Int> {
}
@@ -0,0 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -PLATFORM_CLASS_MAPPED_TO_KOTLIN
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: List<String>) {}<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: java.util.List<String>) {}<!>
@@ -0,0 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: String) {}<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: String?) {}<!>
@@ -0,0 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -PLATFORM_CLASS_MAPPED_TO_KOTLIN
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: java.lang.String) {}<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(s: String) {}<!>
@@ -0,0 +1,4 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun <T> foo(x: T): T {null!!}<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: Any): Any {null!!}<!>
@@ -0,0 +1,6 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
trait Foo
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun <T: Foo> foo(x: T): T {null!!}<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: Foo): Foo {null!!}<!>
@@ -0,0 +1,8 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
trait Foo
trait Bar
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun <T: Foo> foo(x: T): T where T: Bar {null!!}<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: Foo): Foo {null!!}<!>
fun foo(x: Bar): Bar {null!!}
@@ -0,0 +1,8 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
trait Foo
trait Bar
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun <T> foo(x: T): T where T: Foo, T: Bar {null!!}<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: Foo): Foo {null!!}<!>
fun foo(x: Bar): Bar {null!!}
@@ -0,0 +1,4 @@
class C {
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
}
@@ -0,0 +1,6 @@
class C {
class object {
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
}
}
@@ -0,0 +1,6 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun foo(x: Any) {}<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun Any.foo() {}<!>
}
@@ -0,0 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX(t: Any) = 1<!>
val Any.x: Int
<!CONFLICTING_PLATFORM_DECLARATIONS!>get() = 1<!>
}
@@ -0,0 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun setX(x: Int) {}<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>var x: Int = 1<!>
}
@@ -0,0 +1,8 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun setX(x: Int) {}<!>
var x: Int = 1
<!CONFLICTING_PLATFORM_DECLARATIONS!>set(v) {}<!>
}
@@ -0,0 +1,6 @@
fun foo() {
class C {
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
}
}
@@ -0,0 +1,6 @@
class B {
class C {
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
}
}
@@ -0,0 +1,4 @@
object C {
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
}
@@ -0,0 +1,5 @@
fun foo() =
object {
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
}
@@ -0,0 +1,2 @@
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
@@ -0,0 +1,5 @@
// FILE: a.kt
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
// FILE: b.kt
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
@@ -0,0 +1,3 @@
val x: Int
<!CONFLICTING_PLATFORM_DECLARATIONS!>get() = 1<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
@@ -0,0 +1,5 @@
trait T {
val x: Int
<!CONFLICTING_PLATFORM_DECLARATIONS!>get() = 1<!>
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun getX() = 1<!>
}
@@ -0,0 +1,5 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
data class C(val c: Int) {
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun `copy$default`(c: C, x: Int, m: Int) = 1<!>
}
@@ -0,0 +1,6 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
<!CONFLICTING_PLATFORM_DECLARATIONS!>class C {
<!CONFLICTING_PLATFORM_DECLARATIONS!>fun `a$default`(c: C, x: Int, m: Int) {}<!>
fun a(x: Int = 1) {}
}<!>
@@ -0,0 +1,5 @@
trait Foo
class Bar(f: Foo) : Foo by f {
<!CONFLICTING_PLATFORM_DECLARATIONS!>val `$delegate_0`: Foo? = null<!>
}
@@ -0,0 +1,7 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
class C {
<!CONFLICTING_PLATFORM_DECLARATIONS!>inner class D {
<!CONFLICTING_PLATFORM_DECLARATIONS!>val `this$0`: C? = null<!>
}<!>
}
@@ -0,0 +1,7 @@
trait T {
fun getX() = 1
}
class C : T {
<!CONFLICTING_PLATFORM_DECLARATIONS!>val x = 1<!>
}
@@ -0,0 +1,11 @@
trait T1 {
fun getX() = 1
}
trait T2 {
val x: Int
get() = 1
}
<!CONFLICTING_PLATFORM_DECLARATIONS!>class C : T1, T2<!> {
}