mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-27 18:26:19 +00:00
Fix LifetimeParam::lifetime_bounds invalid implement
Lifetime node example:
```
LIFETIME_PARAM@15..21
LIFETIME@15..17
LIFETIME_IDENT@15..17 "'a"
COLON@17..18 ":"
WHITESPACE@18..19 " "
TYPE_BOUND_LIST@19..21
TYPE_BOUND@19..21
LIFETIME@19..21
LIFETIME_IDENT@19..21 "'b"
```
This commit is contained in:
parent
1f4e5e82ff
commit
080f2b3f71
1 changed files with 6 additions and 7 deletions
|
|
@ -12,8 +12,8 @@ use rowan::{GreenNodeData, GreenTokenData};
|
||||||
use crate::{
|
use crate::{
|
||||||
NodeOrToken, SmolStr, SyntaxElement, SyntaxToken, T, TokenText,
|
NodeOrToken, SmolStr, SyntaxElement, SyntaxToken, T, TokenText,
|
||||||
ast::{
|
ast::{
|
||||||
self, AstNode, AstToken, HasAttrs, HasGenericArgs, HasGenericParams, HasName, SyntaxNode,
|
self, AstNode, AstToken, HasAttrs, HasGenericArgs, HasGenericParams, HasName,
|
||||||
support,
|
HasTypeBounds, SyntaxNode, support,
|
||||||
},
|
},
|
||||||
ted,
|
ted,
|
||||||
};
|
};
|
||||||
|
|
@ -912,11 +912,10 @@ impl ast::Visibility {
|
||||||
|
|
||||||
impl ast::LifetimeParam {
|
impl ast::LifetimeParam {
|
||||||
pub fn lifetime_bounds(&self) -> impl Iterator<Item = SyntaxToken> {
|
pub fn lifetime_bounds(&self) -> impl Iterator<Item = SyntaxToken> {
|
||||||
self.syntax()
|
self.type_bound_list()
|
||||||
.children_with_tokens()
|
.into_iter()
|
||||||
.filter_map(|it| it.into_token())
|
.flat_map(|it| it.bounds())
|
||||||
.skip_while(|x| x.kind() != T![:])
|
.filter_map(|it| it.lifetime()?.lifetime_ident_token())
|
||||||
.filter(|it| it.kind() == T![lifetime_ident])
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue