diff options
Diffstat (limited to 'src')
3 files changed, 65 insertions, 17 deletions
diff --git a/src/test/compile-fail/trait-bounds-on-structs-and-enums-in-fns.rs b/src/test/compile-fail/trait-bounds-on-structs-and-enums-in-fns.rs new file mode 100644 index 00000000000..dbfda61f552 --- /dev/null +++ b/src/test/compile-fail/trait-bounds-on-structs-and-enums-in-fns.rs @@ -0,0 +1,30 @@ +// 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 Trait {} + +struct Foo<T:Trait> { + x: T, +} + +enum Bar<T:Trait> { + ABar(isize), + BBar(T), + CBar(usize), +} + +fn explode(x: Foo<u32>) {} +//~^ ERROR not implemented + +fn kaboom(y: Bar<f32>) {} +//~^ ERROR not implemented + +fn main() { +} diff --git a/src/test/compile-fail/trait-bounds-on-structs-and-enums-in-impls.rs b/src/test/compile-fail/trait-bounds-on-structs-and-enums-in-impls.rs new file mode 100644 index 00000000000..c647dd38ee3 --- /dev/null +++ b/src/test/compile-fail/trait-bounds-on-structs-and-enums-in-impls.rs @@ -0,0 +1,35 @@ +// 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 Trait {} + +struct Foo<T:Trait> { + x: T, +} + +enum Bar<T:Trait> { + ABar(isize), + BBar(T), + CBar(usize), +} + +trait PolyTrait<T> +{ + fn whatever(&self, t: T) {} +} + +struct Struct; + +impl PolyTrait<Foo<u16>> for Struct { +//~^ ERROR not implemented +} + +fn main() { +} diff --git a/src/test/compile-fail/trait-bounds-on-structs-and-enums.rs b/src/test/compile-fail/trait-bounds-on-structs-and-enums.rs index 988961e7fa1..e1b005b0c85 100644 --- a/src/test/compile-fail/trait-bounds-on-structs-and-enums.rs +++ b/src/test/compile-fail/trait-bounds-on-structs-and-enums.rs @@ -20,12 +20,6 @@ enum Bar<T:Trait> { CBar(usize), } -fn explode(x: Foo<u32>) {} -//~^ ERROR not implemented - -fn kaboom(y: Bar<f32>) {} -//~^ ERROR not implemented - impl<T> Foo<T> { //~^ ERROR the trait `Trait` is not implemented fn uhoh() {} @@ -55,16 +49,5 @@ enum Enum { DictionaryLike { field: Bar<u8> }, //~ ERROR not implemented } -trait PolyTrait<T> -{ - fn whatever(&self, t: T) {} -} - -struct Struct; - -impl PolyTrait<Foo<u16>> for Struct { -//~^ ERROR not implemented -} - fn main() { } |
