// Regression test for #23729 | |
fn main() { | |
let fib = { | |
struct Recurrence { | |
mem: [u64; 2], | |
pos: usize, | |
} | |
impl Iterator for Recurrence { | |
//~^ ERROR E0046 | |
#[inline] | |
fn next(&mut self) -> Option<u64> { | |
if self.pos < 2 { | |
let next_val = self.mem[self.pos]; | |
self.pos += 1; | |
Some(next_val) | |
} else { | |
let next_val = self.mem[0] + self.mem[1]; | |
self.mem[0] = self.mem[1]; | |
self.mem[1] = next_val; | |
Some(next_val) | |
} | |
} | |
} | |
Recurrence { mem: [0, 1], pos: 0 } | |
}; | |
for e in fib.take(10) { | |
println!("{}", e) | |
} | |
} |