diff --git a/tests/ui/issues/issue-45730.rs b/tests/ui/cast/ambiguous-raw-pointer-cast-errors.rs similarity index 79% rename from tests/ui/issues/issue-45730.rs rename to tests/ui/cast/ambiguous-raw-pointer-cast-errors.rs index 3776759fe07a5..22413898eb32c 100644 --- a/tests/ui/issues/issue-45730.rs +++ b/tests/ui/cast/ambiguous-raw-pointer-cast-errors.rs @@ -1,3 +1,5 @@ +//! Regression test for https://github.com/rust-lang/rust/issues/45730 + use std::fmt; fn main() { let x: *const _ = 0 as _; //~ ERROR cannot cast diff --git a/tests/ui/issues/issue-45730.stderr b/tests/ui/cast/ambiguous-raw-pointer-cast-errors.stderr similarity index 85% rename from tests/ui/issues/issue-45730.stderr rename to tests/ui/cast/ambiguous-raw-pointer-cast-errors.stderr index d00f3d91b49da..dea81bcfbc9a3 100644 --- a/tests/ui/issues/issue-45730.stderr +++ b/tests/ui/cast/ambiguous-raw-pointer-cast-errors.stderr @@ -1,5 +1,5 @@ error[E0641]: cannot cast to a pointer of an unknown kind - --> $DIR/issue-45730.rs:3:28 + --> $DIR/ambiguous-raw-pointer-cast-errors.rs:5:28 | LL | let x: *const _ = 0 as _; | ^ needs more type information @@ -7,7 +7,7 @@ LL | let x: *const _ = 0 as _; = note: the type information given here is insufficient to check whether the pointer cast is valid error[E0641]: cannot cast to a pointer of an unknown kind - --> $DIR/issue-45730.rs:5:28 + --> $DIR/ambiguous-raw-pointer-cast-errors.rs:7:28 | LL | let x: *const _ = 0 as *const _; | ^^^^^^^^ needs more type information @@ -15,7 +15,7 @@ LL | let x: *const _ = 0 as *const _; = note: the type information given here is insufficient to check whether the pointer cast is valid error[E0641]: cannot cast to a pointer of an unknown kind - --> $DIR/issue-45730.rs:8:44 + --> $DIR/ambiguous-raw-pointer-cast-errors.rs:10:44 | LL | let x = 0 as *const i32 as *const _ as *mut _; | ^^^^^^ needs more type information diff --git a/tests/ui/issues/issue-23699.rs b/tests/ui/cast/as-cast-unifies-raw-pointer-and-fn-type.rs similarity index 80% rename from tests/ui/issues/issue-23699.rs rename to tests/ui/cast/as-cast-unifies-raw-pointer-and-fn-type.rs index 6dde2dfd93001..ce4319b7cc6dd 100644 --- a/tests/ui/issues/issue-23699.rs +++ b/tests/ui/cast/as-cast-unifies-raw-pointer-and-fn-type.rs @@ -1,3 +1,5 @@ +//! Regression test for https://github.com/rust-lang/rust/issues/23699 + //@ run-pass #![allow(unused_variables)] fn gimme_a_raw_pointer(_: *const T) { } diff --git a/tests/ui/issues/issue-36936.rs b/tests/ui/cast/cast-not-treated-as-lvalue.rs similarity index 84% rename from tests/ui/issues/issue-36936.rs rename to tests/ui/cast/cast-not-treated-as-lvalue.rs index 4fbac00212672..42d74530ded61 100644 --- a/tests/ui/issues/issue-36936.rs +++ b/tests/ui/cast/cast-not-treated-as-lvalue.rs @@ -1,3 +1,5 @@ +//! Regression test for https://github.com/rust-lang/rust/issues/36936 + //@ run-pass // check that casts are not being treated as lexprs. diff --git a/tests/ui/cast/cast-ptr-to-fat-ptr.rs b/tests/ui/cast/cast-ptr-to-fat-ptr.rs new file mode 100644 index 0000000000000..557d929a0a033 --- /dev/null +++ b/tests/ui/cast/cast-ptr-to-fat-ptr.rs @@ -0,0 +1,9 @@ +//! Regression test for https://github.com/rust-lang/rust/issues/30615 +//! This test confirms that valid code casting a thin pointer to a fat pointer does not cause ICE +//! and compiles. + +//@ run-pass +fn main() { + &0u8 as *const u8 as *const dyn PartialEq; + &[0u8] as *const [u8; 1] as *const [u8]; +} diff --git a/tests/ui/cast/invalid-thin-to-fat-pointer-cast.rs b/tests/ui/cast/invalid-thin-to-fat-pointer-cast.rs new file mode 100644 index 0000000000000..085566fd95390 --- /dev/null +++ b/tests/ui/cast/invalid-thin-to-fat-pointer-cast.rs @@ -0,0 +1,10 @@ +//! Regression test for https://github.com/rust-lang/rust/issues/31511 +//! This test confirms that a helpful enough error is shown when you try +//! to incorrectly cast a thin pointer to a fat pointer. + +fn cast_thin_to_fat(x: *const ()) { + x as *const [u8]; + //~^ ERROR: cannot cast thin pointer `*const ()` to wide pointer `*const [u8]` +} + +fn main() {} diff --git a/tests/ui/issues/issue-31511.stderr b/tests/ui/cast/invalid-thin-to-fat-pointer-cast.stderr similarity index 83% rename from tests/ui/issues/issue-31511.stderr rename to tests/ui/cast/invalid-thin-to-fat-pointer-cast.stderr index 2048bd7ec1666..6929b719f5db7 100644 --- a/tests/ui/issues/issue-31511.stderr +++ b/tests/ui/cast/invalid-thin-to-fat-pointer-cast.stderr @@ -1,5 +1,5 @@ error[E0607]: cannot cast thin pointer `*const ()` to wide pointer `*const [u8]` - --> $DIR/issue-31511.rs:2:5 + --> $DIR/invalid-thin-to-fat-pointer-cast.rs:6:5 | LL | x as *const [u8]; | ^^^^^^^^^^^^^^^^ diff --git a/tests/ui/issues/issue-43291.rs b/tests/ui/cast/negative-integer-cast-to-pointer.rs similarity index 74% rename from tests/ui/issues/issue-43291.rs rename to tests/ui/cast/negative-integer-cast-to-pointer.rs index e3fea3c942601..43093c269a53e 100644 --- a/tests/ui/issues/issue-43291.rs +++ b/tests/ui/cast/negative-integer-cast-to-pointer.rs @@ -1,3 +1,5 @@ +//! Regression test for https://github.com/rust-lang/rust/issues/43291 + //@ run-pass pub fn main() { assert_eq!(!0usize as *const (), foo(0, 1)); diff --git a/tests/ui/issues/issue-22312.rs b/tests/ui/cast/non-primitive-cast-self-to-dyn-index.rs similarity index 88% rename from tests/ui/issues/issue-22312.rs rename to tests/ui/cast/non-primitive-cast-self-to-dyn-index.rs index 4e359b3412a71..52debf6fe440e 100644 --- a/tests/ui/issues/issue-22312.rs +++ b/tests/ui/cast/non-primitive-cast-self-to-dyn-index.rs @@ -1,3 +1,5 @@ +//! Regression test for https://github.com/rust-lang/rust/issues/22312 + use std::ops::Index; pub trait Array2D: Index + Sized { diff --git a/tests/ui/issues/issue-22312.stderr b/tests/ui/cast/non-primitive-cast-self-to-dyn-index.stderr similarity index 91% rename from tests/ui/issues/issue-22312.stderr rename to tests/ui/cast/non-primitive-cast-self-to-dyn-index.stderr index be3f5ace5480e..8ef1d55910792 100644 --- a/tests/ui/issues/issue-22312.stderr +++ b/tests/ui/cast/non-primitive-cast-self-to-dyn-index.stderr @@ -1,5 +1,5 @@ error[E0605]: non-primitive cast: `Self` as `&dyn Index>::Output>` - --> $DIR/issue-22312.rs:11:24 + --> $DIR/non-primitive-cast-self-to-dyn-index.rs:13:24 | LL | let indexer = &(*self as &dyn Index>::Output>); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ invalid cast diff --git a/tests/ui/issues/issue-17336.rs b/tests/ui/cast/raw-pointer-from-str-comparison.rs similarity index 72% rename from tests/ui/issues/issue-17336.rs rename to tests/ui/cast/raw-pointer-from-str-comparison.rs index 8ce2caaeaa57b..9713c36dde265 100644 --- a/tests/ui/issues/issue-17336.rs +++ b/tests/ui/cast/raw-pointer-from-str-comparison.rs @@ -1,3 +1,5 @@ +//! Regression test for https://github.com/rust-lang/rust/issues/17336 + //@ build-pass #![allow(unused_must_use)] diff --git a/tests/ui/issues/issue-30615.rs b/tests/ui/issues/issue-30615.rs deleted file mode 100644 index 6157e593ea327..0000000000000 --- a/tests/ui/issues/issue-30615.rs +++ /dev/null @@ -1,5 +0,0 @@ -//@ run-pass -fn main() { - &0u8 as *const u8 as *const dyn PartialEq; - &[0u8] as *const [u8; 1] as *const [u8]; -} diff --git a/tests/ui/issues/issue-31511.rs b/tests/ui/issues/issue-31511.rs deleted file mode 100644 index 6c8df1157c6c8..0000000000000 --- a/tests/ui/issues/issue-31511.rs +++ /dev/null @@ -1,6 +0,0 @@ -fn cast_thin_to_fat(x: *const ()) { - x as *const [u8]; - //~^ ERROR: cannot cast thin pointer `*const ()` to wide pointer `*const [u8]` -} - -fn main() {}