Skip to content

Commit

Permalink
Rollup merge of rust-lang#96730 - JohnTitor:unused-lifetimes-tests, r…
Browse files Browse the repository at this point in the history
…=compiler-errors

Add a regression test for rust-lang#64173 and rust-lang#66152

Closes rust-lang#64173
Closes rust-lang#66152

Mixed the code as the root cause seems the same.
  • Loading branch information
compiler-errors authored May 6, 2022
2 parents 0631930 + cb131d2 commit 3cda519
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 0 deletions.
19 changes: 19 additions & 0 deletions src/test/ui/lifetimes/issue-64173-unused-lifetimes.rs
Original file line number Diff line number Diff line change
@@ -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 changes: 35 additions & 0 deletions src/test/ui/lifetimes/issue-64173-unused-lifetimes.stderr
Original file line number Diff line number Diff line change
@@ -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`.

0 comments on commit 3cda519

Please sign in to comment.