diff --git a/crates/ra_hir_def/src/nameres.rs b/crates/ra_hir_def/src/nameres.rs
index e1959cdb9e9..fb3ba53059a 100644
--- a/crates/ra_hir_def/src/nameres.rs
+++ b/crates/ra_hir_def/src/nameres.rs
@@ -195,12 +195,6 @@ pub struct Resolution {
     pub import: Option<ImportId>,
 }
 
-impl Resolution {
-    fn from_macro(macro_: MacroDefId) -> Self {
-        Resolution { def: PerNs::macros(macro_), import: None }
-    }
-}
-
 #[derive(Debug, Clone)]
 struct ResolvePathResult {
     resolved_def: PerNs,
diff --git a/crates/ra_hir_def/src/nameres/collector.rs b/crates/ra_hir_def/src/nameres/collector.rs
index 3b61d9895bc..9ab378d54da 100644
--- a/crates/ra_hir_def/src/nameres/collector.rs
+++ b/crates/ra_hir_def/src/nameres/collector.rs
@@ -182,7 +182,11 @@ where
         // In Rust, `#[macro_export]` macros are unconditionally visible at the
         // crate root, even if the parent modules is **not** visible.
         if export {
-            self.update(self.def_map.root, None, &[(name, Resolution::from_macro(macro_))]);
+            self.update(
+                self.def_map.root,
+                None,
+                &[(name, Resolution { def: PerNs::macros(macro_), import: None })],
+            );
         }
     }