[FIR2IR] Don't replace while loop and when branch body blocks with single expression. Skip some empty blocks.
https://youtrack.jetbrains.com/issue/KT-60264/K2-while-loop-body-block-sometimes-replaced-with-single-expression Merge-request: KT-MR-12035 Merged-by: Vladimir Sukharev <Vladimir.Sukharev@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
f4df4f8007
commit
9a2eff6487
@@ -8,8 +8,10 @@ fun testBreakFor() {
|
||||
val <iterator>: IntIterator = xs.iterator()
|
||||
while (<iterator>.hasNext()) { // BLOCK
|
||||
val x: Int = <iterator>.next()
|
||||
when {
|
||||
greater(arg0 = k, arg1 = 2) -> break
|
||||
{ // BLOCK
|
||||
when {
|
||||
greater(arg0 = k, arg1 = 2) -> break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -17,17 +19,21 @@ fun testBreakFor() {
|
||||
|
||||
fun testBreakWhile() {
|
||||
var k: Int = 0
|
||||
while (less(arg0 = k, arg1 = 10)) when {
|
||||
greater(arg0 = k, arg1 = 2) -> break
|
||||
while (less(arg0 = k, arg1 = 10)) { // BLOCK
|
||||
when {
|
||||
greater(arg0 = k, arg1 = 2) -> break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun testBreakDoWhile() {
|
||||
var k: Int = 0
|
||||
{ // BLOCK
|
||||
dowhen {
|
||||
do// COMPOSITE {
|
||||
when {
|
||||
greater(arg0 = k, arg1 = 2) -> break
|
||||
} while (less(arg0 = k, arg1 = 10))
|
||||
}
|
||||
// } while (less(arg0 = k, arg1 = 10))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,8 +47,10 @@ fun testContinueFor() {
|
||||
val <iterator>: IntIterator = xs.iterator()
|
||||
while (<iterator>.hasNext()) { // BLOCK
|
||||
val x: Int = <iterator>.next()
|
||||
when {
|
||||
greater(arg0 = k, arg1 = 2) -> continue
|
||||
{ // BLOCK
|
||||
when {
|
||||
greater(arg0 = k, arg1 = 2) -> continue
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -50,8 +58,10 @@ fun testContinueFor() {
|
||||
|
||||
fun testContinueWhile() {
|
||||
var k: Int = 0
|
||||
while (less(arg0 = k, arg1 = 10)) when {
|
||||
greater(arg0 = k, arg1 = 2) -> continue
|
||||
while (less(arg0 = k, arg1 = 10)) { // BLOCK
|
||||
when {
|
||||
greater(arg0 = k, arg1 = 2) -> continue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -74,3 +84,4 @@ fun testContinueDoWhile() {
|
||||
EQEQ(arg0 = s, arg1 = "1;2;").not() -> throw AssertionError(p0 = s)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user