22
33use std:: path:: PathBuf ;
44
5- use crate :: utils:: span_lint;
6- use rustc_ast :: ast :: Crate ;
7- use rustc_lint:: { EarlyContext , EarlyLintPass } ;
5+ use crate :: utils:: { run_lints , span_lint} ;
6+ use rustc_hir :: { hir_id :: CRATE_HIR_ID , Crate } ;
7+ use rustc_lint:: { LateContext , LateLintPass } ;
88use rustc_session:: { declare_lint_pass, declare_tool_lint} ;
99use rustc_span:: source_map:: DUMMY_SP ;
1010
@@ -35,11 +35,11 @@ declare_clippy_lint! {
3535 "common metadata is defined in `Cargo.toml`"
3636}
3737
38- fn warning ( cx : & EarlyContext < ' _ > , message : & str ) {
38+ fn warning ( cx : & LateContext < ' _ , ' _ > , message : & str ) {
3939 span_lint ( cx, CARGO_COMMON_METADATA , DUMMY_SP , message) ;
4040}
4141
42- fn missing_warning ( cx : & EarlyContext < ' _ > , package : & cargo_metadata:: Package , field : & str ) {
42+ fn missing_warning ( cx : & LateContext < ' _ , ' _ > , package : & cargo_metadata:: Package , field : & str ) {
4343 let message = format ! ( "package `{}` is missing `{}` metadata" , package. name, field) ;
4444 warning ( cx, & message) ;
4545}
@@ -59,8 +59,12 @@ fn is_empty_vec(value: &[String]) -> bool {
5959
6060declare_lint_pass ! ( CargoCommonMetadata => [ CARGO_COMMON_METADATA ] ) ;
6161
62- impl EarlyLintPass for CargoCommonMetadata {
63- fn check_crate ( & mut self , cx : & EarlyContext < ' _ > , _: & Crate ) {
62+ impl LateLintPass < ' _ , ' _ > for CargoCommonMetadata {
63+ fn check_crate ( & mut self , cx : & LateContext < ' _ , ' _ > , _: & Crate < ' _ > ) {
64+ if !run_lints ( cx, & [ CARGO_COMMON_METADATA ] , CRATE_HIR_ID ) {
65+ return ;
66+ }
67+
6468 let metadata = if let Ok ( metadata) = cargo_metadata:: MetadataCommand :: new ( ) . no_deps ( ) . exec ( ) {
6569 metadata
6670 } else {
0 commit comments