Fix false USELESS_CAST in function with expression body

Note that current behaviour is made similar to the case with
properties initializers/accessors, which means that more complex
cases are not covered yet (see KT-20801) #KT-20802 fixed.
This commit is contained in:
Dmitry Savvinov
2017-10-17 13:46:18 +03:00
parent a1778a7da8
commit 58b815d842
6 changed files with 43 additions and 8 deletions
@@ -0,0 +1,12 @@
fun <T> id(x: T): T = x
fun foo() = 1 as Any
fun bar() = id(1) as Any
fun baz() = (1 + 1) as Any
val functionLiteral1 = fun() = 1 as Any
val functionLiteral2 = fun() = id(1) as Any
val functionLiteral3 = fun() = (1 + 1) as Any
// TODO: this and more complex cases are not supported yet
fun baz(b: Boolean) = if (b) 1 <!USELESS_CAST!>as Any<!> else 42 <!USELESS_CAST!>as Any?<!>