From 33f45afcf71d3f87d8b9b6ea5546ffd54f0a914b Mon Sep 17 00:00:00 2001 From: DaAlbrecht Date: Tue, 21 Jan 2025 12:41:26 +0100 Subject: [PATCH] feat: use improved declare_lint_pass macro #228 --- bevy_lint/src/lints/cargo/mod.rs | 26 ++++++++------------------ bevy_lint/src/lints/mod.rs | 1 + 2 files changed, 9 insertions(+), 18 deletions(-) diff --git a/bevy_lint/src/lints/cargo/mod.rs b/bevy_lint/src/lints/cargo/mod.rs index d741e1aa..a2860e6c 100644 --- a/bevy_lint/src/lints/cargo/mod.rs +++ b/bevy_lint/src/lints/cargo/mod.rs @@ -1,8 +1,8 @@ -use crate::declare_bevy_lint; +use crate::{declare_bevy_lint, declare_bevy_lint_pass}; use cargo_metadata::MetadataCommand; use clippy_utils::{diagnostics::span_lint, sym}; use rustc_lint::{LateContext, LateLintPass}; -use rustc_session::{impl_lint_pass, utils::was_invoked_from_cargo}; +use rustc_session::utils::was_invoked_from_cargo; use rustc_span::{BytePos, Pos, SourceFile, Span, Symbol, SyntaxContext}; use serde::Deserialize; use std::{collections::BTreeMap, ops::Range}; @@ -16,21 +16,11 @@ declare_bevy_lint! { "duplicate bevy dependencies", } -impl_lint_pass!(Cargo => [ - DUPLICATE_BEVY_DEPENDENCIES.lint -]); - -pub struct Cargo { - /// A cached [`Symbol`] representing the interned string `"bevy"`. - bevy_symbol: Symbol, -} - -impl Default for Cargo { - fn default() -> Self { - Self { - bevy_symbol: sym!(bevy), - } - } +declare_bevy_lint_pass! { + pub Cargo => [DUPLICATE_BEVY_DEPENDENCIES.lint], + @default = { + bevy: Symbol = sym!(bevy), + }, } impl LateLintPass<'_> for Cargo { @@ -42,7 +32,7 @@ impl LateLintPass<'_> for Cargo { match MetadataCommand::new().exec() { Ok(metadata) => { - duplicate_bevy_dependencies::check(cx, &metadata, self.bevy_symbol); + duplicate_bevy_dependencies::check(cx, &metadata, self.bevy); } Err(e) => { span_lint( diff --git a/bevy_lint/src/lints/mod.rs b/bevy_lint/src/lints/mod.rs index daad6b85..946f1a4f 100644 --- a/bevy_lint/src/lints/mod.rs +++ b/bevy_lint/src/lints/mod.rs @@ -45,4 +45,5 @@ pub(crate) fn register_passes(store: &mut LintStore) { Box::new(plugin_not_ending_in_plugin::PluginNotEndingInPlugin::default()) }); store.register_late_pass(|_| Box::new(zst_query::ZstQuery::default())); + store.register_late_pass(|_| Box::new(cargo::Cargo::default())); }