@@ -46,10 +46,9 @@ fn docs_link(diag: &mut Diagnostic, lint: &'static Lint) {
4646/// | ^^^^^^^^^^^^^^^^^^^^^^^
4747/// ```
4848pub fn span_lint < T : LintContext > ( cx : & T , lint : & ' static Lint , sp : impl Into < MultiSpan > , msg : & str ) {
49- cx. struct_span_lint ( lint, sp, |diag| {
50- let mut diag = diag. build ( msg) ;
51- docs_link ( & mut diag, lint) ;
52- diag. emit ( ) ;
49+ cx. struct_span_lint ( lint, sp, msg, |diag| {
50+ docs_link ( diag, lint) ;
51+ diag
5352 } ) ;
5453}
5554
@@ -81,15 +80,14 @@ pub fn span_lint_and_help<'a, T: LintContext>(
8180 help_span : Option < Span > ,
8281 help : & str ,
8382) {
84- cx. struct_span_lint ( lint, span, |diag| {
85- let mut diag = diag. build ( msg) ;
83+ cx. struct_span_lint ( lint, span, msg, |diag| {
8684 if let Some ( help_span) = help_span {
8785 diag. span_help ( help_span, help) ;
8886 } else {
8987 diag. help ( help) ;
9088 }
91- docs_link ( & mut diag, lint) ;
92- diag. emit ( ) ;
89+ docs_link ( diag, lint) ;
90+ diag
9391 } ) ;
9492}
9593
@@ -124,15 +122,14 @@ pub fn span_lint_and_note<'a, T: LintContext>(
124122 note_span : Option < Span > ,
125123 note : & str ,
126124) {
127- cx. struct_span_lint ( lint, span, |diag| {
128- let mut diag = diag. build ( msg) ;
125+ cx. struct_span_lint ( lint, span, msg, |diag| {
129126 if let Some ( note_span) = note_span {
130127 diag. span_note ( note_span, note) ;
131128 } else {
132129 diag. note ( note) ;
133130 }
134- docs_link ( & mut diag, lint) ;
135- diag. emit ( ) ;
131+ docs_link ( diag, lint) ;
132+ diag
136133 } ) ;
137134}
138135
@@ -146,19 +143,17 @@ where
146143 S : Into < MultiSpan > ,
147144 F : FnOnce ( & mut Diagnostic ) ,
148145{
149- cx. struct_span_lint ( lint, sp, |diag| {
150- let mut diag = diag. build ( msg) ;
151- f ( & mut diag) ;
152- docs_link ( & mut diag, lint) ;
153- diag. emit ( ) ;
146+ cx. struct_span_lint ( lint, sp, msg, |diag| {
147+ f ( diag) ;
148+ docs_link ( diag, lint) ;
149+ diag
154150 } ) ;
155151}
156152
157153pub fn span_lint_hir ( cx : & LateContext < ' _ > , lint : & ' static Lint , hir_id : HirId , sp : Span , msg : & str ) {
158- cx. tcx . struct_span_lint_hir ( lint, hir_id, sp, |diag| {
159- let mut diag = diag. build ( msg) ;
160- docs_link ( & mut diag, lint) ;
161- diag. emit ( ) ;
154+ cx. tcx . struct_span_lint_hir ( lint, hir_id, sp, msg, |diag| {
155+ docs_link ( diag, lint) ;
156+ diag
162157 } ) ;
163158}
164159
@@ -170,11 +165,10 @@ pub fn span_lint_hir_and_then(
170165 msg : & str ,
171166 f : impl FnOnce ( & mut Diagnostic ) ,
172167) {
173- cx. tcx . struct_span_lint_hir ( lint, hir_id, sp, |diag| {
174- let mut diag = diag. build ( msg) ;
175- f ( & mut diag) ;
176- docs_link ( & mut diag, lint) ;
177- diag. emit ( ) ;
168+ cx. tcx . struct_span_lint_hir ( lint, hir_id, sp, msg, |diag| {
169+ f ( diag) ;
170+ docs_link ( diag, lint) ;
171+ diag
178172 } ) ;
179173}
180174
0 commit comments