@@ -23,7 +23,7 @@ pub struct FieldAlreadyDeclared {
2323 #[primary_span]
2424 #[label]
2525 pub span: Span,
26- #[label = "previous-decl-label" ]
26+ #[label(typeck::previous_decl_label) ]
2727 pub prev_span: Span,
2828}
2929```
@@ -49,13 +49,13 @@ In our example, the Fluent message for the "field already declared" diagnostic
4949looks like this:
5050
5151``` fluent
52- typeck-field-already-declared =
52+ typeck_field_already_declared =
5353 field `{$field_name}` is already declared
5454 .label = field already declared
55- .previous-decl-label = `{$field_name}` first declared here
55+ .previous_decl_label = `{$field_name}` first declared here
5656```
5757
58- ` typeck-field-already-declared ` is the slug from our example and is followed
58+ ` typeck_field_already_declared ` is the slug from our example and is followed
5959by the diagnostic message.
6060
6161Every field of the ` SessionDiagnostic ` which does not have an annotation is
@@ -75,10 +75,10 @@ type `Span`. Applying any of these attributes will create the corresponding
7575subdiagnostic with that ` Span ` . These attributes will look for their
7676diagnostic message in a Fluent attribute attached to the primary Fluent
7777message. In our example, ` #[label] ` will look for
78- ` typeck-field-already-declared .label` (which has the message "field already
78+ ` typeck_field_already_declared .label` (which has the message "field already
7979declared"). If there is more than one subdiagnostic of the same type, then
8080these attributes can also take a value that is the attribute name to look for
81- (e.g. ` previous-decl-label ` in our example).
81+ (e.g. ` previous_decl_label ` in our example).
8282
8383Other types have special behavior when used in a ` SessionDiagnostic ` derive:
8484
@@ -116,17 +116,24 @@ In the end, the `SessionDiagnostic` derive will generate an implementation of
116116impl SessionDiagnostic for FieldAlreadyDeclared {
117117 fn into_diagnostic(self, sess: &'_ rustc_session::Session) -> DiagnosticBuilder<'_> {
118118 let mut diag = sess.struct_err_with_code(
119- rustc_errors::DiagnosticMessage::fluent("typeck-field-already-declared"),
119+ rustc_errors::DiagnosticMessage::Identifier(
120+ std::borrow::Cow::Borrowed("typeck_field_already_declared"),
121+ None
122+ ),
120123 rustc_errors::DiagnosticId::Error("E0124")
121124 );
122125 diag.set_span(self.span);
123126 diag.span_label(
124127 self.span,
125- rustc_errors::DiagnosticMessage::fluent_attr("typeck-field-already-declared", "label")
128+ rustc_errors::DiagnosticMessage::FluentAttr(
129+ std::borrow::Cow::Borrowed("label")
130+ )
126131 );
127132 diag.span_label(
128133 self.prev_span,
129- rustc_errors::DiagnosticMessage::fluent_attr("typeck-field-already-declared", "previous-decl-label")
134+ rustc_errors::DiagnosticMessage::FluentAttr(
135+ std::borrow::Cow::Borrowed("previous_decl_label")
136+ )
130137 );
131138 diag
132139 }
@@ -258,9 +265,9 @@ In our example, the Fluent message for the "expected return type" label
258265looks like this:
259266
260267``` fluent
261- typeck-expected-default-return-type = expected `()` because of default return type
268+ typeck_expected_default_return_type = expected `()` because of default return type
262269
263- typeck-expected-return-type = expected `{$expected}` because of return type
270+ typeck_expected_return_type = expected `{$expected}` because of return type
264271```
265272
266273Using the ` #[primary_span] ` attribute on a field (with type ` Span ` ) will denote
@@ -304,11 +311,11 @@ impl<'tcx> AddToDiagnostic for ExpectedReturnTypeLabel<'tcx> {
304311 use rustc_errors :: {Applicability , IntoDiagnosticArg };
305312 match self {
306313 ExpectedReturnTypeLabel :: Unit { span } => {
307- diag . span_label (span , DiagnosticMessage :: fluent (" typeck-expected-default-return-type " ))
314+ diag . span_label (span , DiagnosticMessage :: fluent (" typeck_expected_default_return_type " ))
308315 }
309316 ExpectedReturnTypeLabel :: Other { span , expected } => {
310317 diag . set_arg (" expected" , expected );
311- diag . span_label (span , DiagnosticMessage :: fluent (" typeck-expected-return-type " ))
318+ diag . span_label (span , DiagnosticMessage :: fluent (" typeck_expected_return_type " ))
312319 }
313320
314321 }
0 commit comments