@@ -14,7 +14,7 @@ use {rustc_ast as ast, rustc_hir as hir};
1414
1515use crate :: lints:: {
1616 NonCamelCaseType , NonCamelCaseTypeSub , NonSnakeCaseDiag , NonSnakeCaseDiagSub ,
17- NonUpperCaseGlobal , NonUpperCaseGlobalSub ,
17+ NonUpperCaseGlobal , NonUpperCaseGlobalSub , NonUpperCaseGlobalSubUsages ,
1818} ;
1919use crate :: { EarlyContext , EarlyLintPass , LateContext , LateLintPass , LintContext } ;
2020
@@ -497,12 +497,10 @@ impl NonUpperCaseGlobals {
497497
498498 // We cannot provide meaningful suggestions
499499 // 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 }
506504 } ;
507505
508506 struct UsageCollector < ' a , ' tcx > {
@@ -531,18 +529,23 @@ impl NonUpperCaseGlobals {
531529 }
532530 }
533531
534- let usages = if let Some ( did) = did {
532+ let usages = if let Some ( did) = did
533+ && * name != uc
534+ {
535535 let mut usage_collector = UsageCollector { cx, did, collected : Vec :: new ( ) } ;
536536 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+ } )
538541 } else {
539- vec ! [ ]
542+ None
540543 } ;
541544
542545 cx. emit_span_lint (
543546 NON_UPPER_CASE_GLOBALS ,
544547 ident. span ,
545- NonUpperCaseGlobal { sort, name, sub : sub ( ident . span ) , usages } ,
548+ NonUpperCaseGlobal { sort, name, sub, usages } ,
546549 ) ;
547550 }
548551 }
0 commit comments