mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-28 12:54:58 +00:00
Add Definition kind for asm register operand
This commit is contained in:
parent
164b15bc62
commit
a600e1df73
12 changed files with 59 additions and 35 deletions
|
@ -51,6 +51,7 @@ pub enum Definition {
|
|||
ToolModule(ToolModule),
|
||||
ExternCrateDecl(ExternCrateDecl),
|
||||
InlineAsmRegOrRegClass(()),
|
||||
InlineAsmRegOperand(()),
|
||||
}
|
||||
|
||||
impl Definition {
|
||||
|
@ -89,7 +90,8 @@ impl Definition {
|
|||
| Definition::BuiltinLifetime(_)
|
||||
| Definition::TupleField(_)
|
||||
| Definition::ToolModule(_)
|
||||
| Definition::InlineAsmRegOrRegClass(_) => return None,
|
||||
| Definition::InlineAsmRegOrRegClass(_)
|
||||
| Definition::InlineAsmRegOperand(_) => return None,
|
||||
};
|
||||
Some(module)
|
||||
}
|
||||
|
@ -124,7 +126,8 @@ impl Definition {
|
|||
| Definition::GenericParam(_)
|
||||
| Definition::Label(_)
|
||||
| Definition::DeriveHelper(_)
|
||||
| Definition::InlineAsmRegOrRegClass(_) => return None,
|
||||
| Definition::InlineAsmRegOrRegClass(_)
|
||||
| Definition::InlineAsmRegOperand(_) => return None,
|
||||
};
|
||||
Some(vis)
|
||||
}
|
||||
|
@ -153,7 +156,9 @@ impl Definition {
|
|||
Definition::ToolModule(_) => return None, // FIXME
|
||||
Definition::DeriveHelper(it) => it.name(db),
|
||||
Definition::ExternCrateDecl(it) => return it.alias_or_name(db),
|
||||
Definition::InlineAsmRegOrRegClass(_) => return None, // FIXME
|
||||
Definition::InlineAsmRegOrRegClass(_) | Definition::InlineAsmRegOperand(_) => {
|
||||
return None
|
||||
} // FIXME
|
||||
};
|
||||
Some(name)
|
||||
}
|
||||
|
@ -216,7 +221,7 @@ impl Definition {
|
|||
Definition::ToolModule(_) => None,
|
||||
Definition::DeriveHelper(_) => None,
|
||||
Definition::TupleField(_) => None,
|
||||
Definition::InlineAsmRegOrRegClass(_) => None,
|
||||
Definition::InlineAsmRegOrRegClass(_) | Definition::InlineAsmRegOperand(_) => None,
|
||||
};
|
||||
|
||||
docs.or_else(|| {
|
||||
|
@ -275,6 +280,7 @@ impl Definition {
|
|||
}
|
||||
// FIXME
|
||||
Definition::InlineAsmRegOrRegClass(_) => "inline_asm_reg_or_reg_class".to_owned(),
|
||||
Definition::InlineAsmRegOperand(_) => "inline_asm_reg_operand".to_owned(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -706,6 +712,9 @@ impl NameRefClass {
|
|||
NameRefClass::ExternCrateShorthand { krate, decl: extern_crate }
|
||||
})
|
||||
},
|
||||
ast::AsmRegSpec(_) => {
|
||||
Some(NameRefClass::Definition(Definition::InlineAsmRegOrRegClass(())))
|
||||
},
|
||||
_ => None
|
||||
}
|
||||
}
|
||||
|
|
|
@ -207,6 +207,8 @@ impl Definition {
|
|||
| Definition::ToolModule(_)
|
||||
| Definition::TupleField(_)
|
||||
| Definition::InlineAsmRegOrRegClass(_) => return None,
|
||||
// FIXME:
|
||||
Definition::InlineAsmRegOperand(_) => return None,
|
||||
// FIXME: This should be doable in theory
|
||||
Definition::DeriveHelper(_) => return None,
|
||||
};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue