Skip to content

Commit cb131d2

Browse files
committed
Add a regression test for rust-lang#64173 and rust-lang#66152
1 parent 3d18f94 commit cb131d2

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
use std::mem::size_of;
2+
3+
struct Foo<'s> { //~ ERROR: parameter `'s` is never used
4+
array: [(); size_of::<&Self>()],
5+
//~^ ERROR: generic `Self` types are currently not permitted in anonymous constants
6+
}
7+
8+
// The below is taken from https://github.com/rust-lang/rust/issues/66152#issuecomment-550275017
9+
// as the root cause seems the same.
10+
11+
const fn foo<T>() -> usize {
12+
0
13+
}
14+
15+
struct Bar<'a> { //~ ERROR: parameter `'a` is never used
16+
beta: [(); foo::<&'a ()>()], //~ ERROR: a non-static lifetime is not allowed in a `const`
17+
}
18+
19+
fn main() {}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
error[E0658]: a non-static lifetime is not allowed in a `const`
2+
--> $DIR/issue-64173-unused-lifetimes.rs:16:23
3+
|
4+
LL | beta: [(); foo::<&'a ()>()],
5+
| ^^
6+
|
7+
= note: see issue #76560 <https://github.com/rust-lang/rust/issues/76560> for more information
8+
= help: add `#![feature(generic_const_exprs)]` to the crate attributes to enable
9+
10+
error: generic `Self` types are currently not permitted in anonymous constants
11+
--> $DIR/issue-64173-unused-lifetimes.rs:4:28
12+
|
13+
LL | array: [(); size_of::<&Self>()],
14+
| ^^^^
15+
16+
error[E0392]: parameter `'s` is never used
17+
--> $DIR/issue-64173-unused-lifetimes.rs:3:12
18+
|
19+
LL | struct Foo<'s> {
20+
| ^^ unused parameter
21+
|
22+
= help: consider removing `'s`, referring to it in a field, or using a marker such as `PhantomData`
23+
24+
error[E0392]: parameter `'a` is never used
25+
--> $DIR/issue-64173-unused-lifetimes.rs:15:12
26+
|
27+
LL | struct Bar<'a> {
28+
| ^^ unused parameter
29+
|
30+
= help: consider removing `'a`, referring to it in a field, or using a marker such as `PhantomData`
31+
32+
error: aborting due to 4 previous errors
33+
34+
Some errors have detailed explanations: E0392, E0658.
35+
For more information about an error, try `rustc --explain E0392`.

0 commit comments

Comments
 (0)