about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2016-08-28 07:28:20 -0700
committerGitHub <noreply@github.com>2016-08-28 07:28:20 -0700
commit6fd13fad9349a4c36a61a6f2766406cff7bcee8a (patch)
tree2b482769234008a02d68ebac0ddbd80b6298b15c
parentb17fa8bf012628b00ec156caefbad34b54a87182 (diff)
parent7b9adfd5747b3e845086d251d008175ee8a3e4a1 (diff)
downloadrust-6fd13fad9349a4c36a61a6f2766406cff7bcee8a.tar.gz
rust-6fd13fad9349a4c36a61a6f2766406cff7bcee8a.zip
Auto merge of #36058 - apasel422:tests, r=alexcrichton
Add tests for #20433, #26251, #28625, #33687

Closes #20433
Closes #26251
Closes #28625
Closes #33687
-rw-r--r--src/test/compile-fail/issue-20433.rs18
-rw-r--r--src/test/compile-fail/issue-28625.rs30
-rw-r--r--src/test/run-pass/issue-26251.rs22
-rw-r--r--src/test/run-pass/issue-33687.rs26
4 files changed, 96 insertions, 0 deletions
diff --git a/src/test/compile-fail/issue-20433.rs b/src/test/compile-fail/issue-20433.rs
new file mode 100644
index 00000000000..d1a139e698e
--- /dev/null
+++ b/src/test/compile-fail/issue-20433.rs
@@ -0,0 +1,18 @@
+// Copyright 2016 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.
+
+fn main() {}
+
+struct The;
+
+impl The {
+    fn iceman(c: Vec<[i32]>) {}
+    //~^ ERROR the trait bound `[i32]: std::marker::Sized` is not satisfied
+}
diff --git a/src/test/compile-fail/issue-28625.rs b/src/test/compile-fail/issue-28625.rs
new file mode 100644
index 00000000000..c332e4ea459
--- /dev/null
+++ b/src/test/compile-fail/issue-28625.rs
@@ -0,0 +1,30 @@
+// Copyright 2016 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 Bar {
+    type Bar;
+}
+
+struct ArrayPeano<T: Bar> {
+    data: T::Bar,
+}
+
+fn foo<T>(a: &ArrayPeano<T>) -> &[T] where T: Bar {
+    unsafe { std::mem::transmute(a) } //~ ERROR transmute called with differently sized types
+}
+
+impl Bar for () {
+    type Bar = ();
+}
+
+fn main() {
+    let x: ArrayPeano<()> = ArrayPeano { data: () };
+    foo(&x);
+}
diff --git a/src/test/run-pass/issue-26251.rs b/src/test/run-pass/issue-26251.rs
new file mode 100644
index 00000000000..1e77d54fbf9
--- /dev/null
+++ b/src/test/run-pass/issue-26251.rs
@@ -0,0 +1,22 @@
+// Copyright 2016 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.
+
+fn main() {
+    let x = 'a';
+
+    let y = match x {
+        'a'...'b' if false => "one",
+        'a' => "two",
+        'a'...'b' => "three",
+        _ => panic!("what?"),
+    };
+
+    assert_eq!(y, "two");
+}
diff --git a/src/test/run-pass/issue-33687.rs b/src/test/run-pass/issue-33687.rs
new file mode 100644
index 00000000000..59badca065a
--- /dev/null
+++ b/src/test/run-pass/issue-33687.rs
@@ -0,0 +1,26 @@
+// Copyright 2016 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)]
+#![feature(fn_traits)]
+
+struct Test;
+
+impl FnOnce<(u32, u32)> for Test {
+    type Output = u32;
+
+    extern "rust-call" fn call_once(self, (a, b): (u32, u32)) -> u32 {
+        a + b
+    }
+}
+
+fn main() {
+    assert_eq!(Test(1u32, 2u32), 3u32);
+}