Unnamed repository; edit this file 'description' to name the repository.
Merge pull request #19749 from Veykril/push-tsxvxzzmlxpq
refactor: Remove unnecessary `AsAny` trait
Lukas Wirth 12 months ago
parent 3ec5c52 · parent 091b7b2 · commit d40455f
-rw-r--r--crates/hir-def/src/macro_expansion_tests/mod.rs4
-rw-r--r--crates/hir-expand/src/proc_macro.rs16
-rw-r--r--crates/load-cargo/src/lib.rs4
-rw-r--r--crates/test-fixture/src/lib.rs36
4 files changed, 4 insertions, 56 deletions
diff --git a/crates/hir-def/src/macro_expansion_tests/mod.rs b/crates/hir-def/src/macro_expansion_tests/mod.rs
index fcb4684c93..dc4334ee08 100644
--- a/crates/hir-def/src/macro_expansion_tests/mod.rs
+++ b/crates/hir-def/src/macro_expansion_tests/mod.rs
@@ -380,8 +380,4 @@ impl ProcMacroExpander for IdentityWhenValidProcMacroExpander {
panic!("got invalid macro input: {:?}", parse.errors());
}
}
-
- fn eq_dyn(&self, other: &dyn ProcMacroExpander) -> bool {
- other.as_any().type_id() == std::any::TypeId::of::<Self>()
- }
}
diff --git a/crates/hir-expand/src/proc_macro.rs b/crates/hir-expand/src/proc_macro.rs
index 8a1a33d7e3..1cd975b980 100644
--- a/crates/hir-expand/src/proc_macro.rs
+++ b/crates/hir-expand/src/proc_macro.rs
@@ -19,18 +19,8 @@ pub enum ProcMacroKind {
Attr,
}
-pub trait AsAny: Any {
- fn as_any(&self) -> &dyn Any;
-}
-
-impl<T: Any> AsAny for T {
- fn as_any(&self) -> &dyn Any {
- self
- }
-}
-
/// A proc-macro expander implementation.
-pub trait ProcMacroExpander: fmt::Debug + Send + Sync + RefUnwindSafe + AsAny {
+pub trait ProcMacroExpander: fmt::Debug + Send + Sync + RefUnwindSafe + Any {
/// Run the expander with the given input subtree, optional attribute input subtree (for
/// [`ProcMacroKind::Attr`]), environment variables, and span information.
fn expand(
@@ -44,7 +34,9 @@ pub trait ProcMacroExpander: fmt::Debug + Send + Sync + RefUnwindSafe + AsAny {
current_dir: String,
) -> Result<tt::TopSubtree, ProcMacroExpansionError>;
- fn eq_dyn(&self, other: &dyn ProcMacroExpander) -> bool;
+ fn eq_dyn(&self, other: &dyn ProcMacroExpander) -> bool {
+ other.type_id() == self.type_id()
+ }
}
impl PartialEq for dyn ProcMacroExpander {
diff --git a/crates/load-cargo/src/lib.rs b/crates/load-cargo/src/lib.rs
index 2686a75c7c..30e2d5416c 100644
--- a/crates/load-cargo/src/lib.rs
+++ b/crates/load-cargo/src/lib.rs
@@ -512,10 +512,6 @@ impl ProcMacroExpander for Expander {
Err(err) => Err(ProcMacroExpansionError::System(err.to_string())),
}
}
-
- fn eq_dyn(&self, other: &dyn ProcMacroExpander) -> bool {
- other.as_any().downcast_ref::<Self>().is_some_and(|other| self == other)
- }
}
#[cfg(test)]
diff --git a/crates/test-fixture/src/lib.rs b/crates/test-fixture/src/lib.rs
index f6ca5ab6c8..96e1301f22 100644
--- a/crates/test-fixture/src/lib.rs
+++ b/crates/test-fixture/src/lib.rs
@@ -662,10 +662,6 @@ impl ProcMacroExpander for IdentityProcMacroExpander {
) -> Result<TopSubtree, ProcMacroExpansionError> {
Ok(subtree.clone())
}
-
- fn eq_dyn(&self, other: &dyn ProcMacroExpander) -> bool {
- other.as_any().type_id() == std::any::TypeId::of::<Self>()
- }
}
// Expands to a macro_rules! macro, for issue #18089.
@@ -697,10 +693,6 @@ impl ProcMacroExpander for Issue18089ProcMacroExpander {
#subtree
})
}
-
- fn eq_dyn(&self, other: &dyn ProcMacroExpander) -> bool {
- other.as_any().type_id() == std::any::TypeId::of::<Self>()
- }
}
// Pastes the attribute input as its output
@@ -721,10 +713,6 @@ impl ProcMacroExpander for AttributeInputReplaceProcMacroExpander {
.cloned()
.ok_or_else(|| ProcMacroExpansionError::Panic("Expected attribute input".into()))
}
-
- fn eq_dyn(&self, other: &dyn ProcMacroExpander) -> bool {
- other.as_any().type_id() == std::any::TypeId::of::<Self>()
- }
}
#[derive(Debug)]
@@ -756,10 +744,6 @@ impl ProcMacroExpander for Issue18840ProcMacroExpander {
top_subtree_delimiter_mut.close = def_site;
Ok(result)
}
-
- fn eq_dyn(&self, other: &dyn ProcMacroExpander) -> bool {
- other.as_any().type_id() == std::any::TypeId::of::<Self>()
- }
}
#[derive(Debug)]
@@ -791,10 +775,6 @@ impl ProcMacroExpander for MirrorProcMacroExpander {
traverse(&mut builder, input.iter());
Ok(builder.build())
}
-
- fn eq_dyn(&self, other: &dyn ProcMacroExpander) -> bool {
- other.as_any().type_id() == std::any::TypeId::of::<Self>()
- }
}
// Replaces every literal with an empty string literal and every identifier with its first letter,
@@ -835,10 +815,6 @@ impl ProcMacroExpander for ShortenProcMacroExpander {
}
}
}
-
- fn eq_dyn(&self, other: &dyn ProcMacroExpander) -> bool {
- other.as_any().type_id() == std::any::TypeId::of::<Self>()
- }
}
// Reads ident type within string quotes, for issue #17479.
@@ -864,10 +840,6 @@ impl ProcMacroExpander for Issue17479ProcMacroExpander {
#symbol()
})
}
-
- fn eq_dyn(&self, other: &dyn ProcMacroExpander) -> bool {
- other.as_any().type_id() == std::any::TypeId::of::<Self>()
- }
}
// Reads ident type within string quotes, for issue #17479.
@@ -919,10 +891,6 @@ impl ProcMacroExpander for Issue18898ProcMacroExpander {
}
})
}
-
- fn eq_dyn(&self, other: &dyn ProcMacroExpander) -> bool {
- other.as_any().type_id() == std::any::TypeId::of::<Self>()
- }
}
// Reads ident type within string quotes, for issue #17479.
@@ -950,8 +918,4 @@ impl ProcMacroExpander for DisallowCfgProcMacroExpander {
}
Ok(subtree.clone())
}
-
- fn eq_dyn(&self, other: &dyn ProcMacroExpander) -> bool {
- other.as_any().type_id() == std::any::TypeId::of::<Self>()
- }
}