Simplify
This commit is contained in:
parent
539b0c2582
commit
22b2c2fdf7
@ -3024,7 +3024,7 @@ impl Callable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// For IDE only
|
/// For IDE only
|
||||||
#[derive(Debug, PartialEq, Eq, Hash)]
|
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
|
||||||
pub enum ScopeDef {
|
pub enum ScopeDef {
|
||||||
ModuleDef(ModuleDef),
|
ModuleDef(ModuleDef),
|
||||||
MacroDef(MacroDef),
|
MacroDef(MacroDef),
|
||||||
|
@ -84,7 +84,7 @@ impl Completions {
|
|||||||
&mut self,
|
&mut self,
|
||||||
ctx: &CompletionContext,
|
ctx: &CompletionContext,
|
||||||
local_name: hir::Name,
|
local_name: hir::Name,
|
||||||
resolution: &hir::ScopeDef,
|
resolution: hir::ScopeDef,
|
||||||
) {
|
) {
|
||||||
if ctx.is_scope_def_hidden(resolution) {
|
if ctx.is_scope_def_hidden(resolution) {
|
||||||
cov_mark::hit!(qualified_path_doc_hidden);
|
cov_mark::hit!(qualified_path_doc_hidden);
|
||||||
|
@ -35,7 +35,7 @@ pub(crate) fn complete_lifetime(acc: &mut Completions, ctx: &CompletionContext)
|
|||||||
ctx.scope.process_all_names(&mut |name, res| {
|
ctx.scope.process_all_names(&mut |name, res| {
|
||||||
if let ScopeDef::GenericParam(hir::GenericParam::LifetimeParam(_)) = res {
|
if let ScopeDef::GenericParam(hir::GenericParam::LifetimeParam(_)) = res {
|
||||||
if param_lifetime != Some(&*name.to_smol_str()) {
|
if param_lifetime != Some(&*name.to_smol_str()) {
|
||||||
acc.add_resolution(ctx, name, &res);
|
acc.add_resolution(ctx, name, res);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -51,7 +51,7 @@ pub(crate) fn complete_label(acc: &mut Completions, ctx: &CompletionContext) {
|
|||||||
}
|
}
|
||||||
ctx.scope.process_all_names(&mut |name, res| {
|
ctx.scope.process_all_names(&mut |name, res| {
|
||||||
if let ScopeDef::Label(_) = res {
|
if let ScopeDef::Label(_) = res {
|
||||||
acc.add_resolution(ctx, name, &res);
|
acc.add_resolution(ctx, name, res);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -59,7 +59,7 @@ pub(crate) fn complete_pattern(acc: &mut Completions, ctx: &CompletionContext) {
|
|||||||
_ => false,
|
_ => false,
|
||||||
};
|
};
|
||||||
if add_resolution {
|
if add_resolution {
|
||||||
acc.add_resolution(ctx, name, &res);
|
acc.add_resolution(ctx, name, res);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -44,7 +44,7 @@ pub(crate) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let ScopeDef::ModuleDef(hir::ModuleDef::Module(_)) = def {
|
if let ScopeDef::ModuleDef(hir::ModuleDef::Module(_)) = def {
|
||||||
acc.add_resolution(ctx, name, &def);
|
acc.add_resolution(ctx, name, def);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -64,7 +64,7 @@ pub(crate) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon
|
|||||||
.next()
|
.next()
|
||||||
{
|
{
|
||||||
if let Some(name) = next.name(ctx.db) {
|
if let Some(name) = next.name(ctx.db) {
|
||||||
acc.add_resolution(ctx, name, &ScopeDef::ModuleDef(next.into()));
|
acc.add_resolution(ctx, name, ScopeDef::ModuleDef(next.into()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -80,7 +80,7 @@ pub(crate) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon
|
|||||||
_ => false,
|
_ => false,
|
||||||
};
|
};
|
||||||
if add_resolution {
|
if add_resolution {
|
||||||
acc.add_resolution(ctx, name, &def);
|
acc.add_resolution(ctx, name, def);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -147,14 +147,12 @@ pub(crate) fn complete_qualified_path(acc: &mut Completions, ctx: &CompletionCon
|
|||||||
};
|
};
|
||||||
|
|
||||||
if add_resolution {
|
if add_resolution {
|
||||||
acc.add_resolution(ctx, name, &def);
|
acc.add_resolution(ctx, name, def);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
hir::PathResolution::Def(
|
hir::PathResolution::Def(
|
||||||
def
|
def @ (hir::ModuleDef::Adt(_)
|
||||||
@
|
|
||||||
(hir::ModuleDef::Adt(_)
|
|
||||||
| hir::ModuleDef::TypeAlias(_)
|
| hir::ModuleDef::TypeAlias(_)
|
||||||
| hir::ModuleDef::BuiltinType(_)),
|
| hir::ModuleDef::BuiltinType(_)),
|
||||||
) => {
|
) => {
|
||||||
|
@ -24,7 +24,7 @@ pub(crate) fn complete_unqualified_path(acc: &mut Completions, ctx: &CompletionC
|
|||||||
cov_mark::hit!(unqualified_path_only_modules_in_import);
|
cov_mark::hit!(unqualified_path_only_modules_in_import);
|
||||||
ctx.process_all_names(&mut |name, res| {
|
ctx.process_all_names(&mut |name, res| {
|
||||||
if let ScopeDef::ModuleDef(hir::ModuleDef::Module(_)) = res {
|
if let ScopeDef::ModuleDef(hir::ModuleDef::Module(_)) = res {
|
||||||
acc.add_resolution(ctx, name, &res);
|
acc.add_resolution(ctx, name, res);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -43,7 +43,7 @@ pub(crate) fn complete_unqualified_path(acc: &mut Completions, ctx: &CompletionC
|
|||||||
_ => false,
|
_ => false,
|
||||||
};
|
};
|
||||||
if add_resolution {
|
if add_resolution {
|
||||||
acc.add_resolution(ctx, name, &res);
|
acc.add_resolution(ctx, name, res);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
@ -61,7 +61,7 @@ pub(crate) fn complete_unqualified_path(acc: &mut Completions, ctx: &CompletionC
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if let hir::ScopeDef::ModuleDef(hir::ModuleDef::Module(_)) = res {
|
if let hir::ScopeDef::ModuleDef(hir::ModuleDef::Module(_)) = res {
|
||||||
acc.add_resolution(ctx, name, &res);
|
acc.add_resolution(ctx, name, res);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
@ -76,7 +76,7 @@ pub(crate) fn complete_unqualified_path(acc: &mut Completions, ctx: &CompletionC
|
|||||||
_ => false,
|
_ => false,
|
||||||
};
|
};
|
||||||
if add_resolution {
|
if add_resolution {
|
||||||
acc.add_resolution(ctx, name, &res);
|
acc.add_resolution(ctx, name, res);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return;
|
return;
|
||||||
@ -134,7 +134,7 @@ pub(crate) fn complete_unqualified_path(acc: &mut Completions, ctx: &CompletionC
|
|||||||
_ => true,
|
_ => true,
|
||||||
};
|
};
|
||||||
if add_resolution {
|
if add_resolution {
|
||||||
acc.add_resolution(ctx, name, &res);
|
acc.add_resolution(ctx, name, res);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -278,7 +278,7 @@ impl<'a> CompletionContext<'a> {
|
|||||||
self.is_visible_impl(&item.visibility(self.db), &item.attrs(self.db), item.krate(self.db))
|
self.is_visible_impl(&item.visibility(self.db), &item.attrs(self.db), item.krate(self.db))
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn is_scope_def_hidden(&self, scope_def: &ScopeDef) -> bool {
|
pub(crate) fn is_scope_def_hidden(&self, scope_def: ScopeDef) -> bool {
|
||||||
if let (Some(attrs), Some(krate)) = (scope_def.attrs(self.db), scope_def.krate(self.db)) {
|
if let (Some(attrs), Some(krate)) = (scope_def.attrs(self.db), scope_def.krate(self.db)) {
|
||||||
return self.is_doc_hidden(&attrs, krate);
|
return self.is_doc_hidden(&attrs, krate);
|
||||||
}
|
}
|
||||||
@ -303,7 +303,7 @@ impl<'a> CompletionContext<'a> {
|
|||||||
/// A version of [`SemanticsScope::process_all_names`] that filters out `#[doc(hidden)]` items.
|
/// A version of [`SemanticsScope::process_all_names`] that filters out `#[doc(hidden)]` items.
|
||||||
pub(crate) fn process_all_names(&self, f: &mut dyn FnMut(Name, ScopeDef)) {
|
pub(crate) fn process_all_names(&self, f: &mut dyn FnMut(Name, ScopeDef)) {
|
||||||
self.scope.process_all_names(&mut |name, def| {
|
self.scope.process_all_names(&mut |name, def| {
|
||||||
if self.is_scope_def_hidden(&def) {
|
if self.is_scope_def_hidden(def) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -367,7 +367,7 @@ impl<'a> CompletionContext<'a> {
|
|||||||
parse.reparse(&edit).tree()
|
parse.reparse(&edit).tree()
|
||||||
};
|
};
|
||||||
let fake_ident_token =
|
let fake_ident_token =
|
||||||
file_with_fake_ident.syntax().token_at_offset(offset).right_biased().unwrap();
|
file_with_fake_ident.syntax().token_at_offset(offset).right_biased()?;
|
||||||
|
|
||||||
let original_token = original_file.syntax().token_at_offset(offset).left_biased()?;
|
let original_token = original_file.syntax().token_at_offset(offset).left_biased()?;
|
||||||
let token = sema.descend_into_macros_single(original_token.clone());
|
let token = sema.descend_into_macros_single(original_token.clone());
|
||||||
|
@ -11,7 +11,7 @@ pub(crate) mod struct_literal;
|
|||||||
|
|
||||||
mod builder_ext;
|
mod builder_ext;
|
||||||
|
|
||||||
use hir::{AsAssocItem, HasAttrs, HirDisplay};
|
use hir::{AsAssocItem, HasAttrs, HirDisplay, ScopeDef};
|
||||||
use ide_db::{
|
use ide_db::{
|
||||||
helpers::{item_name, SnippetCap},
|
helpers::{item_name, SnippetCap},
|
||||||
RootDatabase, SymbolKind,
|
RootDatabase, SymbolKind,
|
||||||
@ -128,7 +128,7 @@ pub(crate) fn render_tuple_field(
|
|||||||
pub(crate) fn render_resolution(
|
pub(crate) fn render_resolution(
|
||||||
ctx: RenderContext<'_>,
|
ctx: RenderContext<'_>,
|
||||||
local_name: hir::Name,
|
local_name: hir::Name,
|
||||||
resolution: &hir::ScopeDef,
|
resolution: ScopeDef,
|
||||||
) -> Option<CompletionItem> {
|
) -> Option<CompletionItem> {
|
||||||
render_resolution_(ctx, local_name, None, resolution)
|
render_resolution_(ctx, local_name, None, resolution)
|
||||||
}
|
}
|
||||||
@ -137,65 +137,37 @@ pub(crate) fn render_resolution_with_import(
|
|||||||
ctx: RenderContext<'_>,
|
ctx: RenderContext<'_>,
|
||||||
import_edit: ImportEdit,
|
import_edit: ImportEdit,
|
||||||
) -> Option<CompletionItem> {
|
) -> Option<CompletionItem> {
|
||||||
let resolution = hir::ScopeDef::from(import_edit.import.original_item);
|
let resolution = ScopeDef::from(import_edit.import.original_item);
|
||||||
let local_name = match resolution {
|
let local_name = match resolution {
|
||||||
hir::ScopeDef::ModuleDef(hir::ModuleDef::Function(f)) => f.name(ctx.completion.db),
|
ScopeDef::ModuleDef(hir::ModuleDef::Function(f)) => f.name(ctx.completion.db),
|
||||||
hir::ScopeDef::ModuleDef(hir::ModuleDef::Const(c)) => c.name(ctx.completion.db)?,
|
ScopeDef::ModuleDef(hir::ModuleDef::Const(c)) => c.name(ctx.completion.db)?,
|
||||||
hir::ScopeDef::ModuleDef(hir::ModuleDef::TypeAlias(t)) => t.name(ctx.completion.db),
|
ScopeDef::ModuleDef(hir::ModuleDef::TypeAlias(t)) => t.name(ctx.completion.db),
|
||||||
_ => item_name(ctx.db(), import_edit.import.original_item)?,
|
_ => item_name(ctx.db(), import_edit.import.original_item)?,
|
||||||
};
|
};
|
||||||
render_resolution_(ctx, local_name, Some(import_edit), &resolution)
|
render_resolution_(ctx, local_name, Some(import_edit), resolution)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn render_resolution_(
|
fn render_resolution_(
|
||||||
ctx: RenderContext<'_>,
|
ctx: RenderContext<'_>,
|
||||||
local_name: hir::Name,
|
local_name: hir::Name,
|
||||||
import_to_add: Option<ImportEdit>,
|
import_to_add: Option<ImportEdit>,
|
||||||
resolution: &hir::ScopeDef,
|
resolution: ScopeDef,
|
||||||
) -> Option<CompletionItem> {
|
) -> Option<CompletionItem> {
|
||||||
let _p = profile::span("render_resolution");
|
let _p = profile::span("render_resolution");
|
||||||
use hir::ModuleDef::*;
|
use hir::ModuleDef::*;
|
||||||
|
|
||||||
let kind = match resolution {
|
let kind = match resolution {
|
||||||
hir::ScopeDef::ModuleDef(Function(func)) => {
|
ScopeDef::ModuleDef(Function(func)) => {
|
||||||
return render_fn(ctx, import_to_add, Some(local_name), *func);
|
return render_fn(ctx, import_to_add, Some(local_name), func)
|
||||||
}
|
}
|
||||||
hir::ScopeDef::ModuleDef(Variant(_)) if ctx.completion.pattern_ctx.is_some() => {
|
ScopeDef::ModuleDef(Variant(var)) if ctx.completion.pattern_ctx.is_none() => {
|
||||||
CompletionItemKind::SymbolKind(SymbolKind::Variant)
|
return Some(render_variant(ctx, import_to_add, Some(local_name), var, None))
|
||||||
}
|
}
|
||||||
hir::ScopeDef::ModuleDef(Variant(var)) => {
|
ScopeDef::MacroDef(mac) => {
|
||||||
let item = render_variant(ctx, import_to_add, Some(local_name), *var, None);
|
let item = render_macro(ctx, import_to_add, local_name, mac);
|
||||||
return Some(item);
|
|
||||||
}
|
|
||||||
hir::ScopeDef::MacroDef(mac) => {
|
|
||||||
let item = render_macro(ctx, import_to_add, local_name, *mac);
|
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
ScopeDef::Unknown => {
|
||||||
hir::ScopeDef::ModuleDef(Module(..)) => CompletionItemKind::SymbolKind(SymbolKind::Module),
|
|
||||||
hir::ScopeDef::ModuleDef(Adt(adt)) => CompletionItemKind::SymbolKind(match adt {
|
|
||||||
hir::Adt::Struct(_) => SymbolKind::Struct,
|
|
||||||
hir::Adt::Union(_) => SymbolKind::Union,
|
|
||||||
hir::Adt::Enum(_) => SymbolKind::Enum,
|
|
||||||
}),
|
|
||||||
hir::ScopeDef::ModuleDef(Const(..)) => CompletionItemKind::SymbolKind(SymbolKind::Const),
|
|
||||||
hir::ScopeDef::ModuleDef(Static(..)) => CompletionItemKind::SymbolKind(SymbolKind::Static),
|
|
||||||
hir::ScopeDef::ModuleDef(Trait(..)) => CompletionItemKind::SymbolKind(SymbolKind::Trait),
|
|
||||||
hir::ScopeDef::ModuleDef(TypeAlias(..)) => {
|
|
||||||
CompletionItemKind::SymbolKind(SymbolKind::TypeAlias)
|
|
||||||
}
|
|
||||||
hir::ScopeDef::ModuleDef(BuiltinType(..)) => CompletionItemKind::BuiltinType,
|
|
||||||
hir::ScopeDef::GenericParam(param) => CompletionItemKind::SymbolKind(match param {
|
|
||||||
hir::GenericParam::TypeParam(_) => SymbolKind::TypeParam,
|
|
||||||
hir::GenericParam::LifetimeParam(_) => SymbolKind::LifetimeParam,
|
|
||||||
hir::GenericParam::ConstParam(_) => SymbolKind::ConstParam,
|
|
||||||
}),
|
|
||||||
hir::ScopeDef::Local(..) => CompletionItemKind::SymbolKind(SymbolKind::Local),
|
|
||||||
hir::ScopeDef::Label(..) => CompletionItemKind::SymbolKind(SymbolKind::Label),
|
|
||||||
hir::ScopeDef::AdtSelfType(..) | hir::ScopeDef::ImplSelfType(..) => {
|
|
||||||
CompletionItemKind::SymbolKind(SymbolKind::SelfParam)
|
|
||||||
}
|
|
||||||
hir::ScopeDef::Unknown => {
|
|
||||||
let mut item = CompletionItem::new(
|
let mut item = CompletionItem::new(
|
||||||
CompletionItemKind::UnresolvedReference,
|
CompletionItemKind::UnresolvedReference,
|
||||||
ctx.source_range(),
|
ctx.source_range(),
|
||||||
@ -206,11 +178,34 @@ fn render_resolution_(
|
|||||||
}
|
}
|
||||||
return Some(item.build());
|
return Some(item.build());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ScopeDef::ModuleDef(Variant(_)) => CompletionItemKind::SymbolKind(SymbolKind::Variant),
|
||||||
|
ScopeDef::ModuleDef(Module(..)) => CompletionItemKind::SymbolKind(SymbolKind::Module),
|
||||||
|
ScopeDef::ModuleDef(Adt(adt)) => CompletionItemKind::SymbolKind(match adt {
|
||||||
|
hir::Adt::Struct(_) => SymbolKind::Struct,
|
||||||
|
hir::Adt::Union(_) => SymbolKind::Union,
|
||||||
|
hir::Adt::Enum(_) => SymbolKind::Enum,
|
||||||
|
}),
|
||||||
|
ScopeDef::ModuleDef(Const(..)) => CompletionItemKind::SymbolKind(SymbolKind::Const),
|
||||||
|
ScopeDef::ModuleDef(Static(..)) => CompletionItemKind::SymbolKind(SymbolKind::Static),
|
||||||
|
ScopeDef::ModuleDef(Trait(..)) => CompletionItemKind::SymbolKind(SymbolKind::Trait),
|
||||||
|
ScopeDef::ModuleDef(TypeAlias(..)) => CompletionItemKind::SymbolKind(SymbolKind::TypeAlias),
|
||||||
|
ScopeDef::ModuleDef(BuiltinType(..)) => CompletionItemKind::BuiltinType,
|
||||||
|
ScopeDef::GenericParam(param) => CompletionItemKind::SymbolKind(match param {
|
||||||
|
hir::GenericParam::TypeParam(_) => SymbolKind::TypeParam,
|
||||||
|
hir::GenericParam::LifetimeParam(_) => SymbolKind::LifetimeParam,
|
||||||
|
hir::GenericParam::ConstParam(_) => SymbolKind::ConstParam,
|
||||||
|
}),
|
||||||
|
ScopeDef::Local(..) => CompletionItemKind::SymbolKind(SymbolKind::Local),
|
||||||
|
ScopeDef::Label(..) => CompletionItemKind::SymbolKind(SymbolKind::Label),
|
||||||
|
ScopeDef::AdtSelfType(..) | ScopeDef::ImplSelfType(..) => {
|
||||||
|
CompletionItemKind::SymbolKind(SymbolKind::SelfParam)
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
let local_name = local_name.to_smol_str();
|
let local_name = local_name.to_smol_str();
|
||||||
let mut item = CompletionItem::new(kind, ctx.source_range(), local_name.clone());
|
let mut item = CompletionItem::new(kind, ctx.source_range(), local_name.clone());
|
||||||
if let hir::ScopeDef::Local(local) = resolution {
|
if let ScopeDef::Local(local) = resolution {
|
||||||
let ty = local.ty(ctx.db());
|
let ty = local.ty(ctx.db());
|
||||||
if !ty.is_unknown() {
|
if !ty.is_unknown() {
|
||||||
item.detail(ty.display(ctx.db()).to_string());
|
item.detail(ty.display(ctx.db()).to_string());
|
||||||
@ -236,8 +231,8 @@ fn render_resolution_(
|
|||||||
{
|
{
|
||||||
if let Some(cap) = ctx.snippet_cap() {
|
if let Some(cap) = ctx.snippet_cap() {
|
||||||
let has_non_default_type_params = match resolution {
|
let has_non_default_type_params = match resolution {
|
||||||
hir::ScopeDef::ModuleDef(Adt(it)) => it.has_non_default_type_params(ctx.db()),
|
ScopeDef::ModuleDef(Adt(it)) => it.has_non_default_type_params(ctx.db()),
|
||||||
hir::ScopeDef::ModuleDef(TypeAlias(it)) => it.has_non_default_type_params(ctx.db()),
|
ScopeDef::ModuleDef(TypeAlias(it)) => it.has_non_default_type_params(ctx.db()),
|
||||||
_ => false,
|
_ => false,
|
||||||
};
|
};
|
||||||
if has_non_default_type_params {
|
if has_non_default_type_params {
|
||||||
@ -257,26 +252,26 @@ fn render_resolution_(
|
|||||||
Some(item.build())
|
Some(item.build())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn scope_def_docs(db: &RootDatabase, resolution: &hir::ScopeDef) -> Option<hir::Documentation> {
|
fn scope_def_docs(db: &RootDatabase, resolution: ScopeDef) -> Option<hir::Documentation> {
|
||||||
use hir::ModuleDef::*;
|
use hir::ModuleDef::*;
|
||||||
match resolution {
|
match resolution {
|
||||||
hir::ScopeDef::ModuleDef(Module(it)) => it.docs(db),
|
ScopeDef::ModuleDef(Module(it)) => it.docs(db),
|
||||||
hir::ScopeDef::ModuleDef(Adt(it)) => it.docs(db),
|
ScopeDef::ModuleDef(Adt(it)) => it.docs(db),
|
||||||
hir::ScopeDef::ModuleDef(Variant(it)) => it.docs(db),
|
ScopeDef::ModuleDef(Variant(it)) => it.docs(db),
|
||||||
hir::ScopeDef::ModuleDef(Const(it)) => it.docs(db),
|
ScopeDef::ModuleDef(Const(it)) => it.docs(db),
|
||||||
hir::ScopeDef::ModuleDef(Static(it)) => it.docs(db),
|
ScopeDef::ModuleDef(Static(it)) => it.docs(db),
|
||||||
hir::ScopeDef::ModuleDef(Trait(it)) => it.docs(db),
|
ScopeDef::ModuleDef(Trait(it)) => it.docs(db),
|
||||||
hir::ScopeDef::ModuleDef(TypeAlias(it)) => it.docs(db),
|
ScopeDef::ModuleDef(TypeAlias(it)) => it.docs(db),
|
||||||
_ => None,
|
_ => None,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn scope_def_is_deprecated(ctx: &RenderContext<'_>, resolution: &hir::ScopeDef) -> bool {
|
fn scope_def_is_deprecated(ctx: &RenderContext<'_>, resolution: ScopeDef) -> bool {
|
||||||
match resolution {
|
match resolution {
|
||||||
hir::ScopeDef::ModuleDef(it) => ctx.is_deprecated_assoc_item(*it),
|
ScopeDef::ModuleDef(it) => ctx.is_deprecated_assoc_item(it),
|
||||||
hir::ScopeDef::MacroDef(it) => ctx.is_deprecated(*it),
|
ScopeDef::MacroDef(it) => ctx.is_deprecated(it),
|
||||||
hir::ScopeDef::GenericParam(it) => ctx.is_deprecated(*it),
|
ScopeDef::GenericParam(it) => ctx.is_deprecated(it),
|
||||||
hir::ScopeDef::AdtSelfType(it) => ctx.is_deprecated(*it),
|
ScopeDef::AdtSelfType(it) => ctx.is_deprecated(it),
|
||||||
_ => false,
|
_ => false,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user