Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit 7e74a5e

Browse files
committed
elided_named_lifetimes: add tests
1 parent 3175fac commit 7e74a5e

File tree

6 files changed

+171
-0
lines changed

6 files changed

+171
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#![deny(elided_named_lifetimes)]
2+
3+
struct Foo;
4+
5+
impl Foo {
6+
pub fn get_mut(&'static self, x: &mut u8) -> &mut u8 {
7+
//~^ ERROR elided lifetime has a name
8+
unsafe { &mut *(x as *mut _) }
9+
}
10+
}
11+
12+
fn main() {}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
error: elided lifetime has a name
2+
--> $DIR/example-from-issue48686.rs:6:50
3+
|
4+
LL | pub fn get_mut(&'static self, x: &mut u8) -> &mut u8 {
5+
| ^ this elided lifetime gets resolved as `'static`
6+
|
7+
note: the lint level is defined here
8+
--> $DIR/example-from-issue48686.rs:1:9
9+
|
10+
LL | #![deny(elided_named_lifetimes)]
11+
| ^^^^^^^^^^^^^^^^^^^^^^
12+
13+
error: aborting due to 1 previous error
14+
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
#![deny(elided_named_lifetimes)]
2+
3+
fn ampersand<'a>(x: &'a u8) -> &u8 {
4+
//~^ ERROR elided lifetime has a name
5+
x
6+
}
7+
8+
struct Brackets<'a>(&'a u8);
9+
10+
fn brackets<'a>(x: &'a u8) -> Brackets {
11+
//~^ ERROR elided lifetime has a name
12+
Brackets(x)
13+
}
14+
15+
struct Comma<'a, T>(&'a T);
16+
17+
fn comma<'a>(x: &'a u8) -> Comma<u8> {
18+
//~^ ERROR elided lifetime has a name
19+
Comma(x)
20+
}
21+
22+
fn underscore<'a>(x: &'a u8) -> &'_ u8 {
23+
//~^ ERROR elided lifetime has a name
24+
x
25+
}
26+
27+
fn main() {}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
error: elided lifetime has a name
2+
--> $DIR/missing-lifetime-kind.rs:3:32
3+
|
4+
LL | fn ampersand<'a>(x: &'a u8) -> &u8 {
5+
| -- ^ this elided lifetime gets resolved as `'a`
6+
| |
7+
| lifetime `'a` declared here
8+
|
9+
note: the lint level is defined here
10+
--> $DIR/missing-lifetime-kind.rs:1:9
11+
|
12+
LL | #![deny(elided_named_lifetimes)]
13+
| ^^^^^^^^^^^^^^^^^^^^^^
14+
15+
error: elided lifetime has a name
16+
--> $DIR/missing-lifetime-kind.rs:10:31
17+
|
18+
LL | fn brackets<'a>(x: &'a u8) -> Brackets {
19+
| -- ^^^^^^^^ this elided lifetime gets resolved as `'a`
20+
| |
21+
| lifetime `'a` declared here
22+
23+
error: elided lifetime has a name
24+
--> $DIR/missing-lifetime-kind.rs:17:33
25+
|
26+
LL | fn comma<'a>(x: &'a u8) -> Comma<u8> {
27+
| -- ^ this elided lifetime gets resolved as `'a`
28+
| |
29+
| lifetime `'a` declared here
30+
31+
error: elided lifetime has a name
32+
--> $DIR/missing-lifetime-kind.rs:22:34
33+
|
34+
LL | fn underscore<'a>(x: &'a u8) -> &'_ u8 {
35+
| -- ^^ this elided lifetime gets resolved as `'a`
36+
| |
37+
| lifetime `'a` declared here
38+
39+
error: aborting due to 4 previous errors
40+
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#![deny(elided_named_lifetimes)]
2+
3+
use std::borrow::Cow;
4+
5+
const A: &[u8] = &[];
6+
static B: &str = "hello";
7+
8+
trait Trait {
9+
const C: &u8 = &0;
10+
}
11+
12+
impl Trait for () {
13+
const C: &u8 = &1;
14+
}
15+
16+
fn ampersand(x: &'static u8) -> &u8 {
17+
//~^ ERROR elided lifetime has a name
18+
x
19+
}
20+
21+
struct Brackets<'a>(&'a u8);
22+
23+
fn brackets(x: &'static u8) -> Brackets {
24+
//~^ ERROR elided lifetime has a name
25+
Brackets(x)
26+
}
27+
28+
struct Comma<'a, T>(&'a T);
29+
30+
fn comma(x: &'static u8) -> Comma<u8> {
31+
//~^ ERROR elided lifetime has a name
32+
Comma(x)
33+
}
34+
35+
fn underscore(x: &'static u8) -> &'_ u8 {
36+
//~^ ERROR elided lifetime has a name
37+
x
38+
}
39+
40+
const NESTED: &Vec<&Box<Cow<str>>> = &vec![];
41+
42+
fn main() {
43+
const HELLO: &str = "Hello";
44+
static WORLD: &str = "world";
45+
println!("{HELLO}, {WORLD}!")
46+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
error: elided lifetime has a name
2+
--> $DIR/static.rs:16:33
3+
|
4+
LL | fn ampersand(x: &'static u8) -> &u8 {
5+
| ^ this elided lifetime gets resolved as `'static`
6+
|
7+
note: the lint level is defined here
8+
--> $DIR/static.rs:1:9
9+
|
10+
LL | #![deny(elided_named_lifetimes)]
11+
| ^^^^^^^^^^^^^^^^^^^^^^
12+
13+
error: elided lifetime has a name
14+
--> $DIR/static.rs:23:32
15+
|
16+
LL | fn brackets(x: &'static u8) -> Brackets {
17+
| ^^^^^^^^ this elided lifetime gets resolved as `'static`
18+
19+
error: elided lifetime has a name
20+
--> $DIR/static.rs:30:34
21+
|
22+
LL | fn comma(x: &'static u8) -> Comma<u8> {
23+
| ^ this elided lifetime gets resolved as `'static`
24+
25+
error: elided lifetime has a name
26+
--> $DIR/static.rs:35:35
27+
|
28+
LL | fn underscore(x: &'static u8) -> &'_ u8 {
29+
| ^^ this elided lifetime gets resolved as `'static`
30+
31+
error: aborting due to 4 previous errors
32+

0 commit comments

Comments
 (0)