1
Fork 0

fix and bless ui tests 1/2

This commit is contained in:
Deadbeef 2023-04-03 14:36:50 +00:00
parent af74ef8993
commit fc01b4b63c
5 changed files with 289 additions and 272 deletions

View file

@ -214,10 +214,15 @@ impl<'a> DiagnosticDeriveVariantBuilder<'a> {
if path.is_ident("code") { if path.is_ident("code") {
self.code.set_once((), path.span().unwrap()); self.code.set_once((), path.span().unwrap());
let code = nested.parse::<TokenStream>()?; let code = nested.parse::<syn::LitStr>()?;
tokens.extend(quote! { tokens.extend(quote! {
#diag.code(rustc_errors::DiagnosticId::Error(#code.to_string())); #diag.code(rustc_errors::DiagnosticId::Error(#code.to_string()));
}); });
} else {
span_err(path.span().unwrap(), "unknown argument").note("only the `code` parameter is valid after the slug").emit();
// consume the buffer so we don't have syntax errors from syn
let _ = nested.parse::<TokenStream>();
} }
Ok(()) Ok(())
})?; })?;

View file

@ -716,6 +716,9 @@ impl SubdiagnosticKind {
} }
} }
let mut has_errors = false;
let input = nested.input;
match (nested_name, &mut kind) { match (nested_name, &mut kind) {
("code", SubdiagnosticKind::Suggestion { code_field, .. }) => { ("code", SubdiagnosticKind::Suggestion { code_field, .. }) => {
let code_init = build_suggestion_code( let code_init = build_suggestion_code(
@ -734,6 +737,7 @@ impl SubdiagnosticKind {
let value = get_string!(); let value = get_string!();
let value = Applicability::from_str(&value.value()).unwrap_or_else(|()| { let value = Applicability::from_str(&value.value()).unwrap_or_else(|()| {
span_err(value.span().unwrap(), "invalid applicability").emit(); span_err(value.span().unwrap(), "invalid applicability").emit();
has_errors = true;
Applicability::Unspecified Applicability::Unspecified
}); });
applicability.set_once(value, span); applicability.set_once(value, span);
@ -749,6 +753,7 @@ impl SubdiagnosticKind {
span_err(value.span().unwrap(), "invalid suggestion style") span_err(value.span().unwrap(), "invalid suggestion style")
.help("valid styles are `normal`, `short`, `hidden`, `verbose` and `tool-only`") .help("valid styles are `normal`, `short`, `hidden`, `verbose` and `tool-only`")
.emit(); .emit();
has_errors = true;
SuggestionKind::Normal SuggestionKind::Normal
}); });
@ -762,17 +767,25 @@ impl SubdiagnosticKind {
"only `style`, `code` and `applicability` are valid nested attributes", "only `style`, `code` and `applicability` are valid nested attributes",
) )
.emit(); .emit();
has_errors = true;
} }
(_, SubdiagnosticKind::MultipartSuggestion { .. }) => { (_, SubdiagnosticKind::MultipartSuggestion { .. }) => {
span_err(path_span, "invalid nested attribute") span_err(path_span, "invalid nested attribute")
.help("only `style` and `applicability` are valid nested attributes") .help("only `style` and `applicability` are valid nested attributes")
.emit(); .emit();
has_errors = true;
} }
_ => { _ => {
span_err(path_span, "invalid nested attribute").emit(); span_err(path_span, "invalid nested attribute").emit();
has_errors = true;
} }
} }
if has_errors {
// Consume the rest of the input to avoid spamming errors
let _ = input.parse::<TokenStream>();
}
Ok(()) Ok(())
})?; })?;

View file

