mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-28 12:54:58 +00:00
Impl HasAttrs for GenericParam
This commit is contained in:
parent
b4a7caedb0
commit
ec448ca4b3
5 changed files with 78 additions and 11 deletions
|
@ -3,15 +3,15 @@ use hir_def::{
|
|||
attr::{Attrs, Documentation},
|
||||
path::ModPath,
|
||||
resolver::HasResolver,
|
||||
AttrDefId, ModuleDefId,
|
||||
AttrDefId, GenericParamId, ModuleDefId,
|
||||
};
|
||||
use hir_expand::hygiene::Hygiene;
|
||||
use hir_ty::db::HirDatabase;
|
||||
use syntax::ast;
|
||||
|
||||
use crate::{
|
||||
Adt, Const, Enum, Field, Function, MacroDef, Module, ModuleDef, Static, Struct, Trait,
|
||||
TypeAlias, Union, Variant,
|
||||
Adt, Const, Enum, Field, Function, GenericParam, MacroDef, Module, ModuleDef, Static, Struct,
|
||||
Trait, TypeAlias, Union, Variant,
|
||||
};
|
||||
|
||||
pub trait HasAttrs {
|
||||
|
@ -62,6 +62,7 @@ impl_has_attrs![
|
|||
(Function, FunctionId),
|
||||
(Adt, AdtId),
|
||||
(Module, ModuleId),
|
||||
(GenericParam, GenericParamId),
|
||||
];
|
||||
|
||||
macro_rules! impl_has_attrs_adt {
|
||||
|
@ -99,6 +100,12 @@ fn resolve_doc_path(
|
|||
AttrDefId::TraitId(it) => it.resolver(db.upcast()),
|
||||
AttrDefId::TypeAliasId(it) => it.resolver(db.upcast()),
|
||||
AttrDefId::ImplId(it) => it.resolver(db.upcast()),
|
||||
AttrDefId::GenericParamId(it) => match it {
|
||||
GenericParamId::TypeParamId(it) => it.parent,
|
||||
GenericParamId::LifetimeParamId(it) => it.parent,
|
||||
GenericParamId::ConstParamId(it) => it.parent,
|
||||
}
|
||||
.resolver(db.upcast()),
|
||||
AttrDefId::MacroDefId(_) => return None,
|
||||
};
|
||||
let path = ast::Path::parse(link).ok()?;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue