Retain data flow info after binary calls
Make autocasts in CandidateResolver when checking value argument types #KT-2825 In Progress
This commit is contained in:
+16
@@ -0,0 +1,16 @@
|
||||
trait A
|
||||
|
||||
trait B : A
|
||||
fun B.compareTo(b: B) = if (this == b) 0 else 1
|
||||
|
||||
fun foo(a: A): Boolean {
|
||||
val result = (a as B) < a
|
||||
a : B
|
||||
return result
|
||||
}
|
||||
|
||||
fun bar(a: A, b: B): Boolean {
|
||||
val result = b < (a as B)
|
||||
a : B
|
||||
return result
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
fun foo(a: Number): Int {
|
||||
val result = (a as Int) compareTo a
|
||||
a : Int
|
||||
return result
|
||||
}
|
||||
|
||||
fun bar(a: Number): Int {
|
||||
val result = 42 compareTo (a as Int)
|
||||
a : Int
|
||||
return result
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
trait A
|
||||
|
||||
trait B : A
|
||||
fun B.plus(b: B) = if (this == b) b else this
|
||||
|
||||
fun foo(a: A): B {
|
||||
val result = (a as B) + a
|
||||
a : B
|
||||
return result
|
||||
}
|
||||
|
||||
fun bar(a: A, b: B): B {
|
||||
val result = b + (a as B)
|
||||
a : B
|
||||
return result
|
||||
}
|
||||
Reference in New Issue
Block a user