@ -50,7 +50,7 @@ enum DiagnosticOnEnum {
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(no_crate_example, code = "E0123")] #[diag(no_crate_example, code = "E0123")]
#[diag = "E0123"] #[diag = "E0123"]
//~^ ERROR `#[diag = ...]` is not a valid attribute //~^ ERROR expected parentheses: #[diag(...)]
struct WrongStructAttrStyle {} struct WrongStructAttrStyle {}
#[derive(Diagnostic)] #[derive(Diagnostic)]
@ -62,8 +62,7 @@ struct InvalidStructAttr {}
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag("E0123")] #[diag("E0123")]
//~^ ERROR `#[diag("...")]` is not a valid attribute //~^ ERROR diagnostic slug not specified
//~^^ ERROR diagnostic slug not specified
struct InvalidLitNestedAttr {} struct InvalidLitNestedAttr {}
#[derive(Diagnostic)] #[derive(Diagnostic)]
@ -73,27 +72,25 @@ struct InvalidNestedStructAttr {}
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(nonsense("foo"), code = "E0123", slug = "foo")] #[diag(nonsense("foo"), code = "E0123", slug = "foo")]
//~^ ERROR `#[diag(nonsense(...))]` is not a valid attribute //~^ ERROR diagnostic slug must be the first argument
//~^^ ERROR diagnostic slug not specified //~| ERROR diagnostic slug not specified
struct InvalidNestedStructAttr1 {} struct InvalidNestedStructAttr1 {}
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(nonsense = "...", code = "E0123", slug = "foo")] #[diag(nonsense = "...", code = "E0123", slug = "foo")]
//~^ ERROR `#[diag(nonsense = ...)]` is not a valid attribute //~^ ERROR unknown argument
//~| ERROR `#[diag(slug = ...)]` is not a valid attribute
//~| ERROR diagnostic slug not specified //~| ERROR diagnostic slug not specified
struct InvalidNestedStructAttr2 {} struct InvalidNestedStructAttr2 {}
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(nonsense = 4, code = "E0123", slug = "foo")] #[diag(nonsense = 4, code = "E0123", slug = "foo")]
//~^ ERROR `#[diag(nonsense = ...)]` is not a valid attribute //~^ ERROR unknown argument
//~| ERROR `#[diag(slug = ...)]` is not a valid attribute
//~| ERROR diagnostic slug not specified //~| ERROR diagnostic slug not specified
struct InvalidNestedStructAttr3 {} struct InvalidNestedStructAttr3 {}
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(no_crate_example, code = "E0123", slug = "foo")] #[diag(no_crate_example, code = "E0123", slug = "foo")]
//~^ ERROR `#[diag(slug = ...)]` is not a valid attribute //~^ ERROR unknown argument
struct InvalidNestedStructAttr4 {} struct InvalidNestedStructAttr4 {}
#[derive(Diagnostic)] #[derive(Diagnostic)]
@ -118,7 +115,7 @@ struct CodeSpecifiedTwice {}
#[derive(Diagnostic)] #[derive(Diagnostic)]
#[diag(no_crate_example, no_crate::example, code = "E0456")] #[diag(no_crate_example, no_crate::example, code = "E0456")]
//~^ ERROR `#[diag(no_crate::example)]` is not a valid attribute //~^ ERROR diagnostic slug must be the first argument
struct SlugSpecifiedTwice {} struct SlugSpecifiedTwice {}
#[derive(Diagnostic)] #[derive(Diagnostic)]
@ -232,7 +229,7 @@ struct SuggestWithoutCode {
#[diag(no_crate_example, code = "E0123")] #[diag(no_crate_example, code = "E0123")]
struct SuggestWithBadKey { struct SuggestWithBadKey {
#[suggestion(nonsense = "bar")] #[suggestion(nonsense = "bar")]
//~^ ERROR `#[suggestion(nonsense = ...)]` is not a valid attribute //~^ ERROR invalid nested attribute
//~| ERROR suggestion without `code = "..."` //~| ERROR suggestion without `code = "..."`
suggestion: (Span, Applicability), suggestion: (Span, Applicability),
} }
@ -241,7 +238,7 @@ struct SuggestWithBadKey {
#[diag(no_crate_example, code = "E0123")] #[diag(no_crate_example, code = "E0123")]
struct SuggestWithShorthandMsg { struct SuggestWithShorthandMsg {
#[suggestion(msg = "bar")] #[suggestion(msg = "bar")]
//~^ ERROR `#[suggestion(msg = ...)]` is not a valid attribute //~^ ERROR invalid nested attribute
//~| ERROR suggestion without `code = "..."` //~| ERROR suggestion without `code = "..."`
suggestion: (Span, Applicability), suggestion: (Span, Applicability),
} }
@ -530,7 +527,7 @@ struct BoolField {
#[diag(no_crate_example, code = "E0123")] #[diag(no_crate_example, code = "E0123")]
struct LabelWithTrailingPath { struct LabelWithTrailingPath {
#[label(no_crate_label, foo)] #[label(no_crate_label, foo)]
//~^ ERROR `#[label(foo)]` is not a valid attribute //~^ ERROR a diagnostic slug must be the first argument to the attribute
span: Span, span: Span,
} }
@ -538,7 +535,7 @@ struct LabelWithTrailingPath {
#[diag(no_crate_example, code = "E0123")] #[diag(no_crate_example, code = "E0123")]
struct LabelWithTrailingNameValue { struct LabelWithTrailingNameValue {
#[label(no_crate_label, foo = "...")] #[label(no_crate_label, foo = "...")]
//~^ ERROR `#[label(foo = ...)]` is not a valid attribute //~^ ERROR invalid nested attribute
span: Span, span: Span,
} }
@ -546,7 +543,7 @@ struct LabelWithTrailingNameValue {
#[diag(no_crate_example, code = "E0123")] #[diag(no_crate_example, code = "E0123")]
struct LabelWithTrailingList { struct LabelWithTrailingList {
#[label(no_crate_label, foo("..."))] #[label(no_crate_label, foo("..."))]
//~^ ERROR `#[label(foo(...))]` is not a valid attribute //~^ ERROR invalid nested attribute
span: Span, span: Span,
} }
@ -643,8 +640,8 @@ struct MissingCodeInSuggestion {
//~^ ERROR `#[multipart_suggestion(...)]` is not a valid attribute //~^ ERROR `#[multipart_suggestion(...)]` is not a valid attribute
//~| ERROR cannot find attribute `multipart_suggestion` in this scope //~| ERROR cannot find attribute `multipart_suggestion` in this scope
#[multipart_suggestion()] #[multipart_suggestion()]
//~^ ERROR `#[multipart_suggestion(...)]` is not a valid attribute //~^ ERROR cannot find attribute `multipart_suggestion` in this scope
//~| ERROR cannot find attribute `multipart_suggestion` in this scope //~| ERROR unexpected end of input, unexpected token in nested attribute, expected ident
struct MultipartSuggestion { struct MultipartSuggestion {
#[multipart_suggestion(no_crate_suggestion)] #[multipart_suggestion(no_crate_suggestion)]
//~^ ERROR `#[multipart_suggestion(...)]` is not a valid attribute //~^ ERROR `#[multipart_suggestion(...)]` is not a valid attribute
@ -698,7 +695,7 @@ struct RawIdentDiagnosticArg {
#[diag(no_crate_example)] #[diag(no_crate_example)]
struct SubdiagnosticBad { struct SubdiagnosticBad {
#[subdiagnostic(bad)] #[subdiagnostic(bad)]
//~^ ERROR `#[subdiagnostic(...)]` is not a valid attribute //~^ ERROR `eager` is the only supported nested attribute for `subdiagnostic`
note: Note, note: Note,
} }
@ -714,7 +711,7 @@ struct SubdiagnosticBadStr {
#[diag(no_crate_example)] #[diag(no_crate_example)]
struct SubdiagnosticBadTwice { struct SubdiagnosticBadTwice {
#[subdiagnostic(bad, bad)] #[subdiagnostic(bad, bad)]
//~^ ERROR `#[subdiagnostic(...)]` is not a valid attribute //~^ ERROR `eager` is the only supported nested attribute for `subdiagnostic`
note: Note, note: Note,
} }
@ -722,7 +719,7 @@ struct SubdiagnosticBadTwice {
#[diag(no_crate_example)] #[diag(no_crate_example)]
struct SubdiagnosticBadLitStr { struct SubdiagnosticBadLitStr {
#[subdiagnostic("bad")] #[subdiagnostic("bad")]
//~^ ERROR `#[subdiagnostic(...)]` is not a valid attribute //~^ ERROR `eager` is the only supported nested attribute for `subdiagnostic`
note: Note, note: Note,
} }
@ -797,14 +794,15 @@ struct SuggestionsNoItem {
struct SuggestionsInvalidItem { struct SuggestionsInvalidItem {
#[suggestion(code(foo))] #[suggestion(code(foo))]
//~^ ERROR `code(...)` must contain only string literals //~^ ERROR `code(...)` must contain only string literals
//~| ERROR unexpected token
sub: Span, sub: Span,
} }
#[derive(Diagnostic)] #[derive(Diagnostic)] //~ ERROR cannot find value `__code_34` in this scope
#[diag(no_crate_example)] #[diag(no_crate_example)]
struct SuggestionsInvalidLiteral { struct SuggestionsInvalidLiteral {
#[suggestion(code = 3)] #[suggestion(code = 3)]
//~^ ERROR `code = "..."`/`code(...)` must contain only string literals //~^ ERROR expected string literal
sub: Span, sub: Span,
} }

View file

@ -20,11 +20,11 @@ LL | Bar,
| |
= help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]` = help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]`
error: `#[diag = ...]` is not a valid attribute error: expected parentheses: #[diag(...)]
--> $DIR/diagnostic-derive.rs:52:1 --> $DIR/diagnostic-derive.rs:52:8
| |
LL | #[diag = "E0123"] LL | #[diag = "E0123"]
| ^^^^^^^^^^^^^^^^^ | ^
error: `#[nonsense(...)]` is not a valid attribute error: `#[nonsense(...)]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:57:1 --> $DIR/diagnostic-derive.rs:57:1
@ -44,35 +44,24 @@ LL | | struct InvalidStructAttr {}
| |
= help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]` = help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]`
error: `#[diag("...")]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:64:8
|
LL | #[diag("E0123")]
| ^^^^^^^
|
= help: a diagnostic slug is required as the first argument
error: diagnostic slug not specified error: diagnostic slug not specified
--> $DIR/diagnostic-derive.rs:64:1 --> $DIR/diagnostic-derive.rs:64:1
| |
LL | / #[diag("E0123")] LL | / #[diag("E0123")]
LL | | LL | |
LL | |
LL | | struct InvalidLitNestedAttr {} LL | | struct InvalidLitNestedAttr {}
| |______________________________^ | |______________________________^
| |
= help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]` = help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]`
error: `#[diag(nonsense(...))]` is not a valid attribute error: diagnostic slug must be the first argument
--> $DIR/diagnostic-derive.rs:75:8 --> $DIR/diagnostic-derive.rs:74:16
| |
LL | #[diag(nonsense("foo"), code = "E0123", slug = "foo")] LL | #[diag(nonsense("foo"), code = "E0123", slug = "foo")]
| ^^^^^^^^^^^^^^^ | ^
|
= help: a diagnostic slug is required as the first argument
error: diagnostic slug not specified error: diagnostic slug not specified
--> $DIR/diagnostic-derive.rs:75:1 --> $DIR/diagnostic-derive.rs:74:1
| |
LL | / #[diag(nonsense("foo"), code = "E0123", slug = "foo")] LL | / #[diag(nonsense("foo"), code = "E0123", slug = "foo")]
LL | | LL | |
@ -82,120 +71,102 @@ LL | | struct InvalidNestedStructAttr1 {}
| |
= help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]` = help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]`
error: `#[diag(nonsense = ...)]` is not a valid attribute error: unknown argument
--> $DIR/diagnostic-derive.rs:81:8 --> $DIR/diagnostic-derive.rs:80:8
| |
LL | #[diag(nonsense = "...", code = "E0123", slug = "foo")] LL | #[diag(nonsense = "...", code = "E0123", slug = "foo")]
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^
| |
= help: only `code` is a valid nested attributes following the slug = note: only the `code` parameter is valid after the slug
error: `#[diag(slug = ...)]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:81:42
|
LL | #[diag(nonsense = "...", code = "E0123", slug = "foo")]
| ^^^^^^^^^^^^
|
= help: only `code` is a valid nested attributes following the slug
error: diagnostic slug not specified error: diagnostic slug not specified
--> $DIR/diagnostic-derive.rs:81:1 --> $DIR/diagnostic-derive.rs:80:1
| |
LL | / #[diag(nonsense = "...", code = "E0123", slug = "foo")] LL | / #[diag(nonsense = "...", code = "E0123", slug = "foo")]
LL | | LL | |
LL | | LL | |
LL | |
LL | | struct InvalidNestedStructAttr2 {} LL | | struct InvalidNestedStructAttr2 {}
| |__________________________________^ | |__________________________________^
| |
= help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]` = help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]`
error: `#[diag(nonsense = ...)]` is not a valid attribute error: unknown argument
--> $DIR/diagnostic-derive.rs:88:8 --> $DIR/diagnostic-derive.rs:86:8
| |
LL | #[diag(nonsense = 4, code = "E0123", slug = "foo")] LL | #[diag(nonsense = 4, code = "E0123", slug = "foo")]
| ^^^^^^^^^^^^ | ^^^^^^^^
error: `#[diag(slug = ...)]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:88:38
| |
LL | #[diag(nonsense = 4, code = "E0123", slug = "foo")] = note: only the `code` parameter is valid after the slug
| ^^^^^^^^^^^^
|
= help: only `code` is a valid nested attributes following the slug
error: diagnostic slug not specified error: diagnostic slug not specified
--> $DIR/diagnostic-derive.rs:88:1 --> $DIR/diagnostic-derive.rs:86:1
| |
LL | / #[diag(nonsense = 4, code = "E0123", slug = "foo")] LL | / #[diag(nonsense = 4, code = "E0123", slug = "foo")]
LL | | LL | |
LL | | LL | |
LL | |
LL | | struct InvalidNestedStructAttr3 {} LL | | struct InvalidNestedStructAttr3 {}
| |__________________________________^ | |__________________________________^
| |
= help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]` = help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]`
error: `#[diag(slug = ...)]` is not a valid attribute error: unknown argument
--> $DIR/diagnostic-derive.rs:95:42 --> $DIR/diagnostic-derive.rs:92:42
| |
LL | #[diag(no_crate_example, code = "E0123", slug = "foo")] LL | #[diag(no_crate_example, code = "E0123", slug = "foo")]
| ^^^^^^^^^^^^ | ^^^^
| |
= help: only `code` is a valid nested attributes following the slug = note: only the `code` parameter is valid after the slug
error: `#[suggestion = ...]` is not a valid attribute error: `#[suggestion = ...]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:102:5 --> $DIR/diagnostic-derive.rs:99:5
| |
LL | #[suggestion = "bar"] LL | #[suggestion = "bar"]
| ^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^
error: specified multiple times error: specified multiple times
--> $DIR/diagnostic-derive.rs:109:8 --> $DIR/diagnostic-derive.rs:106:8
| |
LL | #[diag(no_crate_example, code = "E0456")] LL | #[diag(no_crate_example, code = "E0456")]
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
| |
note: previously specified here note: previously specified here
--> $DIR/diagnostic-derive.rs:108:8 --> $DIR/diagnostic-derive.rs:105:8
| |
LL | #[diag(no_crate_example, code = "E0123")] LL | #[diag(no_crate_example, code = "E0123")]
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
error: specified multiple times error: specified multiple times
--> $DIR/diagnostic-derive.rs:109:33 --> $DIR/diagnostic-derive.rs:106:26
| |
LL | #[diag(no_crate_example, code = "E0456")] LL | #[diag(no_crate_example, code = "E0456")]
| ^^^^^^^ | ^^^^
| |
note: previously specified here note: previously specified here
--> $DIR/diagnostic-derive.rs:108:33 --> $DIR/diagnostic-derive.rs:105:26
| |
LL | #[diag(no_crate_example, code = "E0123")] LL | #[diag(no_crate_example, code = "E0123")]
| ^^^^^^^ | ^^^^
error: specified multiple times error: specified multiple times
--> $DIR/diagnostic-derive.rs:115:49 --> $DIR/diagnostic-derive.rs:112:42
| |
LL | #[diag(no_crate_example, code = "E0456", code = "E0457")] LL | #[diag(no_crate_example, code = "E0456", code = "E0457")]
| ^^^^^^^ | ^^^^
| |
note: previously specified here note: previously specified here
--> $DIR/diagnostic-derive.rs:115:33 --> $DIR/diagnostic-derive.rs:112:26
| |
LL | #[diag(no_crate_example, code = "E0456", code = "E0457")] LL | #[diag(no_crate_example, code = "E0456", code = "E0457")]
| ^^^^^^^ | ^^^^
error: `#[diag(no_crate::example)]` is not a valid attribute error: diagnostic slug must be the first argument
--> $DIR/diagnostic-derive.rs:120:26 --> $DIR/diagnostic-derive.rs:117:43
| |
LL | #[diag(no_crate_example, no_crate::example, code = "E0456")] LL | #[diag(no_crate_example, no_crate::example, code = "E0456")]
| ^^^^^^^^^^^^^^^^^ | ^
|
= help: diagnostic slug must be the first argument
error: diagnostic slug not specified error: diagnostic slug not specified
--> $DIR/diagnostic-derive.rs:125:1 --> $DIR/diagnostic-derive.rs:122:1
| |
LL | struct KindNotProvided {} LL | struct KindNotProvided {}
| ^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^
@ -203,7 +174,7 @@ LL | struct KindNotProvided {}
= help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]` = help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]`
error: diagnostic slug not specified error: diagnostic slug not specified
--> $DIR/diagnostic-derive.rs:128:1 --> $DIR/diagnostic-derive.rs:125:1
| |
LL | / #[diag(code = "E0456")] LL | / #[diag(code = "E0456")]
LL | | LL | |
@ -213,31 +184,31 @@ LL | | struct SlugNotProvided {}
= help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]` = help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]`
error: the `#[primary_span]` attribute can only be applied to fields of type `Span` or `MultiSpan` error: the `#[primary_span]` attribute can only be applied to fields of type `Span` or `MultiSpan`
--> $DIR/diagnostic-derive.rs:139:5 --> $DIR/diagnostic-derive.rs:136:5
| |
LL | #[primary_span] LL | #[primary_span]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
error: `#[nonsense]` is not a valid attribute error: `#[nonsense]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:147:5 --> $DIR/diagnostic-derive.rs:144:5
| |
LL | #[nonsense] LL | #[nonsense]
| ^^^^^^^^^^^ | ^^^^^^^^^^^
error: the `#[label(...)]` attribute can only be applied to fields of type `Span` or `MultiSpan` error: the `#[label(...)]` attribute can only be applied to fields of type `Span` or `MultiSpan`
--> $DIR/diagnostic-derive.rs:164:5 --> $DIR/diagnostic-derive.rs:161:5
| |
LL | #[label(no_crate_label)] LL | #[label(no_crate_label)]
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
error: `name` doesn't refer to a field on this type error: `name` doesn't refer to a field on this type
--> $DIR/diagnostic-derive.rs:172:46 --> $DIR/diagnostic-derive.rs:169:46
| |
LL | #[suggestion(no_crate_suggestion, code = "{name}")] LL | #[suggestion(no_crate_suggestion, code = "{name}")]
| ^^^^^^^^ | ^^^^^^^^
error: invalid format string: expected `'}'` but string was terminated error: invalid format string: expected `'}'` but string was terminated
--> $DIR/diagnostic-derive.rs:177:10 --> $DIR/diagnostic-derive.rs:174:10
| |
LL | #[derive(Diagnostic)] LL | #[derive(Diagnostic)]
| ^^^^^^^^^^ expected `'}'` in format string | ^^^^^^^^^^ expected `'}'` in format string
@ -246,7 +217,7 @@ LL | #[derive(Diagnostic)]
= note: this error originates in the derive macro `Diagnostic` (in Nightly builds, run with -Z macro-backtrace for more info) = note: this error originates in the derive macro `Diagnostic` (in Nightly builds, run with -Z macro-backtrace for more info)
error: invalid format string: unmatched `}` found error: invalid format string: unmatched `}` found
--> $DIR/diagnostic-derive.rs:187:10 --> $DIR/diagnostic-derive.rs:184:10
| |
LL | #[derive(Diagnostic)] LL | #[derive(Diagnostic)]
| ^^^^^^^^^^ unmatched `}` in format string | ^^^^^^^^^^ unmatched `}` in format string
@ -255,47 +226,47 @@ LL | #[derive(Diagnostic)]
= note: this error originates in the derive macro `Diagnostic` (in Nightly builds, run with -Z macro-backtrace for more info) = note: this error originates in the derive macro `Diagnostic` (in Nightly builds, run with -Z macro-backtrace for more info)
error: the `#[label(...)]` attribute can only be applied to fields of type `Span` or `MultiSpan` error: the `#[label(...)]` attribute can only be applied to fields of type `Span` or `MultiSpan`
--> $DIR/diagnostic-derive.rs:207:5 --> $DIR/diagnostic-derive.rs:204:5
| |
LL | #[label(no_crate_label)] LL | #[label(no_crate_label)]
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
error: suggestion without `code = "..."` error: suggestion without `code = "..."`
--> $DIR/diagnostic-derive.rs:226:5 --> $DIR/diagnostic-derive.rs:223:5
| |
LL | #[suggestion(no_crate_suggestion)] LL | #[suggestion(no_crate_suggestion)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: `#[suggestion(nonsense = ...)]` is not a valid attribute error: invalid nested attribute
--> $DIR/diagnostic-derive.rs:234:18 --> $DIR/diagnostic-derive.rs:231:18
| |
LL | #[suggestion(nonsense = "bar")] LL | #[suggestion(nonsense = "bar")]
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^
| |
= help: only `style`, `code` and `applicability` are valid nested attributes = help: only `style`, `code` and `applicability` are valid nested attributes
error: suggestion without `code = "..."` error: suggestion without `code = "..."`
--> $DIR/diagnostic-derive.rs:234:5 --> $DIR/diagnostic-derive.rs:231:5
| |
LL | #[suggestion(nonsense = "bar")] LL | #[suggestion(nonsense = "bar")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: `#[suggestion(msg = ...)]` is not a valid attribute error: invalid nested attribute
--> $DIR/diagnostic-derive.rs:243:18 --> $DIR/diagnostic-derive.rs:240:18
| |
LL | #[suggestion(msg = "bar")] LL | #[suggestion(msg = "bar")]
| ^^^^^^^^^^^ | ^^^
| |
= help: only `style`, `code` and `applicability` are valid nested attributes = help: only `style`, `code` and `applicability` are valid nested attributes
error: suggestion without `code = "..."` error: suggestion without `code = "..."`
--> $DIR/diagnostic-derive.rs:243:5 --> $DIR/diagnostic-derive.rs:240:5
| |
LL | #[suggestion(msg = "bar")] LL | #[suggestion(msg = "bar")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^
error: wrong field type for suggestion error: wrong field type for suggestion
--> $DIR/diagnostic-derive.rs:266:5 --> $DIR/diagnostic-derive.rs:263:5
| |
LL | / #[suggestion(no_crate_suggestion, code = "This is suggested code")] LL | / #[suggestion(no_crate_suggestion, code = "This is suggested code")]
LL | | LL | |
@ -305,81 +276,79 @@ LL | | suggestion: Applicability,
= help: `#[suggestion(...)]` should be applied to fields of type `Span` or `(Span, Applicability)` = help: `#[suggestion(...)]` should be applied to fields of type `Span` or `(Span, Applicability)`
error: specified multiple times error: specified multiple times
--> $DIR/diagnostic-derive.rs:282:24 --> $DIR/diagnostic-derive.rs:279:24
| |
LL | suggestion: (Span, Span, Applicability), LL | suggestion: (Span, Span, Applicability),
| ^^^^ | ^^^^
| |
note: previously specified here note: previously specified here
--> $DIR/diagnostic-derive.rs:282:18 --> $DIR/diagnostic-derive.rs:279:18
| |
LL | suggestion: (Span, Span, Applicability), LL | suggestion: (Span, Span, Applicability),
| ^^^^ | ^^^^
error: specified multiple times error: specified multiple times
--> $DIR/diagnostic-derive.rs:290:33 --> $DIR/diagnostic-derive.rs:287:33
| |
LL | suggestion: (Applicability, Applicability, Span), LL | suggestion: (Applicability, Applicability, Span),
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
| |
note: previously specified here note: previously specified here
--> $DIR/diagnostic-derive.rs:290:18 --> $DIR/diagnostic-derive.rs:287:18
| |
LL | suggestion: (Applicability, Applicability, Span), LL | suggestion: (Applicability, Applicability, Span),
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
error: `#[label = ...]` is not a valid attribute error: `#[label = ...]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:297:5 --> $DIR/diagnostic-derive.rs:294:5
| |
LL | #[label = "bar"] LL | #[label = "bar"]
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
error: specified multiple times error: specified multiple times
--> $DIR/diagnostic-derive.rs:448:53 --> $DIR/diagnostic-derive.rs:445:5
| |
LL | #[suggestion(no_crate_suggestion, code = "...", applicability = "maybe-incorrect")] LL | #[suggestion(no_crate_suggestion, code = "...", applicability = "maybe-incorrect")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
note: previously specified here note: previously specified here
--> $DIR/diagnostic-derive.rs:450:24 --> $DIR/diagnostic-derive.rs:447:24
| |
LL | suggestion: (Span, Applicability), LL | suggestion: (Span, Applicability),
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
error: invalid applicability error: invalid applicability
--> $DIR/diagnostic-derive.rs:456:53 --> $DIR/diagnostic-derive.rs:453:69
| |
LL | #[suggestion(no_crate_suggestion, code = "...", applicability = "batman")] LL | #[suggestion(no_crate_suggestion, code = "...", applicability = "batman")]
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^
error: the `#[help(...)]` attribute can only be applied to fields of type `Span`, `bool` or `()` error: the `#[help(...)]` attribute can only be applied to fields of type `Span`, `bool` or `()`
--> $DIR/diagnostic-derive.rs:523:5 --> $DIR/diagnostic-derive.rs:520:5
| |
LL | #[help(no_crate_help)] LL | #[help(no_crate_help)]
| ^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^
error: `#[label(foo)]` is not a valid attribute error: a diagnostic slug must be the first argument to the attribute
--> $DIR/diagnostic-derive.rs:532:29 --> $DIR/diagnostic-derive.rs:529:32
| |
LL | #[label(no_crate_label, foo)] LL | #[label(no_crate_label, foo)]
| ^^^ | ^
|
= help: a diagnostic slug must be the first argument to the attribute
error: `#[label(foo = ...)]` is not a valid attribute error: invalid nested attribute
--> $DIR/diagnostic-derive.rs:540:29 --> $DIR/diagnostic-derive.rs:537:29
| |
LL | #[label(no_crate_label, foo = "...")] LL | #[label(no_crate_label, foo = "...")]
| ^^^^^^^^^^^ | ^^^
error: `#[label(foo(...))]` is not a valid attribute error: invalid nested attribute
--> $DIR/diagnostic-derive.rs:548:29 --> $DIR/diagnostic-derive.rs:545:29
| |
LL | #[label(no_crate_label, foo("..."))] LL | #[label(no_crate_label, foo("..."))]
| ^^^^^^^^^^ | ^^^
error: `#[primary_span]` is not a valid attribute error: `#[primary_span]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:560:5 --> $DIR/diagnostic-derive.rs:557:5
| |
LL | #[primary_span] LL | #[primary_span]
| ^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^
@ -387,13 +356,13 @@ LL | #[primary_span]
= help: the `primary_span` field attribute is not valid for lint diagnostics = help: the `primary_span` field attribute is not valid for lint diagnostics
error: `#[error(...)]` is not a valid attribute error: `#[error(...)]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:580:1 --> $DIR/diagnostic-derive.rs:577:1
| |
LL | #[error(no_crate_example, code = "E0123")] LL | #[error(no_crate_example, code = "E0123")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: diagnostic slug not specified error: diagnostic slug not specified
--> $DIR/diagnostic-derive.rs:580:1 --> $DIR/diagnostic-derive.rs:577:1
| |
LL | / #[error(no_crate_example, code = "E0123")] LL | / #[error(no_crate_example, code = "E0123")]
LL | | LL | |
@ -405,13 +374,13 @@ LL | | struct ErrorAttribute {}
= help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]` = help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]`
error: `#[warn_(...)]` is not a valid attribute error: `#[warn_(...)]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:587:1 --> $DIR/diagnostic-derive.rs:584:1
| |
LL | #[warn_(no_crate_example, code = "E0123")] LL | #[warn_(no_crate_example, code = "E0123")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: diagnostic slug not specified error: diagnostic slug not specified
--> $DIR/diagnostic-derive.rs:587:1 --> $DIR/diagnostic-derive.rs:584:1
| |
LL | / #[warn_(no_crate_example, code = "E0123")] LL | / #[warn_(no_crate_example, code = "E0123")]
LL | | LL | |
@ -423,13 +392,13 @@ LL | | struct WarnAttribute {}
= help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]` = help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]`
error: `#[lint(...)]` is not a valid attribute error: `#[lint(...)]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:594:1 --> $DIR/diagnostic-derive.rs:591:1
| |
LL | #[lint(no_crate_example, code = "E0123")] LL | #[lint(no_crate_example, code = "E0123")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: diagnostic slug not specified error: diagnostic slug not specified
--> $DIR/diagnostic-derive.rs:594:1 --> $DIR/diagnostic-derive.rs:591:1
| |
LL | / #[lint(no_crate_example, code = "E0123")] LL | / #[lint(no_crate_example, code = "E0123")]
LL | | LL | |
@ -441,19 +410,19 @@ LL | | struct LintAttributeOnSessionDiag {}
= help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]` = help: specify the slug as the first argument to the `#[diag(...)]` attribute, such as `#[diag(hir_analysis_example_error)]`
error: `#[lint(...)]` is not a valid attribute error: `#[lint(...)]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:601:1 --> $DIR/diagnostic-derive.rs:598:1
| |
LL | #[lint(no_crate_example, code = "E0123")] LL | #[lint(no_crate_example, code = "E0123")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: `#[lint(...)]` is not a valid attribute error: `#[lint(...)]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:601:1 --> $DIR/diagnostic-derive.rs:598:1
| |
LL | #[lint(no_crate_example, code = "E0123")] LL | #[lint(no_crate_example, code = "E0123")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: diagnostic slug not specified error: diagnostic slug not specified
--> $DIR/diagnostic-derive.rs:601:1 --> $DIR/diagnostic-derive.rs:598:1
| |
LL | / #[lint(no_crate_example, code = "E0123")] LL | / #[lint(no_crate_example, code = "E0123")]
LL | | LL | |
@ -466,19 +435,19 @@ LL | | struct LintAttributeOnLintDiag {}
= help: specify the slug as the first argument to the attribute, such as `#[diag(compiletest_example)]` = help: specify the slug as the first argument to the attribute, such as `#[diag(compiletest_example)]`
error: specified multiple times error: specified multiple times
--> $DIR/diagnostic-derive.rs:611:53 --> $DIR/diagnostic-derive.rs:608:5
| |
LL | #[suggestion(no_crate_suggestion, code = "...", code = ",,,")] LL | #[suggestion(no_crate_suggestion, code = "...", code = ",,,")]
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
note: previously specified here note: previously specified here
--> $DIR/diagnostic-derive.rs:611:39 --> $DIR/diagnostic-derive.rs:608:5
| |
LL | #[suggestion(no_crate_suggestion, code = "...", code = ",,,")] LL | #[suggestion(no_crate_suggestion, code = "...", code = ",,,")]
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: wrong types for suggestion error: wrong types for suggestion
--> $DIR/diagnostic-derive.rs:620:24 --> $DIR/diagnostic-derive.rs:617:24
| |
LL | suggestion: (Span, usize), LL | suggestion: (Span, usize),
| ^^^^^ | ^^^^^
@ -486,7 +455,7 @@ LL | suggestion: (Span, usize),
= help: `#[suggestion(...)]` on a tuple field must be applied to fields of type `(Span, Applicability)` = help: `#[suggestion(...)]` on a tuple field must be applied to fields of type `(Span, Applicability)`
error: wrong types for suggestion error: wrong types for suggestion
--> $DIR/diagnostic-derive.rs:628:17 --> $DIR/diagnostic-derive.rs:625:17
| |
LL | suggestion: (Span,), LL | suggestion: (Span,),
| ^^^^^^^ | ^^^^^^^
@ -494,13 +463,13 @@ LL | suggestion: (Span,),
= help: `#[suggestion(...)]` on a tuple field must be applied to fields of type `(Span, Applicability)` = help: `#[suggestion(...)]` on a tuple field must be applied to fields of type `(Span, Applicability)`
error: suggestion without `code = "..."` error: suggestion without `code = "..."`
--> $DIR/diagnostic-derive.rs:635:5 --> $DIR/diagnostic-derive.rs:632:5
| |
LL | #[suggestion(no_crate_suggestion)] LL | #[suggestion(no_crate_suggestion)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: `#[multipart_suggestion(...)]` is not a valid attribute error: `#[multipart_suggestion(...)]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:642:1 --> $DIR/diagnostic-derive.rs:639:1
| |
LL | #[multipart_suggestion(no_crate_suggestion)] LL | #[multipart_suggestion(no_crate_suggestion)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -508,23 +477,21 @@ LL | #[multipart_suggestion(no_crate_suggestion)]
= help: consider creating a `Subdiagnostic` instead = help: consider creating a `Subdiagnostic` instead
error: `#[multipart_suggestion(...)]` is not a valid attribute error: `#[multipart_suggestion(...)]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:645:1 --> $DIR/diagnostic-derive.rs:646:5
|
LL | #[multipart_suggestion(no_crate_suggestion)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: consider creating a `Subdiagnostic` instead
error: unexpected end of input, unexpected token in nested attribute, expected ident
--> $DIR/diagnostic-derive.rs:642:24
| |
LL | #[multipart_suggestion()] LL | #[multipart_suggestion()]
| ^^^^^^^^^^^^^^^^^^^^^^^^^ | ^
|
= help: consider creating a `Subdiagnostic` instead
error: `#[multipart_suggestion(...)]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:649:5
|
LL | #[multipart_suggestion(no_crate_suggestion)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: consider creating a `Subdiagnostic` instead
error: `#[suggestion(...)]` is not a valid attribute error: `#[suggestion(...)]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:657:1 --> $DIR/diagnostic-derive.rs:654:1
| |
LL | #[suggestion(no_crate_suggestion, code = "...")] LL | #[suggestion(no_crate_suggestion, code = "...")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -532,45 +499,39 @@ LL | #[suggestion(no_crate_suggestion, code = "...")]
= help: `#[label]` and `#[suggestion]` can only be applied to fields = help: `#[label]` and `#[suggestion]` can only be applied to fields
error: `#[label]` is not a valid attribute error: `#[label]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:666:1 --> $DIR/diagnostic-derive.rs:663:1
| |
LL | #[label] LL | #[label]
| ^^^^^^^^ | ^^^^^^^^
| |
= help: `#[label]` and `#[suggestion]` can only be applied to fields = help: `#[label]` and `#[suggestion]` can only be applied to fields
error: `#[subdiagnostic(...)]` is not a valid attribute error: `eager` is the only supported nested attribute for `subdiagnostic`
--> $DIR/diagnostic-derive.rs:700:5 --> $DIR/diagnostic-derive.rs:697:7
| |
LL | #[subdiagnostic(bad)] LL | #[subdiagnostic(bad)]
| ^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^
|
= help: `eager` is the only supported nested attribute for `subdiagnostic`
error: `#[subdiagnostic = ...]` is not a valid attribute error: `#[subdiagnostic = ...]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:708:5 --> $DIR/diagnostic-derive.rs:705:5
| |
LL | #[subdiagnostic = "bad"] LL | #[subdiagnostic = "bad"]
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^
error: `#[subdiagnostic(...)]` is not a valid attribute error: `eager` is the only supported nested attribute for `subdiagnostic`
--> $DIR/diagnostic-derive.rs:716:5 --> $DIR/diagnostic-derive.rs:713:7
| |
LL | #[subdiagnostic(bad, bad)] LL | #[subdiagnostic(bad, bad)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^
|
= help: `eager` is the only supported nested attribute for `subdiagnostic`
error: `#[subdiagnostic(...)]` is not a valid attribute error: `eager` is the only supported nested attribute for `subdiagnostic`
--> $DIR/diagnostic-derive.rs:724:5 --> $DIR/diagnostic-derive.rs:721:7
| |
LL | #[subdiagnostic("bad")] LL | #[subdiagnostic("bad")]
| ^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^
|
= help: `eager` is the only supported nested attribute for `subdiagnostic`
error: `#[subdiagnostic(...)]` is not a valid attribute error: `#[subdiagnostic(...)]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:732:5 --> $DIR/diagnostic-derive.rs:729:5
| |
LL | #[subdiagnostic(eager)] LL | #[subdiagnostic(eager)]
| ^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^
@ -578,25 +539,31 @@ LL | #[subdiagnostic(eager)]
= help: eager subdiagnostics are not supported on lints = help: eager subdiagnostics are not supported on lints
error: expected at least one string literal for `code(...)` error: expected at least one string literal for `code(...)`
--> $DIR/diagnostic-derive.rs:790:18 --> $DIR/diagnostic-derive.rs:787:23
| |
LL | #[suggestion(code())] LL | #[suggestion(code())]
| ^^^^^^ | ^
error: `code(...)` must contain only string literals error: `code(...)` must contain only string literals
--> $DIR/diagnostic-derive.rs:798:23 --> $DIR/diagnostic-derive.rs:795:23
| |
LL | #[suggestion(code(foo))] LL | #[suggestion(code(foo))]
| ^^^ | ^^^
error: `code = "..."`/`code(...)` must contain only string literals error: unexpected token
--> $DIR/diagnostic-derive.rs:806:18 --> $DIR/diagnostic-derive.rs:795:23
|
LL | #[suggestion(code(foo))]
| ^^^
error: expected string literal
--> $DIR/diagnostic-derive.rs:804:25
| |
LL | #[suggestion(code = 3)] LL | #[suggestion(code = 3)]
| ^^^^^^^^ | ^
error: `#[suggestion(...)]` is not a valid attribute error: `#[suggestion(...)]` is not a valid attribute
--> $DIR/diagnostic-derive.rs:821:5 --> $DIR/diagnostic-derive.rs:819:5
| |
LL | #[suggestion(no_crate_suggestion, code = "")] LL | #[suggestion(no_crate_suggestion, code = "")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@ -612,61 +579,69 @@ LL | #[nonsense(no_crate_example, code = "E0123")]
| ^^^^^^^^ | ^^^^^^^^
error: cannot find attribute `nonsense` in this scope error: cannot find attribute `nonsense` in this scope
--> $DIR/diagnostic-derive.rs:147:7 --> $DIR/diagnostic-derive.rs:144:7
| |
LL | #[nonsense] LL | #[nonsense]
| ^^^^^^^^ | ^^^^^^^^
error: cannot find attribute `error` in this scope error: cannot find attribute `error` in this scope
--> $DIR/diagnostic-derive.rs:580:3 --> $DIR/diagnostic-derive.rs:577:3
| |
LL | #[error(no_crate_example, code = "E0123")] LL | #[error(no_crate_example, code = "E0123")]
| ^^^^^ | ^^^^^
error: cannot find attribute `warn_` in this scope error: cannot find attribute `warn_` in this scope
--> $DIR/diagnostic-derive.rs:587:3 --> $DIR/diagnostic-derive.rs:584:3
| |
LL | #[warn_(no_crate_example, code = "E0123")] LL | #[warn_(no_crate_example, code = "E0123")]
| ^^^^^ help: a built-in attribute with a similar name exists: `warn` | ^^^^^ help: a built-in attribute with a similar name exists: `warn`
error: cannot find attribute `lint` in this scope error: cannot find attribute `lint` in this scope
--> $DIR/diagnostic-derive.rs:594:3 --> $DIR/diagnostic-derive.rs:591:3
| |
LL | #[lint(no_crate_example, code = "E0123")] LL | #[lint(no_crate_example, code = "E0123")]
| ^^^^ help: a built-in attribute with a similar name exists: `link` | ^^^^ help: a built-in attribute with a similar name exists: `link`
error: cannot find attribute `lint` in this scope error: cannot find attribute `lint` in this scope
--> $DIR/diagnostic-derive.rs:601:3 --> $DIR/diagnostic-derive.rs:598:3
| |
LL | #[lint(no_crate_example, code = "E0123")] LL | #[lint(no_crate_example, code = "E0123")]
| ^^^^ help: a built-in attribute with a similar name exists: `link` | ^^^^ help: a built-in attribute with a similar name exists: `link`
error: cannot find attribute `multipart_suggestion` in this scope error: cannot find attribute `multipart_suggestion` in this scope
--> $DIR/diagnostic-derive.rs:642:3 --> $DIR/diagnostic-derive.rs:639:3
| |
LL | #[multipart_suggestion(no_crate_suggestion)] LL | #[multipart_suggestion(no_crate_suggestion)]
| ^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^
error: cannot find attribute `multipart_suggestion` in this scope error: cannot find attribute `multipart_suggestion` in this scope
--> $DIR/diagnostic-derive.rs:645:3 --> $DIR/diagnostic-derive.rs:642:3
| |
LL | #[multipart_suggestion()] LL | #[multipart_suggestion()]
| ^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^
error: cannot find attribute `multipart_suggestion` in this scope error: cannot find attribute `multipart_suggestion` in this scope
--> $DIR/diagnostic-derive.rs:649:7 --> $DIR/diagnostic-derive.rs:646:7
| |
LL | #[multipart_suggestion(no_crate_suggestion)] LL | #[multipart_suggestion(no_crate_suggestion)]
| ^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^
error[E0425]: cannot find value `nonsense` in module `crate::fluent_generated` error[E0425]: cannot find value `nonsense` in module `crate::fluent_generated`
--> $DIR/diagnostic-derive.rs:70:8 --> $DIR/diagnostic-derive.rs:69:8
| |
LL | #[diag(nonsense, code = "E0123")] LL | #[diag(nonsense, code = "E0123")]
| ^^^^^^^^ not found in `crate::fluent_generated` | ^^^^^^^^ not found in `crate::fluent_generated`
error[E0425]: cannot find value `__code_34` in this scope
--> $DIR/diagnostic-derive.rs:801:10
|
LL | #[derive(Diagnostic)]
| ^^^^^^^^^^ not found in this scope
|
= note: this error originates in the derive macro `Diagnostic` (in Nightly builds, run with -Z macro-backtrace for more info)
error[E0277]: the trait bound `Hello: IntoDiagnosticArg` is not satisfied error[E0277]: the trait bound `Hello: IntoDiagnosticArg` is not satisfied
--> $DIR/diagnostic-derive.rs:341:10 --> $DIR/diagnostic-derive.rs:338:10
| |
LL | #[derive(Diagnostic)] LL | #[derive(Diagnostic)]
| ^^^^^^^^^^ the trait `IntoDiagnosticArg` is not implemented for `Hello` | ^^^^^^^^^^ the trait `IntoDiagnosticArg` is not implemented for `Hello`
@ -676,7 +651,7 @@ note: required by a bound in `DiagnosticBuilder::<'a, G>::set_arg`
--> $COMPILER_DIR/rustc_errors/src/diagnostic_builder.rs:LL:CC --> $COMPILER_DIR/rustc_errors/src/diagnostic_builder.rs:LL:CC
= note: this error originates in the derive macro `Diagnostic` which comes from the expansion of the macro `forward` (in Nightly builds, run with -Z macro-backtrace for more info) = note: this error originates in the derive macro `Diagnostic` which comes from the expansion of the macro `forward` (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to 85 previous errors error: aborting due to 84 previous errors
Some errors have detailed explanations: E0277, E0425. Some errors have detailed explanations: E0277, E0425.
For more information about an error, try `rustc --explain E0277`. For more information about an error, try `rustc --explain E0277`.

View file

@ -26,11 +26,11 @@ error: `#[label = ...]` is not a valid attribute
LL | #[label = "..."] LL | #[label = "..."]
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
error: `#[label(bug = ...)]` is not a valid attribute error: invalid nested attribute
--> $DIR/subdiagnostic-derive.rs:84:9 --> $DIR/subdiagnostic-derive.rs:84:9
| |
LL | #[label(bug = "...")] LL | #[label(bug = "...")]
| ^^^^^^^^^^^ | ^^^
error: diagnostic slug must be first argument of a `#[label(...)]` attribute error: diagnostic slug must be first argument of a `#[label(...)]` attribute
--> $DIR/subdiagnostic-derive.rs:84:1 --> $DIR/subdiagnostic-derive.rs:84:1
@ -38,23 +38,17 @@ error: diagnostic slug must be first argument of a `#[label(...)]` attribute
LL | #[label(bug = "...")] LL | #[label(bug = "...")]
| ^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^
error: `#[label("...")]` is not a valid attribute error: unexpected literal in nested attribute, expected ident
--> $DIR/subdiagnostic-derive.rs:94:9 --> $DIR/subdiagnostic-derive.rs:94:9
| |
LL | #[label("...")] LL | #[label("...")]
| ^^^^^ | ^^^^^
error: diagnostic slug must be first argument of a `#[label(...)]` attribute error: invalid nested attribute
--> $DIR/subdiagnostic-derive.rs:94:1
|
LL | #[label("...")]
| ^^^^^^^^^^^^^^^
error: `#[label(slug = ...)]` is not a valid attribute
--> $DIR/subdiagnostic-derive.rs:104:9 --> $DIR/subdiagnostic-derive.rs:104:9
| |
LL | #[label(slug = 4)] LL | #[label(slug = 4)]
| ^^^^^^^^ | ^^^^
error: diagnostic slug must be first argument of a `#[label(...)]` attribute error: diagnostic slug must be first argument of a `#[label(...)]` attribute
--> $DIR/subdiagnostic-derive.rs:104:1 --> $DIR/subdiagnostic-derive.rs:104:1
@ -62,11 +56,11 @@ error: diagnostic slug must be first argument of a `#[label(...)]` attribute
LL | #[label(slug = 4)] LL | #[label(slug = 4)]
| ^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^
error: `#[label(slug(...))]` is not a valid attribute error: invalid nested attribute
--> $DIR/subdiagnostic-derive.rs:114:9 --> $DIR/subdiagnostic-derive.rs:114:9
| |
LL | #[label(slug("..."))] LL | #[label(slug("..."))]
| ^^^^^^^^^^^ | ^^^^
error: diagnostic slug must be first argument of a `#[label(...)]` attribute error: diagnostic slug must be first argument of a `#[label(...)]` attribute
--> $DIR/subdiagnostic-derive.rs:114:1 --> $DIR/subdiagnostic-derive.rs:114:1
@ -74,23 +68,23 @@ error: diagnostic slug must be first argument of a `#[label(...)]` attribute
LL | #[label(slug("..."))] LL | #[label(slug("..."))]
| ^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^
error: diagnostic slug must be first argument of a `#[label(...)]` attribute error: unexpected end of input, unexpected token in nested attribute, expected ident
--> $DIR/subdiagnostic-derive.rs:134:1 --> $DIR/subdiagnostic-derive.rs:134:9
| |
LL | #[label()] LL | #[label()]
| ^^^^^^^^^^ | ^
error: `#[label(code = ...)]` is not a valid attribute error: invalid nested attribute
--> $DIR/subdiagnostic-derive.rs:143:27 --> $DIR/subdiagnostic-derive.rs:143:27
| |
LL | #[label(no_crate_example, code = "...")] LL | #[label(no_crate_example, code = "...")]
| ^^^^^^^^^^^^ | ^^^^
error: `#[label(applicability = ...)]` is not a valid attribute error: invalid nested attribute
--> $DIR/subdiagnostic-derive.rs:152:27 --> $DIR/subdiagnostic-derive.rs:152:27
| |
LL | #[label(no_crate_example, applicability = "machine-applicable")] LL | #[label(no_crate_example, applicability = "machine-applicable")]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
error: unsupported type attribute for subdiagnostic enum error: unsupported type attribute for subdiagnostic enum
--> $DIR/subdiagnostic-derive.rs:161:1 --> $DIR/subdiagnostic-derive.rs:161:1
@ -122,11 +116,11 @@ error: `#[bar(...)]` is not a valid attribute
LL | #[bar("...")] LL | #[bar("...")]
| ^^^^^^^^^^^^^ | ^^^^^^^^^^^^^
error: `#[label(code = ...)]` is not a valid attribute error: invalid nested attribute
--> $DIR/subdiagnostic-derive.rs:223:13 --> $DIR/subdiagnostic-derive.rs:223:13
| |
LL | #[label(code = "...")] LL | #[label(code = "...")]
| ^^^^^^^^^^^^ | ^^^^
error: diagnostic slug must be first argument of a `#[label(...)]` attribute error: diagnostic slug must be first argument of a `#[label(...)]` attribute
--> $DIR/subdiagnostic-derive.rs:223:5 --> $DIR/subdiagnostic-derive.rs:223:5
@ -190,13 +184,11 @@ LL | | b: u64,
LL | | } LL | | }
| |_^ | |_^
error: `#[label(no_crate::example)]` is not a valid attribute error: a diagnostic slug must be the first argument to the attribute
--> $DIR/subdiagnostic-derive.rs:325:27 --> $DIR/subdiagnostic-derive.rs:325:44
| |
LL | #[label(no_crate_example, no_crate::example)] LL | #[label(no_crate_example, no_crate::example)]
| ^^^^^^^^^^^^^^^^^ | ^
|
= help: a diagnostic slug must be the first argument to the attribute
error: specified multiple times error: specified multiple times
--> $DIR/subdiagnostic-derive.rs:338:5 --> $DIR/subdiagnostic-derive.rs:338:5
@ -217,16 +209,16 @@ LL | struct AG {
| ^^ | ^^
error: specified multiple times error: specified multiple times
--> $DIR/subdiagnostic-derive.rs:381:46 --> $DIR/subdiagnostic-derive.rs:381:1
| |
LL | #[suggestion(no_crate_example, code = "...", code = "...")] LL | #[suggestion(no_crate_example, code = "...", code = "...")]
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
note: previously specified here note: previously specified here
--> $DIR/subdiagnostic-derive.rs:381:32 --> $DIR/subdiagnostic-derive.rs:381:1
| |
LL | #[suggestion(no_crate_example, code = "...", code = "...")] LL | #[suggestion(no_crate_example, code = "...", code = "...")]
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: specified multiple times error: specified multiple times
--> $DIR/subdiagnostic-derive.rs:399:5 --> $DIR/subdiagnostic-derive.rs:399:5
@ -253,10 +245,10 @@ LL | #[suggestion(no_crate_example)]
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: invalid applicability error: invalid applicability
--> $DIR/subdiagnostic-derive.rs:432:46 --> $DIR/subdiagnostic-derive.rs:432:62
| |
LL | #[suggestion(no_crate_example, code = "...", applicability = "foo")] LL | #[suggestion(no_crate_example, code = "...", applicability = "foo")]
| ^^^^^^^^^^^^^^^^^^^^^ | ^^^^^
error: suggestion without `#[primary_span]` field error: suggestion without `#[primary_span]` field
--> $DIR/subdiagnostic-derive.rs:450:1 --> $DIR/subdiagnostic-derive.rs:450:1
@ -314,11 +306,11 @@ LL | | var: String,
LL | | } LL | | }
| |_^ | |_^
error: `#[multipart_suggestion(code = ...)]` is not a valid attribute error: invalid nested attribute
--> $DIR/subdiagnostic-derive.rs:538:42 --> $DIR/subdiagnostic-derive.rs:538:42
| |
LL | #[multipart_suggestion(no_crate_example, code = "...", applicability = "machine-applicable")] LL | #[multipart_suggestion(no_crate_example, code = "...", applicability = "machine-applicable")]
| ^^^^^^^^^^^^ | ^^^^
| |
= help: only `style` and `applicability` are valid nested attributes = help: only `style` and `applicability` are valid nested attributes
@ -339,11 +331,11 @@ error: `#[suggestion_part(...)]` attribute without `code = "..."`
LL | #[suggestion_part] LL | #[suggestion_part]
| ^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^
error: `#[suggestion_part(...)]` attribute without `code = "..."` error: unexpected end of input, unexpected token in nested attribute, expected ident
--> $DIR/subdiagnostic-derive.rs:556:5 --> $DIR/subdiagnostic-derive.rs:556:23
| |
LL | #[suggestion_part()] LL | #[suggestion_part()]
| ^^^^^^^^^^^^^^^^^^^^ | ^
error: `#[primary_span]` is not a valid attribute error: `#[primary_span]` is not a valid attribute
--> $DIR/subdiagnostic-derive.rs:565:5 --> $DIR/subdiagnostic-derive.rs:565:5
@ -371,19 +363,11 @@ error: `#[suggestion_part(...)]` attribute without `code = "..."`
LL | #[suggestion_part] LL | #[suggestion_part]
| ^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^
error: `#[suggestion_part(...)]` attribute without `code = "..."` error: `code` is the only valid nested attribute
--> $DIR/subdiagnostic-derive.rs:576:5
|
LL | #[suggestion_part()]
| ^^^^^^^^^^^^^^^^^^^^
error: `#[suggestion_part(foo = ...)]` is not a valid attribute
--> $DIR/subdiagnostic-derive.rs:579:23 --> $DIR/subdiagnostic-derive.rs:579:23
| |
LL | #[suggestion_part(foo = "bar")] LL | #[suggestion_part(foo = "bar")]
| ^^^^^^^^^^^ | ^^^
|
= help: `code` is the only valid nested attribute
error: the `#[suggestion_part(...)]` attribute can only be applied to fields of type `Span` or `MultiSpan` error: the `#[suggestion_part(...)]` attribute can only be applied to fields of type `Span` or `MultiSpan`
--> $DIR/subdiagnostic-derive.rs:582:5 --> $DIR/subdiagnostic-derive.rs:582:5
@ -397,17 +381,29 @@ error: the `#[suggestion_part(...)]` attribute can only be applied to fields of
LL | #[suggestion_part()] LL | #[suggestion_part()]
| ^^^^^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^
error: unexpected end of input, unexpected token in nested attribute, expected ident
--> $DIR/subdiagnostic-derive.rs:576:23
|
LL | #[suggestion_part()]
| ^
error: expected `,`
--> $DIR/subdiagnostic-derive.rs:579:27
|
LL | #[suggestion_part(foo = "bar")]
| ^
error: specified multiple times error: specified multiple times
--> $DIR/subdiagnostic-derive.rs:593:37 --> $DIR/subdiagnostic-derive.rs:593:5
| |
LL | #[suggestion_part(code = "...", code = ",,,")] LL | #[suggestion_part(code = "...", code = ",,,")]
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
note: previously specified here note: previously specified here
--> $DIR/subdiagnostic-derive.rs:593:23 --> $DIR/subdiagnostic-derive.rs:593:5
| |
LL | #[suggestion_part(code = "...", code = ",,,")] LL | #[suggestion_part(code = "...", code = ",,,")]
| ^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: `#[applicability]` has no effect if all `#[suggestion]`/`#[multipart_suggestion]` attributes have a static `applicability = "..."` error: `#[applicability]` has no effect if all `#[suggestion]`/`#[multipart_suggestion]` attributes have a static `applicability = "..."`
--> $DIR/subdiagnostic-derive.rs:622:5 --> $DIR/subdiagnostic-derive.rs:622:5
@ -416,46 +412,64 @@ LL | #[applicability]
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^
error: expected exactly one string literal for `code = ...` error: expected exactly one string literal for `code = ...`
--> $DIR/subdiagnostic-derive.rs:670:23 --> $DIR/subdiagnostic-derive.rs:670:34
| |
LL | #[suggestion_part(code("foo"))] LL | #[suggestion_part(code("foo"))]
| ^^^^^^^^^^^ | ^
error: unexpected token
--> $DIR/subdiagnostic-derive.rs:670:28
|
LL | #[suggestion_part(code("foo"))]
| ^^^^^
error: expected exactly one string literal for `code = ...` error: expected exactly one string literal for `code = ...`
--> $DIR/subdiagnostic-derive.rs:679:23 --> $DIR/subdiagnostic-derive.rs:679:41
| |
LL | #[suggestion_part(code("foo", "bar"))] LL | #[suggestion_part(code("foo", "bar"))]
| ^^^^^^^^^^^^^^^^^^ | ^
error: unexpected token
--> $DIR/subdiagnostic-derive.rs:679:28
|
LL | #[suggestion_part(code("foo", "bar"))]
| ^^^^^
error: expected exactly one string literal for `code = ...` error: expected exactly one string literal for `code = ...`
--> $DIR/subdiagnostic-derive.rs:688:23 --> $DIR/subdiagnostic-derive.rs:688:30
| |
LL | #[suggestion_part(code(3))] LL | #[suggestion_part(code(3))]
| ^^^^^^^ | ^
error: unexpected token
--> $DIR/subdiagnostic-derive.rs:688:28
|
LL | #[suggestion_part(code(3))]
| ^
error: expected exactly one string literal for `code = ...` error: expected exactly one string literal for `code = ...`
--> $DIR/subdiagnostic-derive.rs:697:23 --> $DIR/subdiagnostic-derive.rs:697:29
| |
LL | #[suggestion_part(code())] LL | #[suggestion_part(code())]
| ^^^^^^ | ^
error: `code = "..."`/`code(...)` must contain only string literals error: expected string literal
--> $DIR/subdiagnostic-derive.rs:706:23 --> $DIR/subdiagnostic-derive.rs:706:30
| |
LL | #[suggestion_part(code = 3)] LL | #[suggestion_part(code = 3)]
| ^^^^^^^^ | ^
error: specified multiple times error: specified multiple times
--> $DIR/subdiagnostic-derive.rs:748:61 --> $DIR/subdiagnostic-derive.rs:748:1
| |
LL | #[suggestion(no_crate_example, code = "", style = "hidden", style = "normal")] LL | #[suggestion(no_crate_example, code = "", style = "hidden", style = "normal")]
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| |
note: previously specified here note: previously specified here
--> $DIR/subdiagnostic-derive.rs:748:43 --> $DIR/subdiagnostic-derive.rs:748:1
| |
LL | #[suggestion(no_crate_example, code = "", style = "hidden", style = "normal")] LL | #[suggestion(no_crate_example, code = "", style = "hidden", style = "normal")]
| ^^^^^^^^^^^^^^^^ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
error: `#[suggestion_hidden(...)]` is not a valid attribute error: `#[suggestion_hidden(...)]` is not a valid attribute
--> $DIR/subdiagnostic-derive.rs:757:1 --> $DIR/subdiagnostic-derive.rs:757:1
@ -481,25 +495,29 @@ LL | #[suggestion(no_crate_example, code = "", style = "foo")]
| |
= help: valid styles are `normal`, `short`, `hidden`, `verbose` and `tool-only` = help: valid styles are `normal`, `short`, `hidden`, `verbose` and `tool-only`
error: `#[suggestion(style = ...)]` is not a valid attribute error: expected `= "xxx"`
--> $DIR/subdiagnostic-derive.rs:781:43 --> $DIR/subdiagnostic-derive.rs:781:49
| |
LL | #[suggestion(no_crate_example, code = "", style = 42)] LL | #[suggestion(no_crate_example, code = "", style = 42)]
| ^^^^^^^^^^ | ^
error: `#[suggestion(style)]` is not a valid attribute error: a diagnostic slug must be the first argument to the attribute
--> $DIR/subdiagnostic-derive.rs:789:43 --> $DIR/subdiagnostic-derive.rs:789:48
| |
LL | #[suggestion(no_crate_example, code = "", style)] LL | #[suggestion(no_crate_example, code = "", style)]
| ^^^^^ | ^
|
= help: a diagnostic slug must be the first argument to the attribute
error: `#[suggestion(style(...))]` is not a valid attribute error: expected `= "xxx"`
--> $DIR/subdiagnostic-derive.rs:797:43 --> $DIR/subdiagnostic-derive.rs:797:48
| |
LL | #[suggestion(no_crate_example, code = "", style("foo"))] LL | #[suggestion(no_crate_example, code = "", style("foo"))]
| ^^^^^^^^^^^^ | ^
error: expected `,`
--> $DIR/subdiagnostic-derive.rs:797:48
|
LL | #[suggestion(no_crate_example, code = "", style("foo"))]
| ^
error: `#[primary_span]` is not a valid attribute error: `#[primary_span]` is not a valid attribute
--> $DIR/subdiagnostic-derive.rs:808:5 --> $DIR/subdiagnostic-derive.rs:808:5
@ -582,6 +600,14 @@ error[E0425]: cannot find value `slug` in module `crate::fluent_generated`
LL | #[label(slug)] LL | #[label(slug)]
| ^^^^ not found in `crate::fluent_generated` | ^^^^ not found in `crate::fluent_generated`
error: aborting due to 81 previous errors error[E0425]: cannot find value `__code_29` in this scope
--> $DIR/subdiagnostic-derive.rs:703:10
|
LL | #[derive(Subdiagnostic)]
| ^^^^^^^^^^^^^ not found in this scope
|
= note: this error originates in the derive macro `Subdiagnostic` (in Nightly builds, run with -Z macro-backtrace for more info)
error: aborting due to 86 previous errors
For more information about this error, try `rustc --explain E0425`. For more information about this error, try `rustc --explain E0425`.