Rollup merge of #96730 - JohnTitor:unused-lifetimes-tests, r=compiler-errors
Add a regression test for #64173 and #66152 Closes #64173 Closes #66152 Mixed the code as the root cause seems the same.
This commit is contained in:
commit
b78179e1f7
19
src/test/ui/lifetimes/issue-64173-unused-lifetimes.rs
Normal file
19
src/test/ui/lifetimes/issue-64173-unused-lifetimes.rs
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
use std::mem::size_of;
|
||||||
|
|
||||||
|
struct Foo<'s> { //~ ERROR: parameter `'s` is never used
|
||||||
|
array: [(); size_of::<&Self>()],
|
||||||
|
//~^ ERROR: generic `Self` types are currently not permitted in anonymous constants
|
||||||
|
}
|
||||||
|
|
||||||
|
// The below is taken from https://github.com/rust-lang/rust/issues/66152#issuecomment-550275017
|
||||||
|
// as the root cause seems the same.
|
||||||
|
|
||||||
|
const fn foo<T>() -> usize {
|
||||||
|
0
|
||||||
|
}
|
||||||
|
|
||||||
|
struct Bar<'a> { //~ ERROR: parameter `'a` is never used
|
||||||
|
beta: [(); foo::<&'a ()>()], //~ ERROR: a non-static lifetime is not allowed in a `const`
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {}
|
35
src/test/ui/lifetimes/issue-64173-unused-lifetimes.stderr
Normal file
35
src/test/ui/lifetimes/issue-64173-unused-lifetimes.stderr
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
error[E0658]: a non-static lifetime is not allowed in a `const`
|
||||||
|
--> $DIR/issue-64173-unused-lifetimes.rs:16:23
|
||||||
|
|
|
||||||
|
LL | beta: [(); foo::<&'a ()>()],
|
||||||
|
| ^^
|
||||||
|
|
|
||||||
|
= note: see issue #76560 <https://github.com/rust-lang/rust/issues/76560> for more information
|
||||||
|
= help: add `#![feature(generic_const_exprs)]` to the crate attributes to enable
|
||||||
|
|
||||||
|
error: generic `Self` types are currently not permitted in anonymous constants
|
||||||
|
--> $DIR/issue-64173-unused-lifetimes.rs:4:28
|
||||||
|
|
|
||||||
|
LL | array: [(); size_of::<&Self>()],
|
||||||
|
| ^^^^
|
||||||
|
|
||||||
|
error[E0392]: parameter `'s` is never used
|
||||||
|
--> $DIR/issue-64173-unused-lifetimes.rs:3:12
|
||||||
|
|
|
||||||
|
LL | struct Foo<'s> {
|
||||||
|
| ^^ unused parameter
|
||||||
|
|
|
||||||
|
= help: consider removing `'s`, referring to it in a field, or using a marker such as `PhantomData`
|
||||||
|
|
||||||
|
error[E0392]: parameter `'a` is never used
|
||||||
|
--> $DIR/issue-64173-unused-lifetimes.rs:15:12
|
||||||
|
|
|
||||||
|
LL | struct Bar<'a> {
|
||||||
|
| ^^ unused parameter
|
||||||
|
|
|
||||||
|
= help: consider removing `'a`, referring to it in a field, or using a marker such as `PhantomData`
|
||||||
|
|
||||||
|
error: aborting due to 4 previous errors
|
||||||
|
|
||||||
|
Some errors have detailed explanations: E0392, E0658.
|
||||||
|
For more information about an error, try `rustc --explain E0392`.
|
Loading…
Reference in New Issue
Block a user