/// | ^^^^^^^^^^^^^^^^^^^^^^^
/// ```
pub fn span_lint<T: LintContext>(cx: &T, lint: &'static Lint, sp: impl Into<MultiSpan>, msg: &str) {
- cx.struct_span_lint(lint, sp, msg, |diag| {
- docs_link(diag, lint);
- diag
+ cx.struct_span_lint(lint, sp, |diag| {
+ let mut diag = diag.build(msg);
+ docs_link(&mut diag, lint);
+ diag.emit();
});
}
help_span: Option<Span>,
help: &str,
) {
- cx.struct_span_lint(lint, span, msg, |diag| {
+ cx.struct_span_lint(lint, span, |diag| {
+ let mut diag = diag.build(msg);
if let Some(help_span) = help_span {
diag.span_help(help_span, help);
} else {
diag.help(help);
}
- docs_link(diag, lint);
- diag
+ docs_link(&mut diag, lint);
+ diag.emit();
});
}
note_span: Option<Span>,
note: &str,
) {
- cx.struct_span_lint(lint, span, msg, |diag| {
+ cx.struct_span_lint(lint, span, |diag| {
+ let mut diag = diag.build(msg);
if let Some(note_span) = note_span {
diag.span_note(note_span, note);
} else {
diag.note(note);
}
- docs_link(diag, lint);
- diag
+ docs_link(&mut diag, lint);
+ diag.emit();
});
}
S: Into<MultiSpan>,
F: FnOnce(&mut Diagnostic),
{
- cx.struct_span_lint(lint, sp, msg, |diag| {
- f(diag);
- docs_link(diag, lint);
- diag
+ cx.struct_span_lint(lint, sp, |diag| {
+ let mut diag = diag.build(msg);
+ f(&mut diag);
+ docs_link(&mut diag, lint);
+ diag.emit();
});
}
pub fn span_lint_hir(cx: &LateContext<'_>, lint: &'static Lint, hir_id: HirId, sp: Span, msg: &str) {
- cx.tcx.struct_span_lint_hir(lint, hir_id, sp, msg, |diag| {
- docs_link(diag, lint);
- diag
+ cx.tcx.struct_span_lint_hir(lint, hir_id, sp, |diag| {
+ let mut diag = diag.build(msg);
+ docs_link(&mut diag, lint);
+ diag.emit();
});
}
msg: &str,
f: impl FnOnce(&mut Diagnostic),
) {
- cx.tcx.struct_span_lint_hir(lint, hir_id, sp, msg, |diag| {
- f(diag);
- docs_link(diag, lint);
- diag
+ cx.tcx.struct_span_lint_hir(lint, hir_id, sp, |diag| {
+ let mut diag = diag.build(msg);
+ f(&mut diag);
+ docs_link(&mut diag, lint);
+ diag.emit();
});
}