8059: Move doc-comment highlight injection from AST to HIR r=matklad,jonas-schievink a=Veykril

Fixes #5016

Co-authored-by: Lukas Wirth <lukastw97@gmail.com>
This commit is contained in:
bors[bot] 2021-03-17 11:13:54 +00:00 committed by GitHub
commit 0fbfab3b45
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 206 additions and 28 deletions

View file

@ -11,8 +11,8 @@ use hir_ty::db::HirDatabase;
use syntax::ast;
use crate::{
Adt, Const, ConstParam, Enum, Field, Function, GenericParam, LifetimeParam, MacroDef, Module,
ModuleDef, Static, Struct, Trait, TypeAlias, TypeParam, Union, Variant,
Adt, Const, ConstParam, Enum, Field, Function, GenericParam, Impl, LifetimeParam, MacroDef,
Module, ModuleDef, Static, Struct, Trait, TypeAlias, TypeParam, Union, Variant,
};
pub trait HasAttrs {
@ -64,6 +64,7 @@ impl_has_attrs![
(Adt, AdtId),
(Module, ModuleId),
(GenericParam, GenericParamId),
(Impl, ImplId),
];
macro_rules! impl_has_attrs_enum {

View file

@ -89,7 +89,7 @@ pub use crate::{
pub use {
hir_def::{
adt::StructKind,
attr::{Attrs, Documentation},
attr::{Attr, Attrs, Documentation},
body::scope::ExprScopes,
find_path::PrefixKind,
import_map,

View file

@ -752,6 +752,7 @@ macro_rules! to_def_impls {
to_def_impls![
(crate::Module, ast::Module, module_to_def),
(crate::Module, ast::SourceFile, source_file_to_def),
(crate::Struct, ast::Struct, struct_to_def),
(crate::Enum, ast::Enum, enum_to_def),
(crate::Union, ast::Union, union_to_def),

View file

@ -71,6 +71,12 @@ impl SourceToDefCtx<'_, '_> {
Some(def_map.module_id(child_id))
}
pub(super) fn source_file_to_def(&mut self, src: InFile<ast::SourceFile>) -> Option<ModuleId> {
let _p = profile::span("source_file_to_def");
let file_id = src.file_id.original_file(self.db.upcast());
self.file_to_def(file_id).get(0).copied()
}
pub(super) fn trait_to_def(&mut self, src: InFile<ast::Trait>) -> Option<TraitId> {
self.to_def(src, keys::TRAIT)
}