Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add a bunch of tests for closed issues #8485

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/libstd/fmt/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ string.
Because formatting is done via traits, there is no requirement that the
`d` format actually takes an `int`, but rather it simply requires a type which
ascribes to the `Signed` formatting trait. There are various parameters which do
require a particular type, however. Namely if the sytnax `{:.*s}` is used, then
require a particular type, however. Namely if the syntax `{:.*s}` is used, then
the number of characters to print from the string precedes the actual string and
must have the type `uint`. Although a `uint` can be printed with `{:u}`, it is
illegal to reference an argument as such. For example, this is another invalid
Expand Down
23 changes: 23 additions & 0 deletions src/test/auxiliary/iss.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
// 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.

#[link(name="iss6919_3", vers="0.1")];

// part of issue-6919.rs

struct C<'self> {
k: &'self fn(),
}

fn no_op() { }
pub static D : C<'static> = C {
k: no_op
};

14 changes: 14 additions & 0 deletions src/test/auxiliary/issue_3907.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
// 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.

pub trait Foo {
fn bar();
}

25 changes: 25 additions & 0 deletions src/test/auxiliary/issue_8401.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// 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.

// for this issue, this code must be built in a library

use std::cast;

trait A {}
struct B;
impl A for B {}

fn bar<T>(_: &mut A, _: &T) {}

fn foo<T>(t: &T) {
let b = B;
bar(unsafe { cast::transmute(&b as &A) }, t)
}

30 changes: 30 additions & 0 deletions src/test/compile-fail/issue-3907.rs
Original file line number Diff line number Diff line change
@@ -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.

// aux-build:issue_3907.rs
extern mod issue_3907;

type Foo = issue_3907::Foo; //~ ERROR: reference to trait

struct S {
name: int
}

impl Foo for S { //~ ERROR: Foo is not a trait
fn bar() { }
}

fn main() {
let s = S {
name: 0
};
s.bar();
}

29 changes: 29 additions & 0 deletions src/test/compile-fail/issue-5439.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
// 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.

struct Foo {
foo: int,
}

struct Bar {
bar: int,
}

impl Bar {
fn make_foo (&self, i: int) -> ~Foo {
return ~Foo { nonexistent: self, foo: i }; //~ ERROR: no field named
}
}

fn main () {
let bar = Bar { bar: 1 };
let foo = bar.make_foo(2);
println(fmt!("%d", foo.foo));
}
13 changes: 13 additions & 0 deletions src/test/run-pass/issue-4464.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// 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 broken<'r>(v: &'r [u8], i: uint, j: uint) -> &'r [u8] { v.slice(i, j) }

pub fn main() {}
13 changes: 13 additions & 0 deletions src/test/run-pass/issue-4759-1.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// 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.

trait U { fn f(self); }
impl U for int { fn f(self) {} }
pub fn main() { 4.f(); }
25 changes: 25 additions & 0 deletions src/test/run-pass/issue-4759.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// 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.

struct T { a: ~int }

trait U {
fn f(self);
}

impl U for ~int {
fn f(self) { }
}

pub fn main() {
let T { a: a } = T { a: ~0 };
a.f();
}

35 changes: 35 additions & 0 deletions src/test/run-pass/issue-5666.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// 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.

struct Dog {
name : ~str
}

trait Barks {
fn bark(&self) -> ~str;
}

impl Barks for Dog {
fn bark(&self) -> ~str {
return fmt!("woof! (I'm %s)", self.name);
}
}


pub fn main() {
let snoopy = ~Dog{name: ~"snoopy"};
let bubbles = ~Dog{name: ~"bubbles"};
let barker = [snoopy as ~Barks, bubbles as ~Barks];

for pup in barker.iter() {
println(fmt!("%s", pup.bark()));
}
}

24 changes: 24 additions & 0 deletions src/test/run-pass/issue-5884.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// 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.

pub struct Foo {
a: int,
}

struct Bar<'self> {
a: ~Option<int>,
b: &'self Foo,
}

fn check(a: @Foo) {
let mut _ic = Bar{ b: a, a: ~None };
}

pub fn main(){}
17 changes: 17 additions & 0 deletions src/test/run-pass/issue-5926.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
// 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.

pub fn main() {
let mut your_favorite_numbers = @[1,2,3];
let mut my_favorite_numbers = @[4,5,6];
let f = your_favorite_numbers + my_favorite_numbers;
println(fmt!("The third favorite number is %?.", f))
}

26 changes: 26 additions & 0 deletions src/test/run-pass/issue-6318.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// 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.

pub enum Thing {
A(~Foo)
}

pub trait Foo {}

pub struct Struct;

impl Foo for Struct {}

pub fn main() {
match A(~Struct as ~Foo) {
A(a) => 0,
};
}

13 changes: 13 additions & 0 deletions src/test/run-pass/issue-6557.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
// 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 foo(~(x, y): ~(int, int)) {}

pub fn main() {}
40 changes: 40 additions & 0 deletions src/test/run-pass/issue-6898.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
// 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::unstable::intrinsics;

/// Returns the size of a type
pub fn size_of<T>() -> uint {
TypeInfo::size_of::<T>()
}

/// Returns the size of the type that `val` points to
pub fn size_of_val<T>(val: &T) -> uint {
val.size_of_val()
}

pub trait TypeInfo {
fn size_of() -> uint;
fn size_of_val(&self) -> uint;
}

impl<T> TypeInfo for T {
/// The size of the type in bytes.
fn size_of() -> uint {
unsafe { intrinsics::size_of::<T>() }
}

/// Returns the size of the type of `self` in bytes.
fn size_of_val(&self) -> uint {
TypeInfo::size_of::<T>()
}
}

pub fn main() {}
19 changes: 19 additions & 0 deletions src/test/run-pass/issue-6919.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// 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.

// aux-build:iss.rs
// xfail-fast

extern mod iss ( name = "iss6919_3" );

pub fn main() {
iss::D.k;
}

19 changes: 19 additions & 0 deletions src/test/run-pass/issue-7222.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
// 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.

pub fn main() {
static FOO: float = 10.0;

match 0.0 {
0.0 .. FOO => (),
_ => ()
}
}

Loading