diff options
| author | David Wood <david.wood@huawei.com> | 2022-06-27 14:08:02 +0100 |
|---|---|---|
| committer | David Wood <david.wood@huawei.com> | 2022-06-30 08:59:21 +0100 |
| commit | 2a69640eb2a8086ed848808efaf79c99781a78e5 (patch) | |
| tree | e990e95251a1b75cde6517798dba30f6e6586bac /compiler/rustc_lint/src/enum_intrinsics_non_enums.rs | |
| parent | 0f4c4c5e1842f63ab869d75ea8c891078a64ca55 (diff) | |
| download | rust-2a69640eb2a8086ed848808efaf79c99781a78e5.tar.gz rust-2a69640eb2a8086ed848808efaf79c99781a78e5.zip | |
lint: port enum intrinsics diagnostics
Signed-off-by: David Wood <david.wood@huawei.com>
Diffstat (limited to 'compiler/rustc_lint/src/enum_intrinsics_non_enums.rs')
| -rw-r--r-- | compiler/rustc_lint/src/enum_intrinsics_non_enums.rs | 30 |
1 files changed, 7 insertions, 23 deletions
diff --git a/compiler/rustc_lint/src/enum_intrinsics_non_enums.rs b/compiler/rustc_lint/src/enum_intrinsics_non_enums.rs index c5e15a88fdf..5d212768d0d 100644 --- a/compiler/rustc_lint/src/enum_intrinsics_non_enums.rs +++ b/compiler/rustc_lint/src/enum_intrinsics_non_enums.rs @@ -1,4 +1,5 @@ use crate::{context::LintContext, LateContext, LateLintPass}; +use rustc_errors::fluent; use rustc_hir as hir; use rustc_middle::ty::{fold::TypeFoldable, Ty}; use rustc_span::{symbol::sym, Span}; @@ -51,19 +52,9 @@ fn enforce_mem_discriminant( if is_non_enum(ty_param) { cx.struct_span_lint(ENUM_INTRINSICS_NON_ENUMS, expr_span, |builder| { builder - .build( - "the return value of `mem::discriminant` is \ - unspecified when called with a non-enum type", - ) - .span_note( - args_span, - &format!( - "the argument to `discriminant` should be a \ - reference to an enum, but it was passed \ - a reference to a `{}`, which is not an enum.", - ty_param, - ), - ) + .build(fluent::lint::enum_intrinsics_mem_discriminant) + .set_arg("ty_param", ty_param) + .span_note(args_span, fluent::lint::note) .emit(); }); } @@ -74,16 +65,9 @@ fn enforce_mem_variant_count(cx: &LateContext<'_>, func_expr: &hir::Expr<'_>, sp if is_non_enum(ty_param) { cx.struct_span_lint(ENUM_INTRINSICS_NON_ENUMS, span, |builder| { builder - .build( - "the return value of `mem::variant_count` is \ - unspecified when called with a non-enum type", - ) - .note(&format!( - "the type parameter of `variant_count` should \ - be an enum, but it was instantiated with \ - the type `{}`, which is not an enum.", - ty_param, - )) + .build(fluent::lint::enum_intrinsics_mem_variant) + .set_arg("ty_param", ty_param) + .note(fluent::lint::note) .emit(); }); } |
