about summary refs log tree commit diff
path: root/tests/ui/issues/issue-22886.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/issues/issue-22886.rs')
-rw-r--r--tests/ui/issues/issue-22886.rs21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/ui/issues/issue-22886.rs b/tests/ui/issues/issue-22886.rs
new file mode 100644
index 00000000000..f8b576e094d
--- /dev/null
+++ b/tests/ui/issues/issue-22886.rs
@@ -0,0 +1,21 @@
+// Regression test for #22886.
+
+fn crash_please() {
+    let mut iter = Newtype(Some(Box::new(0)));
+    let saved = iter.next().unwrap();
+    println!("{}", saved);
+    iter.0 = None;
+    println!("{}", saved);
+}
+
+struct Newtype(Option<Box<usize>>);
+
+impl<'a> Iterator for Newtype { //~ ERROR E0207
+    type Item = &'a Box<usize>;
+
+    fn next(&mut self) -> Option<&Box<usize>> {
+        self.0.as_ref()
+    }
+}
+
+fn main() { }