diff options
| author | Dylan DPC <dylan.dpc@gmail.com> | 2021-02-14 16:54:53 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-02-14 16:54:53 +0100 |
| commit | bcb14035e9b07bf334e91854f5490e12a64bc161 (patch) | |
| tree | 611455f9f853740448cfcbd15fe2b73710a43c5a /src | |
| parent | c8dacf95aed03733fb67b939c5d08367fe1ace40 (diff) | |
| parent | 26ca5fb06f9153ea84397134e24d8db208df5fd0 (diff) | |
| download | rust-bcb14035e9b07bf334e91854f5490e12a64bc161.tar.gz rust-bcb14035e9b07bf334e91854f5490e12a64bc161.zip | |
Rollup merge of #82056 - b-naber:mut_for_loop_bug, r=oli-obk
fix ice (#82032) Fixes https://github.com/rust-lang/rust/issues/82032
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/borrowck/issue-82032.rs | 16 | ||||
| -rw-r--r-- | src/test/ui/borrowck/issue-82032.stderr | 14 |
2 files changed, 30 insertions, 0 deletions
diff --git a/src/test/ui/borrowck/issue-82032.rs b/src/test/ui/borrowck/issue-82032.rs new file mode 100644 index 00000000000..4a01b60c1f6 --- /dev/null +++ b/src/test/ui/borrowck/issue-82032.rs @@ -0,0 +1,16 @@ +use std::{fs, io::*}; +use std::collections::HashMap; + +type Handle = BufWriter<fs::File>; +struct Thing(HashMap<String, Handle>); + +impl Thing { + pub fn die_horribly(&mut self) { + for v in self.0.values() { + v.flush(); + //~^ ERROR cannot borrow + } + } +} + +fn main() {} diff --git a/src/test/ui/borrowck/issue-82032.stderr b/src/test/ui/borrowck/issue-82032.stderr new file mode 100644 index 00000000000..f272477a9f5 --- /dev/null +++ b/src/test/ui/borrowck/issue-82032.stderr @@ -0,0 +1,14 @@ +error[E0596]: cannot borrow `*v` as mutable, as it is behind a `&` reference + --> $DIR/issue-82032.rs:10:13 + | +LL | for v in self.0.values() { + | --------------- + | | | + | | help: use mutable method: `values_mut()` + | this iterator yields `&` references +LL | v.flush(); + | ^ `v` is a `&` reference, so the data it refers to cannot be borrowed as mutable + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0596`. |
