A warning added: parameter names disagree upon override
This should be an error, but there is an issue with Java interop: Java parameters may change names or not have them.
This commit is contained in:
+15
@@ -0,0 +1,15 @@
|
||||
trait C {
|
||||
fun foo(a : Int)
|
||||
}
|
||||
|
||||
trait D {
|
||||
fun foo(b : Int)
|
||||
}
|
||||
|
||||
trait <!DIFFERENT_NAMES_FOR_THE_SAME_PARAMETER_IN_SUPERTYPES!>E<!> : C, D
|
||||
trait F : C, D {
|
||||
|
||||
override fun foo(<!PARAMETER_NAME_CHANGED_ON_OVERRIDE!>a<!> : Int) {
|
||||
throw UnsupportedOperationException()
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
trait A {
|
||||
fun b(a : Int)
|
||||
}
|
||||
|
||||
trait B : A {}
|
||||
|
||||
class C1 : A {
|
||||
override fun b(<!PARAMETER_NAME_CHANGED_ON_OVERRIDE!>b<!> : Int) {}
|
||||
}
|
||||
|
||||
class C2 : B {
|
||||
override fun b(<!PARAMETER_NAME_CHANGED_ON_OVERRIDE!>b<!> : Int) {}
|
||||
}
|
||||
@@ -4,12 +4,10 @@ open class A {
|
||||
|
||||
class C : A() {
|
||||
override fun foo(a : Int = <!DEFAULT_VALUE_NOT_ALLOWED_IN_OVERRIDE!>1<!>) {
|
||||
super<A>.foo(a)
|
||||
}
|
||||
}
|
||||
|
||||
class D : A() {
|
||||
override fun foo(b : Int = <!DEFAULT_VALUE_NOT_ALLOWED_IN_OVERRIDE!>1<!>) {
|
||||
super<A>.foo(b)
|
||||
override fun foo(a : Int = <!DEFAULT_VALUE_NOT_ALLOWED_IN_OVERRIDE!>1<!>) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,14 +30,14 @@ class MyChildClass2<T>(t : T) : MyGenericClass<T>(t) {
|
||||
}
|
||||
|
||||
open class MyClass() : MyTrait<Int>, MyAbstractClass<String>() {
|
||||
override fun foo(i: Int) = i
|
||||
override fun bar(s: String) = s
|
||||
override fun foo(t: Int) = t
|
||||
override fun bar(t: String) = t
|
||||
override val pr : String = "1"
|
||||
}
|
||||
|
||||
abstract class MyAbstractClass1 : MyTrait<Int>, MyAbstractClass<String>() {
|
||||
override fun foo(i: Int) = i
|
||||
override fun bar(s: String) = s
|
||||
override fun foo(t: Int) = t
|
||||
override fun bar(t: String) = t
|
||||
}
|
||||
|
||||
class <!ABSTRACT_MEMBER_NOT_IMPLEMENTED!>MyIllegalGenericClass1<!><T> : MyTrait<T>, MyAbstractClass<T>() {}
|
||||
|
||||
Reference in New Issue
Block a user