Fix ICE in missing_const_for_fn

The `mir_drops_elaborated_and_const_checked` query result has been
stolen already and cannot be borrowed again. Use the `optimized_mir`
query result instead.
This commit is contained in:
Samuel Tardieu 2025-05-10 21:53:56 +02:00
parent f60807dfee
commit 9ed53b85b7
No known key found for this signature in database
GPG key ID: 7A30BCF442B8F7C2
4 changed files with 45 additions and 2 deletions

View file

@ -0,0 +1,13 @@
//@compile-flags: -Z validate-mir
#![warn(clippy::missing_const_for_fn)]
static BLOCK_FN_DEF: fn(usize) -> usize = {
//~v missing_const_for_fn
const fn foo(a: usize) -> usize {
a + 10
}
foo
};
struct X;
fn main() {}

View file

@ -0,0 +1,13 @@
//@compile-flags: -Z validate-mir
#![warn(clippy::missing_const_for_fn)]
static BLOCK_FN_DEF: fn(usize) -> usize = {
//~v missing_const_for_fn
fn foo(a: usize) -> usize {
a + 10
}
foo
};
struct X;
fn main() {}

View file

@ -0,0 +1,17 @@
error: this could be a `const fn`
--> tests/ui/crashes/missing_const_for_fn_14774.rs:6:5
|
LL | / fn foo(a: usize) -> usize {
LL | | a + 10
LL | | }
| |_____^
|
= note: `-D clippy::missing-const-for-fn` implied by `-D warnings`
= help: to override `-D warnings` add `#[allow(clippy::missing_const_for_fn)]`
help: make the function `const`
|
LL | const fn foo(a: usize) -> usize {
| +++++
error: aborting due to 1 previous error