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:
commit
f946d4d344
3 changed files with 14 additions and 3 deletions
|
|
@ -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()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
| ^^^^^^^^^^^^^
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue