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:
@@ -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?<!>
|
||||
@@ -0,0 +1,10 @@
|
||||
package
|
||||
|
||||
public val functionLiteral1: () -> kotlin.Any
|
||||
public val functionLiteral2: () -> kotlin.Any
|
||||
public val functionLiteral3: () -> kotlin.Any
|
||||
public fun bar(): kotlin.Any
|
||||
public fun baz(): kotlin.Any
|
||||
public fun baz(/*0*/ b: kotlin.Boolean): kotlin.Any?
|
||||
public fun foo(): kotlin.Any
|
||||
public fun </*0*/ T> id(/*0*/ x: T): T
|
||||
+6
-6
@@ -23,9 +23,9 @@ fun test() {
|
||||
val f = TODO() as Interface
|
||||
}
|
||||
|
||||
fun a() = TODO() <!USELESS_CAST!>as Any<!>
|
||||
fun b() = TODO() <!USELESS_CAST!>as Any?<!>
|
||||
fun c() = TODO() <!USELESS_CAST!>as OpenClass<!>
|
||||
fun d() = TODO() <!USELESS_CAST!>as FinalClass<!>
|
||||
fun e() = TODO() <!USELESS_CAST!>as AbstractClass<!>
|
||||
fun f() = TODO() <!USELESS_CAST!>as Interface<!>
|
||||
fun a() = TODO() as Any
|
||||
fun b() = TODO() as Any?
|
||||
fun c() = TODO() as OpenClass
|
||||
fun d() = TODO() as FinalClass
|
||||
fun e() = TODO() as AbstractClass
|
||||
fun f() = TODO() as Interface
|
||||
|
||||
Reference in New Issue
Block a user