diff --git a/src/libstd/fmt/mod.rs b/src/libstd/fmt/mod.rs index 41e588934b72e..70ec5d9319984 100644 --- a/src/libstd/fmt/mod.rs +++ b/src/libstd/fmt/mod.rs @@ -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 diff --git a/src/test/auxiliary/iss.rs b/src/test/auxiliary/iss.rs new file mode 100644 index 0000000000000..a3ead83321f64 --- /dev/null +++ b/src/test/auxiliary/iss.rs @@ -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 or the MIT license +// , 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 +}; + diff --git a/src/test/auxiliary/issue_3907.rs b/src/test/auxiliary/issue_3907.rs new file mode 100644 index 0000000000000..2e254e5431d53 --- /dev/null +++ b/src/test/auxiliary/issue_3907.rs @@ -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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +pub trait Foo { + fn bar(); +} + diff --git a/src/test/auxiliary/issue_8401.rs b/src/test/auxiliary/issue_8401.rs new file mode 100644 index 0000000000000..9e4d90e979ded --- /dev/null +++ b/src/test/auxiliary/issue_8401.rs @@ -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 or the MIT license +// , 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(_: &mut A, _: &T) {} + +fn foo(t: &T) { + let b = B; + bar(unsafe { cast::transmute(&b as &A) }, t) +} + diff --git a/src/test/compile-fail/issue-3907.rs b/src/test/compile-fail/issue-3907.rs new file mode 100644 index 0000000000000..df18a5ad2d321 --- /dev/null +++ b/src/test/compile-fail/issue-3907.rs @@ -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 or the MIT license +// , 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(); +} + diff --git a/src/test/compile-fail/issue-5439.rs b/src/test/compile-fail/issue-5439.rs new file mode 100644 index 0000000000000..8bd9bb326316e --- /dev/null +++ b/src/test/compile-fail/issue-5439.rs @@ -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 or the MIT license +// , 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)); +} diff --git a/src/test/run-pass/issue-4464.rs b/src/test/run-pass/issue-4464.rs new file mode 100644 index 0000000000000..529f8ecc6ebe1 --- /dev/null +++ b/src/test/run-pass/issue-4464.rs @@ -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 or the MIT license +// , 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() {} diff --git a/src/test/run-pass/issue-4759-1.rs b/src/test/run-pass/issue-4759-1.rs new file mode 100644 index 0000000000000..ad8ee984217c9 --- /dev/null +++ b/src/test/run-pass/issue-4759-1.rs @@ -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 or the MIT license +// , 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(); } diff --git a/src/test/run-pass/issue-4759.rs b/src/test/run-pass/issue-4759.rs new file mode 100644 index 0000000000000..45912039857fe --- /dev/null +++ b/src/test/run-pass/issue-4759.rs @@ -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 or the MIT license +// , 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(); +} + diff --git a/src/test/run-pass/issue-5666.rs b/src/test/run-pass/issue-5666.rs new file mode 100644 index 0000000000000..1be5d07913258 --- /dev/null +++ b/src/test/run-pass/issue-5666.rs @@ -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 or the MIT license +// , 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())); + } +} + diff --git a/src/test/run-pass/issue-5884.rs b/src/test/run-pass/issue-5884.rs new file mode 100644 index 0000000000000..ea0e40be86692 --- /dev/null +++ b/src/test/run-pass/issue-5884.rs @@ -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 or the MIT license +// , 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, + b: &'self Foo, +} + +fn check(a: @Foo) { + let mut _ic = Bar{ b: a, a: ~None }; +} + +pub fn main(){} diff --git a/src/test/run-pass/issue-5926.rs b/src/test/run-pass/issue-5926.rs new file mode 100644 index 0000000000000..7557df27f49af --- /dev/null +++ b/src/test/run-pass/issue-5926.rs @@ -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 or the MIT license +// , 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)) +} + diff --git a/src/test/run-pass/issue-6318.rs b/src/test/run-pass/issue-6318.rs new file mode 100644 index 0000000000000..bf586eed700b4 --- /dev/null +++ b/src/test/run-pass/issue-6318.rs @@ -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 or the MIT license +// , 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, + }; +} + diff --git a/src/test/run-pass/issue-6557.rs b/src/test/run-pass/issue-6557.rs new file mode 100644 index 0000000000000..1ba505369789e --- /dev/null +++ b/src/test/run-pass/issue-6557.rs @@ -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 or the MIT license +// , 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() {} diff --git a/src/test/run-pass/issue-6898.rs b/src/test/run-pass/issue-6898.rs new file mode 100644 index 0000000000000..2d612bb742eb3 --- /dev/null +++ b/src/test/run-pass/issue-6898.rs @@ -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 or the MIT license +// , 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() -> uint { + TypeInfo::size_of::() +} + +/// Returns the size of the type that `val` points to +pub fn size_of_val(val: &T) -> uint { + val.size_of_val() +} + +pub trait TypeInfo { + fn size_of() -> uint; + fn size_of_val(&self) -> uint; +} + +impl TypeInfo for T { + /// The size of the type in bytes. + fn size_of() -> uint { + unsafe { intrinsics::size_of::() } + } + + /// Returns the size of the type of `self` in bytes. + fn size_of_val(&self) -> uint { + TypeInfo::size_of::() + } +} + +pub fn main() {} diff --git a/src/test/run-pass/issue-6919.rs b/src/test/run-pass/issue-6919.rs new file mode 100644 index 0000000000000..f63811fa82bdd --- /dev/null +++ b/src/test/run-pass/issue-6919.rs @@ -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 or the MIT license +// , 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; +} + diff --git a/src/test/run-pass/issue-7222.rs b/src/test/run-pass/issue-7222.rs new file mode 100644 index 0000000000000..98c0064d0ec1f --- /dev/null +++ b/src/test/run-pass/issue-7222.rs @@ -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 or the MIT license +// , 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 => (), + _ => () + } +} + diff --git a/src/test/run-pass/issue-8248.rs b/src/test/run-pass/issue-8248.rs new file mode 100644 index 0000000000000..48f34805feee7 --- /dev/null +++ b/src/test/run-pass/issue-8248.rs @@ -0,0 +1,21 @@ +// 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +trait A {} +struct B; +impl A for B {} + +fn foo(_: &mut A) {} + +fn main() { + let mut b = B; + foo(&mut b as &mut A); +} + diff --git a/src/test/run-pass/issue-8249.rs b/src/test/run-pass/issue-8249.rs new file mode 100644 index 0000000000000..ad37196dce4a5 --- /dev/null +++ b/src/test/run-pass/issue-8249.rs @@ -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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +trait A {} +struct B; +impl A for B {} + +struct C<'self> { + foo: &'self mut A, +} + +fn foo(a: &mut A) { + C{ foo: a }; +} + +fn main() { +} + diff --git a/src/test/run-pass/issue-8398.rs b/src/test/run-pass/issue-8398.rs new file mode 100644 index 0000000000000..5e04c96af72e7 --- /dev/null +++ b/src/test/run-pass/issue-8398.rs @@ -0,0 +1,18 @@ +// 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +use std::rt::io; + +fn foo(a: &mut io::Writer) { + a.write([]) +} + +fn main(){} + diff --git a/src/test/run-pass/issue-8401.rs b/src/test/run-pass/issue-8401.rs new file mode 100644 index 0000000000000..cf78683510710 --- /dev/null +++ b/src/test/run-pass/issue-8401.rs @@ -0,0 +1,16 @@ +// 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 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// aux-build:issue_8401.rs +// xfail-fast + +extern mod issue_8401; + +pub fn main() {}