```scala
function fname(a, ...kws) {
}
```
```scala
for pattern in iterator if condition {
run1
}
otherwise {
run2
}
let iter = iterator.into_iterator();
let mut no_run = true;
@1
loop {
@2
@5
if iter.next().is_none() {
@6
goto @4
@7
}
@8
no_run = false;
run1
@3
}
@4
@9
if no_run {
@10
run2
@11
}
@12
```
```scala
'outer: for va in &a {
for vb in &b {
if va == vb {
continue 'outer;
}
}
print("{va}");
}
print("end");
let ret = ();
let mut iter_a = a.into_iter();
loop {
@1
let va = iter_a.next();
if va.is_none() {
goto @4;
}
let va = va.unwrap();
let mut iter_b = b.into_iter();
loop {
@2
let vb = iter_b.next();
if vb.is_none() {
goto @3
}
let vb = vb.unwrap();
if va == vb {
goto @1
}
goto @2
}
@3
print("{va}");
goto @1
}
@4
print("end");
@5
// do drops here
ret
// alloc ret and locals
let ret = ();
.L0:
let mut iter_a = a.into_iter();
.L1:
let va = iter_a.next();
@JUMP_IF_NONE(va, .L4);
let va = va.unwrap();
let mut iter_b = b.into_iter();
.L2:
let vb = iter_b.next();
@JUMP_IF_NONE(vb, 3);
let vb = vb.unwrap();
@JUMP_IF_EQ(va, vb, .L1);
@JUMP(.L2);
.L3:
print("{va}");
@JUMP(.L1);
.L4:
print("end");
.L5:
// do drops here
ret
```