From d2cb1456597302c4bbd713dff444160b3a14f6bf Mon Sep 17 00:00:00 2001 From: danieljofficial Date: Mon, 4 May 2026 15:45:31 +0100 Subject: [PATCH 1/3] move type casting related tests into its dedicated folder --- .../issue-45730.rs => cast/ambiguous-raw-pointer-cast-errors.rs} | 0 .../ambiguous-raw-pointer-cast-errors.stderr} | 0 .../as-cast-unifies-raw-pointer-and-fn-type.rs} | 0 .../{issues/issue-36936.rs => cast/cast-not-treated-as-lvalue.rs} | 0 tests/ui/{issues/issue-30615.rs => cast/cast-ptr-to-fat-ptr.rs} | 0 .../issue-31511.rs => cast/invalid-thin-to-fat-pointer-cast.rs} | 0 .../invalid-thin-to-fat-pointer-cast.stderr} | 0 .../issue-43291.rs => cast/negative-integer-cast-to-pointer.rs} | 0 .../non-primitive-cast-self-to-dyn-index.rs} | 0 .../non-primitive-cast-self-to-dyn-index.stderr} | 0 .../issue-17336.rs => cast/raw-pointer-from-str-comparison.rs} | 0 11 files changed, 0 insertions(+), 0 deletions(-) rename tests/ui/{issues/issue-45730.rs => cast/ambiguous-raw-pointer-cast-errors.rs} (100%) rename tests/ui/{issues/issue-45730.stderr => cast/ambiguous-raw-pointer-cast-errors.stderr} (100%) rename tests/ui/{issues/issue-23699.rs => cast/as-cast-unifies-raw-pointer-and-fn-type.rs} (100%) rename tests/ui/{issues/issue-36936.rs => cast/cast-not-treated-as-lvalue.rs} (100%) rename tests/ui/{issues/issue-30615.rs => cast/cast-ptr-to-fat-ptr.rs} (100%) rename tests/ui/{issues/issue-31511.rs => cast/invalid-thin-to-fat-pointer-cast.rs} (100%) rename tests/ui/{issues/issue-31511.stderr => cast/invalid-thin-to-fat-pointer-cast.stderr} (100%) rename tests/ui/{issues/issue-43291.rs => cast/negative-integer-cast-to-pointer.rs} (100%) rename tests/ui/{issues/issue-22312.rs => cast/non-primitive-cast-self-to-dyn-index.rs} (100%) rename tests/ui/{issues/issue-22312.stderr => cast/non-primitive-cast-self-to-dyn-index.stderr} (100%) rename tests/ui/{issues/issue-17336.rs => cast/raw-pointer-from-str-comparison.rs} (100%) diff --git a/tests/ui/issues/issue-45730.rs b/tests/ui/cast/ambiguous-raw-pointer-cast-errors.rs similarity index 100% rename from tests/ui/issues/issue-45730.rs rename to tests/ui/cast/ambiguous-raw-pointer-cast-errors.rs diff --git a/tests/ui/issues/issue-45730.stderr b/tests/ui/cast/ambiguous-raw-pointer-cast-errors.stderr similarity index 100% rename from tests/ui/issues/issue-45730.stderr rename to tests/ui/cast/ambiguous-raw-pointer-cast-errors.stderr diff --git a/tests/ui/issues/issue-23699.rs b/tests/ui/cast/as-cast-unifies-raw-pointer-and-fn-type.rs similarity index 100% rename from tests/ui/issues/issue-23699.rs rename to tests/ui/cast/as-cast-unifies-raw-pointer-and-fn-type.rs diff --git a/tests/ui/issues/issue-36936.rs b/tests/ui/cast/cast-not-treated-as-lvalue.rs similarity index 100% rename from tests/ui/issues/issue-36936.rs rename to tests/ui/cast/cast-not-treated-as-lvalue.rs diff --git a/tests/ui/issues/issue-30615.rs b/tests/ui/cast/cast-ptr-to-fat-ptr.rs similarity index 100% rename from tests/ui/issues/issue-30615.rs rename to tests/ui/cast/cast-ptr-to-fat-ptr.rs diff --git a/tests/ui/issues/issue-31511.rs b/tests/ui/cast/invalid-thin-to-fat-pointer-cast.rs similarity index 100% rename from tests/ui/issues/issue-31511.rs rename to tests/ui/cast/invalid-thin-to-fat-pointer-cast.rs diff --git a/tests/ui/issues/issue-31511.stderr b/tests/ui/cast/invalid-thin-to-fat-pointer-cast.stderr similarity index 100% rename from tests/ui/issues/issue-31511.stderr rename to tests/ui/cast/invalid-thin-to-fat-pointer-cast.stderr diff --git a/tests/ui/issues/issue-43291.rs b/tests/ui/cast/negative-integer-cast-to-pointer.rs similarity index 100% rename from tests/ui/issues/issue-43291.rs rename to tests/ui/cast/negative-integer-cast-to-pointer.rs diff --git a/tests/ui/issues/issue-22312.rs b/tests/ui/cast/non-primitive-cast-self-to-dyn-index.rs similarity index 100% rename from tests/ui/issues/issue-22312.rs rename to tests/ui/cast/non-primitive-cast-self-to-dyn-index.rs diff --git a/tests/ui/issues/issue-22312.stderr b/tests/ui/cast/non-primitive-cast-self-to-dyn-index.stderr similarity index 100% rename from tests/ui/issues/issue-22312.stderr rename to tests/ui/cast/non-primitive-cast-self-to-dyn-index.stderr diff --git a/tests/ui/issues/issue-17336.rs b/tests/ui/cast/raw-pointer-from-str-comparison.rs similarity index 100% rename from tests/ui/issues/issue-17336.rs rename to tests/ui/cast/raw-pointer-from-str-comparison.rs From 32a3612a2bb3964fe5376c498d3e9c04eadd55eb Mon Sep 17 00:00:00 2001 From: danieljofficial Date: Mon, 4 May 2026 16:02:23 +0100 Subject: [PATCH 2/3] add issue links and bless --- tests/ui/cast/ambiguous-raw-pointer-cast-errors.rs | 2 ++ tests/ui/cast/ambiguous-raw-pointer-cast-errors.stderr | 6 +++--- tests/ui/cast/as-cast-unifies-raw-pointer-and-fn-type.rs | 2 ++ tests/ui/cast/cast-not-treated-as-lvalue.rs | 2 ++ tests/ui/cast/cast-ptr-to-fat-ptr.rs | 2 ++ tests/ui/cast/invalid-thin-to-fat-pointer-cast.rs | 2 ++ tests/ui/cast/invalid-thin-to-fat-pointer-cast.stderr | 2 +- tests/ui/cast/negative-integer-cast-to-pointer.rs | 2 ++ tests/ui/cast/non-primitive-cast-self-to-dyn-index.rs | 2 ++ tests/ui/cast/non-primitive-cast-self-to-dyn-index.stderr | 2 +- tests/ui/cast/raw-pointer-from-str-comparison.rs | 2 ++ 11 files changed, 21 insertions(+), 5 deletions(-) diff --git a/tests/ui/cast/ambiguous-raw-pointer-cast-errors.rs b/tests/ui/cast/ambiguous-raw-pointer-cast-errors.rs index 3776759fe07a5..22413898eb32c 100644 --- a/tests/ui/cast/ambiguous-raw-pointer-cast-errors.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/cast/ambiguous-raw-pointer-cast-errors.stderr b/tests/ui/cast/ambiguous-raw-pointer-cast-errors.stderr index d00f3d91b49da..dea81bcfbc9a3 100644 --- a/tests/ui/cast/ambiguous-raw-pointer-cast-errors.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/cast/as-cast-unifies-raw-pointer-and-fn-type.rs b/tests/ui/cast/as-cast-unifies-raw-pointer-and-fn-type.rs index 6dde2dfd93001..ce4319b7cc6dd 100644 --- a/tests/ui/cast/as-cast-unifies-raw-pointer-and-fn-type.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/cast/cast-not-treated-as-lvalue.rs b/tests/ui/cast/cast-not-treated-as-lvalue.rs index 4fbac00212672..42d74530ded61 100644 --- a/tests/ui/cast/cast-not-treated-as-lvalue.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 index 6157e593ea327..74a2435af4343 100644 --- a/tests/ui/cast/cast-ptr-to-fat-ptr.rs +++ b/tests/ui/cast/cast-ptr-to-fat-ptr.rs @@ -1,3 +1,5 @@ +//! Regression test for https://github.com/rust-lang/rust/issues/30615 + //@ run-pass fn main() { &0u8 as *const u8 as *const dyn PartialEq; diff --git a/tests/ui/cast/invalid-thin-to-fat-pointer-cast.rs b/tests/ui/cast/invalid-thin-to-fat-pointer-cast.rs index 6c8df1157c6c8..72af9f7259faa 100644 --- a/tests/ui/cast/invalid-thin-to-fat-pointer-cast.rs +++ b/tests/ui/cast/invalid-thin-to-fat-pointer-cast.rs @@ -1,3 +1,5 @@ +//! Regression test for https://github.com/rust-lang/rust/issues/31511 + fn cast_thin_to_fat(x: *const ()) { x as *const [u8]; //~^ ERROR: cannot cast thin pointer `*const ()` to wide pointer `*const [u8]` diff --git a/tests/ui/cast/invalid-thin-to-fat-pointer-cast.stderr b/tests/ui/cast/invalid-thin-to-fat-pointer-cast.stderr index 2048bd7ec1666..e6fa066e82083 100644 --- a/tests/ui/cast/invalid-thin-to-fat-pointer-cast.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:4:5 | LL | x as *const [u8]; | ^^^^^^^^^^^^^^^^ diff --git a/tests/ui/cast/negative-integer-cast-to-pointer.rs b/tests/ui/cast/negative-integer-cast-to-pointer.rs index e3fea3c942601..43093c269a53e 100644 --- a/tests/ui/cast/negative-integer-cast-to-pointer.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/cast/non-primitive-cast-self-to-dyn-index.rs b/tests/ui/cast/non-primitive-cast-self-to-dyn-index.rs index 4e359b3412a71..52debf6fe440e 100644 --- a/tests/ui/cast/non-primitive-cast-self-to-dyn-index.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/cast/non-primitive-cast-self-to-dyn-index.stderr b/tests/ui/cast/non-primitive-cast-self-to-dyn-index.stderr index be3f5ace5480e..8ef1d55910792 100644 --- a/tests/ui/cast/non-primitive-cast-self-to-dyn-index.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/cast/raw-pointer-from-str-comparison.rs b/tests/ui/cast/raw-pointer-from-str-comparison.rs index 8ce2caaeaa57b..9713c36dde265 100644 --- a/tests/ui/cast/raw-pointer-from-str-comparison.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)] From 7a876ac4185ded67fbae324c2e697ae999d52ce9 Mon Sep 17 00:00:00 2001 From: danieljofficial Date: Tue, 12 May 2026 08:58:45 +0100 Subject: [PATCH 3/3] add helpful comments to tests --- tests/ui/cast/cast-ptr-to-fat-ptr.rs | 2 ++ tests/ui/cast/invalid-thin-to-fat-pointer-cast.rs | 2 ++ tests/ui/cast/invalid-thin-to-fat-pointer-cast.stderr | 2 +- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/ui/cast/cast-ptr-to-fat-ptr.rs b/tests/ui/cast/cast-ptr-to-fat-ptr.rs index 74a2435af4343..557d929a0a033 100644 --- a/tests/ui/cast/cast-ptr-to-fat-ptr.rs +++ b/tests/ui/cast/cast-ptr-to-fat-ptr.rs @@ -1,4 +1,6 @@ //! 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() { diff --git a/tests/ui/cast/invalid-thin-to-fat-pointer-cast.rs b/tests/ui/cast/invalid-thin-to-fat-pointer-cast.rs index 72af9f7259faa..085566fd95390 100644 --- a/tests/ui/cast/invalid-thin-to-fat-pointer-cast.rs +++ b/tests/ui/cast/invalid-thin-to-fat-pointer-cast.rs @@ -1,4 +1,6 @@ //! 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]; diff --git a/tests/ui/cast/invalid-thin-to-fat-pointer-cast.stderr b/tests/ui/cast/invalid-thin-to-fat-pointer-cast.stderr index e6fa066e82083..6929b719f5db7 100644 --- a/tests/ui/cast/invalid-thin-to-fat-pointer-cast.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/invalid-thin-to-fat-pointer-cast.rs:4:5 + --> $DIR/invalid-thin-to-fat-pointer-cast.rs:6:5 | LL | x as *const [u8]; | ^^^^^^^^^^^^^^^^