summaryrefslogtreecommitdiffstats
path: root/tests/ui/regions/regions-addr-of-self.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/regions/regions-addr-of-self.rs')
-rw-r--r--tests/ui/regions/regions-addr-of-self.rs28
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/ui/regions/regions-addr-of-self.rs b/tests/ui/regions/regions-addr-of-self.rs
new file mode 100644
index 000000000..23647182f
--- /dev/null
+++ b/tests/ui/regions/regions-addr-of-self.rs
@@ -0,0 +1,28 @@
+struct Dog {
+ cats_chased: usize,
+}
+
+impl Dog {
+ pub fn chase_cat(&mut self) {
+ let p: &'static mut usize = &mut self.cats_chased;
+ //~^ ERROR lifetime may not live long enough
+ *p += 1;
+ }
+
+ pub fn chase_cat_2(&mut self) {
+ let p: &mut usize = &mut self.cats_chased;
+ *p += 1;
+ }
+}
+
+fn dog() -> Dog {
+ Dog {
+ cats_chased: 0
+ }
+}
+
+fn main() {
+ let mut d = dog();
+ d.chase_cat();
+ println!("cats_chased: {}", d.cats_chased);
+}