Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/ide-db/src/defs.rs')
-rw-r--r--crates/ide-db/src/defs.rs55
1 files changed, 21 insertions, 34 deletions
diff --git a/crates/ide-db/src/defs.rs b/crates/ide-db/src/defs.rs
index 52cd664000..c1fd002b34 100644
--- a/crates/ide-db/src/defs.rs
+++ b/crates/ide-db/src/defs.rs
@@ -22,7 +22,7 @@ use hir::{
Visibility,
};
use span::Edition;
-use stdx::format_to;
+use stdx::{format_to, impl_from};
use syntax::{
SyntaxKind, SyntaxNode, SyntaxToken,
ast::{self, AstNode},
@@ -891,33 +891,26 @@ impl<'db> NameRefClass<'db> {
}
}
-macro_rules! impl_from_definition {
- ($($variant:ident: $ty:ty),* $(,)?) => {$(
- impl<'db> From<$ty> for Definition<'db> {
- fn from(it: $ty) -> Self {
- Definition::$variant(it)
- }
- }
- )*};
-}
-
-impl_from_definition!(
- Field: Field,
- TupleField: TupleField<'db>,
- Module: Module,
- Function: Function,
- Adt: Adt,
- EnumVariant: EnumVariant,
- Const: Const,
- Static: Static,
- Trait: Trait,
- TypeAlias: TypeAlias,
- BuiltinType: BuiltinType,
- Local: Local<'db>,
- GenericParam: GenericParam,
- Label: Label,
- Macro: Macro,
- ExternCrateDecl: ExternCrateDecl,
+impl_from!(
+ impl<'db>
+ Field,
+ TupleField<'db>,
+ Module,
+ Function,
+ Adt,
+ EnumVariant,
+ Const,
+ Static,
+ Trait,
+ TypeAlias,
+ BuiltinType,
+ Local<'db>,
+ GenericParam,
+ Label,
+ Macro,
+ ExternCrateDecl,
+ InlineAsmOperand
+ for Definition<'db>
);
impl<'db> From<Impl> for Definition<'db> {
@@ -926,12 +919,6 @@ impl<'db> From<Impl> for Definition<'db> {
}
}
-impl<'db> From<InlineAsmOperand> for Definition<'db> {
- fn from(value: InlineAsmOperand) -> Self {
- Definition::InlineAsmOperand(value)
- }
-}
-
impl<'db> From<Either<PathResolution<'db>, InlineAsmOperand>> for Definition<'db> {
fn from(value: Either<PathResolution<'db>, InlineAsmOperand>) -> Self {
value.either(Definition::from, Definition::from)