diff options
| author | Johannes Muenzel <jmuenzel@gmail.com> | 2014-01-28 01:29:22 -0500 |
|---|---|---|
| committer | Johannes Muenzel <jmuenzel@gmail.com> | 2014-01-29 20:33:51 -0500 |
| commit | b46c0daa7ba1fdd9b5ee3ba2b8bd4ff220fa8b6c (patch) | |
| tree | c94df30f6a1ed757f70b4c57e631e7591a03ad63 /src | |
| parent | 7a931574e32ad87db295a97293bae0755694d2ba (diff) | |
| download | rust-b46c0daa7ba1fdd9b5ee3ba2b8bd4ff220fa8b6c.tar.gz rust-b46c0daa7ba1fdd9b5ee3ba2b8bd4ff220fa8b6c.zip | |
Add compile-fail tests for non-representable structs and enums
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/compile-fail/issue-3008-1.rs | 15 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-3008-2.rs | 17 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-3008-3.rs | 15 | ||||
| -rw-r--r-- | src/test/compile-fail/issue-3779.rs | 17 |
4 files changed, 64 insertions, 0 deletions
diff --git a/src/test/compile-fail/issue-3008-1.rs b/src/test/compile-fail/issue-3008-1.rs new file mode 100644 index 00000000000..6d8dec687cd --- /dev/null +++ b/src/test/compile-fail/issue-3008-1.rs @@ -0,0 +1,15 @@ +// 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 { foo(bar) } +enum bar { bar_none, bar_some(bar) } //~ ERROR illegal recursive enum type; wrap the inner value in a box to make it representable + +fn main() { +} diff --git a/src/test/compile-fail/issue-3008-2.rs b/src/test/compile-fail/issue-3008-2.rs new file mode 100644 index 00000000000..88ebf610aaf --- /dev/null +++ b/src/test/compile-fail/issue-3008-2.rs @@ -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. + +enum foo { foo(bar) } +struct bar { x: bar } //~ ERROR illegal recursive struct type; wrap the inner value in a box to make it representable +//~^ ERROR this type cannot be instantiated without an instance of itself + +fn main() { +} + diff --git a/src/test/compile-fail/issue-3008-3.rs b/src/test/compile-fail/issue-3008-3.rs new file mode 100644 index 00000000000..8680ee8707e --- /dev/null +++ b/src/test/compile-fail/issue-3008-3.rs @@ -0,0 +1,15 @@ +// 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 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 + +fn main() { +} diff --git a/src/test/compile-fail/issue-3779.rs b/src/test/compile-fail/issue-3779.rs new file mode 100644 index 00000000000..79360597f72 --- /dev/null +++ b/src/test/compile-fail/issue-3779.rs @@ -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. + +struct S { //~ ERROR illegal recursive struct type; wrap the inner value in a box to make it representable + element: Option<S> +} + +fn main() { + let x = S { element: None }; +} |
