Skip to content

Commit

Permalink
auto merge of #13811 : alexcrichton/rust/closed-issues, r=sfackler
Browse files Browse the repository at this point in the history
Closes #5518
Closes #7320
Closes #8391
Closes #8827
Closes #8983
Closes #10683
Closes #10802
Closes #11515
  • Loading branch information
bors committed Apr 28, 2014
2 parents 4e55bc7 + 35f295d commit 7a19a82
Show file tree
Hide file tree
Showing 9 changed files with 214 additions and 0 deletions.
14 changes: 14 additions & 0 deletions src/test/auxiliary/issue-5518.rs
Original file line number Diff line number Diff line change
@@ -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;
}
18 changes: 18 additions & 0 deletions src/test/compile-fail/issue-11515.rs
Original file line number Diff line number Diff line change
@@ -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()`
}
20 changes: 20 additions & 0 deletions src/test/run-pass/issue-10683.rs
Original file line number Diff line number Diff line change
@@ -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" => {}
_ => {}
}
}
37 changes: 37 additions & 0 deletions src/test/run-pass/issue-10802.rs
Original file line number Diff line number Diff line change
@@ -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 });
}
15 changes: 15 additions & 0 deletions src/test/run-pass/issue-5518.rs
Original file line number Diff line number Diff line change
@@ -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() {}
17 changes: 17 additions & 0 deletions src/test/run-pass/issue-7320.rs
Original file line number Diff line number Diff line change
@@ -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() {}
16 changes: 16 additions & 0 deletions src/test/run-pass/issue-8391.rs
Original file line number Diff line number Diff line change
@@ -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,
};
}
58 changes: 58 additions & 0 deletions src/test/run-pass/issue-8827.rs
Original file line number Diff line number Diff line change
@@ -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)
}
}
}

19 changes: 19 additions & 0 deletions src/test/run-pass/issue-8983.rs
Original file line number Diff line number Diff line change
@@ -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) });
}

0 comments on commit 7a19a82

Please sign in to comment.