about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-08-28 20:30:36 -0700
committerbors <bors@rust-lang.org>2013-08-28 20:30:36 -0700
commit89d04009c160b7a88b03f42c633220457bd72a09 (patch)
tree8fd011b3cac9944e9425e80e571dce7ecde1a1a5
parent26e925a1f01f830f6ca1ff377461a6fab30dc9e6 (diff)
parent8557219cd85808d308ff954be31bfbab3e4f65f4 (diff)
downloadrust-89d04009c160b7a88b03f42c633220457bd72a09.tar.gz
rust-89d04009c160b7a88b03f42c633220457bd72a09.zip
auto merge of #8800 : fhahn/rust/ticket_5239, r=alexcrichton
I've added a test for the second example mentioned in #5239. The first example does not compile with a reasonable error message. Should I add a compile-fail test for that example as well?

    /rust/src/test/run-pass/issue-5239.rs:15:45: 15:51 error: binary operation + cannot be applied to type `&int`
    rust/src/test/run-pass/issue-5239.rs:15     let _f = |ref x: int| { x += 1};
                                                                                         ^~~~~~

    error: aborting due to previous error

-rw-r--r--src/test/compile-fail/issue-5239-1.rs15
-rw-r--r--src/test/run-pass/issue-5239-2.rs17
2 files changed, 32 insertions, 0 deletions
diff --git a/src/test/compile-fail/issue-5239-1.rs b/src/test/compile-fail/issue-5239-1.rs
new file mode 100644
index 00000000000..97317ec762a
--- /dev/null
+++ b/src/test/compile-fail/issue-5239-1.rs
@@ -0,0 +1,15 @@
+// Copyright 2013 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.
+
+// Regression test for issue #5239
+
+fn main() {
+    let x: &fn(int) -> int = |ref x| { x += 1; }; //~ ERROR binary operation + cannot be applied to type `&int`
+}
diff --git a/src/test/run-pass/issue-5239-2.rs b/src/test/run-pass/issue-5239-2.rs
new file mode 100644
index 00000000000..dac3c95e08a
--- /dev/null
+++ b/src/test/run-pass/issue-5239-2.rs
@@ -0,0 +1,17 @@
+// Copyright 2013 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.
+
+// Regression test for issue #5239
+
+fn main() { 
+    let _f: &fn(int) -> int = |ref x: int| { *x };
+    let foo = 10;
+    assert!(_f(foo) == 10);
+}