Open
Description
Compiling the following code on stable result in an error message which is referring to a non-existent variable __next
use std::collections::HashMap;
use std::hash::Hash;
fn group_by<I, F, T>(xs: &mut I, f: F) -> HashMap<T, Vec<&I::Item>>
where
I: Iterator,
F: Fn(&I::Item) -> T,
T: Eq + Hash,
{
let mut result = HashMap::new();
for ref x in xs {
let key = f(x);
result.entry(key).or_insert(Vec::new()).push(x);
}
result
}
The error message:
$ rustup run stable rustc --crate-type lib lib.rs
error[E0515]: cannot return value referencing local variable `__next`
--> lib.rs:15:5
|
11 | for ref x in xs {
| ----- `__next` is borrowed here
...
15 | result
| ^^^^^^ returns a value referencing data owned by the current function
error: aborting due to previous error
For more information about this error, try `rustc --explain E0515`.
rustc --version --verbose
:
rustc 1.36.0 (a53f9df32 2019-07-03)
binary: rustc
commit-hash: a53f9df32fbb0b5f4382caaad8f1a46f36ea887c
commit-date: 2019-07-03
host: x86_64-unknown-linux-gnu
release: 1.36.0
LLVM version: 8.0