FIR: don't flatten for loop blocks in raw FIR builder
This commit is contained in:
+442
-435
File diff suppressed because it is too large
Load Diff
+11
-8
@@ -10,17 +10,20 @@ FILE: boundSmartcastsInBranches.kt
|
||||
}
|
||||
public final fun test_0(list: R|kotlin/collections/List<A>|): R|kotlin/Unit| {
|
||||
lvar goodA: R|A?| = Null(null)
|
||||
lval <iterator>: R|kotlin/collections/Iterator<A>| = R|<local>/list|.R|SubstitutionOverride<kotlin/collections/List.iterator: R|kotlin/collections/Iterator<A>|>|()
|
||||
while(R|<local>/<iterator>|.R|kotlin/collections/Iterator.hasNext|()) {
|
||||
lval a: R|A| = R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.next: R|A|>|()
|
||||
when () {
|
||||
==(R|<local>/goodA|, Null(null)) -> {
|
||||
R|<local>/goodA| = R|<local>/a|
|
||||
continue@@@[R|<local>/<iterator>|.R|kotlin/collections/Iterator.hasNext|()]
|
||||
{
|
||||
lval <iterator>: R|kotlin/collections/Iterator<A>| = R|<local>/list|.R|SubstitutionOverride<kotlin/collections/List.iterator: R|kotlin/collections/Iterator<A>|>|()
|
||||
while(R|<local>/<iterator>|.R|kotlin/collections/Iterator.hasNext|()) {
|
||||
lval a: R|A| = R|<local>/<iterator>|.R|SubstitutionOverride<kotlin/collections/Iterator.next: R|A|>|()
|
||||
when () {
|
||||
==(R|<local>/goodA|, Null(null)) -> {
|
||||
R|<local>/goodA| = R|<local>/a|
|
||||
continue@@@[R|<local>/<iterator>|.R|kotlin/collections/Iterator.hasNext|()]
|
||||
}
|
||||
}
|
||||
|
||||
R|<local>/goodA|.R|/A.s|
|
||||
}
|
||||
|
||||
R|<local>/goodA|.R|/A.s|
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user