@@ -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
@@ -115,18 +115,19 @@ In the end, the `SessionDiagnostic` derive will generate an implementation of
115115``` rust,ignore
116116impl SessionDiagnostic for FieldAlreadyDeclared {
117117 fn into_diagnostic(self, sess: &'_ rustc_session::Session) -> DiagnosticBuilder<'_> {
118- let mut diag = sess.struct_err_with_code(
119- rustc_errors::DiagnosticMessage::fluent("typeck-field-already-declared"),
120- rustc_errors::DiagnosticId::Error("E0124")
121- );
118+ let mut diag = sess.struct_err(rustc_errors::fluent::typeck::field_already_declared);
122119 diag.set_span(self.span);
123120 diag.span_label(
124121 self.span,
125- rustc_errors::DiagnosticMessage::fluent_attr("typeck-field-already-declared", "label")
122+ rustc_errors::DiagnosticMessage::FluentAttr(
123+ std::borrow::Cow::Borrowed("label")
124+ )
126125 );
127126 diag.span_label(
128127 self.prev_span,
129- rustc_errors::DiagnosticMessage::fluent_attr("typeck-field-already-declared", "previous-decl-label")
128+ rustc_errors::DiagnosticMessage::FluentAttr(
129+ std::borrow::Cow::Borrowed("previous_decl_label")
130+ )
130131 );
131132 diag
132133 }
@@ -258,9 +259,9 @@ In our example, the Fluent message for the "expected return type" label
258259looks like this:
259260
260261``` fluent
261- typeck-expected-default-return-type = expected `()` because of default return type
262+ typeck_expected_default_return_type = expected `()` because of default return type
262263
263- typeck-expected-return-type = expected `{$expected}` because of return type
264+ typeck_expected_return_type = expected `{$expected}` because of return type
264265```
265266
266267Using the ` #[primary_span] ` attribute on a field (with type ` Span ` ) will denote
@@ -304,11 +305,11 @@ impl<'tcx> AddToDiagnostic for ExpectedReturnTypeLabel<'tcx> {
304305 use rustc_errors :: {Applicability , IntoDiagnosticArg };
305306 match self {
306307 ExpectedReturnTypeLabel :: Unit { span } => {
307- diag . span_label (span , DiagnosticMessage :: fluent (" typeck-expected-default-return-type " ))
308+ diag . span_label (span , DiagnosticMessage :: fluent (" typeck_expected_default_return_type " ))
308309 }
309310 ExpectedReturnTypeLabel :: Other { span , expected } => {
310311 diag . set_arg (" expected" , expected );
311- diag . span_label (span , DiagnosticMessage :: fluent (" typeck-expected-return-type " ))
312+ diag . span_label (span , DiagnosticMessage :: fluent (" typeck_expected_return_type " ))
312313 }
313314
314315 }
0 commit comments