diff options
Diffstat (limited to 'src/test/ui/issues/issue-18937.rs')
-rw-r--r-- | src/test/ui/issues/issue-18937.rs | 40 |
1 files changed, 0 insertions, 40 deletions
diff --git a/src/test/ui/issues/issue-18937.rs b/src/test/ui/issues/issue-18937.rs deleted file mode 100644 index af85e5b2b..000000000 --- a/src/test/ui/issues/issue-18937.rs +++ /dev/null @@ -1,40 +0,0 @@ -// Regression test for #18937. - -use std::fmt; - -#[derive(Debug)] -struct MyString<'a>(&'a String); - -struct B { - list: Vec<Box<dyn fmt::Debug>>, -} - -trait A<'a> { - fn foo<F>(&mut self, f: F) - where F: fmt::Debug + 'a, - Self: Sized; -} - -impl<'a> A<'a> for B { - fn foo<F>(&mut self, f: F) - where F: fmt::Debug + 'static, //~ ERROR impl has stricter - { - self.list.push(Box::new(f)); - } -} - -fn main() { - let mut b = B { list: Vec::new() }; - - // Create a borrowed pointer, put it in `b`, then drop what's borrowing it - let a = "hello".to_string(); - b.foo(MyString(&a)); - - // Drop the data which `b` has a reference to - drop(a); - - // Use the data, probably segfaulting - for b in b.list.iter() { - println!("{:?}", b); - } -} |