lint: port expectation diagnostics

Signed-off-by: David Wood <david.wood@huawei.com>
This commit is contained in:
David Wood 2022-06-27 14:15:31 +01:00
parent 2a69640eb2
commit a0624eb6c9
2 changed files with 6 additions and 2 deletions

View file

@ -12,3 +12,6 @@ lint-enum-intrinsics-mem-discriminant =
lint-enum-intrinsics-mem-variant = lint-enum-intrinsics-mem-variant =
the return value of `mem::variant_count` is unspecified when called with a non-enum type the return value of `mem::variant_count` is unspecified when called with a non-enum type
.note = the type parameter of `variant_count` should be an enum, but it was instantiated with the type `{$ty_param}`, which is not an enum. .note = the type parameter of `variant_count` should be an enum, but it was instantiated with the type `{$ty_param}`, which is not an enum.
lint-expectation = this lint expectation is unfulfilled
.note = the `unfulfilled_lint_expectations` lint can't be expected and will always produce this message

View file

@ -1,4 +1,5 @@
use crate::builtin; use crate::builtin;
use rustc_errors::fluent;
use rustc_hir::HirId; use rustc_hir::HirId;
use rustc_middle::ty::query::Providers; use rustc_middle::ty::query::Providers;
use rustc_middle::{lint::LintExpectation, ty::TyCtxt}; use rustc_middle::{lint::LintExpectation, ty::TyCtxt};
@ -43,13 +44,13 @@ fn emit_unfulfilled_expectation_lint(
hir_id, hir_id,
expectation.emission_span, expectation.emission_span,
|diag| { |diag| {
let mut diag = diag.build("this lint expectation is unfulfilled"); let mut diag = diag.build(fluent::lint::expectation);
if let Some(rationale) = expectation.reason { if let Some(rationale) = expectation.reason {
diag.note(rationale.as_str()); diag.note(rationale.as_str());
} }
if expectation.is_unfulfilled_lint_expectations { if expectation.is_unfulfilled_lint_expectations {
diag.note("the `unfulfilled_lint_expectations` lint can't be expected and will always produce this message"); diag.note(fluent::lint::note);
} }
diag.emit(); diag.emit();