Do not report IMPLICIT_CAST_TO_ANY on last statement of lambda with Unit(?) in at least one branch.

This commit is contained in:
Dmitry Petrov
2016-02-04 15:57:39 +03:00
parent fa8706b46a
commit e4583fd275
15 changed files with 314 additions and 26 deletions
@@ -0,0 +1,31 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
fun println() {}
fun foo(x: Any) {}
fun <T> fooGeneric(x: T) {}
fun testMixedIfAndWhen() =
if (true)
when {
true -> if (true) <!IMPLICIT_CAST_TO_ANY!>42<!>
else <!IMPLICIT_CAST_TO_ANY!>1<!>
true -> if (true) <!IMPLICIT_CAST_TO_ANY!>42<!>
else <!IMPLICIT_CAST_TO_ANY!>println()<!>
else -> <!INVALID_IF_AS_EXPRESSION!>if (true) <!IMPLICIT_CAST_TO_ANY!>println()<!><!>
}
else <!IMPLICIT_CAST_TO_ANY!>println()<!>
fun testWrappedExpressions() =
if (true) {
println()
<!INVALID_IF_AS_EXPRESSION!>if (true) {
println()
if (true) {
<!IMPLICIT_CAST_TO_ANY!>println()<!>
}
else <!IMPLICIT_CAST_TO_ANY!>{}<!>
}<!>
}
else {
(((<!IMPLICIT_CAST_TO_ANY!>((42)) + 1<!>)))
}