diff --git a/src/test/auxiliary/issue-5518.rs b/src/test/auxiliary/issue-5518.rs new file mode 100644 index 0000000000000..cea227e050f83 --- /dev/null +++ b/src/test/auxiliary/issue-5518.rs @@ -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 or the MIT license +// , 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 index 0000000000000..52288a9ce020a --- /dev/null +++ b/src/test/compile-fail/issue-11515.rs @@ -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 or the MIT license +// , 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 index 0000000000000..934adc07e2f15 --- /dev/null +++ b/src/test/run-pass/issue-10683.rs @@ -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 or the MIT license +// , 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 index 0000000000000..b7b65c9de0a6c --- /dev/null +++ b/src/test/run-pass/issue-10802.rs @@ -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 or the MIT license +// , 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 index 0000000000000..bc24870e5df76 --- /dev/null +++ b/src/test/run-pass/issue-5518.rs @@ -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 or the MIT license +// , 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 index 0000000000000..ccd2e8077399f --- /dev/null +++ b/src/test/run-pass/issue-7320.rs @@ -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 or the MIT license +// , 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 index 0000000000000..fdd27f8542fc7 --- /dev/null +++ b/src/test/run-pass/issue-8391.rs @@ -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 or the MIT license +// , 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 index 0000000000000..73e4a2716b829 --- /dev/null +++ b/src/test/run-pass/issue-8827.rs @@ -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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +fn periodical(n: int) -> Receiver { + 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 { + 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 index 0000000000000..6efec00e7efd0 --- /dev/null +++ b/src/test/run-pass/issue-8983.rs @@ -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 or the MIT license +// , 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) {} + + let x = @1; + f(proc() { eat(x) }); +}