diff options
| author | varkor <github@varkor.com> | 2019-02-25 23:55:00 +0000 |
|---|---|---|
| committer | varkor <github@varkor.com> | 2019-03-12 18:34:43 +0000 |
| commit | d49f4f86d91c41b6908140347045dbfa9d35d213 (patch) | |
| tree | 96181534d040cba74ffd6ae86bc35c51898a62c9 /src/test | |
| parent | 651c1abfb74b0e190fa5a010e59578fa967e2e94 (diff) | |
| download | rust-d49f4f86d91c41b6908140347045dbfa9d35d213.tar.gz rust-d49f4f86d91c41b6908140347045dbfa9d35d213.zip | |
Add a test for #26619
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/issues/issue-26619.rs | 24 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-26619.stderr | 12 |
2 files changed, 36 insertions, 0 deletions
diff --git a/src/test/ui/issues/issue-26619.rs b/src/test/ui/issues/issue-26619.rs new file mode 100644 index 00000000000..cd89c674e49 --- /dev/null +++ b/src/test/ui/issues/issue-26619.rs @@ -0,0 +1,24 @@ +#![feature(slice_patterns)] + +pub struct History<'a> { pub _s: &'a str } + +impl<'a> History<'a> { + pub fn get_page(&self) { + for s in vec!["1|2".to_string()].into_iter().filter_map(|ref line| self.make_entry(line)) { + //~^ ERROR borrowed value does not live long enough + println!("{:?}", s); + } + } + + fn make_entry(&self, s: &'a String) -> Option<&str> { + let parts: Vec<_> = s.split('|').collect(); + println!("{:?} -> {:?}", s, parts); + + if let [commit, ..] = &parts[..] { Some(commit) } else { None } + } +} + +fn main() { + let h = History{ _s: "" }; + h.get_page(); +} diff --git a/src/test/ui/issues/issue-26619.stderr b/src/test/ui/issues/issue-26619.stderr new file mode 100644 index 00000000000..3ac6c4e308d --- /dev/null +++ b/src/test/ui/issues/issue-26619.stderr @@ -0,0 +1,12 @@ +error[E0597]: borrowed value does not live long enough + --> $DIR/issue-26619.rs:7:66 + | +LL | for s in vec!["1|2".to_string()].into_iter().filter_map(|ref line| self.make_entry(line)) { + | ^^^^^^^^ -- temporary value needs to live until here + | | | + | | temporary value dropped here while still borrowed + | temporary value does not live long enough + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0597`. |
