Report the error when a declaration in Kotlin accidentally overrides a static member from Java

This commit is contained in:
Zalim Bashorov
2015-10-09 21:40:33 +03:00
parent 72a686f9e0
commit 79d38a6c8f
26 changed files with 756 additions and 14 deletions
@@ -0,0 +1,29 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// FILE: A.java
public interface A {
public static void foo() {}
public static void baz(String s) {}
}
// FILE: B.java
public interface B extends A {
public static void bar(int i) {}
}
// FILE: K.kt
open class K : B {
fun foo() {}
fun foo(a: Any) {}
fun bar(i: Int) {}
fun bar(i: String) {}
fun baz(i: Int) {}
companion object {
fun foo() {}
fun bar(i: Int) {}
}
}
@@ -0,0 +1,41 @@
package
public interface A {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
// Static members
public open fun baz(/*0*/ s: kotlin.String!): kotlin.Unit
public open fun foo(): kotlin.Unit
}
public interface B : A {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
// Static members
public open fun bar(/*0*/ i: kotlin.Int): kotlin.Unit
}
public open class K : B {
public constructor K()
public final fun bar(/*0*/ i: kotlin.Int): kotlin.Unit
public final fun bar(/*0*/ i: kotlin.String): kotlin.Unit
public final fun baz(/*0*/ i: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Unit
public final fun foo(/*0*/ a: kotlin.Any): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public companion object Companion {
private constructor Companion()
public final fun bar(/*0*/ i: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
@@ -0,0 +1,22 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// FILE: A.java
public interface A {
public String a = ""
public static void foo() {}
public static void baz(String s) {}
}
// FILE: K.kt
open class K : A {
val a = ""
fun foo() {}
fun foo(i: Int) {}
fun baz(i: Int) {}
companion object {
fun foo() {}
}
}
@@ -0,0 +1,31 @@
package
public interface A {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
// Static members
public const final val a: kotlin.String = ""
public open fun baz(/*0*/ s: kotlin.String!): kotlin.Unit
public open fun foo(): kotlin.Unit
}
public open class K : A {
public constructor K()
public final val a: kotlin.String = ""
public final fun baz(/*0*/ i: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Unit
public final fun foo(/*0*/ i: kotlin.Int): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public companion object Companion {
private constructor Companion()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}