@@ -14,7 +14,7 @@ use {rustc_ast as ast, rustc_hir as hir};
14
14
15
15
use crate :: lints:: {
16
16
NonCamelCaseType , NonCamelCaseTypeSub , NonSnakeCaseDiag , NonSnakeCaseDiagSub ,
17
- NonUpperCaseGlobal , NonUpperCaseGlobalSub ,
17
+ NonUpperCaseGlobal , NonUpperCaseGlobalSub , NonUpperCaseGlobalSubUsages ,
18
18
} ;
19
19
use crate :: { EarlyContext , EarlyLintPass , LateContext , LateLintPass , LintContext } ;
20
20
@@ -497,12 +497,10 @@ impl NonUpperCaseGlobals {
497
497
498
498
// We cannot provide meaningful suggestions
499
499
// if the characters are in the category of "Lowercase Letter".
500
- let sub = |span| {
501
- if * name != uc {
502
- NonUpperCaseGlobalSub :: Suggestion { span, replace : uc. clone ( ) }
503
- } else {
504
- NonUpperCaseGlobalSub :: Label { span }
505
- }
500
+ let sub = if * name != uc {
501
+ NonUpperCaseGlobalSub :: Suggestion { span : ident. span , replace : uc. clone ( ) }
502
+ } else {
503
+ NonUpperCaseGlobalSub :: Label { span : ident. span }
506
504
} ;
507
505
508
506
struct UsageCollector < ' a , ' tcx > {
@@ -531,18 +529,23 @@ impl NonUpperCaseGlobals {
531
529
}
532
530
}
533
531
534
- let usages = if let Some ( did) = did {
532
+ let usages = if let Some ( did) = did
533
+ && * name != uc
534
+ {
535
535
let mut usage_collector = UsageCollector { cx, did, collected : Vec :: new ( ) } ;
536
536
cx. tcx . hir_walk_toplevel_module ( & mut usage_collector) ;
537
- usage_collector. collected . into_iter ( ) . map ( |span| sub ( span) ) . collect ( )
537
+ Some ( NonUpperCaseGlobalSubUsages {
538
+ spans : usage_collector. collected ,
539
+ replace : uc. clone ( ) ,
540
+ } )
538
541
} else {
539
- vec ! [ ]
542
+ None
540
543
} ;
541
544
542
545
cx. emit_span_lint (
543
546
NON_UPPER_CASE_GLOBALS ,
544
547
ident. span ,
545
- NonUpperCaseGlobal { sort, name, sub : sub ( ident . span ) , usages } ,
548
+ NonUpperCaseGlobal { sort, name, sub, usages } ,
546
549
) ;
547
550
}
548
551
}
0 commit comments