about summary refs log tree commit diff
diff options
context:
space:
mode:
authorkennytm <kennytm@gmail.com>2018-03-14 16:29:53 +0800
committerkennytm <kennytm@gmail.com>2018-03-15 00:15:52 +0800
commit4074bafcf141201baf941ba4d2e9be53433ef04d (patch)
tree5bd9bfe8d7fabe0bc3fe64e4edc03f38267bf8ad
parent088bf643bdbca5228648e6459911015b56f8d2f8 (diff)
parent52bb99dcc7c918cc9568a3bd26801da07c1ce103 (diff)
downloadrust-4074bafcf141201baf941ba4d2e9be53433ef04d.tar.gz
rust-4074bafcf141201baf941ba4d2e9be53433ef04d.zip
Rollup merge of #48988 - bobtwinkles:add_48070_test, r=nikomatsakis
Add a test for #48070

Resolves #48070.
The bug itself was fixed by #48770, but that PR didn't add a test for it.

r? @nikomatsakis
-rw-r--r--src/test/ui/nll/issue-48070.rs35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/test/ui/nll/issue-48070.rs b/src/test/ui/nll/issue-48070.rs
new file mode 100644
index 00000000000..71d92c3702e
--- /dev/null
+++ b/src/test/ui/nll/issue-48070.rs
@@ -0,0 +1,35 @@
+// Copyright 2018 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+// run-pass
+// revisions: lxl nll
+
+#![cfg_attr(nll, feature(nll))]
+
+struct Foo {
+    x: u32
+}
+
+impl Foo {
+    fn twiddle(&mut self) -> &mut Self { self }
+    fn twaddle(&mut self) -> &mut Self { self }
+    fn emit(&mut self) {
+        self.x += 1;
+    }
+}
+
+fn main() {
+    let mut foo = Foo { x: 0 };
+    match 22 {
+        22 => &mut foo,
+        44 => foo.twiddle(),
+        _ => foo.twaddle(),
+    }.emit();
+}