about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-05-28 14:35:00 -0700
committerbors <bors@rust-lang.org>2013-05-28 14:35:00 -0700
commit9a06ff05908234d92de9673734e089b0c315bdfd (patch)
tree0ecb6ef1ae1c25a0c08b2bd743785a1838c43f7f
parentd7e1f08b2115b3f5dd1497e993fb5b3029e70346 (diff)
parent7ad1cc71e3f686fa47406abe0c07550945d2304f (diff)
downloadrust-9a06ff05908234d92de9673734e089b0c315bdfd.tar.gz
rust-9a06ff05908234d92de9673734e089b0c315bdfd.zip
auto merge of #6707 : catamorphism/rust/issue-5543, r=catamorphism
-rw-r--r--src/test/compile-fail/issue-5543.rs20
-rw-r--r--src/test/run-pass/issue-4735.rs30
-rw-r--r--src/test/run-pass/issue-5550.rs15
-rw-r--r--src/test/run-pass/issue-5554.rs37
4 files changed, 102 insertions, 0 deletions
diff --git a/src/test/compile-fail/issue-5543.rs b/src/test/compile-fail/issue-5543.rs
new file mode 100644
index 00000000000..cad47eff013
--- /dev/null
+++ b/src/test/compile-fail/issue-5543.rs
@@ -0,0 +1,20 @@
+// 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.
+
+// xfail-test
+use core::io::ReaderUtil;
+use core::io::Reader;
+
+fn bar(r:@ReaderUtil) -> ~str { r.read_line() }
+
+fn main() {
+    let r : @Reader = io::stdin();
+    let _m = bar(r as @ReaderUtil);
+}
diff --git a/src/test/run-pass/issue-4735.rs b/src/test/run-pass/issue-4735.rs
new file mode 100644
index 00000000000..e17fa217329
--- /dev/null
+++ b/src/test/run-pass/issue-4735.rs
@@ -0,0 +1,30 @@
+// 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.
+
+
+use std::cast::transmute;
+use std::libc::c_void;
+
+struct NonCopyable(*c_void);
+
+impl Drop for NonCopyable {
+    fn finalize(&self) {
+        let p = **self;
+        let v = unsafe { transmute::<*c_void, ~int>(p) };
+    }
+}
+
+fn main() {
+    let t = ~0;
+    let p = unsafe { transmute::<~int, *c_void>(t) };
+    let z = NonCopyable(p);
+}
+
+
diff --git a/src/test/run-pass/issue-5550.rs b/src/test/run-pass/issue-5550.rs
new file mode 100644
index 00000000000..54abc850532
--- /dev/null
+++ b/src/test/run-pass/issue-5550.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.
+
+fn main() {
+    let s: ~str = ~"foobar";
+    let mut t: &str = s;
+    t = t.slice(0, 3); // for master: str::view(t, 0, 3) maybe
+}
diff --git a/src/test/run-pass/issue-5554.rs b/src/test/run-pass/issue-5554.rs
new file mode 100644
index 00000000000..9a0afc9d228
--- /dev/null
+++ b/src/test/run-pass/issue-5554.rs
@@ -0,0 +1,37 @@
+// 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.
+
+use std::num::Zero;
+
+pub struct X<T> {
+  a: T
+}
+
+// reordering these bounds stops the ICE
+impl<T: Zero + Eq + Zero>
+  Zero for X<T> {
+    fn zero() -> X<T> {
+      X { a: Zero::zero() }
+    }
+    fn is_zero(&self) -> bool {
+        self.a.is_zero()
+    }
+}
+
+macro_rules! constants {
+  () => {
+    let _0 : X<int> = Zero::zero();
+   }
+}
+
+
+pub fn main() {
+  constants!();
+}