diff --git a/bevy_lint/src/lints/duplicate_bevy_dependencies.rs b/bevy_lint/src/lints/duplicate_bevy_dependencies.rs index 54bb6a3..d66ed3b 100644 --- a/bevy_lint/src/lints/duplicate_bevy_dependencies.rs +++ b/bevy_lint/src/lints/duplicate_bevy_dependencies.rs @@ -6,9 +6,9 @@ //! errors and type incompatibilities. use crate::declare_bevy_lint; -use clippy_utils::{diagnostics::span_lint, find_crates}; +use clippy_utils::{diagnostics::span_lint, find_crates, sym}; use rustc_lint::{LateContext, LateLintPass}; -use rustc_session::declare_lint_pass; +use rustc_session::impl_lint_pass; use rustc_span::Symbol; declare_bevy_lint! { @@ -17,13 +17,25 @@ declare_bevy_lint! { "duplicate bevy dependencies", } -declare_lint_pass! { +pub(crate) struct DuplicateBevyDependencies { + bevy_symbol: Symbol, +} + +impl Default for DuplicateBevyDependencies { + fn default() -> Self { + Self { + bevy_symbol: sym!(bevy), + } + } +} + +impl_lint_pass! { DuplicateBevyDependencies => [DUPLICATE_BEVY_DEPENDENCIES.lint] } impl<'tcx> LateLintPass<'tcx> for DuplicateBevyDependencies { fn check_crate(&mut self, cx: &LateContext<'tcx>) { - let bevy_crates = find_crates(cx.tcx, Symbol::intern("bevy")); + let bevy_crates = find_crates(cx.tcx, self.bevy_symbol); if bevy_crates.len() > 1 { let span = cx.tcx.def_span(bevy_crates[1].def_id()); diff --git a/bevy_lint/src/lints/mod.rs b/bevy_lint/src/lints/mod.rs index 22ed4c9..4af1153 100644 --- a/bevy_lint/src/lints/mod.rs +++ b/bevy_lint/src/lints/mod.rs @@ -38,5 +38,7 @@ pub(crate) fn register_passes(store: &mut LintStore) { store.register_late_pass(|_| Box::new(panicking_methods::PanickingMethods)); store.register_late_pass(|_| Box::new(plugin_not_ending_in_plugin::PluginNotEndingInPlugin)); store.register_late_pass(|_| Box::new(zst_query::ZstQuery)); - store.register_late_pass(|_| Box::new(duplicate_bevy_dependencies::DuplicateBevyDependencies)); + store.register_late_pass(|_| { + Box::new(duplicate_bevy_dependencies::DuplicateBevyDependencies::default()) + }); }