]> git.lizzy.rs Git - rust.git/commitdiff
Add tests for issues with the E-needstest label
authortopecongiro <seuchida@gmail.com>
Tue, 25 Jul 2017 02:31:59 +0000 (11:31 +0900)
committertopecongiro <seuchida@gmail.com>
Tue, 25 Jul 2017 03:23:16 +0000 (12:23 +0900)
src/test/compile-fail/issue-33504.rs [new file with mode: 0644]
src/test/compile-fail/issue-39211.rs [new file with mode: 0644]
src/test/run-fail/issue-29798.rs [new file with mode: 0644]
src/test/run-pass/issue-29516.rs [new file with mode: 0644]
src/test/run-pass/issue-34780.rs [new file with mode: 0644]
src/test/run-pass/issue-39467.rs [new file with mode: 0644]
src/test/run-pass/issue-39720.rs [new file with mode: 0644]
src/test/rustdoc/issue-19181.rs [new file with mode: 0644]

diff --git a/src/test/compile-fail/issue-33504.rs b/src/test/compile-fail/issue-33504.rs
new file mode 100644 (file)
index 0000000..bc78d20
--- /dev/null
@@ -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.
+
+// Shadowing a unit-like enum in a closure
+
+struct Test;
+
+fn main() {
+    || {
+        let Test = 1; //~ ERROR let bindings cannot shadow unit structs
+    };
+}
diff --git a/src/test/compile-fail/issue-39211.rs b/src/test/compile-fail/issue-39211.rs
new file mode 100644 (file)
index 0000000..96ba1c8
--- /dev/null
@@ -0,0 +1,24 @@
+// 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(associated_consts)]
+
+trait VecN {
+    const DIM: usize;
+}
+trait Mat {
+    type Row: VecN;
+}
+
+fn m<M: Mat>() {
+    let a = [3; M::Row::DIM]; //~ ERROR associated type `Row` not found for `M`
+}
+fn main() {
+}
diff --git a/src/test/run-fail/issue-29798.rs b/src/test/run-fail/issue-29798.rs
new file mode 100644 (file)
index 0000000..a771759
--- /dev/null
@@ -0,0 +1,20 @@
+// 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.
+
+// error-pattern:index out of bounds: the len is 5 but the index is 5
+
+#![feature(const_fn)]
+const fn test(x: usize) -> i32 {
+    [42;5][x]
+}
+
+fn main () {
+    let _ = test(5);
+}
diff --git a/src/test/run-pass/issue-29516.rs b/src/test/run-pass/issue-29516.rs
new file mode 100644 (file)
index 0000000..b586abc
--- /dev/null
@@ -0,0 +1,28 @@
+// 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(optin_builtin_traits)]
+
+trait NotSame {}
+impl NotSame for .. {}
+impl<A> !NotSame for (A, A) {}
+
+trait OneOfEach {}
+
+impl<A> OneOfEach for (A,) {}
+
+impl<A, B> OneOfEach for (A, B)
+where
+    (B,): OneOfEach,
+    (A, B): NotSame,
+{
+}
+
+fn main() {}
diff --git a/src/test/run-pass/issue-34780.rs b/src/test/run-pass/issue-34780.rs
new file mode 100644 (file)
index 0000000..eda4ebb
--- /dev/null
@@ -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(associated_consts)]
+
+use std::marker::PhantomData;
+
+trait Tr<'a> {
+    const C: PhantomData<&'a u8> = PhantomData::<&'a u8>;
+}
+
+fn main() {}
diff --git a/src/test/run-pass/issue-39467.rs b/src/test/run-pass/issue-39467.rs
new file mode 100644 (file)
index 0000000..9f94be2
--- /dev/null
@@ -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.
+
+macro_rules! expr { () => { () } }
+
+enum A {}
+
+impl A {
+    const A: () = expr!();
+}
+
+fn main() {}
diff --git a/src/test/run-pass/issue-39720.rs b/src/test/run-pass/issue-39720.rs
new file mode 100644 (file)
index 0000000..f90696e
--- /dev/null
@@ -0,0 +1,31 @@
+// 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(repr_simd, platform_intrinsics)]
+
+#[repr(C)]
+#[repr(simd)]
+#[derive(Copy, Clone, Debug)]
+pub struct char3(pub i8, pub i8, pub i8);
+
+#[repr(C)]
+#[repr(simd)]
+#[derive(Copy, Clone, Debug)]
+pub struct short3(pub i16, pub i16, pub i16);
+
+extern "platform-intrinsic" {
+    fn simd_cast<T, U>(x: T) -> U;
+}
+
+fn main() {
+    let cast: short3 = unsafe { simd_cast(char3(10, -3, -9)) };
+
+    println!("{:?}", cast);
+}
diff --git a/src/test/rustdoc/issue-19181.rs b/src/test/rustdoc/issue-19181.rs
new file mode 100644 (file)
index 0000000..a2935b7
--- /dev/null
@@ -0,0 +1,15 @@
+// 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.
+
+// compile-flags:--test
+
+// rustdoc should not panic when target crate has compilation errors
+
+fn main() { 0 }