mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-30 13:51:31 +00:00
resolve range patterns to the their struct types
This commit is contained in:
parent
2f6923b844
commit
271f64f94d
4 changed files with 141 additions and 8 deletions
|
@ -318,7 +318,8 @@ impl IdentClass {
|
|||
.map(IdentClass::NameClass)
|
||||
.or_else(|| NameRefClass::classify_lifetime(sema, &lifetime).map(IdentClass::NameRefClass))
|
||||
},
|
||||
ast::RangeExpr(range_expr) => OperatorClass::classify_range(sema, &range_expr).map(IdentClass::Operator),
|
||||
ast::RangePat(range_pat) => OperatorClass::classify_range_pat(sema, &range_pat).map(IdentClass::Operator),
|
||||
ast::RangeExpr(range_expr) => OperatorClass::classify_range_expr(sema, &range_expr).map(IdentClass::Operator),
|
||||
ast::AwaitExpr(await_expr) => OperatorClass::classify_await(sema, &await_expr).map(IdentClass::Operator),
|
||||
ast::BinExpr(bin_expr) => OperatorClass::classify_bin(sema, &bin_expr).map(IdentClass::Operator),
|
||||
ast::IndexExpr(index_expr) => OperatorClass::classify_index(sema, &index_expr).map(IdentClass::Operator),
|
||||
|
@ -558,7 +559,14 @@ pub enum OperatorClass {
|
|||
}
|
||||
|
||||
impl OperatorClass {
|
||||
pub fn classify_range(
|
||||
pub fn classify_range_pat(
|
||||
sema: &Semantics<'_, RootDatabase>,
|
||||
range_pat: &ast::RangePat,
|
||||
) -> Option<OperatorClass> {
|
||||
sema.resolve_range_pat(range_pat).map(OperatorClass::Range)
|
||||
}
|
||||
|
||||
pub fn classify_range_expr(
|
||||
sema: &Semantics<'_, RootDatabase>,
|
||||
range_expr: &ast::RangeExpr,
|
||||
) -> Option<OperatorClass> {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue