Skip to content

Commit a5bc24c

Browse files
committed
1 parent ff28f24 commit a5bc24c

File tree

1 file changed

+19
-9
lines changed

1 file changed

+19
-9
lines changed

src/tree_builder/rules.rs

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -373,15 +373,25 @@ impl<'sink, Handle: Clone, Sink: TreeSink<Handle>>
373373
self.frameset_ok = false;
374374

375375
let mut to_close = None;
376-
for node in self.open_elems.iter().rev() {
377-
let nsname = self.sink.elem_name(node.clone());
378-
if can_close(nsname.clone()) {
379-
let (_, name) = nsname;
380-
to_close = Some(name);
381-
break;
382-
}
383-
if extra_special(nsname.clone()) {
384-
break;
376+
// FIXME: using a 'for' loop here ICEs the compiler
377+
// (rust-lang/rust#16643)
378+
{
379+
let mut iter = self.open_elems.iter().rev();
380+
loop {
381+
match iter.next() {
382+
None => break,
383+
Some(node) => {
384+
let nsname = self.sink.elem_name(node.clone());
385+
if can_close(nsname.clone()) {
386+
let (_, name) = nsname;
387+
to_close = Some(name);
388+
break;
389+
}
390+
if extra_special(nsname.clone()) {
391+
break;
392+
}
393+
}
394+
}
385395
}
386396
}
387397

0 commit comments

Comments
 (0)