KT-10139: any if without else used in expression is an error

regardless of expected type: it can't be an expression, even of type Unit.

 #KT-10139 Fixed
This commit is contained in:
Dmitry Petrov
2015-11-27 16:06:11 +03:00
parent b0dab4c67a
commit 1a3a296827
8 changed files with 155 additions and 16 deletions
@@ -2,7 +2,7 @@ val flag = true
// type of a was checked by txt
val a/*: () -> Any*/ = l@ {
if (flag) return@l 4
<!INVALID_IF_AS_EXPRESSION!>if (flag) return@l 4<!>
}
val b/*: () -> Int */ = l@ {
@@ -1,7 +1,7 @@
val flag = true
val a: () -> Int = l@ {
<!TYPE_MISMATCH!>if (flag) return@l 4<!>
<!TYPE_MISMATCH, INVALID_IF_AS_EXPRESSION!>if (flag) return@l 4<!>
}
val b: () -> Unit = l@ {
@@ -9,7 +9,7 @@ val b: () -> Unit = l@ {
}
val c: () -> Any = l@ {
if (flag) return@l 4
<!INVALID_IF_AS_EXPRESSION!>if (flag) return@l 4<!>
}
val d: () -> Int = l@ {