Suggest 'static when in static/const items.
This commit is contained in:
parent
af8739b96e
commit
f71ad2f992
@ -317,6 +317,30 @@ fn get_lifetime_args_suggestions_from_param_names(
|
||||
let hir::ParamName::Plain(name) = p.name else { return None };
|
||||
Some(name.to_string())
|
||||
}));
|
||||
// Suggest `'static` when in const/static item-like.
|
||||
if let hir::Node::Item(hir::Item {
|
||||
kind: hir::ItemKind::Static { .. } | hir::ItemKind::Const { .. },
|
||||
..
|
||||
})
|
||||
| hir::Node::TraitItem(hir::TraitItem {
|
||||
kind: hir::TraitItemKind::Const { .. },
|
||||
..
|
||||
})
|
||||
| hir::Node::ImplItem(hir::ImplItem {
|
||||
kind: hir::ImplItemKind::Const { .. },
|
||||
..
|
||||
})
|
||||
| hir::Node::ForeignItem(hir::ForeignItem {
|
||||
kind: hir::ForeignItemKind::Static { .. },
|
||||
..
|
||||
})
|
||||
| hir::Node::AnonConst(..) = node
|
||||
{
|
||||
ret.extend(
|
||||
std::iter::repeat("'static".to_owned())
|
||||
.take(num_params_to_take.saturating_sub(ret.len())),
|
||||
);
|
||||
}
|
||||
if ret.len() >= num_params_to_take {
|
||||
return ret[..num_params_to_take].join(", ");
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ LL | type Assoc<'a> where Self: 'a;
|
||||
| ^^^^^ --
|
||||
help: add missing lifetime argument
|
||||
|
|
||||
LL | fn g(&self) -> Self::Assoc<'_>;
|
||||
LL | fn g(&self) -> Self::Assoc<'a>;
|
||||
| ~~~~~~~~~
|
||||
|
||||
error[E0107]: missing generics for associated type `Trait::Assoc`
|
||||
@ -27,7 +27,7 @@ LL | type Assoc<'a> where Self: 'a;
|
||||
| ^^^^^ --
|
||||
help: add missing lifetime argument
|
||||
|
|
||||
LL | fn g(&self) -> Self::Assoc<'_> {
|
||||
LL | fn g(&self) -> Self::Assoc<'a> {
|
||||
| ~~~~~~~~~
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
@ -11,7 +11,7 @@ LL | type Item<'a>;
|
||||
| ^^^^ --
|
||||
help: add missing lifetime argument
|
||||
|
|
||||
LL | fn next(&mut self) -> Option<Self::Item<'_>>;
|
||||
LL | fn next(&mut self) -> Option<Self::Item<'a>>;
|
||||
| ~~~~~~~~
|
||||
|
||||
error: aborting due to previous error
|
||||
|
@ -171,8 +171,8 @@ LL | pub union Qux<'t, 'k, I> {
|
||||
| ^^^ -- --
|
||||
help: add missing lifetime argument
|
||||
|
|
||||
LL | static e: RefCell<HashMap<i32, Vec<Vec<Qux<'static, '_, i32>>>>> = RefCell::new(HashMap::new());
|
||||
| ++++
|
||||
LL | static e: RefCell<HashMap<i32, Vec<Vec<Qux<'static, 'static, i32>>>>> = RefCell::new(HashMap::new());
|
||||
| +++++++++
|
||||
|
||||
error[E0107]: this union takes 2 lifetime arguments but 1 lifetime argument was supplied
|
||||
--> $DIR/missing-lifetime-specifier.rs:43:44
|
||||
@ -243,8 +243,8 @@ LL | pub union Qux<'t, 'k, I> {
|
||||
| ^^^ -- --
|
||||
help: add missing lifetime argument
|
||||
|
|
||||
LL | static e: RefCell<HashMap<i32, Vec<Vec<Qux<'static, '_, i32>>>>> = RefCell::new(HashMap::new());
|
||||
| ++++
|
||||
LL | static e: RefCell<HashMap<i32, Vec<Vec<Qux<'static, 'static, i32>>>>> = RefCell::new(HashMap::new());
|
||||
| +++++++++
|
||||
|
||||
error[E0107]: this trait takes 2 lifetime arguments but 1 lifetime argument was supplied
|
||||
--> $DIR/missing-lifetime-specifier.rs:51:45
|
||||
@ -261,8 +261,8 @@ LL | trait Tar<'t, 'k, I> {}
|
||||
| ^^^ -- --
|
||||
help: add missing lifetime argument
|
||||
|
|
||||
LL | static f: RefCell<HashMap<i32, Vec<Vec<&Tar<'static, '_, i32>>>>> = RefCell::new(HashMap::new());
|
||||
| ++++
|
||||
LL | static f: RefCell<HashMap<i32, Vec<Vec<&Tar<'static, 'static, i32>>>>> = RefCell::new(HashMap::new());
|
||||
| +++++++++
|
||||
|
||||
error[E0106]: missing lifetime specifier
|
||||
--> $DIR/missing-lifetime-specifier.rs:51:44
|
||||
@ -360,8 +360,8 @@ LL | trait Tar<'t, 'k, I> {}
|
||||
| ^^^ -- --
|
||||
help: add missing lifetime argument
|
||||
|
|
||||
LL | static f: RefCell<HashMap<i32, Vec<Vec<&Tar<'static, '_, i32>>>>> = RefCell::new(HashMap::new());
|
||||
| ++++
|
||||
LL | static f: RefCell<HashMap<i32, Vec<Vec<&Tar<'static, 'static, i32>>>>> = RefCell::new(HashMap::new());
|
||||
| +++++++++
|
||||
|
||||
error: aborting due to 24 previous errors
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user