// skip-filecheck //@ compile-flags: -O -Zmir-opt-level=2 -g //@ needs-unwind #![crate_type = "lib"] pub fn int_range(start: usize, end: usize) { for i in start..end { opaque(i) } } pub fn mapped(iter: impl Iterator, f: impl Fn(T) -> U) { for x in iter.map(f) { opaque(x) } } pub fn filter_mapped(iter: impl Iterator, f: impl Fn(T) -> Option) { for x in iter.filter_map(f) { opaque(x) } } pub fn vec_move(mut v: Vec) { for x in v { opaque(x) } } #[inline(never)] fn opaque(_: impl Sized) {} // EMIT_MIR loops.int_range.PreCodegen.after.mir // EMIT_MIR loops.mapped.PreCodegen.after.mir // EMIT_MIR loops.filter_mapped.PreCodegen.after.mir // EMIT_MIR loops.vec_move.PreCodegen.after.mir