Skip to content

Commit 9dad25a

Browse files
committed
Show and render error lifetime args as '_
1 parent e0b1719 commit 9dad25a

File tree

5 files changed

+15
-21
lines changed

5 files changed

+15
-21
lines changed

src/tools/rust-analyzer/crates/hir-ty/src/display.rs

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1523,18 +1523,6 @@ fn hir_fmt_generic_arguments(
15231523
None => (parameters, &[][..]),
15241524
};
15251525
for generic_arg in lifetimes.iter().chain(ty_or_const) {
1526-
// FIXME: Remove this
1527-
// most of our lifetimes will be errors as we lack elision and inference
1528-
// so don't render them for now
1529-
if !cfg!(test)
1530-
&& matches!(
1531-
generic_arg.lifetime(Interner),
1532-
Some(l) if ***l.interned() == LifetimeData::Error
1533-
)
1534-
{
1535-
continue;
1536-
}
1537-
15381526
if !mem::take(&mut first) {
15391527
write!(f, ", ")?;
15401528
}
@@ -1872,7 +1860,13 @@ impl HirDisplay for LifetimeData {
18721860
LifetimeData::BoundVar(idx) => idx.hir_fmt(f),
18731861
LifetimeData::InferenceVar(_) => write!(f, "_"),
18741862
LifetimeData::Static => write!(f, "'static"),
1875-
LifetimeData::Error => write!(f, "'?"),
1863+
LifetimeData::Error => {
1864+
if cfg!(test) {
1865+
write!(f, "'?")
1866+
} else {
1867+
write!(f, "'_")
1868+
}
1869+
}
18761870
LifetimeData::Erased => write!(f, "'<erased>"),
18771871
LifetimeData::Phantom(void, _) => match *void {},
18781872
}

src/tools/rust-analyzer/crates/ide-assists/src/handlers/extract_function.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5649,7 +5649,7 @@ fn func<T: Debug>(i: Struct<'_, T>) {
56495649
fun_name(i);
56505650
}
56515651
5652-
fn $0fun_name(i: Struct<T>) {
5652+
fn $0fun_name(i: Struct<'_, T>) {
56535653
foo(i);
56545654
}
56555655
"#,

src/tools/rust-analyzer/crates/ide-completion/src/tests/predicate.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ struct Foo<'lt, T, const C: usize> where $0 {}
1919
en Enum Enum
2020
ma makro!(…) macro_rules! makro
2121
md module
22-
st Foo<…> Foo<{unknown}, _>
22+
st Foo<…> Foo<'_, {unknown}, _>
2323
st Record Record
2424
st Tuple Tuple
2525
st Unit Unit
@@ -92,7 +92,7 @@ struct Foo<'lt, T, const C: usize> where for<'a> $0 {}
9292
en Enum Enum
9393
ma makro!(…) macro_rules! makro
9494
md module
95-
st Foo<…> Foo<{unknown}, _>
95+
st Foo<…> Foo<'_, {unknown}, _>
9696
st Record Record
9797
st Tuple Tuple
9898
st Unit Unit

src/tools/rust-analyzer/crates/ide-completion/src/tests/type_pos.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ struct Foo<'lt, T, const C: usize> {
2020
en Enum Enum
2121
ma makro!(…) macro_rules! makro
2222
md module
23-
sp Self Foo<{unknown}, _>
24-
st Foo<…> Foo<{unknown}, _>
23+
sp Self Foo<'_, {unknown}, _>
24+
st Foo<…> Foo<'_, {unknown}, _>
2525
st Record Record
2626
st Tuple Tuple
2727
st Unit Unit
@@ -45,8 +45,8 @@ struct Foo<'lt, T, const C: usize>(f$0);
4545
en Enum Enum
4646
ma makro!(…) macro_rules! makro
4747
md module
48-
sp Self Foo<{unknown}, _>
49-
st Foo<…> Foo<{unknown}, _>
48+
sp Self Foo<'_, {unknown}, _>
49+
st Foo<…> Foo<'_, {unknown}, _>
5050
st Record Record
5151
st Tuple Tuple
5252
st Unit Unit

src/tools/rust-analyzer/crates/ide/src/inlay_hints/bind_pat.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ fn f<'a>() {
342342
let x = S::<'static>;
343343
//^ S<'static>
344344
let y = S::<'_>;
345-
//^ S
345+
//^ S<'_>
346346
let z = S::<'a>;
347347
//^ S<'a>
348348

0 commit comments

Comments
 (0)