diff options
| author | Caio <c410.f3r@gmail.com> | 2021-01-16 15:54:05 -0300 |
|---|---|---|
| committer | Caio <c410.f3r@gmail.com> | 2021-01-16 19:46:54 -0300 |
| commit | ad35979c50366d6b0fbcda99215f1c4e926e5dab (patch) | |
| tree | 8bc4fd6168831ee45cf114456cc70d4cf49266d8 /src/test/ui/issues | |
| parent | 63a83c5f55801b17b77adf690db397d17c706c48 (diff) | |
Move some tests to more reasonable directories - 2
Address comments Update limits
Diffstat (limited to 'src/test/ui/issues')
154 files changed, 0 insertions, 4166 deletions
diff --git a/src/test/ui/issues/auxiliary/issue-21146-inc.rs b/src/test/ui/issues/auxiliary/issue-21146-inc.rs deleted file mode 100644 index 32a3b9dcc35..00000000000 --- a/src/test/ui/issues/auxiliary/issue-21146-inc.rs +++ /dev/null @@ -1,3 +0,0 @@ -// include file for issue-21146.rs - -parse_error diff --git a/src/test/ui/issues/auxiliary/issue-40469.rs b/src/test/ui/issues/auxiliary/issue-40469.rs deleted file mode 100644 index 4f2f41f2cde..00000000000 --- a/src/test/ui/issues/auxiliary/issue-40469.rs +++ /dev/null @@ -1 +0,0 @@ -macro_rules! m { () => { $crate::main(); } } diff --git a/src/test/ui/issues/issue-12470.rs b/src/test/ui/issues/issue-12470.rs deleted file mode 100644 index 0ade359923a..00000000000 --- a/src/test/ui/issues/issue-12470.rs +++ /dev/null @@ -1,34 +0,0 @@ -#![feature(box_syntax)] - -trait X { - fn get_i(&self) -> isize; -} - - -struct B { - i: isize -} - -impl X for B { - fn get_i(&self) -> isize { - self.i - } -} - -struct A<'a> { - p: &'a (dyn X + 'a) -} - -fn make_a<'a>(p: &'a dyn X) -> A<'a> { - A { p: p } -} - -fn make_make_a<'a>() -> A<'a> { - let b: Box<B> = box B {i:1}; - let bb: &B = &*b; - make_a(bb) //~ ERROR cannot return value referencing local data `*b` -} - -fn main() { - let _a = make_make_a(); -} diff --git a/src/test/ui/issues/issue-12470.stderr b/src/test/ui/issues/issue-12470.stderr deleted file mode 100644 index c97e59195ed..00000000000 --- a/src/test/ui/issues/issue-12470.stderr +++ /dev/null @@ -1,11 +0,0 @@ -error[E0515]: cannot return value referencing local data `*b` - --> $DIR/issue-12470.rs:29:5 - | -LL | let bb: &B = &*b; - | --- `*b` is borrowed here -LL | make_a(bb) - | ^^^^^^^^^^ returns a value referencing data owned by the current function - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0515`. diff --git a/src/test/ui/issues/issue-12582.rs b/src/test/ui/issues/issue-12582.rs deleted file mode 100644 index f3366704e63..00000000000 --- a/src/test/ui/issues/issue-12582.rs +++ /dev/null @@ -1,21 +0,0 @@ -// run-pass - -pub fn main() { - let x = 1; - let y = 2; - - assert_eq!(3, match (x, y) { - (1, 1) => 1, - (2, 2) => 2, - (1..=2, 2) => 3, - _ => 4, - }); - - // nested tuple - assert_eq!(3, match ((x, y),) { - ((1, 1),) => 1, - ((2, 2),) => 2, - ((1..=2, 2),) => 3, - _ => 4, - }); -} diff --git a/src/test/ui/issues/issue-14221.rs b/src/test/ui/issues/issue-14221.rs deleted file mode 100644 index 282c4111369..00000000000 --- a/src/test/ui/issues/issue-14221.rs +++ /dev/null @@ -1,21 +0,0 @@ -#![deny(unreachable_patterns)] -#![allow(unused_variables)] -#![allow(non_snake_case)] - -pub enum E { - A, - B, -} - -pub mod b { - pub fn key(e: ::E) -> &'static str { - match e { - A => "A", -//~^ WARN pattern binding `A` is named the same as one of the variants of the type `E` - B => "B", //~ ERROR: unreachable pattern -//~^ WARN pattern binding `B` is named the same as one of the variants of the type `E` - } - } -} - -fn main() {} diff --git a/src/test/ui/issues/issue-14221.stderr b/src/test/ui/issues/issue-14221.stderr deleted file mode 100644 index fc8ae1ed7b5..00000000000 --- a/src/test/ui/issues/issue-14221.stderr +++ /dev/null @@ -1,32 +0,0 @@ -warning[E0170]: pattern binding `A` is named the same as one of the variants of the type `E` - --> $DIR/issue-14221.rs:13:13 - | -LL | A => "A", - | ^ help: to match on the variant, qualify the path: `E::A` - | - = note: `#[warn(bindings_with_variant_name)]` on by default - -warning[E0170]: pattern binding `B` is named the same as one of the variants of the type `E` - --> $DIR/issue-14221.rs:15:13 - | -LL | B => "B", - | ^ help: to match on the variant, qualify the path: `E::B` - -error: unreachable pattern - --> $DIR/issue-14221.rs:15:13 - | -LL | A => "A", - | - matches any value -LL | -LL | B => "B", - | ^ unreachable pattern - | -note: the lint level is defined here - --> $DIR/issue-14221.rs:1:9 - | -LL | #![deny(unreachable_patterns)] - | ^^^^^^^^^^^^^^^^^^^^ - -error: aborting due to previous error; 2 warnings emitted - -For more information about this error, try `rustc --explain E0170`. diff --git a/src/test/ui/issues/issue-14936.rs b/src/test/ui/issues/issue-14936.rs deleted file mode 100644 index 02095a2f7e4..00000000000 --- a/src/test/ui/issues/issue-14936.rs +++ /dev/null @@ -1,48 +0,0 @@ -// build-pass -#![allow(unused_macros)] -#![allow(dead_code)] -#![feature(llvm_asm)] - -type History = Vec<&'static str>; - -fn wrap<A>(x:A, which: &'static str, history: &mut History) -> A { - history.push(which); - x -} - -macro_rules! demo { - ( $output_constraint:tt ) => { - { - let mut x: isize = 0; - let y: isize = 1; - - let mut history: History = vec![]; - unsafe { - llvm_asm!("mov ($1), $0" - : $output_constraint (*wrap(&mut x, "out", &mut history)) - : "r"(&wrap(y, "in", &mut history)) - :: "volatile"); - } - assert_eq!((x,y), (1,1)); - let b: &[_] = &["out", "in"]; - assert_eq!(history, b); - } - } -} - -#[cfg(any(target_arch = "x86", target_arch = "x86_64"))] -fn main() { - fn out_write_only_expr_then_in_expr() { - demo!("=r") - } - - fn out_read_write_expr_then_in_expr() { - demo!("+r") - } - - out_write_only_expr_then_in_expr(); - out_read_write_expr_then_in_expr(); -} - -#[cfg(all(not(target_arch = "x86"), not(target_arch = "x86_64")))] -pub fn main() {} diff --git a/src/test/ui/issues/issue-15730.rs b/src/test/ui/issues/issue-15730.rs deleted file mode 100644 index dacffd154fc..00000000000 --- a/src/test/ui/issues/issue-15730.rs +++ /dev/null @@ -1,9 +0,0 @@ -// run-pass -#![allow(unused_mut)] -#![allow(unused_variables)] -// pretty-expanded FIXME #23616 - -fn main() { - let mut array = [1, 2, 3]; - let pie_slice = &array[1..2]; -} diff --git a/src/test/ui/issues/issue-15881-model-lexer-dotdotdot.rs b/src/test/ui/issues/issue-15881-model-lexer-dotdotdot.rs deleted file mode 100644 index dee7f25d7bb..00000000000 --- a/src/test/ui/issues/issue-15881-model-lexer-dotdotdot.rs +++ /dev/null @@ -1,38 +0,0 @@ -// run-pass -#![allow(illegal_floating_point_literal_pattern)] // FIXME #41620 -#![allow(ellipsis_inclusive_range_patterns)] - -// regression test for the model lexer handling the DOTDOTDOT syntax (#15877) - - -pub fn main() { - match 5_usize { - 1_usize...5_usize => {} - _ => panic!("should match range"), - } - match 5_usize { - 6_usize...7_usize => panic!("shouldn't match range"), - _ => {} - } - match 5_usize { - 1_usize => panic!("should match non-first range"), - 2_usize...6_usize => {} - _ => panic!("math is broken") - } - match 'c' { - 'a'...'z' => {} - _ => panic!("should support char ranges") - } - match -3_isize { - -7...5 => {} - _ => panic!("should match signed range") - } - match 3.0f64 { - 1.0...5.0 => {} - _ => panic!("should match float range") - } - match -1.5f64 { - -3.6...3.6 => {} - _ => panic!("should match negative float range") - } -} diff --git a/src/test/ui/issues/issue-17263.rs b/src/test/ui/issues/issue-17263.rs deleted file mode 100644 index 7e9ff685482..00000000000 --- a/src/test/ui/issues/issue-17263.rs +++ /dev/null @@ -1,25 +0,0 @@ -// check-pass - -#![feature(box_syntax)] - -struct Foo { a: isize, b: isize } - -fn main() { - let mut x: Box<_> = box Foo { a: 1, b: 2 }; - let (a, b) = (&mut x.a, &mut x.b); - - let mut foo: Box<_> = box Foo { a: 1, b: 2 }; - let (c, d) = (&mut foo.a, &foo.b); - - // We explicitly use the references created above to illustrate that the - // borrow checker is accepting this code *not* because of artificially - // short lifetimes, but rather because it understands that all the - // references are of disjoint parts of memory. - use_imm(d); - use_mut(c); - use_mut(b); - use_mut(a); -} - -fn use_mut<T>(_: &mut T) { } -fn use_imm<T>(_: &T) { } diff --git a/src/test/ui/issues/issue-17545.rs b/src/test/ui/issues/issue-17545.rs deleted file mode 100644 index ced6fff315f..00000000000 --- a/src/test/ui/issues/issue-17545.rs +++ /dev/null @@ -1,10 +0,0 @@ -#![feature(fn_traits)] - -fn id<T>(x: T) -> T { x } - -pub fn foo<'a, F: Fn(&'a ())>(bar: F) { - bar.call(( - &id(()), //~ ERROR temporary value dropped while borrowed - )); -} -fn main() {} diff --git a/src/test/ui/issues/issue-17545.stderr b/src/test/ui/issues/issue-17545.stderr deleted file mode 100644 index 79a1e09bd7c..00000000000 --- a/src/test/ui/issues/issue-17545.stderr +++ /dev/null @@ -1,16 +0,0 @@ -error[E0716]: temporary value dropped while borrowed - --> $DIR/issue-17545.rs:7:10 - | -LL | pub fn foo<'a, F: Fn(&'a ())>(bar: F) { - | -- lifetime `'a` defined here -LL | / bar.call(( -LL | | &id(()), - | | ^^^^^^ creates a temporary which is freed while still in use -LL | | )); - | | -- temporary value is freed at the end of this statement - | |______| - | argument requires that borrow lasts for `'a` - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0716`. diff --git a/src/test/ui/issues/issue-17718-borrow-interior.rs b/src/test/ui/issues/issue-17718-borrow-interior.rs deleted file mode 100644 index 5861f218689..00000000000 --- a/src/test/ui/issues/issue-17718-borrow-interior.rs +++ /dev/null @@ -1,19 +0,0 @@ -// run-pass -#![allow(dead_code)] -struct S { a: usize } - -static A: S = S { a: 3 }; -static B: &'static usize = &A.a; -static C: &'static usize = &(A.a); - -static D: [usize; 1] = [1]; -static E: usize = D[0]; -static F: &'static usize = &D[0]; - -fn main() { - assert_eq!(*B, A.a); - assert_eq!(*B, A.a); - - assert_eq!(E, D[0]); - assert_eq!(*F, D[0]); -} diff --git a/src/test/ui/issues/issue-17718-const-bad-values.rs b/src/test/ui/issues/issue-17718-const-bad-values.rs deleted file mode 100644 index 49023f18ddb..00000000000 --- a/src/test/ui/issues/issue-17718-const-bad-values.rs +++ /dev/null @@ -1,10 +0,0 @@ -const C1: &'static mut [usize] = &mut []; -//~^ ERROR: mutable references are not allowed in constants - -static mut S: usize = 3; -const C2: &'static mut usize = unsafe { &mut S }; -//~^ ERROR: constants cannot refer to statics -//~| ERROR: constants cannot refer to statics -//~| ERROR: mutable references are not allowed in constants - -fn main() {} diff --git a/src/test/ui/issues/issue-17718-const-bad-values.stderr b/src/test/ui/issues/issue-17718-const-bad-values.stderr deleted file mode 100644 index 7c50978d4eb..00000000000 --- a/src/test/ui/issues/issue-17718-const-bad-values.stderr +++ /dev/null @@ -1,32 +0,0 @@ -error[E0764]: mutable references are not allowed in constants - --> $DIR/issue-17718-const-bad-values.rs:1:34 - | -LL | const C1: &'static mut [usize] = &mut []; - | ^^^^^^^ `&mut` is only allowed in `const fn` - -error[E0013]: constants cannot refer to statics - --> $DIR/issue-17718-const-bad-values.rs:5:46 - | -LL | const C2: &'static mut usize = unsafe { &mut S }; - | ^ - | - = help: consider extracting the value of the `static` to a `const`, and referring to that - -error[E0013]: constants cannot refer to statics - --> $DIR/issue-17718-const-bad-values.rs:5:46 - | -LL | const C2: &'static mut usize = unsafe { &mut S }; - | ^ - | - = help: consider extracting the value of the `static` to a `const`, and referring to that - -error[E0764]: mutable references are not allowed in constants - --> $DIR/issue-17718-const-bad-values.rs:5:41 - | -LL | const C2: &'static mut usize = unsafe { &mut S }; - | ^^^^^^ `&mut` is only allowed in `const fn` - -error: aborting due to 4 previous errors - -Some errors have detailed explanations: E0013, E0764. -For more information about an error, try `rustc --explain E0013`. diff --git a/src/test/ui/issues/issue-17718-const-borrow.rs b/src/test/ui/issues/issue-17718-const-borrow.rs deleted file mode 100644 index 89316dbd5c4..00000000000 --- a/src/test/ui/issues/issue-17718-const-borrow.rs +++ /dev/null @@ -1,14 +0,0 @@ -use std::cell::UnsafeCell; - -const A: UnsafeCell<usize> = UnsafeCell::new(1); -const B: &'static UnsafeCell<usize> = &A; -//~^ ERROR: cannot refer to interior mutable - -struct C { a: UnsafeCell<usize> } -const D: C = C { a: UnsafeCell::new(1) }; -const E: &'static UnsafeCell<usize> = &D.a; -//~^ ERROR: cannot refer to interior mutable -const F: &'static C = &D; -//~^ ERROR: cannot refer to interior mutable - -fn main() {} diff --git a/src/test/ui/issues/issue-17718-const-borrow.stderr b/src/test/ui/issues/issue-17718-const-borrow.stderr deleted file mode 100644 index e3ff6c923ad..00000000000 --- a/src/test/ui/issues/issue-17718-const-borrow.stderr +++ /dev/null @@ -1,21 +0,0 @@ -error[E0492]: constants cannot refer to interior mutable data - --> $DIR/issue-17718-const-borrow.rs:4:39 - | -LL | const B: &'static UnsafeCell<usize> = &A; - | ^^ this borrow of an interior mutable value may end up in the final value - -error[E0492]: constants cannot refer to interior mutable data - --> $DIR/issue-17718-const-borrow.rs:9:39 - | -LL | const E: &'static UnsafeCell<usize> = &D.a; - | ^^^^ this borrow of an interior mutable value may end up in the final value - -error[E0492]: constants cannot refer to interior mutable data - --> $DIR/issue-17718-const-borrow.rs:11:23 - | -LL | const F: &'static C = &D; - | ^^ this borrow of an interior mutable value may end up in the final value - -error: aborting due to 3 previous errors - -For more information about this error, try `rustc --explain E0492`. diff --git a/src/test/ui/issues/issue-17718-const-naming.rs b/src/test/ui/issues/issue-17718-const-naming.rs deleted file mode 100644 index 7386478f9f0..00000000000 --- a/src/test/ui/issues/issue-17718-const-naming.rs +++ /dev/null @@ -1,8 +0,0 @@ -#![warn(unused)] -#![deny(warnings)] - -const foo: isize = 3; -//~^ ERROR: should have an upper case name -//~^^ ERROR: constant is never used - -fn main() {} diff --git a/src/test/ui/issues/issue-17718-const-naming.stderr b/src/test/ui/issues/issue-17718-const-naming.stderr deleted file mode 100644 index ce4ebcb5e3e..00000000000 --- a/src/test/ui/issues/issue-17718-const-naming.stderr +++ /dev/null @@ -1,28 +0,0 @@ -error: constant is never used: `foo` - --> $DIR/issue-17718-const-naming.rs:4:1 - | -LL | const foo: isize = 3; - | ^^^^^^^^^^^^^^^^^^^^^ - | -note: the lint level is defined here - --> $DIR/issue-17718-const-naming.rs:2:9 - | -LL | #![deny(warnings)] - | ^^^^^^^^ - = note: `#[deny(dead_code)]` implied by `#[deny(warnings)]` - -error: constant `foo` should have an upper case name - --> $DIR/issue-17718-const-naming.rs:4:7 - | -LL | const foo: isize = 3; - | ^^^ help: convert the identifier to upper case (notice the capitalization): `FOO` - | -note: the lint level is defined here - --> $DIR/issue-17718-const-naming.rs:2:9 - | -LL | #![deny(warnings)] - | ^^^^^^^^ - = note: `#[deny(non_upper_case_globals)]` implied by `#[deny(warnings)]` - -error: aborting due to 2 previous errors - diff --git a/src/test/ui/issues/issue-20616-1.rs b/src/test/ui/issues/issue-20616-1.rs deleted file mode 100644 index 49e9cb310c1..00000000000 --- a/src/test/ui/issues/issue-20616-1.rs +++ /dev/null @@ -1,36 +0,0 @@ -// We need all these 9 issue-20616-N.rs files -// because we can only catch one parsing error at a time - - - -type Type_1_<'a, T> = &'a T; - - -type Type_1<'a T> = &'a T; //~ error: expected one of `,`, `:`, or `>`, found `T` - - -//type Type_2 = Type_1_<'static ()>; // error: expected `,` or `>` after lifetime name, found `(` - - -//type Type_3<T> = Box<T,,>; // error: expected type, found `,` - - -//type Type_4<T> = Type_1_<'static,, T>; // error: expected type, found `,` - - -type Type_5_<'a> = Type_1_<'a, ()>; - - -//type Type_5<'a> = Type_1_<'a, (),,>; // error: expected type, found `,` - - -//type Type_6 = Type_5_<'a,,>; // error: expected type, found `,` - - -//type Type_7 = Box<(),,>; // error: expected type, found `,` - - -//type Type_8<'a,,> = &'a (); // error: expected ident, found `,` - - -//type Type_9<T,,> = Box<T>; // error: expected ident, found `,` diff --git a/src/test/ui/issues/issue-20616-1.stderr b/src/test/ui/issues/issue-20616-1.stderr deleted file mode 100644 index 81604623785..00000000000 --- a/src/test/ui/issues/issue-20616-1.stderr +++ /dev/null @@ -1,8 +0,0 @@ -error: expected one of `,`, `:`, or `>`, found `T` - --> $DIR/issue-20616-1.rs:9:16 - | -LL | type Type_1<'a T> = &'a T; - | ^ expected one of `,`, `:`, or `>` - -error: aborting due to previous error - diff --git a/src/test/ui/issues/issue-20616-2.rs b/src/test/ui/issues/issue-20616-2.rs deleted file mode 100644 index f108ae5de14..00000000000 --- a/src/test/ui/issues/issue-20616-2.rs +++ /dev/null @@ -1,36 +0,0 @@ -// We need all these 9 issue-20616-N.rs files -// because we can only catch one parsing error at a time - - - -type Type_1_<'a, T> = &'a T; - - -//type Type_1<'a T> = &'a T; // error: expected `,` or `>` after lifetime name, found `T` - - -type Type_2 = Type_1_<'static ()>; //~ error: expected one of `,`, `:`, `=`, or `>`, found `(` - - -//type Type_3<T> = Box<T,,>; // error: expected type, found `,` - - -//type Type_4<T> = Type_1_<'static,, T>; // error: expected type, found `,` - - -type Type_5_<'a> = Type_1_<'a, ()>; - - -//type Type_5<'a> = Type_1_<'a, (),,>; // error: expected type, found `,` - - -//type Type_6 = Type_5_<'a,,>; // error: expected type, found `,` - - -//type Type_7 = Box<(),,>; // error: expected type, found `,` - - -//type Type_8<'a,,> = &'a (); // error: expected ident, found `,` - - -//type Type_9<T,,> = Box<T>; // error: expected ident, found `,` diff --git a/src/test/ui/issues/issue-20616-2.stderr b/src/test/ui/issues/issue-20616-2.stderr deleted file mode 100644 index 01e3d3dd7cc..00000000000 --- a/src/test/ui/issues/issue-20616-2.stderr +++ /dev/null @@ -1,8 +0,0 @@ -error: expected one of `,`, `:`, `=`, or `>`, found `(` - --> $DIR/issue-20616-2.rs:12:31 - | -LL | type Type_2 = Type_1_<'static ()>; - | ^ expected one of `,`, `:`, `=`, or `>` - -error: aborting due to previous error - diff --git a/src/test/ui/issues/issue-20801.rs b/src/test/ui/issues/issue-20801.rs deleted file mode 100644 index c3f136f2876..00000000000 --- a/src/test/ui/issues/issue-20801.rs +++ /dev/null @@ -1,37 +0,0 @@ -// We used to ICE when moving out of a `*mut T` or `*const T`. - -struct T(u8); - -static mut GLOBAL_MUT_T: T = T(0); - -static GLOBAL_T: T = T(0); - -fn imm_ref() -> &'static T { - unsafe { &GLOBAL_T } -} - -fn mut_ref() -> &'static mut T { - unsafe { &mut GLOBAL_MUT_T } -} - -fn mut_ptr() -> *mut T { - unsafe { core::ptr::null_mut() } -} - -fn const_ptr() -> *const T { - unsafe { core::ptr::null() } -} - -pub fn main() { - let a = unsafe { *mut_ref() }; - //~^ ERROR cannot move out of a mutable reference - - let b = unsafe { *imm_ref() }; - //~^ ERROR cannot move out of a shared reference - - let c = unsafe { *mut_ptr() }; - //~^ ERROR cannot move out of a raw pointer - - let d = unsafe { *const_ptr() }; - //~^ ERROR cannot move out of a raw pointer -} diff --git a/src/test/ui/issues/issue-20801.stderr b/src/test/ui/issues/issue-20801.stderr deleted file mode 100644 index d276231dc0c..00000000000 --- a/src/test/ui/issues/issue-20801.stderr +++ /dev/null @@ -1,39 +0,0 @@ -error[E0507]: cannot move out of a mutable reference - --> $DIR/issue-20801.rs:26:22 - | -LL | let a = unsafe { *mut_ref() }; - | ^^^^^^^^^^ - | | - | move occurs because value has type `T`, which does not implement the `Copy` trait - | help: consider borrowing here: `&*mut_ref()` - -error[E0507]: cannot move out of a shared reference - --> $DIR/issue-20801.rs:29:22 - | -LL | let b = unsafe { *imm_ref() }; - | ^^^^^^^^^^ - | | - | move occurs because value has type `T`, which does not implement the `Copy` trait - | help: consider borrowing here: `&*imm_ref()` - -error[E0507]: cannot move out of a raw pointer - --> $DIR/issue-20801.rs:32:22 - | -LL | let c = unsafe { *mut_ptr() }; - | ^^^^^^^^^^ - | | - | move occurs because value has type `T`, which does not implement the `Copy` trait - | help: consider borrowing here: `&*mut_ptr()` - -error[E0507]: cannot move out of a raw pointer - --> $DIR/issue-20801.rs:35:22 - | -LL | let d = unsafe { *const_ptr() }; - | ^^^^^^^^^^^^ - | | - | move occurs because value has type `T`, which does not implement the `Copy` trait - | help: consider borrowing here: `&*const_ptr()` - -error: aborting due to 4 previous errors - -For more information about this error, try `rustc --explain E0507`. diff --git a/src/test/ui/issues/issue-21146.rs b/src/test/ui/issues/issue-21146.rs deleted file mode 100644 index 19eaffc3edd..00000000000 --- a/src/test/ui/issues/issue-21146.rs +++ /dev/null @@ -1,3 +0,0 @@ -// error-pattern: expected one of `!` or `::`, found `<eof>` -include!("auxiliary/issue-21146-inc.rs"); -fn main() {} diff --git a/src/test/ui/issues/issue-21146.stderr b/src/test/ui/issues/issue-21146.stderr deleted file mode 100644 index c71fda3d63f..00000000000 --- a/src/test/ui/issues/issue-21146.stderr +++ /dev/null @@ -1,8 +0,0 @@ -error: expected one of `!` or `::`, found `<eof>` - --> $DIR/auxiliary/issue-21146-inc.rs:3:1 - | -LL | parse_error - | ^^^^^^^^^^^ expected one of `!` or `::` - -error: aborting due to previous error - diff --git a/src/test/ui/issues/issue-21562.rs b/src/test/ui/issues/issue-21562.rs deleted file mode 100644 index a47d739c6be..00000000000 --- a/src/test/ui/issues/issue-21562.rs +++ /dev/null @@ -1,19 +0,0 @@ -// build-pass -#![allow(dead_code)] -#![allow(non_upper_case_globals)] - -extern crate core; -use core::marker::Sync; - -static SARRAY: [i32; 1] = [11]; - -struct MyStruct { - pub arr: *const [i32], -} -unsafe impl Sync for MyStruct {} - -static mystruct: MyStruct = MyStruct { - arr: &SARRAY -}; - -fn main() {} diff --git a/src/test/ui/issues/issue-21721.rs b/src/test/ui/issues/issue-21721.rs deleted file mode 100644 index 4c1411e1ecf..00000000000 --- a/src/test/ui/issues/issue-21721.rs +++ /dev/null @@ -1,9 +0,0 @@ -// run-pass - -fn main() { - static NONE: Option<((), &'static u8)> = None; - let ptr = unsafe { - *(&NONE as *const _ as *const *const u8) - }; - assert!(ptr.is_null()); -} diff --git a/src/test/ui/issues/issue-22546.rs b/src/test/ui/issues/issue-22546.rs deleted file mode 100644 index c26e457f9e4..00000000000 --- a/src/test/ui/issues/issue-22546.rs +++ /dev/null @@ -1,52 +0,0 @@ -// run-pass -#![allow(unused_variables)] -// Parsing patterns with paths with type parameters (issue #22544) - -use std::default::Default; - -#[derive(Default)] -pub struct Foo<T>(T, T); - -impl<T: ::std::fmt::Display> Foo<T> { - fn foo(&self) { - match *self { - Foo::<T>(ref x, ref y) => println!("Goodbye, World! {} {}", x, y) - } - } -} - -trait Tr { - type U; -} - -impl<T> Tr for Foo<T> { - type U = T; -} - -struct Wrapper<T> { - value: T -} - -fn main() { - let Foo::<i32>(a, b) = Default::default(); - - let f = Foo(2,3); - f.foo(); - - let w = Wrapper { value: Foo(10u8, 11u8) }; - match w { - Wrapper::<Foo<u8>> { value: Foo(10, 11) } => {}, - ::Wrapper::<<Foo<_> as Tr>::U> { value: Foo::<u8>(11, 16) } => { panic!() }, - _ => { panic!() } - } - - if let None::<u8> = Some(8) { - panic!(); - } - if let None::<u8> { .. } = Some(8) { - panic!(); - } - if let Option::None::<u8> { .. } = Some(8) { - panic!(); - } -} diff --git a/src/test/ui/issues/issue-24085.rs b/src/test/ui/issues/issue-24085.rs deleted file mode 100644 index 86e94beb7e2..00000000000 --- a/src/test/ui/issues/issue-24085.rs +++ /dev/null @@ -1,19 +0,0 @@ -// check-pass -#![allow(dead_code)] -// Regression test for #24085. Errors were occurring in region -// inference due to the requirement that `'a:b'`, which was getting -// incorrectly codegened in connection with the closure below. - -#[derive(Copy,Clone)] -struct Path<'a:'b, 'b> { - x: &'a i32, - tail: Option<&'b Path<'a, 'b>> -} - -#[allow(dead_code, unconditional_recursion)] -fn foo<'a,'b,F>(p: Path<'a, 'b>, mut f: F) - where F: for<'c> FnMut(Path<'a, 'c>) { - foo(p, |x| f(x)) -} - -fn main() { } diff --git a/src/test/ui/issues/issue-24267-flow-exit.rs b/src/test/ui/issues/issue-24267-flow-exit.rs deleted file mode 100644 index d6809ee4143..00000000000 --- a/src/test/ui/issues/issue-24267-flow-exit.rs +++ /dev/null @@ -1,19 +0,0 @@ -// Ensure that we reject code when a nonlocal exit (`break`, -// `continue`) causes us to pop over a needed assignment. - -pub fn main() { - foo1(); - foo2(); -} - -pub fn foo1() { - let x: i32; - loop { x = break; } - println!("{}", x); //~ ERROR borrow of possibly-uninitialized variable: `x` -} - -pub fn foo2() { - let x: i32; - for _ in 0..10 { x = continue; } - println!("{}", x); //~ ERROR borrow of possibly-uninitialized variable: `x` -} diff --git a/src/test/ui/issues/issue-24267-flow-exit.stderr b/src/test/ui/issues/issue-24267-flow-exit.stderr deleted file mode 100644 index 4eb41ca24dd..00000000000 --- a/src/test/ui/issues/issue-24267-flow-exit.stderr +++ /dev/null @@ -1,15 +0,0 @@ -error[E0381]: borrow of possibly-uninitialized variable: `x` - --> $DIR/issue-24267-flow-exit.rs:12:20 - | -LL | println!("{}", x); - | ^ use of possibly-uninitialized `x` - -error[E0381]: borrow of possibly-uninitialized variable: `x` - --> $DIR/issue-24267-flow-exit.rs:18:20 - | -LL | println!("{}", x); - | ^ use of possibly-uninitialized `x` - -error: aborting due to 2 previous errors - -For more information about this error, try `rustc --explain E0381`. diff --git a/src/test/ui/issues/issue-24338.rs b/src/test/ui/issues/issue-24338.rs deleted file mode 100644 index 3a2c790f852..00000000000 --- a/src/test/ui/issues/issue-24338.rs +++ /dev/null @@ -1,21 +0,0 @@ -// -// check-pass - -trait DictLike<'a> { - type ItemsIterator: Iterator<Item=u8>; - fn get(c: Self::ItemsIterator) { - c.into_iter(); - } -} - -trait DictLike2<'a> { - type ItemsIterator: Iterator<Item=u8>; - - fn items(&self) -> Self::ItemsIterator; - - fn get(&self) { - for _ in self.items() {} - } -} - -fn main() {} diff --git a/src/test/ui/issues/issue-25793.rs b/src/test/ui/issues/issue-25793.rs deleted file mode 100644 index 6c8dacc2248..00000000000 --- a/src/test/ui/issues/issue-25793.rs +++ /dev/null @@ -1,26 +0,0 @@ -#![feature(rustc_attrs)] -macro_rules! width( - ($this:expr) => { - $this.width.unwrap() - //~^ ERROR cannot use `self.width` because it was mutably borrowed - } -); - -struct HasInfo { - width: Option<usize> -} - -impl HasInfo { - fn get_size(&mut self, n: usize) -> usize { - n - } - - fn get_other(&mut self) -> usize { - let r = &mut *self; - r.get_size(width!(self)) - } - // Above is like `self.get_size(width!(self))`, but it - // deliberately avoids NLL's two phase borrow feature. -} - -fn main() { } diff --git a/src/test/ui/issues/issue-25793.stderr b/src/test/ui/issues/issue-25793.stderr deleted file mode 100644 index 9d66ba3aae1..00000000000 --- a/src/test/ui/issues/issue-25793.stderr +++ /dev/null @@ -1,18 +0,0 @@ -error[E0503]: cannot use `self.width` because it was mutably borrowed - --> $DIR/issue-25793.rs:4:9 - | -LL | $this.width.unwrap() - | ^^^^^^^^^^^ use of borrowed `*self` -... -LL | let r = &mut *self; - | ---------- borrow of `*self` occurs here -LL | r.get_size(width!(self)) - | -------- ------------ in this macro invocation - | | - | borrow later used by call - | - = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info) - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0503`. diff --git a/src/test/ui/issues/issue-25916.rs b/src/test/ui/issues/issue-25916.rs deleted file mode 100644 index 0b415947965..00000000000 --- a/src/test/ui/issues/issue-25916.rs +++ /dev/null @@ -1,28 +0,0 @@ -// run-pass -#![allow(unused_must_use)] - -fn main() { - macro_rules! f { - () => { 0 + 0 } - } - // 16 per line - f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!(); - f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!(); - f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!(); - f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!(); - - f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!(); - f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!(); - f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!(); - f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!(); - - f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!(); - f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!(); - f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!(); - f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!(); - - f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!(); - f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!(); - f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!(); - f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!();f!(); -} diff --git a/src/test/ui/issues/issue-26322.rs b/src/test/ui/issues/issue-26322.rs deleted file mode 100644 index c1dc80eb7c5..00000000000 --- a/src/test/ui/issues/issue-26322.rs +++ /dev/null @@ -1,30 +0,0 @@ -// run-pass -#![allow(non_camel_case_types)] -#![allow(non_snake_case)] - -macro_rules! columnline { - () => ( - (column!(), line!()) - ) -} - -macro_rules! indirectcolumnline { - () => ( - (||{ columnline!() })() - ) -} - -fn main() { - let closure = || { - columnline!() - }; - let iflet = if let Some(_) = Some(0) { - columnline!() - } else { (0, 0) }; - let cl = columnline!(); - assert_eq!(closure(), (9, 19)); - assert_eq!(iflet, (9, 22)); - assert_eq!(cl, (14, 24)); - let indirect = indirectcolumnline!(); - assert_eq!(indirect, (20, 28)); -} diff --git a/src/test/ui/issues/issue-26873-onefile.rs b/src/test/ui/issues/issue-26873-onefile.rs deleted file mode 100644 index f06c6499eb0..00000000000 --- a/src/test/ui/issues/issue-26873-onefile.rs +++ /dev/null @@ -1,25 +0,0 @@ -// run-pass -#![allow(dead_code)] -#![allow(unused_imports)] -#![allow(non_snake_case)] - -mod A { - pub mod B { - use super::*; - - pub struct S; - } - - pub mod C { - use super::*; - use super::B::S; - - pub struct T; - } - - pub use self::C::T; -} - -use A::*; - -fn main() {} diff --git a/src/test/ui/issues/issue-2718.rs b/src/test/ui/issues/issue-2718.rs deleted file mode 100644 index 6449337eea4..00000000000 --- a/src/test/ui/issues/issue-2718.rs +++ /dev/null @@ -1,327 +0,0 @@ -// run-pass -#![allow(dead_code)] -#![allow(unused_unsafe)] -#![allow(unused_imports)] -#![allow(non_camel_case_types)] - -pub type Task = isize; - -// tjc: I don't know why -pub mod pipes { - use self::state::{empty, full, blocked, terminated}; - use super::Task; - use std::mem::{forget, transmute}; - use std::mem::{replace, swap}; - use std::mem; - use std::thread; - use std::marker::Send; - - pub struct Stuff<T> { - state: state, - blocked_task: Option<Task>, - payload: Option<T> - } - - #[derive(PartialEq, Debug)] - #[repr(isize)] - pub enum state { - empty, - full, - blocked, - terminated - } - - pub struct packet<T> { - state: state, - blocked_task: Option<Task>, - payload: Option<T> - } - - unsafe impl<T:Send> Send for packet<T> {} - - pub fn packet<T:Send>() -> *const packet<T> { - unsafe { - let p: *const packet<T> = mem::transmute(Box::new(Stuff{ - state: empty, - blocked_task: None::<Task>, - payload: None::<T> - })); - p - } - } - - mod rusti { - pub fn atomic_xchg(_dst: &mut isize, _src: isize) -> isize { panic!(); } - pub fn atomic_xchg_acq(_dst: &mut isize, _src: isize) -> isize { panic!(); } - pub fn atomic_xchg_rel(_dst: &mut isize, _src: isize) -> isize { panic!(); } - } - - // We should consider moving this to ::std::unsafe, although I - // suspect graydon would want us to use void pointers instead. - pub unsafe fn uniquify<T>(x: *const T) -> Box<T> { - mem::transmute(x) - } - - pub fn swap_state_acq(dst: &mut state, src: state) -> state { - unsafe { - transmute(rusti::atomic_xchg_acq(transmute(dst), src as isize)) - } - } - - pub fn swap_state_rel(dst: &mut state, src: state) -> state { - unsafe { - transmute(rusti::atomic_xchg_rel(transmute(dst), src as isize)) - } - } - - pub fn send<T:Send>(mut p: send_packet<T>, payload: T) { - let p = p.unwrap(); - let mut p = unsafe { uniquify(p) }; - assert!((*p).payload.is_none()); - (*p).payload = Some(payload); - let old_state = swap_state_rel(&mut (*p).state, full); - match old_state { - empty => { - // Yay, fastpath. - - // The receiver will eventually clean this up. - unsafe { forget(p); } - } - full => { panic!("duplicate send") } - blocked => { - - // The receiver will eventually clean this up. - unsafe { forget(p); } - } - terminated => { - // The receiver will never receive this. Rely on drop_glue - // to clean everything up. - } - } - } - - pub fn recv<T:Send>(mut p: recv_packet<T>) -> Option<T> { - let p = p.unwrap(); - let mut p = unsafe { uniquify(p) }; - loop { - let old_state = swap_state_acq(&mut (*p).state, - blocked); - match old_state { - empty | blocked => { thread::yield_now(); } - full => { - let payload = replace(&mut p.payload, None); - return Some(payload.unwrap()) - } - terminated => { - assert_eq!(old_state, terminated); - return None; - } - } - } - } - - pub fn sender_terminate<T:Send>(p: *const packet<T>) { - let mut p = unsafe { uniquify(p) }; - match swap_state_rel(&mut (*p).state, terminated) { - empty | blocked => { - // The receiver will eventually clean up. - unsafe { forget(p) } - } - full => { - // This is impossible - panic!("you dun goofed") - } - terminated => { - // I have to clean up, use drop_glue - } - } - } - - pub fn receiver_terminate<T:Send>(p: *const packet<T>) { - let mut p = unsafe { uniquify(p) }; - match swap_state_rel(&mut (*p).state, terminated) { - empty => { - // the sender will clean up - unsafe { forget(p) } - } - blocked => { - // this shouldn't happen. - panic!("terminating a blocked packet") - } - terminated | full => { - // I have to clean up, use drop_glue - } - } - } - - pub struct send_packet<T:Send> { - p: Option<*const packet<T>>, - } - - impl<T:Send> Drop for send_packet<T> { - fn drop(&mut self) { - unsafe { - if self.p != None { - let self_p: &mut Option<*const packet<T>> = - mem::transmute(&mut self.p); - let p = replace(self_p, None); - sender_terminate(p.unwrap()) - } - } - } - } - - impl<T:Send> send_packet<T> { - pub fn unwrap(&mut self) -> *const packet<T> { - replace(&mut self.p, None).unwrap() - } - } - - pub fn send_packet<T:Send>(p: *const packet<T>) -> send_packet<T> { - send_packet { - p: Some(p) - } - } - - pub struct recv_packet<T:Send> { - p: Option<*const packet<T>>, - } - - impl<T:Send> Drop for recv_packet<T> { - fn drop(&mut self) { - unsafe { - if self.p != None { - let self_p: &mut Option<*const packet<T>> = - mem::transmute(&mut self.p); - let p = replace(self_p, None); - receiver_terminate(p.unwrap()) - } - } - } - } - - impl<T:Send> recv_packet<T> { - pub fn unwrap(&mut self) -> *const packet<T> { - replace(&mut self.p, None).unwrap() - } - } - - pub fn recv_packet<T:Send>(p: *const packet<T>) -> recv_packet<T> { - recv_packet { - p: Some(p) - } - } - - pub fn entangle<T:Send>() -> (send_packet<T>, recv_packet<T>) { - let p = packet(); - (send_packet(p), recv_packet(p)) - } -} - -pub mod pingpong { - use std::mem; - - pub struct ping(::pipes::send_packet<pong>); - - unsafe impl Send for ping {} - - pub struct pong(::pipes::send_packet<ping>); - - unsafe impl Send for pong {} - - pub fn liberate_ping(p: ping) -> ::pipes::send_packet<pong> { - unsafe { - let _addr : *const ::pipes::send_packet<pong> = match &p { - &ping(ref x) => { mem::transmute(x) } - }; - panic!() - } - } - - pub fn liberate_pong(p: pong) -> ::pipes::send_packet<ping> { - unsafe { - let _addr : *const ::pipes::send_packet<ping> = match &p { - &pong(ref x) => { mem::transmute(x) } - }; - panic!() - } - } - - pub fn init() -> (client::ping, server::ping) { - ::pipes::entangle() - } - - pub mod client { - use pingpong; - - pub type ping = ::pipes::send_packet<pingpong::ping>; - pub type pong = ::pipes::recv_packet<pingpong::pong>; - - pub fn do_ping(c: ping) -> pong { - let (sp, rp) = ::pipes::entangle(); - - ::pipes::send(c, pingpong::ping(sp)); - rp - } - - pub fn do_pong(c: pong) -> (ping, ()) { - let packet = ::pipes::recv(c); - if packet.is_none() { - panic!("sender closed the connection") - } - (pingpong::liberate_pong(packet.unwrap()), ()) - } - } - - pub mod server { - use pingpong; - - pub type ping = ::pipes::recv_packet<pingpong::ping>; - pub type pong = ::pipes::send_packet<pingpong::pong>; - - pub fn do_ping(c: ping) -> (pong, ()) { - let packet = ::pipes::recv(c); - if packet.is_none() { - panic!("sender closed the connection") - } - (pingpong::liberate_ping(packet.unwrap()), ()) - } - - pub fn do_pong(c: pong) -> ping { - let (sp, rp) = ::pipes::entangle(); - ::pipes::send(c, pingpong::pong(sp)); - rp - } - } -} - -fn client(chan: pingpong::client::ping) { - let chan = pingpong::client::do_ping(chan); - println!("Sent ping"); - let (_chan, _data) = pingpong::client::do_pong(chan); - println!("Received pong"); -} - -fn server(chan: pingpong::server::ping) { - let (chan, _data) = pingpong::server::do_ping(chan); - println!("Received ping"); - let _chan = pingpong::server::do_pong(chan); - println!("Sent pong"); -} - -pub fn main() { - /* -// Commented out because of option::get error - - let (client_, server_) = pingpong::init(); - - task::spawn {|client_| - let client__ = client_.take(); - client(client__); - }; - task::spawn {|server_| - let server__ = server_.take(); - server(server_ËŠ); - }; - */ -} diff --git a/src/test/ui/issues/issue-27282-move-match-input-into-guard.rs b/src/test/ui/issues/issue-27282-move-match-input-into-guard.rs deleted file mode 100644 index 71f1f15654b..00000000000 --- a/src/test/ui/issues/issue-27282-move-match-input-into-guard.rs +++ /dev/null @@ -1,20 +0,0 @@ -// Issue 27282: Example 2: This sidesteps the AST checks disallowing -// mutable borrows in match guards by hiding the mutable borrow in a -// guard behind a move (of the mutably borrowed match input) within a -// closure. -// -// This example is not rejected by AST borrowck (and then reliably -// reaches the panic code when executed, despite the compiler warning -// about that match arm being unreachable. - -fn main() { - let b = &mut true; - match b { - &mut false => {}, - _ if { (|| { let bar = b; *bar = false; })(); - false } => { }, - &mut true => { println!("You might think we should get here"); }, - //~^ ERROR use of moved value: `b` [E0382] - _ => panic!("surely we could never get here, since rustc warns it is unreachable."), - } -} diff --git a/src/test/ui/issues/issue-27282-move-match-input-into-guard.stderr b/src/test/ui/issues/issue-27282-move-match-input-into-guard.stderr deleted file mode 100644 index 51f9b464d76..00000000000 --- a/src/test/ui/issues/issue-27282-move-match-input-into-guard.stderr +++ /dev/null @@ -1,17 +0,0 @@ -error[E0382]: use of moved value: `b` - --> $DIR/issue-27282-move-match-input-into-guard.rs:16:14 - | -LL | let b = &mut true; - | - move occurs because `b` has type `&mut bool`, which does not implement the `Copy` trait -... -LL | _ if { (|| { let bar = b; *bar = false; })(); - | -- - variable moved due to use in closure - | | - | value moved into closure here -LL | false } => { }, -LL | &mut true => { println!("You might think we should get here"); }, - | ^^^^ value used here after move - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0382`. diff --git a/src/test/ui/issues/issue-27282-mutate-before-diverging-arm-2.rs b/src/test/ui/issues/issue-27282-mutate-before-diverging-arm-2.rs deleted file mode 100644 index 9c3e7e9978e..00000000000 --- a/src/test/ui/issues/issue-27282-mutate-before-diverging-arm-2.rs +++ /dev/null @@ -1,40 +0,0 @@ -// This is testing an attempt to corrupt the discriminant of the match -// arm in a guard, followed by an attempt to continue matching on that -// corrupted discriminant in the remaining match arms. -// -// Basically this is testing that our new NLL feature of emitting a -// fake read on each match arm is catching cases like this. -// -// This case is interesting because it includes a guard that -// diverges, and therefore a single final fake-read at the very end -// after the final match arm would not suffice. -// -// It is also interesting because the access to the corrupted data -// occurs in the pattern-match itself, and not in the guard -// expression. - -struct ForceFnOnce; - -fn main() { - let mut x = &mut Some(&2); - let force_fn_once = ForceFnOnce; - match x { - &mut None => panic!("unreachable"), - &mut Some(&_) - if { - // ForceFnOnce needed to exploit #27282 - (|| { *x = None; drop(force_fn_once); })(); - //~^ ERROR cannot mutably borrow `x` in match guard [E0510] - false - } => {} - - // this segfaults if we corrupted the discriminant, because - // the compiler gets to *assume* that it cannot be the `None` - // case, even though that was the effect of the guard. - &mut Some(&2) - if { - panic!() - } => {} - _ => panic!("unreachable"), - } -} diff --git a/src/test/ui/issues/issue-27282-mutate-before-diverging-arm-2.stderr b/src/test/ui/issues/issue-27282-mutate-before-diverging-arm-2.stderr deleted file mode 100644 index f0a3151f4e1..00000000000 --- a/src/test/ui/issues/issue-27282-mutate-before-diverging-arm-2.stderr +++ /dev/null @@ -1,14 +0,0 @@ -error[E0510]: cannot mutably borrow `x` in match guard - --> $DIR/issue-27282-mutate-before-diverging-arm-2.rs:26:18 - | -LL | match x { - | - value is immutable in match guard -... -LL | (|| { *x = None; drop(force_fn_once); })(); - | ^^ - borrow occurs due to use of `x` in closure - | | - | cannot mutably borrow - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0510`. diff --git a/src/test/ui/issues/issue-27282-reborrow-ref-mut-in-guard.rs b/src/test/ui/issues/issue-27282-reborrow-ref-mut-in-guard.rs deleted file mode 100644 index 82d8b9e9ed9..00000000000 --- a/src/test/ui/issues/issue-27282-reborrow-ref-mut-in-guard.rs +++ /dev/null @@ -1,18 +0,0 @@ -// Issue 27282: This is a variation on issue-27282-move-ref-mut-into-guard.rs -// -// It reborrows instead of moving the `ref mut` pattern borrow. This -// means that our conservative check for mutation in guards will -// reject it. But I want to make sure that we continue to reject it -// (under NLL) even when that conservaive check goes away. - -fn main() { - let mut b = &mut true; - match b { - &mut false => {}, - ref mut r if { (|| { let bar = &mut *r; **bar = false; })(); - //~^ ERROR cannot borrow `r` as mutable, as it is immutable for the pattern guard - false } => { &mut *r; }, - &mut true => { println!("You might think we should get here"); }, - _ => panic!("surely we could never get here, since rustc warns it is unreachable."), - } -} diff --git a/src/test/ui/issues/issue-27282-reborrow-ref-mut-in-guard.stderr b/src/test/ui/issues/issue-27282-reborrow-ref-mut-in-guard.stderr deleted file mode 100644 index f0264b56ea5..00000000000 --- a/src/test/ui/issues/issue-27282-reborrow-ref-mut-in-guard.stderr +++ /dev/null @@ -1,13 +0,0 @@ -error[E0596]: cannot borrow `r` as mutable, as it is immutable for the pattern guard - --> $DIR/issue-27282-reborrow-ref-mut-in-guard.rs:12:25 - | -LL | ref mut r if { (|| { let bar = &mut *r; **bar = false; })(); - | ^^ - mutable borrow occurs due to use of `r` in closure - | | - | cannot borrow as mutable - | - = note: variables bound in patterns are immutable until the end of the pattern guard - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0596`. diff --git a/src/test/ui/issues/issue-27890.rs b/src/test/ui/issues/issue-27890.rs deleted file mode 100644 index 9f85473380f..00000000000 --- a/src/test/ui/issues/issue-27890.rs +++ /dev/null @@ -1,7 +0,0 @@ -// run-pass -static PLUS_ONE: &'static (dyn Fn(i32) -> i32 + Sync) = (&|x: i32| { x + 1 }) - as &'static (dyn Fn(i32) -> i32 + Sync); - -fn main() { - assert_eq!(PLUS_ONE(2), 3); -} diff --git a/src/test/ui/issues/issue-28113.rs b/src/test/ui/issues/issue-28113.rs deleted file mode 100644 index e5bd7aafe41..00000000000 --- a/src/test/ui/issues/issue-28113.rs +++ /dev/null @@ -1,8 +0,0 @@ -#![allow(warnings)] - -const X: u8 = - || -> u8 { 5 }() - //~^ ERROR calls in constants are limited to constant functions -; - -fn main() {} diff --git a/src/test/ui/issues/issue-28113.stderr b/src/test/ui/issues/issue-28113.stderr deleted file mode 100644 index 3d274d777b0..00000000000 --- a/src/test/ui/issues/issue-28113.stderr +++ /dev/null @@ -1,9 +0,0 @@ -error[E0015]: calls in constants are limited to constant functions, tuple structs and tuple variants - --> $DIR/issue-28113.rs:4:5 - | -LL | || -> u8 { 5 }() - | ^^^^^^^^^^^^^^^^ - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0015`. diff --git a/src/test/ui/issues/issue-28498-ugeh-with-lifetime-param.rs b/src/test/ui/issues/issue-28498-ugeh-with-lifetime-param.rs deleted file mode 100644 index 43c0bfb26cd..00000000000 --- a/src/test/ui/issues/issue-28498-ugeh-with-lifetime-param.rs +++ /dev/null @@ -1,38 +0,0 @@ -// run-pass - -// Demonstrate the use of the unguarded escape hatch with a lifetime param -// to assert that destructor will not access any dead data. -// -// Compare with ui/span/issue28498-reject-lifetime-param.rs - -#![feature(dropck_eyepatch)] - -#[derive(Debug)] -struct ScribbleOnDrop(String); - -impl Drop for ScribbleOnDrop { - fn drop(&mut self) { - self.0 = format!("DROPPED"); - } -} - -struct Foo<'a>(u32, &'a ScribbleOnDrop); - -unsafe impl<#[may_dangle] 'a> Drop for Foo<'a> { - fn drop(&mut self) { - // Use of `may_dangle` is sound, because destructor never accesses `self.1`. - println!("Dropping Foo({}, _)", self.0); - } -} - -fn main() { - let (last_dropped, foo0); - let (foo1, first_dropped); - - last_dropped = ScribbleOnDrop(format!("last")); - first_dropped = ScribbleOnDrop(format!("first")); - foo0 = Foo(0, &last_dropped); - foo1 = Foo(1, &first_dropped); - - println!("foo0.1: {:?} foo1.1: {:?}", foo0.1, foo1.1); -} diff --git a/src/test/ui/issues/issue-28498-ugeh-with-trait-bound.rs b/src/test/ui/issues/issue-28498-ugeh-with-trait-bound.rs deleted file mode 100644 index 61d11cf3834..00000000000 --- a/src/test/ui/issues/issue-28498-ugeh-with-trait-bound.rs +++ /dev/null @@ -1,41 +0,0 @@ -// run-pass - -// Demonstrate the use of the unguarded escape hatch with a trait bound -// to assert that destructor will not access any dead data. -// -// Compare with ui/span/issue28498-reject-trait-bound.rs - -#![feature(dropck_eyepatch)] - -use std::fmt; - -#[derive(Debug)] -struct ScribbleOnDrop(String); - -impl Drop for ScribbleOnDrop { - fn drop(&mut self) { - self.0 = format!("DROPPED"); - } -} - -struct Foo<T: fmt::Debug>(u32, T); - -unsafe impl<#[may_dangle] T: fmt::Debug> Drop for Foo<T> { - fn drop(&mut self) { - // Use of `may_dangle` is sound, because destructor never accesses - // the `Debug::fmt` method of `T`, despite having it available. - println!("Dropping Foo({}, _)", self.0); - } -} - -fn main() { - let (last_dropped, foo0); - let (foo1, first_dropped); - - last_dropped = ScribbleOnDrop(format!("last")); - first_dropped = ScribbleOnDrop(format!("first")); - foo0 = Foo(0, &last_dropped); - foo1 = Foo(1, &first_dropped); - - println!("foo0.1: {:?} foo1.1: {:?}", foo0.1, foo1.1); -} diff --git a/src/test/ui/issues/issue-28676.rs b/src/test/ui/issues/issue-28676.rs deleted file mode 100644 index 347a840296d..00000000000 --- a/src/test/ui/issues/issue-28676.rs +++ /dev/null @@ -1,40 +0,0 @@ -// run-pass -#![allow(dead_code)] -#![allow(improper_ctypes)] - -// ignore-wasm32-bare no libc to test ffi with - -#[derive(Copy, Clone)] -pub struct Quad { - a: u64, - b: u64, - c: u64, - d: u64, -} - -mod rustrt { - use super::Quad; - - #[link(name = "rust_test_helpers", kind = "static")] - extern "C" { - pub fn get_c_many_params( - _: *const (), - _: *const (), - _: *const (), - _: *const (), - f: Quad, - ) -> u64; - } -} - -fn test() { - unsafe { - let null = std::ptr::null(); - let q = Quad { a: 1, b: 2, c: 3, d: 4 }; - assert_eq!(rustrt::get_c_many_params(null, null, null, null, q), q.c); - } -} - -pub fn main() { - test(); -} diff --git a/src/test/ui/issues/issue-28837.rs b/src/test/ui/issues/issue-28837.rs deleted file mode 100644 index 9719c3afa68..00000000000 --- a/src/test/ui/issues/issue-28837.rs +++ /dev/null @@ -1,35 +0,0 @@ -struct A; - -fn main() { - let a = A; - - a + a; //~ ERROR cannot add `A` to `A` - - a - a; //~ ERROR cannot subtract `A` from `A` - - a * a; //~ ERROR cannot multiply `A` by `A` - - a / a; //~ ERROR cannot divide `A` by `A` - - a % a; //~ ERROR cannot mod `A` by `A` - - a & a; //~ ERROR no implementation for `A & A` - - a | a; //~ ERROR no implementation for `A | A` - - a << a; //~ ERROR no implementation for `A << A` - - a >> a; //~ ERROR no implementation for `A >> A` - - a == a; //~ ERROR binary operation `==` cannot be applied to type `A` - - a != a; //~ ERROR binary operation `!=` cannot be applied to type `A` - - a < a; //~ ERROR binary operation `<` cannot be applied to type `A` - - a <= a; //~ ERROR binary operation `<=` cannot be applied to type `A` - - a > a; //~ ERROR binary operation `>` cannot be applied to type `A` - - a >= a; //~ ERROR binary operation `>=` cannot be applied to type `A` -} diff --git a/src/test/ui/issues/issue-28837.stderr b/src/test/ui/issues/issue-28837.stderr deleted file mode 100644 index 07f67bc3de7..00000000000 --- a/src/test/ui/issues/issue-28837.stderr +++ /dev/null @@ -1,153 +0,0 @@ -error[E0369]: cannot add `A` to `A` - --> $DIR/issue-28837.rs:6:7 - | -LL | a + a; - | - ^ - A - | | - | A - | - = note: an implementation of `std::ops::Add` might be missing for `A` - -error[E0369]: cannot subtract `A` from `A` - --> $DIR/issue-28837.rs:8:7 - | -LL | a - a; - | - ^ - A - | | - | A - | - = note: an implementation of `std::ops::Sub` might be missing for `A` - -error[E0369]: cannot multiply `A` by `A` - --> $DIR/issue-28837.rs:10:7 - | -LL | a * a; - | - ^ - A - | | - | A - | - = note: an implementation of `std::ops::Mul` might be missing for `A` - -error[E0369]: cannot divide `A` by `A` - --> $DIR/issue-28837.rs:12:7 - | -LL | a / a; - | - ^ - A - | | - | A - | - = note: an implementation of `std::ops::Div` might be missing for `A` - -error[E0369]: cannot mod `A` by `A` - --> $DIR/issue-28837.rs:14:7 - | -LL | a % a; - | - ^ - A - | | - | A - | - = note: an implementation of `std::ops::Rem` might be missing for `A` - -error[E0369]: no implementation for `A & A` - --> $DIR/issue-28837.rs:16:7 - | -LL | a & a; - | - ^ - A - | | - | A - | - = note: an implementation of `std::ops::BitAnd` might be missing for `A` - -error[E0369]: no implementation for `A | A` - --> $DIR/issue-28837.rs:18:7 - | -LL | a | a; - | - ^ - A - | | - | A - | - = note: an implementation of `std::ops::BitOr` might be missing for `A` - -error[E0369]: no implementation for `A << A` - --> $DIR/issue-28837.rs:20:7 - | -LL | a << a; - | - ^^ - A - | | - | A - | - = note: an implementation of `std::ops::Shl` might be missing for `A` - -error[E0369]: no implementation for `A >> A` - --> $DIR/issue-28837.rs:22:7 - | -LL | a >> a; - | - ^^ - A - | | - | A - | - = note: an implementation of `std::ops::Shr` might be missing for `A` - -error[E0369]: binary operation `==` cannot be applied to type `A` - --> $DIR/issue-28837.rs:24:7 - | -LL | a == a; - | - ^^ - A - | | - | A - | - = note: an implementation of `std::cmp::PartialEq` might be missing for `A` - -error[E0369]: binary operation `!=` cannot be applied to type `A` - --> $DIR/issue-28837.rs:26:7 - | -LL | a != a; - | - ^^ - A - | | - | A - | - = note: an implementation of `std::cmp::PartialEq` might be missing for `A` - -error[E0369]: binary operation `<` cannot be applied to type `A` - --> $DIR/issue-28837.rs:28:7 - | -LL | a < a; - | - ^ - A - | | - | A - | - = note: an implementation of `std::cmp::PartialOrd` might be missing for `A` - -error[E0369]: binary operation `<=` cannot be applied to type `A` - --> $DIR/issue-28837.rs:30:7 - | -LL | a <= a; - | - ^^ - A - | | - | A - | - = note: an implementation of `std::cmp::PartialOrd` might be missing for `A` - -error[E0369]: binary operation `>` cannot be applied to type `A` - --> $DIR/issue-28837.rs:32:7 - | -LL | a > a; - | - ^ - A - | | - | A - | - = note: an implementation of `std::cmp::PartialOrd` might be missing for `A` - -error[E0369]: binary operation `>=` cannot be applied to type `A` - --> $DIR/issue-28837.rs:34:7 - | -LL | a >= a; - | - ^^ - A - | | - | A - | - = note: an implementation of `std::cmp::PartialOrd` might be missing for `A` - -error: aborting due to 15 previous errors - -For more information about this error, try `rustc --explain E0369`. diff --git a/src/test/ui/issues/issue-28848.nll.stderr b/src/test/ui/issues/issue-28848.nll.stderr deleted file mode 100644 index a29dac4c9c8..00000000000 --- a/src/test/ui/issues/issue-28848.nll.stderr +++ /dev/null @@ -1,14 +0,0 @@ -error: lifetime may not live long enough - --> $DIR/issue-28848.rs:10:5 - | -LL | pub fn foo<'a, 'b>(u: &'b ()) -> &'a () { - | -- -- lifetime `'b` defined here - | | - | lifetime `'a` defined here -LL | Foo::<'a, 'b>::xmute(u) - | ^^^^^^^^^^^^^^^^^^^^ requires that `'b` must outlive `'a` - | - = help: consider adding the following bound: `'b: 'a` - -error: aborting due to previous error - diff --git a/src/test/ui/issues/issue-28848.rs b/src/test/ui/issues/issue-28848.rs deleted file mode 100644 index a6250239030..00000000000 --- a/src/test/ui/issues/issue-28848.rs +++ /dev/null @@ -1,13 +0,0 @@ -struct Foo<'a, 'b: 'a>(&'a &'b ()); - -impl<'a, 'b> Foo<'a, 'b> { - fn xmute(a: &'b ()) -> &'a () { - unreachable!() - } -} - -pub fn foo<'a, 'b>(u: &'b ()) -> &'a () { - Foo::<'a, 'b>::xmute(u) //~ ERROR lifetime bound not satisfied -} - -fn main() {} diff --git a/src/test/ui/issues/issue-28848.stderr b/src/test/ui/issues/issue-28848.stderr deleted file mode 100644 index 726844a3184..00000000000 --- a/src/test/ui/issues/issue-28848.stderr +++ /dev/null @@ -1,20 +0,0 @@ -error[E0478]: lifetime bound not satisfied - --> $DIR/issue-28848.rs:10:5 - | -LL | Foo::<'a, 'b>::xmute(u) - | ^^^^^^^^^^^^^^^^^^^^ - | -note: lifetime parameter instantiated with the lifetime `'b` as defined on the function body at 9:16 - --> $DIR/issue-28848.rs:9:16 - | -LL | pub fn foo<'a, 'b>(u: &'b ()) -> &'a () { - | ^^ -note: but lifetime parameter must outlive the lifetime `'a` as defined on the function body at 9:12 - --> $DIR/issue-28848.rs:9:12 - | -LL | pub fn foo<'a, 'b>(u: &'b ()) -> &'a () { - | ^^ - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0478`. diff --git a/src/test/ui/issues/issue-29161.rs b/src/test/ui/issues/issue-29161.rs deleted file mode 100644 index d80405aa856..00000000000 --- a/src/test/ui/issues/issue-29161.rs +++ /dev/null @@ -1,15 +0,0 @@ -mod a { - struct A; - - impl Default for A { - pub fn default() -> A { //~ ERROR unnecessary visibility qualifier - A - } - } -} - - -fn main() { - a::A::default(); - //~^ ERROR struct `A` is private - } diff --git a/src/test/ui/issues/issue-29161.stderr b/src/test/ui/issues/issue-29161.stderr deleted file mode 100644 index 7ce95e4b0df..00000000000 --- a/src/test/ui/issues/issue-29161.stderr +++ /dev/null @@ -1,22 +0,0 @@ -error[E0449]: unnecessary visibility qualifier - --> $DIR/issue-29161.rs:5:9 - | -LL | pub fn default() -> A { - | ^^^ `pub` not permitted here because it's implied - -error[E0603]: struct `A` is private - --> $DIR/issue-29161.rs:13:8 - | -LL | a::A::default(); - | ^ private struct - | -note: the struct `A` is defined here - --> $DIR/issue-29161.rs:2:5 - | -LL | struct A; - | ^^^^^^^^^ - -error: aborting due to 2 previous errors - -Some errors have detailed explanations: E0449, E0603. -For more information about an error, try `rustc --explain E0449`. diff --git a/src/test/ui/issues/issue-2936.rs b/src/test/ui/issues/issue-2936.rs deleted file mode 100644 index 6b932d01d55..00000000000 --- a/src/test/ui/issues/issue-2936.rs +++ /dev/null @@ -1,31 +0,0 @@ -// run-pass -#![allow(non_camel_case_types)] - -trait bar<T> { - fn get_bar(&self) -> T; -} - -fn foo<T, U: bar<T>>(b: U) -> T { - b.get_bar() -} - -struct cbar { - x: isize, -} - -impl bar<isize> for cbar { - fn get_bar(&self) -> isize { - self.x - } -} - -fn cbar(x: isize) -> cbar { - cbar { - x: x - } -} - -pub fn main() { - let x: isize = foo::<isize, cbar>(cbar(5)); - assert_eq!(x, 5); -} diff --git a/src/test/ui/issues/issue-29844.rs b/src/test/ui/issues/issue-29844.rs deleted file mode 100644 index e08942da5e4..00000000000 --- a/src/test/ui/issues/issue-29844.rs +++ /dev/null @@ -1,24 +0,0 @@ -// run-pass -use std::sync::Arc; - -pub struct DescriptorSet<'a> { - pub slots: Vec<AttachInfo<'a, Resources>> -} - -pub trait ResourcesTrait<'r>: Sized { - type DescriptorSet: 'r; -} - -pub struct Resources; - -impl<'a> ResourcesTrait<'a> for Resources { - type DescriptorSet = DescriptorSet<'a>; -} - -pub enum AttachInfo<'a, R: ResourcesTrait<'a>> { - NextDescriptorSet(Arc<R::DescriptorSet>) -} - -fn main() { - let _x = DescriptorSet {slots: Vec::new()}; -} diff --git a/src/test/ui/issues/issue-29914-2.rs b/src/test/ui/issues/issue-29914-2.rs deleted file mode 100644 index 626de269d95..00000000000 --- a/src/test/ui/issues/issue-29914-2.rs +++ /dev/null @@ -1,6 +0,0 @@ -// run-pass -const ARR: [usize; 5] = [5, 4, 3, 2, 1]; - -fn main() { - assert_eq!(3, ARR[ARR[3]]); -} diff --git a/src/test/ui/issues/issue-29914-3.rs b/src/test/ui/issues/issue-29914-3.rs deleted file mode 100644 index 1c6c64eb316..00000000000 --- a/src/test/ui/issues/issue-29914-3.rs +++ /dev/null @@ -1,7 +0,0 @@ -// run-pass -const ARR: [usize; 5] = [5, 4, 3, 2, 1]; -const BLA: usize = ARR[ARR[3]]; - -fn main() { - assert_eq!(3, BLA); -} diff --git a/src/test/ui/issues/issue-29914.rs b/src/test/ui/issues/issue-29914.rs deleted file mode 100644 index 6da63664dfa..00000000000 --- a/src/test/ui/issues/issue-29914.rs +++ /dev/null @@ -1,10 +0,0 @@ -// run-pass -#![allow(stable_features)] - -#![feature(const_indexing)] - -const ARR: [usize; 5] = [5, 4, 3, 2, 1]; - -fn main() { - assert_eq!(3, ARR[ARR[3]]); -} diff --git a/src/test/ui/issues/issue-29927-1.rs b/src/test/ui/issues/issue-29927-1.rs deleted file mode 100644 index a236e491375..00000000000 --- a/src/test/ui/issues/issue-29927-1.rs +++ /dev/null @@ -1,11 +0,0 @@ -// run-pass -#![allow(dead_code)] -const fn f() -> usize { - 5 -} -struct A { - field: usize, -} -fn main() { - let _ = [0; f()]; -} diff --git a/src/test/ui/issues/issue-29927.rs b/src/test/ui/issues/issue-29927.rs deleted file mode 100644 index 3385e4e6e94..00000000000 --- a/src/test/ui/issues/issue-29927.rs +++ /dev/null @@ -1,11 +0,0 @@ -// run-pass -#![allow(dead_code)] -struct A { - field: usize, -} -const fn f() -> usize { - 5 -} -fn main() { - let _ = [0; f()]; -} diff --git a/src/test/ui/issues/issue-30018-nopanic.rs b/src/test/ui/issues/issue-30018-nopanic.rs deleted file mode 100644 index 291bab2736d..00000000000 --- a/src/test/ui/issues/issue-30018-nopanic.rs +++ /dev/null @@ -1,103 +0,0 @@ -// run-pass -#![allow(unreachable_code)] -// More thorough regression test for Issues #30018 and #30822. This -// attempts to explore different ways that array element construction -// (for both scratch arrays and non-scratch ones) interacts with -// breaks in the control-flow, in terms of the order of evaluation of -// the destructors (which may change; see RFC Issue 744) and the -// number of times that the destructor evaluates for each value (which -// should never exceed 1; this latter case is what #30822 is about). - -use std::cell::RefCell; - -struct D<'a>(&'a RefCell<Vec<i32>>, i32); - -impl<'a> Drop for D<'a> { - fn drop(&mut self) { - println!("Dropping D({})", self.1); - (self.0).borrow_mut().push(self.1); - } -} - -fn main() { - println!("Start"); - break_during_elem(); - break_after_whole(); - println!("Finis"); -} - -fn break_during_elem() { - let log = &RefCell::new(Vec::new()); - - // CASE 1: Fixed-size array itself is stored in _r slot. - loop { - let _r = [D(log, 10), - D(log, 11), - { D(log, 12); break; }, - D(log, 13)]; - } - assert_eq!(&log.borrow()[..], &[12, 11, 10]); - log.borrow_mut().clear(); - - // CASE 2: Slice (borrow of array) is stored in _r slot. - // This is the case that is actually being reported in #30018. - loop { - let _r = &[D(log, 20), - D(log, 21), - { D(log, 22); break; }, - D(log, 23)]; - } - assert_eq!(&log.borrow()[..], &[22, 21, 20]); - log.borrow_mut().clear(); - - // CASE 3: (Borrow of) slice-index of array is stored in _r slot. - loop { - let _r = &[D(log, 30), - D(log, 31), - { D(log, 32); break; }, - D(log, 33)][..]; - } - assert_eq!(&log.borrow()[..], &[32, 31, 30]); - log.borrow_mut().clear(); -} - -// The purpose of these functions is to test what happens when we -// panic after an array has been constructed in its entirety. -// -// It is meant to act as proof that we still need to continue -// scheduling the destruction of an array even after we've scheduling -// drop for its elements during construction; the latter is tested by -// `fn break_during_elem()`. -fn break_after_whole() { - let log = &RefCell::new(Vec::new()); - - // CASE 1: Fixed-size array itself is stored in _r slot. - loop { - let _r = [D(log, 10), - D(log, 11), - D(log, 12)]; - break; - } - assert_eq!(&log.borrow()[..], &[10, 11, 12]); - log.borrow_mut().clear(); - - // CASE 2: Slice (borrow of array) is stored in _r slot. - loop { - let _r = &[D(log, 20), - D(log, 21), - D(log, 22)]; - break; - } - assert_eq!(&log.borrow()[..], &[20, 21, 22]); - log.borrow_mut().clear(); - - // CASE 3: (Borrow of) slice-index of array is stored in _r slot. - loop { - let _r = &[D(log, 30), - D(log, 31), - D(log, 32)][..]; - break; - } - assert_eq!(&log.borrow()[..], &[30, 31, 32]); - log.borrow_mut().clear(); -} diff --git a/src/test/ui/issues/issue-30079.rs b/src/test/ui/issues/issue-30079.rs deleted file mode 100644 index a02a932d057..00000000000 --- a/src/test/ui/issues/issue-30079.rs +++ /dev/null @@ -1,39 +0,0 @@ -struct SemiPriv; - -mod m1 { - struct Priv; - impl ::SemiPriv { - pub fn f(_: Priv) {} //~ WARN private type `m1::Priv` in public interface - //~^ WARNING hard error - } - - impl Priv { - pub fn f(_: Priv) {} // ok - } -} - -mod m2 { - struct Priv; - impl ::std::ops::Deref for ::SemiPriv { - type Target = Priv; //~ ERROR private type `m2::Priv` in public interface - fn deref(&self) -> &Self::Target { unimplemented!() } - } - - impl ::std::ops::Deref for Priv { - type Target = Priv; // ok - fn deref(&self) -> &Self::Target { unimplemented!() } - } -} - -trait SemiPrivTrait { - type Assoc; -} - -mod m3 { - struct Priv; - impl ::SemiPrivTrait for () { - type Assoc = Priv; //~ ERROR private type `m3::Priv` in public interface - } -} - -fn main() {} diff --git a/src/test/ui/issues/issue-30079.stderr b/src/test/ui/issues/issue-30079.stderr deleted file mode 100644 index e40b1942059..00000000000 --- a/src/test/ui/issues/issue-30079.stderr +++ /dev/null @@ -1,31 +0,0 @@ -warning: private type `m1::Priv` in public interface (error E0446) - --> $DIR/issue-30079.rs:6:9 - | -LL | pub fn f(_: Priv) {} - | ^^^^^^^^^^^^^^^^^ - | - = note: `#[warn(private_in_public)]` on by default - = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! - = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537> - -error[E0446]: private type `m2::Priv` in public interface - --> $DIR/issue-30079.rs:18:9 - | -LL | struct Priv; - | ------------ `m2::Priv` declared as private -LL | impl ::std::ops::Deref for ::SemiPriv { -LL | type Target = Priv; - | ^^^^^^^^^^^^^^^^^^^ can't leak private type - -error[E0446]: private type `m3::Priv` in public interface - --> $DIR/issue-30079.rs:35:9 - | -LL | struct Priv; - | ------------ `m3::Priv` declared as private -LL | impl ::SemiPrivTrait for () { -LL | type Assoc = Priv; - | ^^^^^^^^^^^^^^^^^^ can't leak private type - -error: aborting due to 2 previous errors; 1 warning emitted - -For more information about this error, try `rustc --explain E0446`. diff --git a/src/test/ui/issues/issue-30302.rs b/src/test/ui/issues/issue-30302.rs deleted file mode 100644 index c37d4f29d10..00000000000 --- a/src/test/ui/issues/issue-30302.rs +++ /dev/null @@ -1,20 +0,0 @@ -#![allow(dead_code)] -#![allow(unused_variables)] -#![allow(non_snake_case)] -#![deny(unreachable_patterns)] - -enum Stack<T> { - Nil, - Cons(T, Box<Stack<T>>) -} - -fn is_empty<T>(s: Stack<T>) -> bool { - match s { - Nil => true, -//~^ WARN pattern binding `Nil` is named the same as one of the variants of the type `Stack` - _ => false -//~^ ERROR unreachable pattern - } -} - -fn main() {} diff --git a/src/test/ui/issues/issue-30302.stderr b/src/test/ui/issues/issue-30302.stderr deleted file mode 100644 index 849ff1ebd92..00000000000 --- a/src/test/ui/issues/issue-30302.stderr +++ /dev/null @@ -1,26 +0,0 @@ -warning[E0170]: pattern binding `Nil` is named the same as one of the variants of the type `Stack` - --> $DIR/issue-30302.rs:13:9 - | -LL | Nil => true, - | ^^^ help: to match on the variant, qualify the path: `Stack::Nil` - | - = note: `#[warn(bindings_with_variant_name)]` on by default - -error: unreachable pattern - --> $DIR/issue-30302.rs:15:9 - | -LL | Nil => true, - | --- matches any value -LL | -LL | _ => false - | ^ unreachable pattern - | -note: the lint level is defined here - --> $DIR/issue-30302.rs:4:9 - | -LL | #![deny(unreachable_patterns)] - | ^^^^^^^^^^^^^^^^^^^^ - -error: aborting due to previous error; 1 warning emitted - -For more information about this error, try `rustc --explain E0170`. diff --git a/src/test/ui/issues/issue-32119.rs b/src/test/ui/issues/issue-32119.rs deleted file mode 100644 index 36adb5289ac..00000000000 --- a/src/test/ui/issues/issue-32119.rs +++ /dev/null @@ -1,17 +0,0 @@ -// check-pass - -pub type T = (); -mod foo { pub use super::T; } -mod bar { pub use super::T; } - -pub use foo::*; -pub use bar::*; - -mod baz { - pub type T = (); - mod foo { pub use super::T as S; } - mod bar { pub use super::foo::S as T; } - pub use self::bar::*; -} - -fn main() {} diff --git a/src/test/ui/issues/issue-32222.rs b/src/test/ui/issues/issue-32222.rs deleted file mode 100644 index 4ed06bff803..00000000000 --- a/src/test/ui/issues/issue-32222.rs +++ /dev/null @@ -1,22 +0,0 @@ -// check-pass - -mod foo { - pub fn bar() {} -} - -pub use foo::*; -use b::bar; - -mod foobar { - use super::*; -} - -mod a { - pub mod bar {} -} - -mod b { - pub use a::bar; -} - -fn main() {} diff --git a/src/test/ui/issues/issue-32829-2.rs b/src/test/ui/issues/issue-32829-2.rs deleted file mode 100644 index c93c84b5fb7..00000000000 --- a/src/test/ui/issues/issue-32829-2.rs +++ /dev/null @@ -1,73 +0,0 @@ -// ignore-tidy-linelength - -const bad : u32 = { - { - 5; - 0 - } -}; - -const bad_two : u32 = { - { - invalid(); - //~^ ERROR: calls in constants are limited to constant functions, tuple structs and tuple variants - 0 - } -}; - -const bad_three : u32 = { - { - valid(); - 0 - } -}; - -static bad_four : u32 = { - { - 5; - 0 - } -}; - -static bad_five : u32 = { - { - invalid(); - //~^ ERROR: calls in statics are limited to constant functions, tuple structs and tuple variants - 0 - } -}; - -static bad_six : u32 = { - { - valid(); - 0 - } -}; - -static mut bad_seven : u32 = { - { - 5; - 0 - } -}; - -static mut bad_eight : u32 = { - { - invalid(); - //~^ ERROR: calls in statics are limited to constant functions, tuple structs and tuple variants - 0 - } -}; - -static mut bad_nine : u32 = { - { - valid(); - 0 - } -}; - - -fn invalid() {} -const fn valid() {} - -fn main() {} diff --git a/src/test/ui/issues/issue-32829-2.stderr b/src/test/ui/issues/issue-32829-2.stderr deleted file mode 100644 index 8d7423f29ae..00000000000 --- a/src/test/ui/issues/issue-32829-2.stderr +++ /dev/null @@ -1,21 +0,0 @@ -error[E0015]: calls in constants are limited to constant functions, tuple structs and tuple variants - --> $DIR/issue-32829-2.rs:12:9 - | -LL | invalid(); - | ^^^^^^^^^ - -error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants - --> $DIR/issue-32829-2.rs:34:9 - | -LL | invalid(); - | ^^^^^^^^^ - -error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants - --> $DIR/issue-32829-2.rs:56:9 - | -LL | invalid(); - | ^^^^^^^^^ - -error: aborting due to 3 previous errors - -For more information about this error, try `rustc --explain E0015`. diff --git a/src/test/ui/issues/issue-34222-1.rs b/src/test/ui/issues/issue-34222-1.rs deleted file mode 100644 index d36dddc97bb..00000000000 --- a/src/test/ui/issues/issue-34222-1.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - /// comment //~ ERROR found a documentation comment that doesn't document anything -} diff --git a/src/test/ui/issues/issue-34222-1.stderr b/src/test/ui/issues/issue-34222-1.stderr deleted file mode 100644 index 0799656b06b..00000000000 --- a/src/test/ui/issues/issue-34222-1.stderr +++ /dev/null @@ -1,11 +0,0 @@ -error[E0585]: found a documentation comment that doesn't document anything - --> $DIR/issue-34222-1.rs:2:5 - | -LL | /// comment - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = help: doc comments must come before what they document, maybe a comment was intended with `//`? - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0585`. diff --git a/src/test/ui/issues/issue-34798.rs b/src/test/ui/issues/issue-34798.rs deleted file mode 100644 index f0d710123cd..00000000000 --- a/src/test/ui/issues/issue-34798.rs +++ /dev/null @@ -1,25 +0,0 @@ -// run-pass -#![forbid(improper_ctypes)] -#![allow(dead_code)] - -#[repr(C)] -pub struct Foo { - size: u8, - __value: ::std::marker::PhantomData<i32>, -} - -#[repr(C)] -pub struct ZeroSizeWithPhantomData<T>(::std::marker::PhantomData<T>); - -#[repr(C)] -pub struct Bar { - size: u8, - baz: ZeroSizeWithPhantomData<i32>, -} - -extern "C" { - pub fn bar(_: *mut Foo, _: *mut Bar); -} - -fn main() { -} diff --git a/src/test/ui/issues/issue-36163.rs b/src/test/ui/issues/issue-36163.rs deleted file mode 100644 index 340d2c3997c..00000000000 --- a/src/test/ui/issues/issue-36163.rs +++ /dev/null @@ -1,7 +0,0 @@ -const A: isize = Foo::B as isize; - -enum Foo { - B = A, //~ ERROR E0391 -} - -fn main() {} diff --git a/src/test/ui/issues/issue-36163.stderr b/src/test/ui/issues/issue-36163.stderr deleted file mode 100644 index 113f86cf0f9..00000000000 --- a/src/test/ui/issues/issue-36163.stderr +++ /dev/null @@ -1,49 +0,0 @@ -error[E0391]: cycle detected when simplifying constant for the type system `Foo::B::{constant#0}` - --> $DIR/issue-36163.rs:4:9 - | -LL | B = A, - | ^ - | -note: ...which requires simplifying constant for the type system `Foo::B::{constant#0}`... - --> $DIR/issue-36163.rs:4:9 - | -LL | B = A, - | ^ -note: ...which requires const-evaluating + checking `Foo::B::{constant#0}`... - --> $DIR/issue-36163.rs:4:9 - | -LL | B = A, - | ^ - = note: ...which requires normalizing `A`... -note: ...which requires simplifying constant for the type system `A`... - --> $DIR/issue-36163.rs:1:1 - | -LL | const A: isize = Foo::B as isize; - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -note: ...which requires simplifying constant for the type system `A`... - --> $DIR/issue-36163.rs:1:1 - | -LL | const A: isize = Foo::B as isize; - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -note: ...which requires const-evaluating + checking `A`... - --> $DIR/issue-36163.rs:1:1 - | -LL | const A: isize = Foo::B as isize; - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - = note: ...which requires normalizing `A`... - = note: ...which again requires simplifying constant for the type system `Foo::B::{constant#0}`, completing the cycle -note: cycle used when collecting item types in top-level module - --> $DIR/issue-36163.rs:1:1 - | -LL | / const A: isize = Foo::B as isize; -LL | | -LL | | enum Foo { -LL | | B = A, -LL | | } -LL | | -LL | | fn main() {} - | |____________^ - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0391`. diff --git a/src/test/ui/issues/issue-38940.rs b/src/test/ui/issues/issue-38940.rs deleted file mode 100644 index 3f10fc017a7..00000000000 --- a/src/test/ui/issues/issue-38940.rs +++ /dev/null @@ -1,46 +0,0 @@ -// issue-38940: error printed twice for deref recursion limit exceeded -// Test that the recursion limit can be changed. In this case, we have -// deeply nested types that will fail the `Send` check by overflow -// when the recursion limit is set very low. -#![allow(dead_code)] -#![recursion_limit="10"] -macro_rules! link { - ($outer:ident, $inner:ident) => { - struct $outer($inner); - impl $outer { - fn new() -> $outer { - $outer($inner::new()) - } - } - impl std::ops::Deref for $outer { - type Target = $inner; - fn deref(&self) -> &$inner { - &self.0 - } - } - } -} -struct Bottom; -impl Bottom { - fn new() -> Bottom { - Bottom - } -} -link!(Top, A); -link!(A, B); -link!(B, C); -link!(C, D); -link!(D, E); -link!(E, F); -link!(F, G); -link!(G, H); -link!(H, I); -link!(I, J); -link!(J, K); -link!(K, Bottom); -fn main() { - let t = Top::new(); - let x: &Bottom = &t; - //~^ ERROR mismatched types - //~| ERROR reached the recursion limit while auto-dereferencing `J` -} diff --git a/src/test/ui/issues/issue-38940.stderr b/src/test/ui/issues/issue-38940.stderr deleted file mode 100644 index 0671cede73b..00000000000 --- a/src/test/ui/issues/issue-38940.stderr +++ /dev/null @@ -1,23 +0,0 @@ -error[E0055]: reached the recursion limit while auto-dereferencing `J` - --> $DIR/issue-38940.rs:43:22 - | -LL | let x: &Bottom = &t; - | ^^ deref recursion limit reached - | - = help: consider adding a `#![recursion_limit="20"]` attribute to your crate (`issue_38940`) - -error[E0308]: mismatched types - --> $DIR/issue-38940.rs:43:22 - | -LL | let x: &Bottom = &t; - | ------- ^^ expected struct `Bottom`, found struct `Top` - | | - | expected due to this - | - = note: expected reference `&Bottom` - found reference `&Top` - -error: aborting due to 2 previous errors - -Some errors have detailed explanations: E0055, E0308. -For more information about an error, try `rustc --explain E0055`. diff --git a/src/test/ui/issues/issue-40469.rs b/src/test/ui/issues/issue-40469.rs deleted file mode 100644 index 25e08ef85e9..00000000000 --- a/src/test/ui/issues/issue-40469.rs +++ /dev/null @@ -1,9 +0,0 @@ -// run-pass -// ignore-pretty issue #37195 - -#![allow(dead_code)] - -include!("auxiliary/issue-40469.rs"); -fn f() { m!(); } - -fn main() {} diff --git a/src/test/ui/issues/issue-41803.rs b/src/test/ui/issues/issue-41803.rs deleted file mode 100644 index 19ab81d04d0..00000000000 --- a/src/test/ui/issues/issue-41803.rs +++ /dev/null @@ -1,21 +0,0 @@ -// run-pass -/// A compile-time map from identifiers to arbitrary (heterogeneous) expressions -macro_rules! ident_map { - ( $name:ident = { $($key:ident => $e:expr,)* } ) => { - macro_rules! $name { - $( - ( $key ) => { $e }; - )* - // Empty invocation expands to nothing. Needed when the map is empty. - () => {}; - } - }; -} - -ident_map!(my_map = { - main => 0, -}); - -fn main() { - my_map!(main); -} diff --git a/src/test/ui/issues/issue-43105.rs b/src/test/ui/issues/issue-43105.rs deleted file mode 100644 index cc6a4850853..00000000000 --- a/src/test/ui/issues/issue-43105.rs +++ /dev/null @@ -1,13 +0,0 @@ -fn xyz() -> u8 { 42 } - -const NUM: u8 = xyz(); -//~^ ERROR calls in constants are limited to constant functions, tuple structs and tuple variants - -fn main() { - match 1 { - NUM => unimplemented!(), - //~^ ERROR could not evaluate constant pattern - //~| ERROR could not evaluate constant pattern - _ => unimplemented!(), - } -} diff --git a/src/test/ui/issues/issue-43105.stderr b/src/test/ui/issues/issue-43105.stderr deleted file mode 100644 index e508cbdd1dd..00000000000 --- a/src/test/ui/issues/issue-43105.stderr +++ /dev/null @@ -1,21 +0,0 @@ -error[E0015]: calls in constants are limited to constant functions, tuple structs and tuple variants - --> $DIR/issue-43105.rs:3:17 - | -LL | const NUM: u8 = xyz(); - | ^^^^^ - -error: could not evaluate constant pattern - --> $DIR/issue-43105.rs:8:9 - | -LL | NUM => unimplemented!(), - | ^^^ - -error: could not evaluate constant pattern - --> $DIR/issue-43105.rs:8:9 - | -LL | NUM => unimplemented!(), - | ^^^ - -error: aborting due to 3 previous errors - -For more information about this error, try `rustc --explain E0015`. diff --git a/src/test/ui/issues/issue-43196.rs b/src/test/ui/issues/issue-43196.rs deleted file mode 100644 index 0eefa01ce6d..00000000000 --- a/src/test/ui/issues/issue-43196.rs +++ /dev/null @@ -1,6 +0,0 @@ -fn main() { - | -} -//~^ ERROR expected `|`, found `}` -| -//~^ ERROR expected item, found `|` diff --git a/src/test/ui/issues/issue-43196.stderr b/src/test/ui/issues/issue-43196.stderr deleted file mode 100644 index 4f7ed5cc6fd..00000000000 --- a/src/test/ui/issues/issue-43196.stderr +++ /dev/null @@ -1,16 +0,0 @@ -error: expected `|`, found `}` - --> $DIR/issue-43196.rs:3:1 - | -LL | | - | - expected `|` -LL | } - | ^ unexpected token - -error: expected item, found `|` - --> $DIR/issue-43196.rs:5:1 - | -LL | | - | ^ expected item - -error: aborting due to 2 previous errors - diff --git a/src/test/ui/issues/issue-43398.rs b/src/test/ui/issues/issue-43398.rs deleted file mode 100644 index 581db033f92..00000000000 --- a/src/test/ui/issues/issue-43398.rs +++ /dev/null @@ -1,14 +0,0 @@ -// run-pass - -#![feature(core_intrinsics)] -#![feature(repr128)] -//~^ WARN the feature `repr128` is incomplete - -#[repr(i128)] -enum Big { A, B } - -fn main() { - println!("{} {:?}", - std::intrinsics::discriminant_value(&Big::A), - std::mem::discriminant(&Big::B)); -} diff --git a/src/test/ui/issues/issue-43398.stderr b/src/test/ui/issues/issue-43398.stderr deleted file mode 100644 index 9a394153bf6..00000000000 --- a/src/test/ui/issues/issue-43398.stderr +++ /dev/null @@ -1,11 +0,0 @@ -warning: the feature `repr128` is incomplete and may not be safe to use and/or cause compiler crashes - --> $DIR/issue-43398.rs:4:12 - | -LL | #![feature(repr128)] - | ^^^^^^^ - | - = note: `#[warn(incomplete_features)]` on by default - = note: see issue #56071 <https://github.com/rust-lang/rust/issues/56071> for more information - -warning: 1 warning emitted - diff --git a/src/test/ui/issues/issue-44021.rs b/src/test/ui/issues/issue-44021.rs deleted file mode 100644 index 0b9558cc91e..00000000000 --- a/src/test/ui/issues/issue-44021.rs +++ /dev/null @@ -1,6 +0,0 @@ -struct MyStruct; -impl MyStruct { - fn f() {|x, y} //~ ERROR expected one of `:`, `@`, or `|`, found `}` -} - -fn main() {} diff --git a/src/test/ui/issues/issue-44021.stderr b/src/test/ui/issues/issue-44021.stderr deleted file mode 100644 index b888cd989a6..00000000000 --- a/src/test/ui/issues/issue-44021.stderr +++ /dev/null @@ -1,8 +0,0 @@ -error: expected one of `:`, `@`, or `|`, found `}` - --> $DIR/issue-44021.rs:3:18 - | -LL | fn f() {|x, y} - | ^ expected one of `:`, `@`, or `|` - -error: aborting due to previous error - diff --git a/src/test/ui/issues/issue-45087-unreachable-unsafe.rs b/src/test/ui/issues/issue-45087-unreachable-unsafe.rs deleted file mode 100644 index 5edf7a47e2f..00000000000 --- a/src/test/ui/issues/issue-45087-unreachable-unsafe.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn main() { - return; - *(1 as *mut u32) = 42; - //~^ ERROR dereference of raw pointer is unsafe -} diff --git a/src/test/ui/issues/issue-45087-unreachable-unsafe.stderr b/src/test/ui/issues/issue-45087-unreachable-unsafe.stderr deleted file mode 100644 index d112d7f4661..00000000000 --- a/src/test/ui/issues/issue-45087-unreachable-unsafe.stderr +++ /dev/null @@ -1,11 +0,0 @@ -error[E0133]: dereference of raw pointer is unsafe and requires unsafe function or block - --> $DIR/issue-45087-unreachable-unsafe.rs:3:5 - | -LL | *(1 as *mut u32) = 42; - | ^^^^^^^^^^^^^^^^^^^^^ dereference of raw pointer - | - = note: raw pointers may be NULL, dangling or unaligned; they can violate aliasing rules and cause data races: all of these are undefined behavior - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0133`. diff --git a/src/test/ui/issues/issue-45199.rs b/src/test/ui/issues/issue-45199.rs deleted file mode 100644 index cbd45cbb619..00000000000 --- a/src/test/ui/issues/issue-45199.rs +++ /dev/null @@ -1,24 +0,0 @@ -fn test_drop_replace() { - let b: Box<isize>; - //~^ HELP make this binding mutable - //~| SUGGESTION mut b - b = Box::new(1); //~ NOTE first assignment - b = Box::new(2); //~ ERROR cannot assign twice to immutable variable `b` - //~| NOTE cannot assign twice to immutable -} - -fn test_call() { - let b = Box::new(1); //~ NOTE first assignment - //~| HELP make this binding mutable - //~| SUGGESTION mut b - b = Box::new(2); //~ ERROR cannot assign twice to immutable variable `b` - //~| NOTE cannot assign twice to immutable -} - -fn test_args(b: Box<i32>) { //~ HELP make this binding mutable - //~| SUGGESTION mut b - b = Box::new(2); //~ ERROR cannot assign to immutable argument `b` - //~| NOTE cannot assign to immutable argument -} - -fn main() {} diff --git a/src/test/ui/issues/issue-45199.stderr b/src/test/ui/issues/issue-45199.stderr deleted file mode 100644 index 83b634051bb..00000000000 --- a/src/test/ui/issues/issue-45199.stderr +++ /dev/null @@ -1,35 +0,0 @@ -error[E0384]: cannot assign twice to immutable variable `b` - --> $DIR/issue-45199.rs:6:5 - | -LL | let b: Box<isize>; - | - help: make this binding mutable: `mut b` -... -LL | b = Box::new(1); - | - first assignment to `b` -LL | b = Box::new(2); - | ^ cannot assign twice to immutable variable - -error[E0384]: cannot assign twice to immutable variable `b` - --> $DIR/issue-45199.rs:14:5 - | -LL | let b = Box::new(1); - | - - | | - | first assignment to `b` - | help: make this binding mutable: `mut b` -... -LL | b = Box::new(2); - | ^ cannot assign twice to immutable variable - -error[E0384]: cannot assign to immutable argument `b` - --> $DIR/issue-45199.rs:20:5 - | -LL | fn test_args(b: Box<i32>) { - | - help: make this binding mutable: `mut b` -LL | -LL | b = Box::new(2); - | ^ cannot assign to immutable argument - -error: aborting due to 3 previous errors - -For more information about this error, try `rustc --explain E0384`. diff --git a/src/test/ui/issues/issue-45296.rs b/src/test/ui/issues/issue-45296.rs deleted file mode 100644 index f242c1d2937..00000000000 --- a/src/test/ui/issues/issue-45296.rs +++ /dev/null @@ -1,5 +0,0 @@ -fn main() { - let unused = (); - - #![allow(unused_variables)] //~ ERROR not permitted in this context -} diff --git a/src/test/ui/issues/issue-45296.stderr b/src/test/ui/issues/issue-45296.stderr deleted file mode 100644 index c0d4ce1243e..00000000000 --- a/src/test/ui/issues/issue-45296.stderr +++ /dev/null @@ -1,10 +0,0 @@ -error: an inner attribute is not permitted in this context - --> $DIR/issue-45296.rs:4:5 - | -LL | #![allow(unused_variables)] - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: inner attributes, like `#![no_std]`, annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like `#[test]`, annotate the item following them. - -error: aborting due to previous error - diff --git a/src/test/ui/issues/issue-45696-long-live-borrows-in-boxes.rs b/src/test/ui/issues/issue-45696-long-live-borrows-in-boxes.rs deleted file mode 100644 index b3f655628ba..00000000000 --- a/src/test/ui/issues/issue-45696-long-live-borrows-in-boxes.rs +++ /dev/null @@ -1,114 +0,0 @@ -// rust-lang/rust#45696: This test is checking that we can return -// mutable borrows owned by boxes even when the boxes are dropped. - -// run-pass - -// This function shows quite directly what is going on: We have a -// reborrow of contents within the box. -fn return_borrow_from_dropped_box_1(x: Box<&mut u32>) -> &mut u32 { &mut **x } - -// This function is the way you'll probably see this in practice (the -// reborrow is now implicit). -fn return_borrow_from_dropped_box_2(x: Box<&mut u32>) -> &mut u32 { *x } - -// For the remaining tests we just add some fields or other -// indirection to ensure that the compiler isn't just special-casing -// the above `Box<&mut T>` as the only type that would work. - -// Here we add a tuple of indirection between the box and the -// reference. -type BoxedTup<'a, 'b> = Box<(&'a mut u32, &'b mut u32)>; - -fn return_borrow_of_field_from_dropped_box_1<'a>(x: BoxedTup<'a, '_>) -> &'a mut u32 { - &mut *x.0 -} - -fn return_borrow_of_field_from_dropped_box_2<'a>(x: BoxedTup<'a, '_>) -> &'a mut u32 { - x.0 -} - -fn return_borrow_from_dropped_tupled_box_1<'a>(x: (BoxedTup<'a, '_>, &mut u32)) -> &'a mut u32 { - &mut *(x.0).0 -} - -fn return_borrow_from_dropped_tupled_box_2<'a>(x: (BoxedTup<'a, '_>, &mut u32)) -> &'a mut u32 { - (x.0).0 -} - -fn basic_tests() { - let mut x = 2; - let mut y = 3; - let mut z = 4; - *return_borrow_from_dropped_box_1(Box::new(&mut x)) += 10; - assert_eq!((x, y, z), (12, 3, 4)); - *return_borrow_from_dropped_box_2(Box::new(&mut x)) += 10; - assert_eq!((x, y, z), (22, 3, 4)); - *return_borrow_of_field_from_dropped_box_1(Box::new((&mut x, &mut y))) += 10; - assert_eq!((x, y, z), (32, 3, 4)); - *return_borrow_of_field_from_dropped_box_2(Box::new((&mut x, &mut y))) += 10; - assert_eq!((x, y, z), (42, 3, 4)); - *return_borrow_from_dropped_tupled_box_1((Box::new((&mut x, &mut y)), &mut z)) += 10; - assert_eq!((x, y, z), (52, 3, 4)); - *return_borrow_from_dropped_tupled_box_2((Box::new((&mut x, &mut y)), &mut z)) += 10; - assert_eq!((x, y, z), (62, 3, 4)); -} - -// These scribbling tests have been transcribed from -// issue-45696-scribble-on-boxed-borrow.rs -// -// In the context of that file, these tests are meant to show cases -// that should be *accepted* by the compiler, so here we are actually -// checking that the code we get when they are compiled matches our -// expectations. - -struct Scribble<'a>(&'a mut u32); - -impl<'a> Drop for Scribble<'a> { fn drop(&mut self) { *self.0 = 42; } } - -// this is okay, in both AST-borrowck and NLL: The `Scribble` here *has* -// to strictly outlive `'a` -fn borrowed_scribble<'a>(s: &'a mut Scribble) -> &'a mut u32 { - &mut *s.0 -} - -// this, by analogy to previous case, is also okay. -fn boxed_borrowed_scribble<'a>(s: Box<&'a mut Scribble>) -> &'a mut u32 { - &mut *(*s).0 -} - -// this, by analogy to previous case, is also okay. -fn boxed_boxed_borrowed_scribble<'a>(s: Box<Box<&'a mut Scribble>>) -> &'a mut u32 { - &mut *(**s).0 -} - -fn scribbling_tests() { - let mut x = 1; - { - let mut long_lived = Scribble(&mut x); - *borrowed_scribble(&mut long_lived) += 10; - assert_eq!(*long_lived.0, 11); - // (Scribble dtor runs here, after `&mut`-borrow above ends) - } - assert_eq!(x, 42); - x = 1; - { - let mut long_lived = Scribble(&mut x); - *boxed_borrowed_scribble(Box::new(&mut long_lived)) += 10; - assert_eq!(*long_lived.0, 11); - // (Scribble dtor runs here, after `&mut`-borrow above ends) - } - assert_eq!(x, 42); - x = 1; - { - let mut long_lived = Scribble(&mut x); - *boxed_boxed_borrowed_scribble(Box::new(Box::new(&mut long_lived))) += 10; - assert_eq!(*long_lived.0, 11); - // (Scribble dtor runs here, after `&mut`-borrow above ends) - } - assert_eq!(x, 42); -} - -fn main() { - basic_tests(); - scribbling_tests(); -} diff --git a/src/test/ui/issues/issue-46186.fixed b/src/test/ui/issues/issue-46186.fixed deleted file mode 100644 index 2cb5a4996ee..00000000000 --- a/src/test/ui/issues/issue-46186.fixed +++ /dev/null @@ -1,8 +0,0 @@ -// run-rustfix - -pub struct Struct { - pub a: usize, -} -//~^ ERROR expected item, found `;` - -fn main() {} diff --git a/src/test/ui/issues/issue-46186.rs b/src/test/ui/issues/issue-46186.rs deleted file mode 100644 index 84cad38c5ec..00000000000 --- a/src/test/ui/issues/issue-46186.rs +++ /dev/null @@ -1,8 +0,0 @@ -// run-rustfix - -pub struct Struct { - pub a: usize, -}; -//~^ ERROR expected item, found `;` - -fn main() {} diff --git a/src/test/ui/issues/issue-46186.stderr b/src/test/ui/issues/issue-46186.stderr deleted file mode 100644 index 0766c8a33df..00000000000 --- a/src/test/ui/issues/issue-46186.stderr +++ /dev/null @@ -1,10 +0,0 @@ -error: expected item, found `;` - --> $DIR/issue-46186.rs:5:2 - | -LL | }; - | ^ help: remove this semicolon - | - = help: braced struct declarations are not followed by a semicolon - -error: aborting due to previous error - diff --git a/src/test/ui/issues/issue-46471.rs b/src/test/ui/issues/issue-46471.rs deleted file mode 100644 index 8922005d2f8..00000000000 --- a/src/test/ui/issues/issue-46471.rs +++ /dev/null @@ -1,7 +0,0 @@ -fn foo() -> &'static u32 { - let x = 0; - &x - //~^ ERROR cannot return reference to local variable `x` [E0515] -} - -fn main() { } diff --git a/src/test/ui/issues/issue-46471.stderr b/src/test/ui/issues/issue-46471.stderr deleted file mode 100644 index 935414c1f3f..00000000000 --- a/src/test/ui/issues/issue-46471.stderr +++ /dev/null @@ -1,9 +0,0 @@ -error[E0515]: cannot return reference to local variable `x` - --> $DIR/issue-46471.rs:3:5 - | -LL | &x - | ^^ returns a reference to data owned by the current function - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0515`. diff --git a/src/test/ui/issues/issue-47789.rs b/src/test/ui/issues/issue-47789.rs deleted file mode 100644 index 32dd909b2e9..00000000000 --- a/src/test/ui/issues/issue-47789.rs +++ /dev/null @@ -1,10 +0,0 @@ -// check-pass -#![allow(non_upper_case_globals)] - -static mut x: &'static u32 = &0; - -fn foo() { - unsafe { x = &1; } -} - -fn main() { } diff --git a/src/test/ui/issues/issue-48551.rs b/src/test/ui/issues/issue-48551.rs deleted file mode 100644 index b95a4832bb2..00000000000 --- a/src/test/ui/issues/issue-48551.rs +++ /dev/null @@ -1,34 +0,0 @@ -// check-pass -// Regression test for #48551. Covers a case where duplicate candidates -// arose during associated type projection. - -use std::ops::{Mul, MulAssign}; - -pub trait ClosedMul<Right>: Sized + Mul<Right, Output = Self> + MulAssign<Right> {} -impl<T, Right> ClosedMul<Right> for T -where - T: Mul<Right, Output = T> + MulAssign<Right>, -{ -} - -pub trait InnerSpace: ClosedMul<<Self as InnerSpace>::Real> { - type Real; -} - -pub trait FiniteDimVectorSpace: ClosedMul<<Self as FiniteDimVectorSpace>::Field> { - type Field; -} - -pub trait FiniteDimInnerSpace - : InnerSpace + FiniteDimVectorSpace<Field = <Self as InnerSpace>::Real> { -} - -pub trait EuclideanSpace: ClosedMul<<Self as EuclideanSpace>::Real> { - type Coordinates: FiniteDimInnerSpace<Real = Self::Real> - + Mul<Self::Real, Output = Self::Coordinates> - + MulAssign<Self::Real>; - - type Real; -} - -fn main() {} diff --git a/src/test/ui/issues/issue-50301.rs b/src/test/ui/issues/issue-50301.rs deleted file mode 100644 index 4fcb41485d0..00000000000 --- a/src/test/ui/issues/issue-50301.rs +++ /dev/null @@ -1,32 +0,0 @@ -// Tests that HRTBs are correctly accepted -- https://github.com/rust-lang/rust/issues/50301 -// check-pass -// ignore-compare-mode-chalk -trait Trait -where - for<'a> &'a Self::IntoIter: IntoIterator<Item = u32>, -{ - type IntoIter; - fn get(&self) -> Self::IntoIter; -} - -struct Impl(Vec<u32>); - -impl Trait for Impl { - type IntoIter = ImplIntoIter; - fn get(&self) -> Self::IntoIter { - ImplIntoIter(self.0.clone()) - } -} - -struct ImplIntoIter(Vec<u32>); - -impl<'a> IntoIterator for &'a ImplIntoIter { - type Item = <Self::IntoIter as Iterator>::Item; - type IntoIter = std::iter::Cloned<std::slice::Iter<'a, u32>>; - fn into_iter(self) -> Self::IntoIter { - (&self.0).into_iter().cloned() - } -} - -fn main() { -} diff --git a/src/test/ui/issues/issue-5060.rs b/src/test/ui/issues/issue-5060.rs deleted file mode 100644 index c4760bc029b..00000000000 --- a/src/test/ui/issues/issue-5060.rs +++ /dev/null @@ -1,16 +0,0 @@ -// run-pass -macro_rules! print_hd_tl { - ($field_hd:ident, $($field_tl:ident),+) => ({ - print!("{}", stringify!($field_hd)); - print!("::["); - $( - print!("{}", stringify!($field_tl)); - print!(", "); - )+ - print!("]\n"); - }) -} - -pub fn main() { - print_hd_tl!(x, y, z, w) -} diff --git a/src/test/ui/issues/issue-51345-2.rs b/src/test/ui/issues/issue-51345-2.rs deleted file mode 100644 index 52f342a8500..00000000000 --- a/src/test/ui/issues/issue-51345-2.rs +++ /dev/null @@ -1,8 +0,0 @@ -// run-fail -// error-pattern: thread 'main' panicked at 'explicit panic' -// ignore-emscripten no processes - -fn main() { - let mut vec = vec![]; - vec.push((vec.len(), panic!())); -} diff --git a/src/test/ui/issues/issue-51602.rs b/src/test/ui/issues/issue-51602.rs deleted file mode 100644 index 0e96ca914a9..00000000000 --- a/src/test/ui/issues/issue-51602.rs +++ /dev/null @@ -1,6 +0,0 @@ -fn main(){ - if i in 1..10 { -//~^ ERROR expected `{`, found keyword `in` - break; - } -} diff --git a/src/test/ui/issues/issue-51602.stderr b/src/test/ui/issues/issue-51602.stderr deleted file mode 100644 index d800890bca3..00000000000 --- a/src/test/ui/issues/issue-51602.stderr +++ /dev/null @@ -1,10 +0,0 @@ -error: expected `{`, found keyword `in` - --> $DIR/issue-51602.rs:2:10 - | -LL | if i in 1..10 { - | -- ^^ expected `{` - | | - | this `if` expression has a condition, but no block - -error: aborting due to previous error - diff --git a/src/test/ui/issues/issue-51770.rs b/src/test/ui/issues/issue-51770.rs deleted file mode 100644 index bcb37a5f4ff..00000000000 --- a/src/test/ui/issues/issue-51770.rs +++ /dev/null @@ -1,20 +0,0 @@ -// check-pass - -#![crate_type = "lib"] - -// In an older version, when NLL was still a feature, the following previously did not compile -// #![feature(nll)] - -use std::ops::Index; - -pub struct Test<T> { - a: T, -} - -impl<T> Index<usize> for Test<T> { - type Output = T; - - fn index(&self, _index: usize) -> &Self::Output { - &self.a - } -} diff --git a/src/test/ui/issues/issue-52023-array-size-pointer-cast.rs b/src/test/ui/issues/issue-52023-array-size-pointer-cast.rs deleted file mode 100644 index cc756ce815f..00000000000 --- a/src/test/ui/issues/issue-52023-array-size-pointer-cast.rs +++ /dev/null @@ -1,3 +0,0 @@ -fn main() { - let _ = [0; (&0 as *const i32) as usize]; //~ ERROR casting pointers to integers in constants -} diff --git a/src/test/ui/issues/issue-52023-array-size-pointer-cast.stderr b/src/test/ui/issues/issue-52023-array-size-pointer-cast.stderr deleted file mode 100644 index 68b5cbd9bd7..00000000000 --- a/src/test/ui/issues/issue-52023-array-size-pointer-cast.stderr +++ /dev/null @@ -1,12 +0,0 @@ -error[E0658]: casting pointers to integers in constants is unstable - --> $DIR/issue-52023-array-size-pointer-cast.rs:2:17 - | -LL | let _ = [0; (&0 as *const i32) as usize]; - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ - | - = note: see issue #51910 <https://github.com/rust-lang/rust/issues/51910> for more information - = help: add `#![feature(const_raw_ptr_to_usize_cast)]` to the crate attributes to enable - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0658`. diff --git a/src/test/ui/issues/issue-5243.rs b/src/test/ui/issues/issue-5243.rs deleted file mode 100644 index c511d45f02d..00000000000 --- a/src/test/ui/issues/issue-5243.rs +++ /dev/null @@ -1,17 +0,0 @@ -// run-pass -#![allow(dead_code)] -// Check that merely having lifetime parameters is not -// enough for codegen to consider this as non-monomorphic, -// which led to various assertions and failures in turn. - -// pretty-expanded FIXME #23616 - -struct S<'a> { - v: &'a isize -} - -fn f<'lt>(_s: &'lt S<'lt>) {} - -pub fn main() { - f(& S { v: &42 }); -} diff --git a/src/test/ui/issues/issue-52496.rs b/src/test/ui/issues/issue-52496.rs deleted file mode 100644 index 4e945365373..00000000000 --- a/src/test/ui/issues/issue-52496.rs +++ /dev/null @@ -1,12 +0,0 @@ -struct Foo { bar: f64, baz: i64, bat: i64 } - -fn main() { - let _ = Foo { bar: .5, baz: 42 }; - //~^ ERROR float literals must have an integer part - //~| ERROR missing field `bat` in initializer of `Foo` - let bar = 1.5f32; - let _ = Foo { bar.into(), bat: -1, . }; - //~^ ERROR expected one of - //~| ERROR missing fields `bar`, `baz` in initializer of `Foo` - //~| ERROR expected identifier, found `.` -} diff --git a/src/test/ui/issues/issue-52496.stderr b/src/test/ui/issues/issue-52496.stderr deleted file mode 100644 index 10fcc46f344..00000000000 --- a/src/test/ui/issues/issue-52496.stderr +++ /dev/null @@ -1,37 +0,0 @@ -error: float literals must have an integer part - --> $DIR/issue-52496.rs:4:24 - | -LL | let _ = Foo { bar: .5, baz: 42 }; - | ^^ help: must have an integer part: `0.5` - -error: expected one of `,` or `}`, found `.` - --> $DIR/issue-52496.rs:8:22 - | -LL | let _ = Foo { bar.into(), bat: -1, . }; - | --- ^ expected one of `,` or `}` - | | - | while parsing this struct - -error: expected identifier, found `.` - --> $DIR/issue-52496.rs:8:40 - | -LL | let _ = Foo { bar.into(), bat: -1, . }; - | --- ^ expected identifier - | | - | while parsing this struct - -error[E0063]: missing field `bat` in initializer of `Foo` - --> $DIR/issue-52496.rs:4:13 - | -LL | let _ = Foo { bar: .5, baz: 42 }; - | ^^^ missing `bat` - -error[E0063]: missing fields `bar`, `baz` in initializer of `Foo` - --> $DIR/issue-52496.rs:8:13 - | -LL | let _ = Foo { bar.into(), bat: -1, . }; - | ^^^ missing `bar`, `baz` - -error: aborting due to 5 previous errors - -For more information about this error, try `rustc --explain E0063`. diff --git a/src/test/ui/issues/issue-54943-3.rs b/src/test/ui/issues/issue-54943-3.rs deleted file mode 100644 index e6c2611b683..00000000000 --- a/src/test/ui/issues/issue-54943-3.rs +++ /dev/null @@ -1,20 +0,0 @@ -// check-pass -// FIXME(#54943) This test targets the scenario where proving the WF requirements requires -// knowing the value of the `_` type present in the user type annotation - unfortunately, figuring -// out the value of that `_` requires type-checking the surrounding code, but that code is dead, -// so our NLL region checker doesn't have access to it. This test should actually fail to compile. - -#![feature(nll)] -#![allow(warnings)] - -use std::fmt::Debug; - -fn foo<T: 'static + Debug>(_: T) { } - -fn bar<'a>() { - return; - - let _x = foo::<Vec<_>>(Vec::<&'a u32>::new()); -} - -fn main() {} diff --git a/src/test/ui/issues/issue-55511.rs b/src/test/ui/issues/issue-55511.rs deleted file mode 100644 index 7dfa9c7bcdf..00000000000 --- a/src/test/ui/issues/issue-55511.rs +++ /dev/null @@ -1,19 +0,0 @@ -#![warn(indirect_structural_match)] -use std::cell::Cell; -trait Foo<'a> { - const C: Option<Cell<&'a u32>>; -} - -impl<'a, T> Foo<'a> for T { - const C: Option<Cell<&'a u32>> = None; -} - -fn main() { - let a = 22; - let b = Some(Cell::new(&a)); - //~^ ERROR `a` does not live long enough [E0597] - match b { - <() as Foo<'static>>::C => { } - _ => { } - } -} diff --git a/src/test/ui/issues/issue-55511.stderr b/src/test/ui/issues/issue-55511.stderr deleted file mode 100644 index bf3e58e8cdb..00000000000 --- a/src/test/ui/issues/issue-55511.stderr +++ /dev/null @@ -1,15 +0,0 @@ -error[E0597]: `a` does not live long enough - --> $DIR/issue-55511.rs:13:28 - | -LL | let b = Some(Cell::new(&a)); - | ^^ borrowed value does not live long enough -... -LL | <() as Foo<'static>>::C => { } - | ----------------------- type annotation requires that `a` is borrowed for `'static` -... -LL | } - | - `a` dropped here while still borrowed - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0597`. diff --git a/src/test/ui/issues/issue-58435-ice-with-assoc-const.rs b/src/test/ui/issues/issue-58435-ice-with-assoc-const.rs deleted file mode 100644 index fac727d2d7d..00000000000 --- a/src/test/ui/issues/issue-58435-ice-with-assoc-const.rs +++ /dev/null @@ -1,18 +0,0 @@ -// run-pass -// The const-evaluator was at one point ICE'ing while trying to -// evaluate the body of `fn id` during the `s.id()` call in main. - -struct S<T>(T); - -impl<T> S<T> { - const ID: fn(&S<T>) -> &S<T> = |s| s; - pub fn id(&self) -> &Self { - Self::ID(self) // This, plus call below ... - } -} - -fn main() { - let s = S(10u32); - assert!(S::<u32>::ID(&s).0 == 10); // Works fine - assert!(s.id().0 == 10); // ... causes compiler to panic -} diff --git a/src/test/ui/issues/issue-58856-2.rs b/src/test/ui/issues/issue-58856-2.rs deleted file mode 100644 index 9356d57b0e5..00000000000 --- a/src/test/ui/issues/issue-58856-2.rs +++ /dev/null @@ -1,14 +0,0 @@ -struct Empty; - -trait Howness {} - -impl Howness for () { - fn how_are_you(&self -> Empty { - //~^ ERROR expected one of `)` or `,`, found `->` - //~| ERROR method `how_are_you` is not a member of trait `Howness` - Empty - } -} -//~^ ERROR non-item in item list - -fn main() {} diff --git a/src/test/ui/issues/issue-58856-2.stderr b/src/test/ui/issues/issue-58856-2.stderr deleted file mode 100644 index 303b5eacc32..00000000000 --- a/src/test/ui/issues/issue-58856-2.stderr +++ /dev/null @@ -1,34 +0,0 @@ -error: expected one of `)` or `,`, found `->` - --> $DIR/issue-58856-2.rs:6:26 - | -LL | fn how_are_you(&self -> Empty { - | - -^^ - | | | - | | help: `)` may belong here - | unclosed delimiter - -error: non-item in item list - --> $DIR/issue-58856-2.rs:11:1 - | -LL | impl Howness for () { - | - item list starts here -... -LL | } - | ^ - | | - | non-item starts here - | item list ends here - -error[E0407]: method `how_are_you` is not a member of trait `Howness` - --> $DIR/issue-58856-2.rs:6:5 - | -LL | / fn how_are_you(&self -> Empty { -LL | | -LL | | -LL | | Empty -LL | | } - | |_____^ not a member of trait `Howness` - -error: aborting due to 3 previous errors - -For more information about this error, try `rustc --explain E0407`. diff --git a/src/test/ui/issues/issue-60075.rs b/src/test/ui/issues/issue-60075.rs deleted file mode 100644 index e89d78ee8a6..00000000000 --- a/src/test/ui/issues/issue-60075.rs +++ /dev/null @@ -1,11 +0,0 @@ -fn main() {} - -trait T { - fn qux() -> Option<usize> { - let _ = if true { - }); -//~^ ERROR non-item in item list -//~| ERROR mismatched closing delimiter: `)` -//~| ERROR expected one of `.`, `;` - Some(4) - } diff --git a/src/test/ui/issues/issue-60075.stderr b/src/test/ui/issues/issue-60075.stderr deleted file mode 100644 index e3b7f4ad420..00000000000 --- a/src/test/ui/issues/issue-60075.stderr +++ /dev/null @@ -1,29 +0,0 @@ -error: expected one of `.`, `;`, `?`, `else`, or an operator, found `}` - --> $DIR/issue-60075.rs:6:10 - | -LL | }); - | ^ expected one of `.`, `;`, `?`, `else`, or an operator - -error: non-item in item list - --> $DIR/issue-60075.rs:6:11 - | -LL | trait T { - | - item list starts here -... -LL | }); - | ^ non-item starts here -... -LL | } - | - item list ends here - -error: mismatched closing delimiter: `)` - --> $DIR/issue-60075.rs:6:10 - | -LL | fn qux() -> Option<usize> { - | - unclosed delimiter -LL | let _ = if true { -LL | }); - | ^ mismatched closing delimiter - -error: aborting due to 3 previous errors - diff --git a/src/test/ui/issues/issue-62554.rs b/src/test/ui/issues/issue-62554.rs deleted file mode 100644 index cfd02183cb4..00000000000 --- a/src/test/ui/issues/issue-62554.rs +++ /dev/null @@ -1,6 +0,0 @@ -// error-pattern:this file contains an unclosed delimiter -// error-pattern:xpected `{`, found `macro_rules` - -fn main() {} - -fn foo(u: u8) { if u8 macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { diff --git a/src/test/ui/issues/issue-62554.stderr b/src/test/ui/issues/issue-62554.stderr deleted file mode 100644 index 935d3842cdf..00000000000 --- a/src/test/ui/issues/issue-62554.stderr +++ /dev/null @@ -1,71 +0,0 @@ -error: this file contains an unclosed delimiter - --> $DIR/issue-62554.rs:6:89 - | -LL | fn foo(u: u8) { if u8 macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { - | - - - - - ^ - | | | | | | - | | | | | unclosed delimiter - | | | | unclosed delimiter - | | | unclosed delimiter - | unclosed delimiter unclosed delimiter - -error: this file contains an unclosed delimiter - --> $DIR/issue-62554.rs:6:89 - | -LL | fn foo(u: u8) { if u8 macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { - | - - - - - ^ - | | | | | | - | | | | | unclosed delimiter - | | | | unclosed delimiter - | | | unclosed delimiter - | unclosed delimiter unclosed delimiter - -error: this file contains an unclosed delimiter - --> $DIR/issue-62554.rs:6:89 - | -LL | fn foo(u: u8) { if u8 macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { - | - - - - - ^ - | | | | | | - | | | | | unclosed delimiter - | | | | unclosed delimiter - | | | unclosed delimiter - | unclosed delimiter unclosed delimiter - -error: this file contains an unclosed delimiter - --> $DIR/issue-62554.rs:6:89 - | -LL | fn foo(u: u8) { if u8 macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { - | - - - - - ^ - | | | | | | - | | | | | unclosed delimiter - | | | | unclosed delimiter - | | | unclosed delimiter - | unclosed delimiter unclosed delimiter - -error: this file contains an unclosed delimiter - --> $DIR/issue-62554.rs:6:89 - | -LL | fn foo(u: u8) { if u8 macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { - | - - - - - ^ - | | | | | | - | | | | | unclosed delimiter - | | | | unclosed delimiter - | | | unclosed delimiter - | unclosed delimiter unclosed delimiter - -error: expected `{`, found `macro_rules` - --> $DIR/issue-62554.rs:6:23 - | -LL | fn foo(u: u8) { if u8 macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { - | -- ^^^^^^^^^^^ expected `{` - | | - | this `if` expression has a condition, but no block - | -help: try placing this code inside a block - | -LL | fn foo(u: u8) { if u8 { macro_rules! u8 { (u6) => { fn uuuuuuuuuuu() { use s loo mod u8 { -LL | } - | - -error: aborting due to 6 previous errors - diff --git a/src/test/ui/issues/issue-6334.rs b/src/test/ui/issues/issue-6334.rs deleted file mode 100644 index acf48da1543..00000000000 --- a/src/test/ui/issues/issue-6334.rs +++ /dev/null @@ -1,46 +0,0 @@ -// run-pass -// Tests that everything still compiles and runs fine even when -// we reorder the bounds. - - -trait A { - fn a(&self) -> usize; -} - -trait B { - fn b(&self) -> usize; -} - -trait C { - fn combine<T:A+B>(&self, t: &T) -> usize; -} - -struct Foo; - -impl A for Foo { - fn a(&self) -> usize { 1 } -} - -impl B for Foo { - fn b(&self) -> usize { 2 } -} - -struct Bar; - -impl C for Bar { - // Note below: bounds in impl decl are in reverse order. - fn combine<T:B+A>(&self, t: &T) -> usize { - (t.a() * 100) + t.b() - } -} - -fn use_c<S:C, T:B+A>(s: &S, t: &T) -> usize { - s.combine(t) -} - -pub fn main() { - let foo = Foo; - let bar = Bar; - let r = use_c(&bar, &foo); - assert_eq!(r, 102); -} diff --git a/src/test/ui/issues/issue-6449.rs b/src/test/ui/issues/issue-6449.rs deleted file mode 100644 index bfd4c123208..00000000000 --- a/src/test/ui/issues/issue-6449.rs +++ /dev/null @@ -1,44 +0,0 @@ -// run-pass -#![allow(dead_code)] - -enum Foo { - Bar(isize), - Baz, -} - -enum Other { - Other1(Foo), - Other2(Foo, Foo), -} - -fn main() { - match Foo::Baz { - ::Foo::Bar(3) => panic!(), - ::Foo::Bar(_) if false => panic!(), - ::Foo::Bar(..) if false => panic!(), - ::Foo::Bar(_n) => panic!(), - ::Foo::Baz => {} - } - match Foo::Bar(3) { - ::Foo::Bar(3) => {} - ::Foo::Bar(_) if false => panic!(), - ::Foo::Bar(..) if false => panic!(), - ::Foo::Bar(_n) => panic!(), - ::Foo::Baz => panic!(), - } - match Foo::Bar(4) { - ::Foo::Bar(3) => panic!(), - ::Foo::Bar(_) if false => panic!(), - ::Foo::Bar(..) if false => panic!(), - ::Foo::Bar(n) => assert_eq!(n, 4), - ::Foo::Baz => panic!(), - } - - match Other::Other1(Foo::Baz) { - ::Other::Other1(::Foo::Baz) => {} - ::Other::Other1(::Foo::Bar(_)) => {} - ::Other::Other2(::Foo::Baz, ::Foo::Bar(_)) => {} - ::Other::Other2(::Foo::Bar(..), ::Foo::Baz) => {} - ::Other::Other2(..) => {} - } -} diff --git a/src/test/ui/issues/issue-65673.rs b/src/test/ui/issues/issue-65673.rs deleted file mode 100644 index 4b47bd493a5..00000000000 --- a/src/test/ui/issues/issue-65673.rs +++ /dev/null @@ -1,12 +0,0 @@ -#![feature(trait_alias)] // Enabled to reduce stderr output, but can be triggered even if disabled. -trait Trait {} -trait WithType { - type Ctx; -} -trait Alias<T> = where T: Trait; - -impl<T> WithType for T { - type Ctx = dyn Alias<T>; -//~^ ERROR the size for values of type `(dyn Trait + 'static)` cannot be known at compilation time -} -fn main() {} diff --git a/src/test/ui/issues/issue-65673.stderr b/src/test/ui/issues/issue-65673.stderr deleted file mode 100644 index 64cc0bab3f3..00000000000 --- a/src/test/ui/issues/issue-65673.stderr +++ /dev/null @@ -1,14 +0,0 @@ -error[E0277]: the size for values of type `(dyn Trait + 'static)` cannot be known at compilation time - --> $DIR/issue-65673.rs:9:5 - | -LL | type Ctx; - | --------- required by this bound in `WithType::Ctx` -... -LL | type Ctx = dyn Alias<T>; - | ^^^^^^^^^^^^^^^^^^^^^^^^ doesn't have a size known at compile-time - | - = help: the trait `Sized` is not implemented for `(dyn Trait + 'static)` - -error: aborting due to previous error - -For more information about this error, try `rustc --explain E0277`. diff --git a/src/test/ui/issues/issue-66473.rs b/src/test/ui/issues/issue-66473.rs deleted file mode 100644 index 9db4521bb42..00000000000 --- a/src/test/ui/issues/issue-66473.rs +++ /dev/null Binary files differdiff --git a/src/test/ui/issues/issue-66473.stderr b/src/test/ui/issues/issue-66473.stderr deleted file mode 100644 index b370b125cfe..00000000000 --- a/src/test/ui/issues/issue-66473.stderr +++ /dev/null Binary files differdiff --git a/src/test/ui/issues/issue-66851.rs b/src/test/ui/issues/issue-66851.rs deleted file mode 100644 index 72d62a30a33..00000000000 --- a/src/test/ui/issues/issue-66851.rs +++ /dev/null @@ -1,20 +0,0 @@ -// This used to mis-compile because the mir-opt `SimplifyArmIdentity` -// did not check that the types matched up in the `Ok(r)` branch. -// -// run-pass -// compile-flags: -Zmir-opt-level=2 - -#[derive(Debug, PartialEq, Eq)] -enum SpecialsRes { Res(u64) } - -fn e103() -> SpecialsRes { - if let Ok(r) = "1".parse() { - SpecialsRes::Res(r) - } else { - SpecialsRes::Res(42) - } -} - -fn main() { - assert_eq!(e103(), SpecialsRes::Res(1)); -} diff --git a/src/test/ui/issues/issue-67037-pat-tup-scrut-ty-diff-less-fields.rs b/src/test/ui/issues/issue-67037-pat-tup-scrut-ty-diff-less-fields.rs deleted file mode 100644 index a3023ee906d..00000000000 --- a/src/test/ui/issues/issue-67037-pat-tup-scrut-ty-diff-less-fields.rs +++ /dev/null @@ -1,21 +0,0 @@ -// Regression test for #67037. -// -// In type checking patterns, E0023 occurs when the tuple pattern and the expected -// tuple pattern have different number of fields. For example, as below, `P()`, -// the tuple struct pattern, has 0 fields, but requires 1 field. -// -// In emitting E0023, we try to see if this is a case of e.g., `Some(a, b, c)` but where -// the scrutinee was of type `Some((a, b, c))`, and suggest that parenthesis be added. -// -// However, we did not account for the expected type being different than the tuple pattern type. -// This caused an issue when the tuple pattern type (`P<T>`) was generic. -// Specifically, we tried deriving the 0th field's type using the `substs` of the expected type. -// When attempting to substitute `T`, there was no such substitution, so "out of range" occurred. - -struct U {} // 0 type parameters offered -struct P<T>(T); // 1 type parameter wanted - -fn main() { - let P() = U {}; //~ ERROR mismatched types - //~^ ERROR this pattern has 0 fields, but the corresponding tuple struct has 1 field -} diff --git a/src/test/ui/issues/issue-67037-pat-tup-scrut-ty-diff-less-fields.stderr b/src/test/ui/issues/issue-67037-pat-tup-scrut-ty-diff-less-fields.stderr deleted file mode 100644 index 9bdbf0bf9f4..00000000000 --- a/src/test/ui/issues/issue-67037-pat-tup-scrut-ty-diff-less-fields.stderr +++ /dev/null @@ -1,33 +0,0 @@ -error[E0308]: mismatched types - --> $DIR/issue-67037-pat-tup-scrut-ty-diff-less-fields.rs:19:9 - | -LL | let P() = U {}; - | ^^^ ---- this expression has type `U` - | | - | expected struct `U`, found struct `P` - | - = note: expected struct `U` - found struct `P<_>` - -error[E0023]: this pattern has 0 fields, but the corresponding tuple struct has 1 field - --> $DIR/issue-67037-pat-tup-scrut-ty-diff-less-fields.rs:19:9 - | -LL | struct P<T>(T); // 1 type parameter wanted - | --------------- tuple struct defined here -... -LL | let P() = U {}; - | ^^^ expected 1 field, found 0 - | -help: use `_` to explicitly ignore each field - | -LL | let P(_) = U {}; - | ^ -help: use `..` to ignore all fields - | -LL | let P(..) = U {}; - | ^^ - -error: aborting due to 2 previous errors - -Some errors have detailed explanations: E0023, E0308. -For more information about an error, try `rustc --explain E0023`. diff --git a/src/test/ui/issues/issue-6991.rs b/src/test/ui/issues/issue-6991.rs deleted file mode 100644 index f00cd9aeffd..00000000000 --- a/src/test/ui/issues/issue-6991.rs +++ /dev/null @@ -1,8 +0,0 @@ -// check-pass -#![allow(dead_code)] -#![allow(non_upper_case_globals)] - -static x: &'static usize = &1; -static y: usize = *x; - -fn main() {} diff --git a/src/test/ui/issues/issue-72253.rs b/src/test/ui/issues/issue-72253.rs deleted file mode 100644 index 6f9af73b039..00000000000 --- a/src/test/ui/issues/issue-72253.rs +++ /dev/null @@ -1,6 +0,0 @@ -fn main() { - let a = std::process::Command::new("echo") - .arg("1") - ,arg("2") //~ ERROR expected one of `.`, `;`, `?`, or an operator, found `,` - .output(); -} diff --git a/src/test/ui/issues/issue-72253.stderr b/src/test/ui/issues/issue-72253.stderr deleted file mode 100644 index 3819fd92a9e..00000000000 --- a/src/test/ui/issues/issue-72253.stderr +++ /dev/null @@ -1,10 +0,0 @@ -error: expected one of `.`, `;`, `?`, or an operator, found `,` - --> $DIR/issue-72253.rs:4:9 - | -LL | .arg("1") - | - expected one of `.`, `;`, `?`, or an operator -LL | ,arg("2") - | ^ unexpected token - -error: aborting due to previous error - diff --git a/src/test/ui/issues/issue-72373.rs b/src/test/ui/issues/issue-72373.rs deleted file mode 100644 index 4da6061c27f..00000000000 --- a/src/test/ui/issues/issue-72373.rs +++ /dev/null @@ -1,9 +0,0 @@ -fn foo(c: &[u32], n: u32) -> u32 { - match *c { - [h, ..] if h > n => 0, - [h, ..] if h == n => 1, - [h, ref ts..] => foo(c, n - h) + foo(ts, n), - //~^ ERROR expected one of `,`, `@`, `]`, or `|`, found `..` - [] => 0, - } -} diff --git a/src/test/ui/issues/issue-72373.stderr b/src/test/ui/issues/issue-72373.stderr deleted file mode 100644 index dfde8624814..00000000000 --- a/src/test/ui/issues/issue-72373.stderr +++ /dev/null @@ -1,13 +0,0 @@ -error: expected one of `,`, `@`, `]`, or `|`, found `..` - --> $DIR/issue-72373.rs:5:19 - | -LL | [h, ref ts..] => foo(c, n - h) + foo(ts, n), - | ^^ expected one of `,`, `@`, `]`, or `|` - | -help: if you meant to bind the contents of the rest of the array pattern into `ts`, use `@` - | -LL | [h, ref ts @ ..] => foo(c, n - h) + foo(ts, n), - | ^ - -error: aborting due to previous error - diff --git a/src/test/ui/issues/issue-73899.rs b/src/test/ui/issues/issue-73899.rs deleted file mode 100644 index 2a3a5ab2a3b..00000000000 --- a/src/test/ui/issues/issue-73899.rs +++ /dev/null @@ -1,21 +0,0 @@ -// run-pass -#![feature(const_evaluatable_checked)] -#![feature(const_generics)] -#![allow(incomplete_features)] - -trait Foo {} - -impl<const N: usize> Foo for [(); N] where Self: FooImpl<{ N == 0 }> {} - -trait FooImpl<const IS_ZERO: bool> {} - -impl FooImpl<{ 0u8 == 0u8 }> for [(); 0] {} - -impl<const N: usize> FooImpl<{ 0u8 != 0u8 }> for [(); N] {} - -fn foo<T: Foo>(_v: T) {} - -fn main() { - foo([]); - foo([()]); -} diff --git a/src/test/ui/issues/issue-75599.rs b/src/test/ui/issues/issue-75599.rs deleted file mode 100644 index 0857676e4ed..00000000000 --- a/src/test/ui/issues/issue-75599.rs +++ /dev/null @@ -1,24 +0,0 @@ -// check-pass -#![allow(non_upper_case_globals)] - -const or: usize = 1; -const and: usize = 2; - -mod or { - pub const X: usize = 3; -} - -mod and { - pub const X: usize = 4; -} - -fn main() { - match 0 { - 0 => {} - or => {} - and => {} - or::X => {} - and::X => {} - _ => {} - } -} diff --git a/src/test/ui/issues/issue-75763.rs b/src/test/ui/issues/issue-75763.rs deleted file mode 100644 index c311de05a1c..00000000000 --- a/src/test/ui/issues/issue-75763.rs +++ /dev/null @@ -1,16 +0,0 @@ -// ignore-test -// FIXME(const_generics): This test causes an ICE after reverting #76030. - -#![allow(incomplete_features)] -#![feature(const_generics)] - -struct Bug<const S: &'static str>; - -fn main() { - let b: Bug::<{ - unsafe { - // FIXME(const_generics): Decide on how to deal with invalid values as const params. - std::mem::transmute::<&[u8], &str>(&[0xC0, 0xC1, 0xF5]) - } - }>; -} diff --git a/src/test/ui/issues/issue-76547.nll.stderr b/src/test/ui/issues/issue-76547.nll.stderr deleted file mode 100644 index 2456d6a1474..00000000000 --- a/src/test/ui/issues/issue-76547.nll.stderr +++ /dev/null @@ -1,20 +0,0 @@ -error: lifetime may not live long enough - --> $DIR/issue-76547.rs:19:14 - | -LL | async fn fut(bufs: &mut [&mut [u8]]) { - | ^^^^ - - let's call the lifetime of this reference `'2` - | | | - | | let's call the lifetime of this reference `'1` - | assignment requires that `'1` must outlive `'2` - -error: lifetime may not live long enough - --> $DIR/issue-76547.rs:33:15 - | -LL | async fn fut2(bufs: &mut [&mut [u8]]) -> i32 { - | ^^^^ - - let's call the lifetime of this reference `'2` - | | | - | | let's call the lifetime of this reference `'1` - | assignment requires that `'1` must outlive `'2` - -error: aborting due to 2 previous errors - diff --git a/src/test/ui/issues/issue-76547.rs b/src/test/ui/issues/issue-76547.rs deleted file mode 100644 index 5b3ee5b95c4..00000000000 --- a/src/test/ui/issues/issue-76547.rs +++ /dev/null @@ -1,38 +0,0 @@ -// Test for diagnostic improvement issue #76547 -// edition:2018 - -use std::{ - future::Future, - task::{Context, Poll} -}; -use std::pin::Pin; - -pub struct ListFut<'a>(&'a mut [&'a mut [u8]]); -impl<'a> Future for ListFut<'a> { - type Output = (); - - fn poll(self: Pin<&mut Self>, _cx: &mut Context) -> Poll<Self::Output> { - unimplemented!() - } -} - -async fn fut(bufs: &mut [&mut [u8]]) { - ListFut(bufs).await - //~^ ERROR lifetime mismatch -} - -pub struct ListFut2<'a>(&'a mut [&'a mut [u8]]); -impl<'a> Future for ListFut2<'a> { - type Output = i32; - - fn poll(self: Pin<&mut Self>, _cx: &mut Context) -> Poll<Self::Output> { - unimplemented!() - } -} - -async fn fut2(bufs: &mut [&mut [u8]]) -> i32 { - ListFut2(bufs).await - //~^ ERROR lifetime mismatch -} - -fn main() {} diff --git a/src/test/ui/issues/issue-76547.stderr b/src/test/ui/issues/issue-76547.stderr deleted file mode 100644 index 9bfb0f28028..00000000000 --- a/src/test/ui/issues/issue-76547.stderr +++ /dev/null @@ -1,25 +0,0 @@ -error[E0623]: lifetime mismatch - --> $DIR/issue-76547.rs:20:13 - | -LL | async fn fut(bufs: &mut [&mut [u8]]) { - | --------- - - | | | - | | this `async fn` implicitly returns an `impl Future<Output = ()>` - | this parameter and the returned future are declared with different lifetimes... -LL | ListFut(bufs).await - | ^^^^ ...but data from `bufs` is held across an await point here - -error[E0623]: lifetime mismatch - --> $DIR/issue-76547.rs:34:14 - | -LL | async fn fut2(bufs: &mut [&mut [u8]]) -> i32 { - | --------- --- - | | | - | | this `async fn` implicitly returns an `impl Future<Output = i32>` - | this parameter and the returned future are declared with different lifetimes... -LL | ListFut2(bufs).await - | ^^^^ ...but data from `bufs` is held across an await point here - -error: aborting due to 2 previous errors - -For more information about this error, try `rustc --explain E0623`. diff --git a/src/test/ui/issues/issue-8460-const.noopt.stderr b/src/test/ui/issues/issue-8460-const.noopt.stderr deleted file mode 100644 index d94c7742de3..00000000000 --- a/src/test/ui/issues/issue-8460-const.noopt.stderr +++ /dev/null @@ -1,150 +0,0 @@ -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:13:36 - | -LL | assert!(thread::spawn(move|| { isize::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^^^^ attempt to compute `isize::MIN / -1_isize`, which would overflow - | - = note: `#[deny(arithmetic_overflow)]` on by default - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:15:36 - | -LL | assert!(thread::spawn(move|| { i8::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^ attempt to compute `i8::MIN / -1_i8`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:17:36 - | -LL | assert!(thread::spawn(move|| { i16::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute `i16::MIN / -1_i16`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:19:36 - | -LL | assert!(thread::spawn(move|| { i32::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute `i32::MIN / -1_i32`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:21:36 - | -LL | assert!(thread::spawn(move|| { i64::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute `i64::MIN / -1_i64`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:23:36 - | -LL | assert!(thread::spawn(move|| { i128::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^^^ attempt to compute `i128::MIN / -1_i128`, which would overflow - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:25:36 - | -LL | assert!(thread::spawn(move|| { 1isize / 0; }).join().is_err()); - | ^^^^^^^^^^ attempt to divide `1_isize` by zero - | - = note: `#[deny(unconditional_panic)]` on by default - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:27:36 - | -LL | assert!(thread::spawn(move|| { 1i8 / 0; }).join().is_err()); - | ^^^^^^^ attempt to divide `1_i8` by zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:29:36 - | -LL | assert!(thread::spawn(move|| { 1i16 / 0; }).join().is_err()); - | ^^^^^^^^ attempt to divide `1_i16` by zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:31:36 - | -LL | assert!(thread::spawn(move|| { 1i32 / 0; }).join().is_err()); - | ^^^^^^^^ attempt to divide `1_i32` by zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:33:36 - | -LL | assert!(thread::spawn(move|| { 1i64 / 0; }).join().is_err()); - | ^^^^^^^^ attempt to divide `1_i64` by zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:35:36 - | -LL | assert!(thread::spawn(move|| { 1i128 / 0; }).join().is_err()); - | ^^^^^^^^^ attempt to divide `1_i128` by zero - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:37:36 - | -LL | assert!(thread::spawn(move|| { isize::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^^^^ attempt to compute the remainder of `isize::MIN % -1_isize`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:39:36 - | -LL | assert!(thread::spawn(move|| { i8::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^ attempt to compute the remainder of `i8::MIN % -1_i8`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:41:36 - | -LL | assert!(thread::spawn(move|| { i16::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute the remainder of `i16::MIN % -1_i16`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:43:36 - | -LL | assert!(thread::spawn(move|| { i32::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute the remainder of `i32::MIN % -1_i32`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:45:36 - | -LL | assert!(thread::spawn(move|| { i64::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute the remainder of `i64::MIN % -1_i64`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:47:36 - | -LL | assert!(thread::spawn(move|| { i128::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^^^ attempt to compute the remainder of `i128::MIN % -1_i128`, which would overflow - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:49:36 - | -LL | assert!(thread::spawn(move|| { 1isize % 0; }).join().is_err()); - | ^^^^^^^^^^ attempt to calculate the remainder of `1_isize` with a divisor of zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:51:36 - | -LL | assert!(thread::spawn(move|| { 1i8 % 0; }).join().is_err()); - | ^^^^^^^ attempt to calculate the remainder of `1_i8` with a divisor of zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:53:36 - | -LL | assert!(thread::spawn(move|| { 1i16 % 0; }).join().is_err()); - | ^^^^^^^^ attempt to calculate the remainder of `1_i16` with a divisor of zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:55:36 - | -LL | assert!(thread::spawn(move|| { 1i32 % 0; }).join().is_err()); - | ^^^^^^^^ attempt to calculate the remainder of `1_i32` with a divisor of zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:57:36 - | -LL | assert!(thread::spawn(move|| { 1i64 % 0; }).join().is_err()); - | ^^^^^^^^ attempt to calculate the remainder of `1_i64` with a divisor of zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:59:36 - | -LL | assert!(thread::spawn(move|| { 1i128 % 0; }).join().is_err()); - | ^^^^^^^^^ attempt to calculate the remainder of `1_i128` with a divisor of zero - -error: aborting due to 24 previous errors - diff --git a/src/test/ui/issues/issue-8460-const.opt.stderr b/src/test/ui/issues/issue-8460-const.opt.stderr deleted file mode 100644 index d94c7742de3..00000000000 --- a/src/test/ui/issues/issue-8460-const.opt.stderr +++ /dev/null @@ -1,150 +0,0 @@ -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:13:36 - | -LL | assert!(thread::spawn(move|| { isize::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^^^^ attempt to compute `isize::MIN / -1_isize`, which would overflow - | - = note: `#[deny(arithmetic_overflow)]` on by default - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:15:36 - | -LL | assert!(thread::spawn(move|| { i8::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^ attempt to compute `i8::MIN / -1_i8`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:17:36 - | -LL | assert!(thread::spawn(move|| { i16::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute `i16::MIN / -1_i16`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:19:36 - | -LL | assert!(thread::spawn(move|| { i32::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute `i32::MIN / -1_i32`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:21:36 - | -LL | assert!(thread::spawn(move|| { i64::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute `i64::MIN / -1_i64`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:23:36 - | -LL | assert!(thread::spawn(move|| { i128::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^^^ attempt to compute `i128::MIN / -1_i128`, which would overflow - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:25:36 - | -LL | assert!(thread::spawn(move|| { 1isize / 0; }).join().is_err()); - | ^^^^^^^^^^ attempt to divide `1_isize` by zero - | - = note: `#[deny(unconditional_panic)]` on by default - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:27:36 - | -LL | assert!(thread::spawn(move|| { 1i8 / 0; }).join().is_err()); - | ^^^^^^^ attempt to divide `1_i8` by zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:29:36 - | -LL | assert!(thread::spawn(move|| { 1i16 / 0; }).join().is_err()); - | ^^^^^^^^ attempt to divide `1_i16` by zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:31:36 - | -LL | assert!(thread::spawn(move|| { 1i32 / 0; }).join().is_err()); - | ^^^^^^^^ attempt to divide `1_i32` by zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:33:36 - | -LL | assert!(thread::spawn(move|| { 1i64 / 0; }).join().is_err()); - | ^^^^^^^^ attempt to divide `1_i64` by zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:35:36 - | -LL | assert!(thread::spawn(move|| { 1i128 / 0; }).join().is_err()); - | ^^^^^^^^^ attempt to divide `1_i128` by zero - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:37:36 - | -LL | assert!(thread::spawn(move|| { isize::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^^^^ attempt to compute the remainder of `isize::MIN % -1_isize`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:39:36 - | -LL | assert!(thread::spawn(move|| { i8::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^ attempt to compute the remainder of `i8::MIN % -1_i8`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:41:36 - | -LL | assert!(thread::spawn(move|| { i16::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute the remainder of `i16::MIN % -1_i16`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:43:36 - | -LL | assert!(thread::spawn(move|| { i32::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute the remainder of `i32::MIN % -1_i32`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:45:36 - | -LL | assert!(thread::spawn(move|| { i64::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute the remainder of `i64::MIN % -1_i64`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:47:36 - | -LL | assert!(thread::spawn(move|| { i128::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^^^ attempt to compute the remainder of `i128::MIN % -1_i128`, which would overflow - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:49:36 - | -LL | assert!(thread::spawn(move|| { 1isize % 0; }).join().is_err()); - | ^^^^^^^^^^ attempt to calculate the remainder of `1_isize` with a divisor of zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:51:36 - | -LL | assert!(thread::spawn(move|| { 1i8 % 0; }).join().is_err()); - | ^^^^^^^ attempt to calculate the remainder of `1_i8` with a divisor of zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:53:36 - | -LL | assert!(thread::spawn(move|| { 1i16 % 0; }).join().is_err()); - | ^^^^^^^^ attempt to calculate the remainder of `1_i16` with a divisor of zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:55:36 - | -LL | assert!(thread::spawn(move|| { 1i32 % 0; }).join().is_err()); - | ^^^^^^^^ attempt to calculate the remainder of `1_i32` with a divisor of zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:57:36 - | -LL | assert!(thread::spawn(move|| { 1i64 % 0; }).join().is_err()); - | ^^^^^^^^ attempt to calculate the remainder of `1_i64` with a divisor of zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:59:36 - | -LL | assert!(thread::spawn(move|| { 1i128 % 0; }).join().is_err()); - | ^^^^^^^^^ attempt to calculate the remainder of `1_i128` with a divisor of zero - -error: aborting due to 24 previous errors - diff --git a/src/test/ui/issues/issue-8460-const.opt_with_overflow_checks.stderr b/src/test/ui/issues/issue-8460-const.opt_with_overflow_checks.stderr deleted file mode 100644 index d94c7742de3..00000000000 --- a/src/test/ui/issues/issue-8460-const.opt_with_overflow_checks.stderr +++ /dev/null @@ -1,150 +0,0 @@ -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:13:36 - | -LL | assert!(thread::spawn(move|| { isize::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^^^^ attempt to compute `isize::MIN / -1_isize`, which would overflow - | - = note: `#[deny(arithmetic_overflow)]` on by default - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:15:36 - | -LL | assert!(thread::spawn(move|| { i8::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^ attempt to compute `i8::MIN / -1_i8`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:17:36 - | -LL | assert!(thread::spawn(move|| { i16::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute `i16::MIN / -1_i16`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:19:36 - | -LL | assert!(thread::spawn(move|| { i32::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute `i32::MIN / -1_i32`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:21:36 - | -LL | assert!(thread::spawn(move|| { i64::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute `i64::MIN / -1_i64`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:23:36 - | -LL | assert!(thread::spawn(move|| { i128::MIN / -1; }).join().is_err()); - | ^^^^^^^^^^^^^^ attempt to compute `i128::MIN / -1_i128`, which would overflow - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:25:36 - | -LL | assert!(thread::spawn(move|| { 1isize / 0; }).join().is_err()); - | ^^^^^^^^^^ attempt to divide `1_isize` by zero - | - = note: `#[deny(unconditional_panic)]` on by default - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:27:36 - | -LL | assert!(thread::spawn(move|| { 1i8 / 0; }).join().is_err()); - | ^^^^^^^ attempt to divide `1_i8` by zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:29:36 - | -LL | assert!(thread::spawn(move|| { 1i16 / 0; }).join().is_err()); - | ^^^^^^^^ attempt to divide `1_i16` by zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:31:36 - | -LL | assert!(thread::spawn(move|| { 1i32 / 0; }).join().is_err()); - | ^^^^^^^^ attempt to divide `1_i32` by zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:33:36 - | -LL | assert!(thread::spawn(move|| { 1i64 / 0; }).join().is_err()); - | ^^^^^^^^ attempt to divide `1_i64` by zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:35:36 - | -LL | assert!(thread::spawn(move|| { 1i128 / 0; }).join().is_err()); - | ^^^^^^^^^ attempt to divide `1_i128` by zero - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:37:36 - | -LL | assert!(thread::spawn(move|| { isize::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^^^^ attempt to compute the remainder of `isize::MIN % -1_isize`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:39:36 - | -LL | assert!(thread::spawn(move|| { i8::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^ attempt to compute the remainder of `i8::MIN % -1_i8`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:41:36 - | -LL | assert!(thread::spawn(move|| { i16::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute the remainder of `i16::MIN % -1_i16`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:43:36 - | -LL | assert!(thread::spawn(move|| { i32::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute the remainder of `i32::MIN % -1_i32`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:45:36 - | -LL | assert!(thread::spawn(move|| { i64::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^^ attempt to compute the remainder of `i64::MIN % -1_i64`, which would overflow - -error: this arithmetic operation will overflow - --> $DIR/issue-8460-const.rs:47:36 - | -LL | assert!(thread::spawn(move|| { i128::MIN % -1; }).join().is_err()); - | ^^^^^^^^^^^^^^ attempt to compute the remainder of `i128::MIN % -1_i128`, which would overflow - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:49:36 - | -LL | assert!(thread::spawn(move|| { 1isize % 0; }).join().is_err()); - | ^^^^^^^^^^ attempt to calculate the remainder of `1_isize` with a divisor of zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:51:36 - | -LL | assert!(thread::spawn(move|| { 1i8 % 0; }).join().is_err()); - | ^^^^^^^ attempt to calculate the remainder of `1_i8` with a divisor of zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:53:36 - | -LL | assert!(thread::spawn(move|| { 1i16 % 0; }).join().is_err()); - | ^^^^^^^^ attempt to calculate the remainder of `1_i16` with a divisor of zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:55:36 - | -LL | assert!(thread::spawn(move|| { 1i32 % 0; }).join().is_err()); - | ^^^^^^^^ attempt to calculate the remainder of `1_i32` with a divisor of zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:57:36 - | -LL | assert!(thread::spawn(move|| { 1i64 % 0; }).join().is_err()); - | ^^^^^^^^ attempt to calculate the remainder of `1_i64` with a divisor of zero - -error: this operation will panic at runtime - --> $DIR/issue-8460-const.rs:59:36 - | -LL | assert!(thread::spawn(move|| { 1i128 % 0; }).join().is_err()); - | ^^^^^^^^^ attempt to calculate the remainder of `1_i128` with a divisor of zero - -error: aborting due to 24 previous errors - diff --git a/src/test/ui/issues/issue-8460-const.rs b/src/test/ui/issues/issue-8460-const.rs deleted file mode 100644 index dc754666c8e..00000000000 --- a/src/test/ui/issues/issue-8460-const.rs +++ /dev/null @@ -1,61 +0,0 @@ -// revisions: noopt opt opt_with_overflow_checks -//[noopt]compile-flags: -C opt-level=0 -//[opt]compile-flags: -O -//[opt_with_overflow_checks]compile-flags: -C overflow-checks=on -O - -// build-fail - -#![deny(const_err)] - -use std::thread; - -fn main() { - assert!(thread::spawn(move|| { isize::MIN / -1; }).join().is_err()); - //~^ ERROR arithmetic operation will overflow - assert!(thread::spawn(move|| { i8::MIN / -1; }).join().is_err()); - //~^ ERROR arithmetic operation will overflow - assert!(thread::spawn(move|| { i16::MIN / -1; }).join().is_err()); - //~^ ERROR arithmetic operation will overflow - assert!(thread::spawn(move|| { i32::MIN / -1; }).join().is_err()); - //~^ ERROR arithmetic operation will overflow - assert!(thread::spawn(move|| { i64::MIN / -1; }).join().is_err()); - //~^ ERROR arithmetic operation will overflow - assert!(thread::spawn(move|| { i128::MIN / -1; }).join().is_err()); - //~^ ERROR arithmetic operation will overflow - assert!(thread::spawn(move|| { 1isize / 0; }).join().is_err()); - //~^ ERROR operation will panic - assert!(thread::spawn(move|| { 1i8 / 0; }).join().is_err()); - //~^ ERROR operation will panic - assert!(thread::spawn(move|| { 1i16 / 0; }).join().is_err()); - //~^ ERROR operation will panic - assert!(thread::spawn(move|| { 1i32 / 0; }).join().is_err()); - //~^ ERROR operation will panic - assert!(thread::spawn(move|| { 1i64 / 0; }).join().is_err()); - //~^ ERROR operation will panic - assert!(thread::spawn(move|| { 1i128 / 0; }).join().is_err()); - //~^ ERROR operation will panic - assert!(thread::spawn(move|| { isize::MIN % -1; }).join().is_err()); - //~^ ERROR arithmetic operation will overflow - assert!(thread::spawn(move|| { i8::MIN % -1; }).join().is_err()); - //~^ ERROR arithmetic operation will overflow - assert!(thread::spawn(move|| { i16::MIN % -1; }).join().is_err()); - //~^ ERROR arithmetic operation will overflow - assert!(thread::spawn(move|| { i32::MIN % -1; }).join().is_err()); - //~^ ERROR arithmetic operation will overflow - assert!(thread::spawn(move|| { i64::MIN % -1; }).join().is_err()); - //~^ ERROR arithmetic operation will overflow - assert!(thread::spawn(move|| { i128::MIN % -1; }).join().is_err()); - //~^ ERROR arithmetic operation will overflow - assert!(thread::spawn(move|| { 1isize % 0; }).join().is_err()); - //~^ ERROR operation will panic - assert!(thread::spawn(move|| { 1i8 % 0; }).join().is_err()); - //~^ ERROR operation will panic - assert!(thread::spawn(move|| { 1i16 % 0; }).join().is_err()); - //~^ ERROR operation will panic - assert!(thread::spawn(move|| { 1i32 % 0; }).join().is_err()); - //~^ ERROR operation will panic - assert!(thread::spawn(move|| { 1i64 % 0; }).join().is_err()); - //~^ ERROR operation will panic - assert!(thread::spawn(move|| { 1i128 % 0; }).join().is_err()); - //~^ ERROR operation will panic -} diff --git a/src/test/ui/issues/issue-8460.rs b/src/test/ui/issues/issue-8460.rs deleted file mode 100644 index a7de4bd74aa..00000000000 --- a/src/test/ui/issues/issue-8460.rs +++ /dev/null @@ -1,51 +0,0 @@ -// run-pass -#![allow(unused_must_use)] -// ignore-emscripten no threads support -#![feature(rustc_attrs)] - -use std::thread; - -trait Int { - fn zero() -> Self; - fn one() -> Self; -} -macro_rules! doit { - ($($t:ident)*) => ($(impl Int for $t { - fn zero() -> Self { 0 } - fn one() -> Self { 1 } - })*) -} -doit! { i8 i16 i32 i64 isize } - -macro_rules! check { - ($($e:expr),*) => { - $(assert!(thread::spawn({ - move|| { $e; } - }).join().is_err());)* - } -} - -fn main() { - check![ - isize::MIN / -isize::one(), - i8::MIN / -i8::one(), - i16::MIN / -i16::one(), - i32::MIN / -i32::one(), - i64::MIN / -i64::one(), - 1isize / isize::zero(), - 1i8 / i8::zero(), - 1i16 / i16::zero(), - 1i32 / i32::zero(), - 1i64 / i64::zero(), - isize::MIN % -isize::one(), - i8::MIN % -i8::one(), - i16::MIN % -i16::one(), - i32::MIN % -i32::one(), - i64::MIN % -i64::one(), - 1isize % isize::zero(), - 1i8 % i8::zero(), - 1i16 % i16::zero(), - 1i32 % i32::zero(), - 1i64 % i64::zero() - ]; -} diff --git a/src/test/ui/issues/issue-9394-inherited-trait-calls.rs b/src/test/ui/issues/issue-9394-inherited-trait-calls.rs deleted file mode 100644 index cc0dd4fc14a..00000000000 --- a/src/test/ui/issues/issue-9394-inherited-trait-calls.rs +++ /dev/null @@ -1,62 +0,0 @@ -// run-pass - -trait Base: Base2 + Base3{ - fn foo(&self) -> String; - fn foo1(&self) -> String; - fn foo2(&self) -> String{ - "base foo2".to_string() - } -} - -trait Base2: Base3{ - fn baz(&self) -> String; -} - -trait Base3{ - fn root(&self) -> String; -} - -trait Super: Base{ - fn bar(&self) -> String; -} - -struct X; - -impl Base for X { - fn foo(&self) -> String{ - "base foo".to_string() - } - fn foo1(&self) -> String{ - "base foo1".to_string() - } - -} - -impl Base2 for X { - fn baz(&self) -> String{ - "base2 baz".to_string() - } -} - -impl Base3 for X { - fn root(&self) -> String{ - "base3 root".to_string() - } -} - -impl Super for X { - fn bar(&self) -> String{ - "super bar".to_string() - } -} - -pub fn main() { - let n = X; - let s = &n as &dyn Super; - assert_eq!(s.bar(),"super bar".to_string()); - assert_eq!(s.foo(),"base foo".to_string()); - assert_eq!(s.foo1(),"base foo1".to_string()); - assert_eq!(s.foo2(),"base foo2".to_string()); - assert_eq!(s.baz(),"base2 baz".to_string()); - assert_eq!(s.root(),"base3 root".to_string()); -} |
