]> git.lizzy.rs Git - rust.git/commitdiff
test: Add tests for closed issues
authorAlex Crichton <alex@alexcrichton.com>
Mon, 28 Apr 2014 03:27:20 +0000 (20:27 -0700)
committerAlex Crichton <alex@alexcrichton.com>
Mon, 28 Apr 2014 03:35:51 +0000 (20:35 -0700)
Closes #5518
Closes #7320
Closes #8391
Closes #8827
Closes #8983
Closes #10683
Closes #10802
Closes #11515

src/test/auxiliary/issue-5518.rs [new file with mode: 0644]
src/test/compile-fail/issue-11515.rs [new file with mode: 0644]
src/test/run-pass/issue-10683.rs [new file with mode: 0644]
src/test/run-pass/issue-10802.rs [new file with mode: 0644]
src/test/run-pass/issue-5518.rs [new file with mode: 0644]
src/test/run-pass/issue-7320.rs [new file with mode: 0644]
src/test/run-pass/issue-8391.rs [new file with mode: 0644]
src/test/run-pass/issue-8827.rs [new file with mode: 0644]
src/test/run-pass/issue-8983.rs [new file with mode: 0644]

diff --git a/src/test/auxiliary/issue-5518.rs b/src/test/auxiliary/issue-5518.rs
new file mode 100644 (file)
index 0000000..cea227e
--- /dev/null
@@ -0,0 +1,14 @@
+// Copyright 2012-2014 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.
+
+trait A<'a, T> {
+    fn f(&mut self) -> &'a mut T;
+    fn p() -> T;
+}
diff --git a/src/test/compile-fail/issue-11515.rs b/src/test/compile-fail/issue-11515.rs
new file mode 100644 (file)
index 0000000..52288a9
--- /dev/null
@@ -0,0 +1,18 @@
+// Copyright 2014 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.
+
+struct Test<'s> {
+    func: ||: 's,
+}
+
+fn main() {
+    let test = ~Test { func: proc() {} };
+    //~^ ERROR: expected `||` but found `proc()`
+}
diff --git a/src/test/run-pass/issue-10683.rs b/src/test/run-pass/issue-10683.rs
new file mode 100644 (file)
index 0000000..934adc0
--- /dev/null
@@ -0,0 +1,20 @@
+// Copyright 2014 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::ascii::StrAsciiExt;
+
+static NAME: &'static str = "hello world";
+
+fn main() {
+    match NAME.to_ascii_lower().as_slice() {
+        "foo" => {}
+        _ => {}
+    }
+}
diff --git a/src/test/run-pass/issue-10802.rs b/src/test/run-pass/issue-10802.rs
new file mode 100644 (file)
index 0000000..b7b65c9
--- /dev/null
@@ -0,0 +1,37 @@
+// Copyright 2014 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.
+
+struct DroppableStruct;
+
+static mut DROPPED: bool = false;
+
+impl Drop for DroppableStruct {
+    fn drop(&mut self) {
+        unsafe { DROPPED = true; }
+    }
+}
+
+trait MyTrait { }
+impl MyTrait for ~DroppableStruct {}
+
+struct Whatever { w: ~MyTrait }
+impl  Whatever {
+    fn new(w: ~MyTrait) -> Whatever {
+        Whatever { w: w }
+    }
+}
+
+fn main() {
+    {
+        let f = ~DroppableStruct;
+        let _a = Whatever::new(~f as ~MyTrait);
+    }
+    assert!(unsafe { DROPPED });
+}
diff --git a/src/test/run-pass/issue-5518.rs b/src/test/run-pass/issue-5518.rs
new file mode 100644 (file)
index 0000000..bc24870
--- /dev/null
@@ -0,0 +1,15 @@
+// Copyright 2012-2014 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.
+
+// aux-build:issue-5518.rs
+
+extern crate other = "issue-5518";
+
+fn main() {}
diff --git a/src/test/run-pass/issue-7320.rs b/src/test/run-pass/issue-7320.rs
new file mode 100644 (file)
index 0000000..ccd2e80
--- /dev/null
@@ -0,0 +1,17 @@
+// Copyright 2014 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.
+
+trait Foo {
+    fn foo(~self) { bar(self as ~Foo); }
+}
+
+fn bar(_b: ~Foo) { }
+
+fn main() {}
diff --git a/src/test/run-pass/issue-8391.rs b/src/test/run-pass/issue-8391.rs
new file mode 100644 (file)
index 0000000..fdd27f8
--- /dev/null
@@ -0,0 +1,16 @@
+// Copyright 2014 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 _x = match Some(1) {
+        _y @ Some(_) => 1,
+        None => 2,
+    };
+}
diff --git a/src/test/run-pass/issue-8827.rs b/src/test/run-pass/issue-8827.rs
new file mode 100644 (file)
index 0000000..73e4a27
--- /dev/null
@@ -0,0 +1,58 @@
+// Copyright 2014 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 periodical(n: int) -> Receiver<bool> {
+    let (chan, port) = channel();
+    spawn(proc() {
+        loop {
+            for _ in range(1, n) {
+                match chan.send_opt(false) {
+                    Ok(()) => {}
+                    Err(..) => break,
+                }
+            }
+            match chan.send_opt(true) {
+                Ok(()) => {}
+                Err(..) => break
+            }
+        }
+    });
+    return port;
+}
+
+fn integers() -> Receiver<int> {
+    let (chan, port) = channel();
+    spawn(proc() {
+        let mut i = 1;
+        loop {
+            match chan.send_opt(i) {
+                Ok(()) => {}
+                Err(..) => break,
+            }
+            i = i + 1;
+        }
+    });
+    return port;
+}
+
+fn main() {
+    let ints = integers();
+    let threes = periodical(3);
+    let fives = periodical(5);
+    for _ in range(1, 100) {
+        match (ints.recv(), threes.recv(), fives.recv()) {
+            (_, true, true) => println!("FizzBuzz"),
+            (_, true, false) => println!("Fizz"),
+            (_, false, true) => println!("Buzz"),
+            (i, false, false) => println!("{}", i)
+        }
+    }
+}
+
diff --git a/src/test/run-pass/issue-8983.rs b/src/test/run-pass/issue-8983.rs
new file mode 100644 (file)
index 0000000..6efec00
--- /dev/null
@@ -0,0 +1,19 @@
+// Copyright 2014 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.
+
+#![feature(managed_boxes)]
+
+fn main() {
+    fn f(_: proc()) {}
+    fn eat<T>(_: T) {}
+
+    let x = @1;
+    f(proc() { eat(x) });
+}