aboutsummaryrefslogtreecommitdiff
path: root/crates/hir/src/has_source.rs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2021-03-19 18:56:38 +0000
committerGitHub <[email protected]>2021-03-19 18:56:38 +0000
commitfc21640a65b5caef8dbbc9e85e9616b843847fb4 (patch)
tree6f4808ef6a79fa816d6b03d18234f27a0ed59c42 /crates/hir/src/has_source.rs
parent0392e63c95736e988bda0fc62261ef48e89b3a31 (diff)
parent93aeb16eb21709de38ba8484fa82ed4e05ae5665 (diff)
Merge #8111
8111: Return `Either` from `MacroDefId::ast_id` r=jonas-schievink a=jonas-schievink bors r+ Co-authored-by: Jonas Schievink <[email protected]>
Diffstat (limited to 'crates/hir/src/has_source.rs')
-rw-r--r--crates/hir/src/has_source.rs15
1 files changed, 5 insertions, 10 deletions
diff --git a/crates/hir/src/has_source.rs b/crates/hir/src/has_source.rs
index d57fad9ed..dc10a4d0f 100644
--- a/crates/hir/src/has_source.rs
+++ b/crates/hir/src/has_source.rs
@@ -6,7 +6,7 @@ use hir_def::{
6 src::{HasChildSource, HasSource as _}, 6 src::{HasChildSource, HasSource as _},
7 Lookup, VariantId, 7 Lookup, VariantId,
8}; 8};
9use hir_expand::{InFile, MacroDefKind}; 9use hir_expand::InFile;
10use syntax::ast; 10use syntax::ast;
11 11
12use crate::{ 12use crate::{
@@ -113,15 +113,10 @@ impl HasSource for TypeAlias {
113impl HasSource for MacroDef { 113impl HasSource for MacroDef {
114 type Ast = Either<ast::Macro, ast::Fn>; 114 type Ast = Either<ast::Macro, ast::Fn>;
115 fn source(self, db: &dyn HirDatabase) -> Option<InFile<Self::Ast>> { 115 fn source(self, db: &dyn HirDatabase) -> Option<InFile<Self::Ast>> {
116 Some(match &self.id.kind { 116 Some(self.id.ast_id().either(
117 MacroDefKind::Declarative(id) 117 |id| id.with_value(Either::Left(id.to_node(db.upcast()))),
118 | MacroDefKind::BuiltIn(_, id) 118 |id| id.with_value(Either::Right(id.to_node(db.upcast()))),
119 | MacroDefKind::BuiltInDerive(_, id) 119 ))
120 | MacroDefKind::BuiltInEager(_, id) => {
121 id.with_value(Either::Left(id.to_node(db.upcast())))
122 }
123 MacroDefKind::ProcMacro(_, id) => id.map(|_| Either::Right(id.to_node(db.upcast()))),
124 })
125 } 120 }
126} 121}
127impl HasSource for Impl { 122impl HasSource for Impl {