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,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!!}