Implementation of exhaustive whens in control flow analysis.

Now control flow analyzer knows when is exhaustive.
If despite of this all conditions are accidentally false, jump to error is generated.
A set of tests (diagnostic, control flow). #KT-5113 Fixed. #KT-6046 Fixed. #KT-1882 Fixed.
This commit is contained in:
Mikhail Glukhikh
2015-05-12 19:20:31 +03:00
parent c4aa6d01a9
commit 0d7f649cc2
16 changed files with 367 additions and 1 deletions
@@ -0,0 +1,16 @@
// See KT-5113
enum class E {
A,
B
}
class Outer(e: E) {
private val prop: Int
init {
when(e ) {
// When is exhaustive, property is always initialized
E.A -> prop = 1
E.B -> prop = 2
}
}
}