Permalink
Browse files

test: Add tests for closed issues

Closes #5518
Closes #7320
Closes #8391
Closes #8827
Closes #8983
Closes #10683
Closes #10802
Closes #11515
  • Loading branch information...
1 parent ff25d62 commit 35f295d2a9c9df56c10200b26df79b421ec5fcbf @alexcrichton alexcrichton committed Apr 28, 2014
@@ -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;
+}
@@ -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()`
+}
@@ -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" => {}
+ _ => {}
+ }
+}
@@ -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 });
+}
@@ -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() {}
@@ -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() {}
@@ -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,
@chris-morgan

chris-morgan May 12, 2014

Member

This is not what #8391 was about; insert ref at the start of the line and then we're talking business. (And then it is a failing test.)

+ None => 2,
+ };
+}
@@ -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)
+ }
+ }
+}
+
@@ -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) });
+}

5 comments on commit 35f295d

Contributor

bors replied Apr 28, 2014

saw approval from sfackler
at alexcrichton/rust@35f295d

Contributor

bors replied Apr 28, 2014

merging alexcrichton/rust/closed-issues = 35f295d into auto

Contributor

bors replied Apr 28, 2014

alexcrichton/rust/closed-issues = 35f295d merged ok, testing candidate = 7a19a82

Contributor

bors replied Apr 28, 2014

fast-forwarding master to auto = 7a19a82

Please sign in to comment.