mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-28 10:39:45 +00:00
Merge pull request #19657 from ChayimFriedman2/better-offset-of
feat: Better support `offset_of!()`
This commit is contained in:
commit
1c68d83569
9 changed files with 230 additions and 3 deletions
|
|
@ -839,6 +839,14 @@ impl NameRefClass {
|
|||
ast::AsmRegSpec(_) => {
|
||||
Some(NameRefClass::Definition(Definition::InlineAsmRegOrRegClass(()), None))
|
||||
},
|
||||
ast::OffsetOfExpr(_) => {
|
||||
let (def, subst) = sema.resolve_offset_of_field(name_ref)?;
|
||||
let def = match def {
|
||||
Either::Left(variant) => Definition::Variant(variant),
|
||||
Either::Right(field) => Definition::Field(field),
|
||||
};
|
||||
Some(NameRefClass::Definition(def, Some(subst)))
|
||||
},
|
||||
_ => None
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue