Branched value refactoring, And/Or support

This commit is contained in:
Michael Bogdanov
2015-04-04 17:00:07 +03:00
parent c63ac3e30a
commit c7fe8e0b66
8 changed files with 179 additions and 76 deletions
@@ -0,0 +1,17 @@
fun main() {
val a = false
val b = false
val c = false
if (a && b && c) {
"then"
} else {
"else"
}
}
// 3 ICONST_0
// 0 ICONST_1
// 3 IFEQ
// 0 IFNE
// 3 IF
// 1 GOTO
@@ -0,0 +1,17 @@
fun main() {
val a = false
val b = false
val c = false
if (a || b || c) {
"then"
} else {
"else"
}
}
// 3 ICONST_0
// 0 ICONST_1
// 1 IFEQ
// 2 IFNE
// 3 IF
// 1 GOTO
@@ -0,0 +1,17 @@
fun main() {
val a = false
val b = false
val c = false
if (!(a && b && c)) {
"then"
} else {
"else"
}
}
// 3 ICONST_0
// 0 ICONST_1
// 2 IFEQ
// 1 IFNE
// 3 IF
// 1 GOTO
@@ -0,0 +1,17 @@
fun main() {
val a = false
val b = false
val c = false
if (!(a || b || c)) {
"then"
} else {
"else"
}
}
// 3 ICONST_0
// 0 ICONST_1
// 0 IFEQ
// 3 IFNE
// 3 IF
// 1 GOTO