diff options
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/compile-fail/issue-17431-1.rs | 16 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-17431-2.rs | 19 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-17431-3.rs | 18 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-17431-4.rs | 16 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-17431-5.rs | 18 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-17431-6.rs | 18 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-17431-7.rs | 16 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-3008-3.rs | 2 |
8 files changed, 123 insertions, 0 deletions
diff --git a/src/test/compile-fail/issue-17431-1.rs b/src/test/compile-fail/issue-17431-1.rs new file mode 100644 index 00000000000..896a9c06873 --- /dev/null +++ b/src/test/compile-fail/issue-17431-1.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 <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: Option<Option<Foo>> } +//~^ ERROR illegal recursive struct type; wrap the inner value in a box to make it representable + +impl Foo { fn bar(&self) {} } + +fn main() {} diff --git a/src/test/compile-fail/issue-17431-2.rs b/src/test/compile-fail/issue-17431-2.rs new file mode 100644 index 00000000000..886fe8d771a --- /dev/null +++ b/src/test/compile-fail/issue-17431-2.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 <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 Baz { q: Option<Foo> } +//~^ ERROR illegal recursive struct type; wrap the inner value in a box to make it representable + +struct Foo { q: Option<Baz> } +//~^ ERROR illegal recursive struct type; wrap the inner value in a box to make it representable + +impl Foo { fn bar(&self) {} } + +fn main() {} diff --git a/src/test/compile-fail/issue-17431-3.rs b/src/test/compile-fail/issue-17431-3.rs new file mode 100644 index 00000000000..c1c450935f6 --- /dev/null +++ b/src/test/compile-fail/issue-17431-3.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 <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::sync::Mutex; + +struct Foo { foo: Mutex<Option<Foo>> } +//~^ ERROR illegal recursive struct type; wrap the inner value in a box to make it representable + +impl Foo { fn bar(&self) {} } + +fn main() {} diff --git a/src/test/compile-fail/issue-17431-4.rs b/src/test/compile-fail/issue-17431-4.rs new file mode 100644 index 00000000000..1e27f025564 --- /dev/null +++ b/src/test/compile-fail/issue-17431-4.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 <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<T> { foo: Option<Option<Foo<T>>> } +//~^ ERROR illegal recursive struct type; wrap the inner value in a box to make it representable + +impl<T> Foo<T> { fn bar(&self) {} } + +fn main() {} diff --git a/src/test/compile-fail/issue-17431-5.rs b/src/test/compile-fail/issue-17431-5.rs new file mode 100644 index 00000000000..d22d79ecaa5 --- /dev/null +++ b/src/test/compile-fail/issue-17431-5.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 <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: Bar<Foo> } +struct Bar<T> { x: Bar<Foo> } +//~^ ERROR illegal recursive struct type; wrap the inner value in a box to make it representable + +impl Foo { fn foo(&self) {} } + +fn main() { +} diff --git a/src/test/compile-fail/issue-17431-6.rs b/src/test/compile-fail/issue-17431-6.rs new file mode 100644 index 00000000000..8eac295353d --- /dev/null +++ b/src/test/compile-fail/issue-17431-6.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 <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::sync::Mutex; + +enum Foo { X(Mutex<Option<Foo>>) } +//~^ ERROR illegal recursive enum type; wrap the inner value in a box to make it representable + +impl Foo { fn bar(self) {} } + +fn main() {} diff --git a/src/test/compile-fail/issue-17431-7.rs b/src/test/compile-fail/issue-17431-7.rs new file mode 100644 index 00000000000..c64c040aa44 --- /dev/null +++ b/src/test/compile-fail/issue-17431-7.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 <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. + +enum Foo { Voo(Option<Option<Foo>>) } +//~^ ERROR illegal recursive enum type; wrap the inner value in a box to make it representable + +impl Foo { fn bar(&self) {} } + +fn main() { } diff --git a/src/test/compile-fail/issue-3008-3.rs b/src/test/compile-fail/issue-3008-3.rs index b8ef57e2dd3..a338a01690d 100644 --- a/src/test/compile-fail/issue-3008-3.rs +++ b/src/test/compile-fail/issue-3008-3.rs @@ -12,5 +12,7 @@ enum E1 { V1(E2<E1>), } enum E2<T> { V2(E2<E1>), } //~^ ERROR illegal recursive enum type; wrap the inner value in a box to make it representable +impl E1 { fn foo(&self) {} } + fn main() { } |
