Resolve offset_of!() in IDE

This commit is contained in:
Chayim Refael Friedman 2025-04-22 00:33:06 +03:00
parent db6db2aacc
commit 8d824c7828
5 changed files with 169 additions and 3 deletions

View file

@ -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
}
}