add test for treating ExprKind::ConstParam as temp

This commit is contained in:
b-naber 2022-03-23 08:54:07 +01:00
parent 5fcccd1739
commit 1b5fbe2076
2 changed files with 42 additions and 0 deletions

View File

@ -0,0 +1,20 @@
// build-pass
#![feature(adt_const_params)]
#![allow(incomplete_features)]
#[derive(PartialEq, Eq)]
struct Yikes;
impl Yikes {
fn mut_self(&mut self) {}
}
fn foo<const YIKES: Yikes>() {
YIKES.mut_self()
//~^ WARNING taking a mutable reference
}
fn main() {
foo::<{ Yikes }>()
}

View File

@ -0,0 +1,22 @@
warning: taking a mutable reference to a `const` item
--> $DIR/thir-constparam-temp.rs:14:5
|
LL | YIKES.mut_self()
| ^^^^^^^^^^^^^^^^
|
= note: `#[warn(const_item_mutation)]` on by default
= note: each usage of a `const` item creates a new temporary
= note: the mutable reference will refer to this temporary, not the original `const` item
note: mutable reference created due to call to this method
--> $DIR/thir-constparam-temp.rs:10:5
|
LL | fn mut_self(&mut self) {}
| ^^^^^^^^^^^^^^^^^^^^^^
note: `const` item defined here
--> $DIR/thir-constparam-temp.rs:13:14
|
LL | fn foo<const YIKES: Yikes>() {
| ^^^^^
warning: 1 warning emitted