Change Signature: Fix detection of conflicts in generic classes

This commit is contained in:
Alexey Sedunov
2014-10-01 15:08:13 +04:00
parent 609caa8159
commit 73fc984c4c
6 changed files with 79 additions and 6 deletions
@@ -0,0 +1,14 @@
open class C0<X>(val x: X) {}
open class C1<T: Any> (var _x1: T? = null, _x2: Double?, val _x3: ((Int) -> Int)?) : C0<((Int) -> Int)?>(_x3){
fun bar() {
val y1 = _x1;
val y2 = _x2;
}
}
class C2 : C1<Int>(1, 2.5, null<caret>) {
fun foo() {
var c = C1(2, 3.5, null);
c = C1(_x1 = 2, _x2 = 3.5, _x3 = null);
}
}
@@ -0,0 +1,14 @@
open class C0<X>(val x: X) {}
open class C1<T: Any> protected (val x1: T? = null, var x2: Double, x3: ((Int) -> Int)?) : C0<((Int) -> Int)?>(x3){
fun bar() {
val y1 = x1;
val y2 = x2;
}
}
class C2 : C1<Int>(1, 2.5, null<caret>) {
fun foo() {
var c = C1(2, 3.5, null);
c = C1(x1 = 2, x2 = 3.5, x3 = null);
}
}
@@ -0,0 +1,12 @@
public fun foo<T: Any>(<caret>_x1: T? = null, _x2: Double?, _x3: ((T) -> T)?) {
foo(2, 3.5, null);
val y1 = _x1;
val y2 = _x2;
val y3 = _x3;
foo(_x3 = null, _x1 = 2, _x2 = 3.5);
}
fun bar() {
foo(_x1 = 2, _x2 = 3.5, _x3 = null);
foo(_x3 = null, _x1 = 2, _x2 = 3.5);
}
@@ -0,0 +1,12 @@
fun foo<T: Any>(<caret>x1: T? = null, x2: Double, x3: ((T) -> T)?) {
foo(2, 3.5, null);
val y1 = x1;
val y2 = x2;
val y3 = x3;
foo(x3 = null, x1 = 2, x2 = 3.5);
}
fun bar() {
foo(x1 = 2, x2 = 3.5, x3 = null);
foo(x3 = null, x1 = 2, x2 = 3.5);
}