Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/item_scope.rs')
-rw-r--r--crates/hir-def/src/item_scope.rs31
1 files changed, 4 insertions, 27 deletions
diff --git a/crates/hir-def/src/item_scope.rs b/crates/hir-def/src/item_scope.rs
index ac1d2fd2a4..1443d3ea4b 100644
--- a/crates/hir-def/src/item_scope.rs
+++ b/crates/hir-def/src/item_scope.rs
@@ -12,7 +12,7 @@ use la_arena::Idx;
use rustc_hash::{FxHashMap, FxHashSet};
use smallvec::SmallVec;
use span::Edition;
-use stdx::format_to;
+use stdx::{format_to, impl_from};
use syntax::ast;
use thin_vec::ThinVec;
@@ -37,14 +37,7 @@ pub enum ImportOrExternCrate {
ExternCrate(ExternCrateId),
}
-impl From<ImportOrGlob> for ImportOrExternCrate {
- fn from(value: ImportOrGlob) -> Self {
- match value {
- ImportOrGlob::Glob(it) => ImportOrExternCrate::Glob(it),
- ImportOrGlob::Import(it) => ImportOrExternCrate::Import(it),
- }
- }
-}
+impl_from!(ImportOrGlob { Glob, Import } for ImportOrExternCrate);
impl ImportOrExternCrate {
pub fn import_or_glob(self) -> Option<ImportOrGlob> {
@@ -101,24 +94,8 @@ pub enum ImportOrDef {
Def(ModuleDefId),
}
-impl From<ImportOrExternCrate> for ImportOrDef {
- fn from(value: ImportOrExternCrate) -> Self {
- match value {
- ImportOrExternCrate::Import(it) => ImportOrDef::Import(it),
- ImportOrExternCrate::Glob(it) => ImportOrDef::Glob(it),
- ImportOrExternCrate::ExternCrate(it) => ImportOrDef::ExternCrate(it),
- }
- }
-}
-
-impl From<ImportOrGlob> for ImportOrDef {
- fn from(value: ImportOrGlob) -> Self {
- match value {
- ImportOrGlob::Import(it) => ImportOrDef::Import(it),
- ImportOrGlob::Glob(it) => ImportOrDef::Glob(it),
- }
- }
-}
+impl_from!(ImportOrExternCrate { Import, Glob, ExternCrate } for ImportOrDef);
+impl_from!(ImportOrGlob { Import, Glob } for ImportOrDef);
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Ord, PartialOrd)]
pub struct ImportId {