about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorBen Blum <bblum@andrew.cmu.edu>2013-08-16 18:21:02 -0400
committerBen Blum <bblum@andrew.cmu.edu>2013-08-20 13:28:50 -0400
commit4ca2e55adbf0cfbc34d8b1e7de773045d36cce2e (patch)
tree67be022e7b1d5f3222284fcd5cf70599a38707bc /src/test
parent69322d941032202b7d5308dbe16e31b62c752cd2 (diff)
downloadrust-4ca2e55adbf0cfbc34d8b1e7de773045d36cce2e.tar.gz
rust-4ca2e55adbf0cfbc34d8b1e7de773045d36cce2e.zip
Add tests for #7083.
Diffstat (limited to 'src/test')
-rw-r--r--src/test/auxiliary/trait_superkinds_in_metadata.rs14
-rw-r--r--src/test/compile-fail/builtin-superkinds-double-superkind.rs19
-rw-r--r--src/test/compile-fail/builtin-superkinds-in-metadata.rs22
-rw-r--r--src/test/compile-fail/builtin-superkinds-simple.rs19
-rw-r--r--src/test/compile-fail/builtin-superkinds-typaram-not-send.rs15
-rw-r--r--src/test/run-pass/builtin-superkinds-in-metadata.rs22
-rw-r--r--src/test/run-pass/builtin-superkinds-shadow-typaram.rs17
-rw-r--r--src/test/run-pass/builtin-superkinds-simple.rs15
-rw-r--r--src/test/run-pass/builtin-superkinds-typaram.rs15
9 files changed, 158 insertions, 0 deletions
diff --git a/src/test/auxiliary/trait_superkinds_in_metadata.rs b/src/test/auxiliary/trait_superkinds_in_metadata.rs
new file mode 100644
index 00000000000..02d2a6b8af4
--- /dev/null
+++ b/src/test/auxiliary/trait_superkinds_in_metadata.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 <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.
+
+#[crate_type="lib"];
+
+pub trait Bar : Freeze { }
+pub trait Foo : Bar + Send { }
diff --git a/src/test/compile-fail/builtin-superkinds-double-superkind.rs b/src/test/compile-fail/builtin-superkinds-double-superkind.rs
new file mode 100644
index 00000000000..c5dbcd9bb23
--- /dev/null
+++ b/src/test/compile-fail/builtin-superkinds-double-superkind.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 <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 Foo : Send+Freeze { }
+
+impl <T: Freeze> Foo for (T,) { } //~ ERROR cannot implement this trait
+
+impl <T: Send> Foo for (T,T) { } //~ ERROR cannot implement this trait
+
+impl <T: Send+Freeze> Foo for (T,T,T) { } // (ok)
+
+fn main() { }
diff --git a/src/test/compile-fail/builtin-superkinds-in-metadata.rs b/src/test/compile-fail/builtin-superkinds-in-metadata.rs
new file mode 100644
index 00000000000..3fa7c5a28ba
--- /dev/null
+++ b/src/test/compile-fail/builtin-superkinds-in-metadata.rs
@@ -0,0 +1,22 @@
+// 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:trait_superkinds_in_metadata.rs
+
+extern mod trait_superkinds_in_metadata;
+use trait_superkinds_in_metadata::{Foo, Bar};
+
+struct X<T>(T);
+
+impl <T:Freeze> Bar for X<T> { }
+
+impl <T:Freeze> Foo for X<T> { } //~ ERROR cannot implement this trait
+
+fn main() { }
diff --git a/src/test/compile-fail/builtin-superkinds-simple.rs b/src/test/compile-fail/builtin-superkinds-simple.rs
new file mode 100644
index 00000000000..472bef715e9
--- /dev/null
+++ b/src/test/compile-fail/builtin-superkinds-simple.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 <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 Foo : Send { }
+
+impl <'self> Foo for &'self mut () { } //~ ERROR cannot implement this trait
+
+trait Bar : Freeze { }
+
+impl <'self> Bar for &'self mut () { } //~ ERROR cannot implement this trait
+
+fn main() { }
diff --git a/src/test/compile-fail/builtin-superkinds-typaram-not-send.rs b/src/test/compile-fail/builtin-superkinds-typaram-not-send.rs
new file mode 100644
index 00000000000..ec10ba09104
--- /dev/null
+++ b/src/test/compile-fail/builtin-superkinds-typaram-not-send.rs
@@ -0,0 +1,15 @@
+// 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 Foo : Send { }
+
+impl <T: Freeze> Foo for T { } //~ ERROR cannot implement this trait
+
+fn main() { }
diff --git a/src/test/run-pass/builtin-superkinds-in-metadata.rs b/src/test/run-pass/builtin-superkinds-in-metadata.rs
new file mode 100644
index 00000000000..fc445058c04
--- /dev/null
+++ b/src/test/run-pass/builtin-superkinds-in-metadata.rs
@@ -0,0 +1,22 @@
+// 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:trait_superkinds_in_metadata.rs
+
+extern mod trait_superkinds_in_metadata;
+use trait_superkinds_in_metadata::{Foo, Bar};
+
+struct X<T>(T);
+
+impl <T:Freeze> Bar for X<T> { }
+
+impl <T:Freeze+Send> Foo for X<T> { }
+
+fn main() { }
diff --git a/src/test/run-pass/builtin-superkinds-shadow-typaram.rs b/src/test/run-pass/builtin-superkinds-shadow-typaram.rs
new file mode 100644
index 00000000000..193efb06d39
--- /dev/null
+++ b/src/test/run-pass/builtin-superkinds-shadow-typaram.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 <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 Foo : Send { }
+
+struct X<T>(());
+
+impl <T> Foo for X<T> { }
+
+fn main() { }
diff --git a/src/test/run-pass/builtin-superkinds-simple.rs b/src/test/run-pass/builtin-superkinds-simple.rs
new file mode 100644
index 00000000000..5ecac6a0f7a
--- /dev/null
+++ b/src/test/run-pass/builtin-superkinds-simple.rs
@@ -0,0 +1,15 @@
+// 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 Foo : Send { }
+
+impl Foo for int { }
+
+fn main() { }
diff --git a/src/test/run-pass/builtin-superkinds-typaram.rs b/src/test/run-pass/builtin-superkinds-typaram.rs
new file mode 100644
index 00000000000..eda04a780ee
--- /dev/null
+++ b/src/test/run-pass/builtin-superkinds-typaram.rs
@@ -0,0 +1,15 @@
+// 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 Foo : Send { }
+
+impl <T: Send> Foo for T { }
+
+fn main() { }