From a7c0336a7516e4973a9efb86bfb97cf290441413 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Thu, 24 Jan 2019 19:12:11 +0300 Subject: macro-generate froms --- crates/ra_hir/src/ty.rs | 39 +++------------------------------------ 1 file changed, 3 insertions(+), 36 deletions(-) (limited to 'crates/ra_hir/src/ty.rs') diff --git a/crates/ra_hir/src/ty.rs b/crates/ra_hir/src/ty.rs index b81899661..fcf8a1dbb 100644 --- a/crates/ra_hir/src/ty.rs +++ b/crates/ra_hir/src/ty.rs @@ -168,18 +168,7 @@ pub enum AdtDef { Struct(Struct), Enum(Enum), } - -impl From for AdtDef { - fn from(s: Struct) -> AdtDef { - AdtDef::Struct(s) - } -} - -impl From for AdtDef { - fn from(e: Enum) -> AdtDef { - AdtDef::Enum(e) - } -} +impl_froms!(AdtDef: Struct, Enum); impl AdtDef { fn krate(self, db: &impl HirDatabase) -> Option { @@ -701,24 +690,7 @@ pub enum TypableDef { Enum(Enum), Def(DefId), } - -impl From for TypableDef { - fn from(func: Function) -> TypableDef { - TypableDef::Function(func) - } -} - -impl From for TypableDef { - fn from(s: Struct) -> TypableDef { - TypableDef::Struct(s) - } -} - -impl From for TypableDef { - fn from(e: Enum) -> TypableDef { - TypableDef::Enum(e) - } -} +impl_froms!(TypableDef: Function, Struct, Enum); impl From for TypableDef { fn from(func: DefId) -> TypableDef { @@ -763,12 +735,7 @@ pub enum VariantDef { Struct(Struct), Def(DefId), // EnumVariant } - -impl From for VariantDef { - fn from(struct_: Struct) -> VariantDef { - VariantDef::Struct(struct_) - } -} +impl_froms!(VariantDef: Struct); impl From for VariantDef { fn from(def_id: DefId) -> VariantDef { -- cgit v1.2.3