about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/test/compile-fail/issue-11740.rs38
-rw-r--r--src/test/compile-fail/issue-19601.rs19
-rw-r--r--src/test/compile-fail/issue-22603.rs23
-rw-r--r--src/test/compile-fail/issue-22789.rs17
-rw-r--r--src/test/compile-fail/issue-26614.rs27
5 files changed, 124 insertions, 0 deletions
diff --git a/src/test/compile-fail/issue-11740.rs b/src/test/compile-fail/issue-11740.rs
new file mode 100644
index 00000000000..0bda06be9e8
--- /dev/null
+++ b/src/test/compile-fail/issue-11740.rs
@@ -0,0 +1,38 @@
+// Copyright 2017 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.
+
+#![feature(rustc_attrs)]
+#![allow(warnings)]
+
+struct Attr {
+    name: String,
+    value: String,
+}
+
+struct Element {
+    attrs: Vec<Box<Attr>>,
+}
+
+impl Element {
+    pub unsafe fn get_attr<'a>(&'a self, name: &str) {
+        self.attrs
+            .iter()
+            .find(|attr| {
+                      let attr: &&Box<Attr> = std::mem::transmute(attr);
+                      true
+                  });
+    }
+}
+
+#[rustc_error]
+fn main() { //~ ERROR compilation successful
+    let element = Element { attrs: Vec::new() };
+    let _ = unsafe { element.get_attr("foo") };
+}
diff --git a/src/test/compile-fail/issue-19601.rs b/src/test/compile-fail/issue-19601.rs
new file mode 100644
index 00000000000..02b4932cea8
--- /dev/null
+++ b/src/test/compile-fail/issue-19601.rs
@@ -0,0 +1,19 @@
+// Copyright 2017 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.
+
+#![feature(rustc_attrs)]
+#![allow(warnings)]
+
+trait A<T> {}
+struct B<T> where B<T>: A<B<T>> { t: T }
+
+#[rustc_error]
+fn main() { //~ ERROR compilation successful
+}
diff --git a/src/test/compile-fail/issue-22603.rs b/src/test/compile-fail/issue-22603.rs
new file mode 100644
index 00000000000..d08f916b870
--- /dev/null
+++ b/src/test/compile-fail/issue-22603.rs
@@ -0,0 +1,23 @@
+// Copyright 2017 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.
+
+#![feature(unboxed_closures, fn_traits, rustc_attrs)]
+
+struct Foo;
+
+impl<A> FnOnce<(A,)> for Foo {
+    type Output = ();
+    extern "rust-call" fn call_once(self, (_,): (A,)) {
+    }
+}
+#[rustc_error]
+fn main() { //~ ERROR compilation successful
+    println!("{:?}", Foo("bar"));
+}
diff --git a/src/test/compile-fail/issue-22789.rs b/src/test/compile-fail/issue-22789.rs
new file mode 100644
index 00000000000..cba1c367bb9
--- /dev/null
+++ b/src/test/compile-fail/issue-22789.rs
@@ -0,0 +1,17 @@
+// Copyright 2017 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.
+
+#![feature(unboxed_closures, fn_traits, rustc_attrs)]
+
+#[rustc_error]
+fn main() { //~ ERROR compilation successful
+    let k = |x: i32| { x + 1 };
+    Fn::call(&k, (0,));
+}
diff --git a/src/test/compile-fail/issue-26614.rs b/src/test/compile-fail/issue-26614.rs
new file mode 100644
index 00000000000..c128fb3b479
--- /dev/null
+++ b/src/test/compile-fail/issue-26614.rs
@@ -0,0 +1,27 @@
+// Copyright 2017 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.
+
+#![feature(rustc_attrs)]
+#![allow(warnings)]
+
+trait Mirror {
+    type It;
+}
+
+impl<T> Mirror for T {
+    type It = Self;
+}
+
+
+#[rustc_error]
+fn main() { //~ ERROR compilation successful
+    let c: <u32 as Mirror>::It = 5;
+    const CCCC: <u32 as Mirror>::It = 5;
+}