Auto merge of #146438 - flip1995:clippy-beta-backport, r=Mark-Simulacrum

[beta] Clippy backport

Only a single commit to backport:

- https://github.com/rust-lang/rust-clippy/pull/15434

We'd like to get this ICE fix in a release earlier.

r? Mark-Simulacrum
This commit is contained in:
bors 2025-09-11 12:59:05 +00:00
commit f946d4d344
3 changed files with 14 additions and 3 deletions

View file

@ -56,6 +56,9 @@ impl LateLintPass<'_> for ZeroSizedMapValues {
// cannot check if it is `Sized` or not, such as an incomplete associated type in a
// type alias. See an example in `issue14822()` of `tests/ui/zero_sized_hashmap_values.rs`.
&& !ty.has_non_region_param()
// Ensure that no region escapes to avoid an assertion error when computing the layout.
// See an example in `issue15429()` of `tests/ui/zero_sized_hashmap_values.rs`.
&& !ty.has_escaping_bound_vars()
&& let Ok(layout) = cx.layout_of(ty)
&& layout.is_zst()
{

View file

@ -92,6 +92,14 @@ fn issue14822() {
//~^ zero_sized_map_values
}
fn issue15429() {
struct E<'a>(&'a [E<'a>]);
// The assertion error happens when the type being evaluated has escaping bound vars
// as it cannot be wrapped in a dummy binder during size computation.
type F = dyn for<'a> FnOnce(HashMap<u32, E<'a>>) -> u32;
}
fn main() {
let _: HashMap<String, ()> = HashMap::new();
//~^ zero_sized_map_values

View file

@ -89,7 +89,7 @@ LL | type D = HashMap<u32, S<E>>;
= help: consider using a set instead
error: map with zero-sized value type
--> tests/ui/zero_sized_hashmap_values.rs:96:34
--> tests/ui/zero_sized_hashmap_values.rs:104:34
|
LL | let _: HashMap<String, ()> = HashMap::new();
| ^^^^^^^
@ -97,7 +97,7 @@ LL | let _: HashMap<String, ()> = HashMap::new();
= help: consider using a set instead
error: map with zero-sized value type
--> tests/ui/zero_sized_hashmap_values.rs:96:12
--> tests/ui/zero_sized_hashmap_values.rs:104:12
|
LL | let _: HashMap<String, ()> = HashMap::new();
| ^^^^^^^^^^^^^^^^^^^
@ -105,7 +105,7 @@ LL | let _: HashMap<String, ()> = HashMap::new();
= help: consider using a set instead
error: map with zero-sized value type
--> tests/ui/zero_sized_hashmap_values.rs:102:12
--> tests/ui/zero_sized_hashmap_values.rs:110:12
|
LL | let _: HashMap<_, _> = std::iter::empty::<(String, ())>().collect();
| ^^^^^^^^^^^^^