@@ -292,6 +292,7 @@ fn toolchain_path(home: Option<String>, toolchain: Option<String>) -> Option<Pat
292
292
} )
293
293
}
294
294
295
+ #[ allow( clippy:: too_many_lines) ]
295
296
pub fn main ( ) {
296
297
rustc_driver:: init_rustc_env_logger ( ) ;
297
298
SyncLazy :: force ( & ICE_HOOK ) ;
@@ -415,17 +416,20 @@ pub fn main() {
415
416
416
417
// this check ensures that dependencies are built but not linted and the final
417
418
// crate is linted but not built
418
- let clippy_disabled = env:: var ( "CLIPPY_TESTS" ) . map_or ( false , |val| val != "true" )
419
- || arg_value ( & orig_args, "--cap-lints" , |val| val == "allow" ) . is_some ( )
420
- || no_deps && env:: var ( "CARGO_PRIMARY_PACKAGE" ) . is_err ( ) ;
419
+ let clippy_tests_set = env:: var ( "CLIPPY_TESTS" ) . map_or ( false , |val| val == "true" ) ;
420
+ let cap_lints_allow = arg_value ( & orig_args, "--cap-lints" , |val| val == "allow" ) . is_some ( ) ;
421
+ let in_primary_package = env:: var ( "CARGO_PRIMARY_PACKAGE" ) . is_ok ( ) ;
421
422
422
- if !clippy_disabled {
423
+ let clippy_enabled = clippy_tests_set || ( !cap_lints_allow && ( !no_deps || in_primary_package) ) ;
424
+ if clippy_enabled {
423
425
args. extend ( clippy_args) ;
424
426
}
427
+
425
428
let mut clippy = ClippyCallbacks ;
426
429
let mut default = DefaultCallbacks ;
427
430
let callbacks: & mut ( dyn rustc_driver:: Callbacks + Send ) =
428
- if clippy_disabled { & mut default } else { & mut clippy } ;
431
+ if clippy_enabled { & mut clippy } else { & mut default } ;
432
+
429
433
rustc_driver:: RunCompiler :: new ( & args, callbacks) . run ( )
430
434
} ) )
431
435
}
0 commit comments