1use rustc_errors::codes::*;
2use rustc_errors::formatting::DiagMessageAddArg;
3use rustc_errors::{
4 Applicability, Diag, DiagArgValue, DiagCtxtHandle, Diagnostic, ElidedLifetimeInPathSubdiag,
5 IntoDiagArg, Level, MultiSpan, Subdiagnostic, msg,
6};
7use rustc_macros::{Diagnostic, Subdiagnostic};
8use rustc_span::{Ident, Span, Spanned, Symbol};
9
10use crate::Res;
11use crate::late::PatternSource;
12
13pub(crate) mod impls;
14
15#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
GenericParamsFromOuterItem {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
GenericParamsFromOuterItem {
span: __binding_0,
label: __binding_1,
refer_to_type_directly: __binding_2,
use_let: __binding_3,
sugg: __binding_4,
static_or_const: __binding_5,
is_self: __binding_6,
item: __binding_7 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("can't use {$is_self ->\n [true] `Self`\n *[false] generic parameters\n } from outer item")));
diag.code(E0401);
diag.note(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("nested items are independent from their parent item for everything except for privacy and name resolution")));
;
diag.arg("is_self", __binding_6);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("use of {$is_self ->\n [true] `Self`\n *[false] generic parameter\n } from outer item")));
if let Some(__binding_1) = __binding_1 {
diag.subdiagnostic(__binding_1);
}
if let Some(__binding_2) = __binding_2 {
diag.subdiagnostic(__binding_2);
}
if let Some(__binding_3) = __binding_3 {
diag.subdiagnostic(__binding_3);
}
if let Some(__binding_4) = __binding_4 {
diag.subdiagnostic(__binding_4);
}
if let Some(__binding_5) = __binding_5 {
diag.subdiagnostic(__binding_5);
}
if let Some(__binding_7) = __binding_7 {
diag.subdiagnostic(__binding_7);
}
diag
}
}
}
}
};Diagnostic)]
16#[diag("can't use {$is_self ->
17 [true] `Self`
18 *[false] generic parameters
19 } from outer item", code = E0401)]
20#[note(
21 "nested items are independent from their parent item for everything except for privacy and name resolution"
22)]
23pub(crate) struct GenericParamsFromOuterItem {
24 #[primary_span]
25 #[label(
26 "use of {$is_self ->
27 [true] `Self`
28 *[false] generic parameter
29 } from outer item"
30 )]
31 pub(crate) span: Span,
32 #[subdiagnostic]
33 pub(crate) label: Option<GenericParamsFromOuterItemLabel>,
34 #[subdiagnostic]
35 pub(crate) refer_to_type_directly: Option<UseTypeDirectly>,
36 #[subdiagnostic]
37 pub(crate) use_let: Option<GenericParamsFromOuterItemUseLet>,
38 #[subdiagnostic]
39 pub(crate) sugg: Option<GenericParamsFromOuterItemSugg>,
40 #[subdiagnostic]
41 pub(crate) static_or_const: Option<GenericParamsFromOuterItemStaticOrConst>,
42 pub(crate) is_self: bool,
43 #[subdiagnostic]
44 pub(crate) item: Option<GenericParamsFromOuterItemInnerItem>,
45}
46
47#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for
GenericParamsFromOuterItemInnerItem {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
GenericParamsFromOuterItemInnerItem {
span: __binding_0, descr: __binding_1, is_self: __binding_2
} => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("descr".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
sub_args.insert("is_self".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_2,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("{$is_self ->\n [true] `Self`\n *[false] generic parameter\n } used in this inner {$descr}")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
48#[label(
49 "{$is_self ->
50 [true] `Self`
51 *[false] generic parameter
52 } used in this inner {$descr}"
53)]
54pub(crate) struct GenericParamsFromOuterItemInnerItem {
55 #[primary_span]
56 pub(crate) span: Span,
57 pub(crate) descr: String,
58 pub(crate) is_self: bool,
59}
60
61#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for
GenericParamsFromOuterItemStaticOrConst {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
GenericParamsFromOuterItemStaticOrConst::Static => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("a `static` is a separate item from the item that contains it")),
&sub_args);
diag.note(__message);
}
GenericParamsFromOuterItemStaticOrConst::Const => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("a `const` is a separate item from the item that contains it")),
&sub_args);
diag.note(__message);
}
}
}
}
};Subdiagnostic)]
62pub(crate) enum GenericParamsFromOuterItemStaticOrConst {
63 #[note("a `static` is a separate item from the item that contains it")]
64 Static,
65 #[note("a `const` is a separate item from the item that contains it")]
66 Const,
67}
68
69#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for GenericParamsFromOuterItemLabel {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
GenericParamsFromOuterItemLabel::SelfTyParam(__binding_0) =>
{
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("can't use `Self` here")),
&sub_args);
diag.span_label(__binding_0, __message);
}
GenericParamsFromOuterItemLabel::SelfTyAlias(__binding_0) =>
{
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`Self` type implicitly declared here, by this `impl`")),
&sub_args);
diag.span_label(__binding_0, __message);
}
GenericParamsFromOuterItemLabel::TyParam(__binding_0) => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("type parameter from outer item")),
&sub_args);
diag.span_label(__binding_0, __message);
}
GenericParamsFromOuterItemLabel::ConstParam(__binding_0) =>
{
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("const parameter from outer item")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
70pub(crate) enum GenericParamsFromOuterItemLabel {
71 #[label("can't use `Self` here")]
72 SelfTyParam(#[primary_span] Span),
73 #[label("`Self` type implicitly declared here, by this `impl`")]
74 SelfTyAlias(#[primary_span] Span),
75 #[label("type parameter from outer item")]
76 TyParam(#[primary_span] Span),
77 #[label("const parameter from outer item")]
78 ConstParam(#[primary_span] Span),
79}
80
81#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for GenericParamsFromOuterItemSugg {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
GenericParamsFromOuterItemSugg {
span: __binding_0, snippet: __binding_1 } => {
let __code_0 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_1))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("try introducing a local generic parameter here")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_0, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowAlways);
}
}
}
}
};Subdiagnostic)]
82#[suggestion(
83 "try introducing a local generic parameter here",
84 code = "{snippet}",
85 applicability = "maybe-incorrect",
86 style = "verbose"
87)]
88pub(crate) struct GenericParamsFromOuterItemSugg {
89 #[primary_span]
90 pub(crate) span: Span,
91 pub(crate) snippet: String,
92}
93
94#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for GenericParamsFromOuterItemUseLet
{
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
GenericParamsFromOuterItemUseLet { span: __binding_0 } => {
let __code_1 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("let"))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("try using a local `let` binding instead")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_1, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowAlways);
}
}
}
}
};Subdiagnostic)]
95#[suggestion(
96 "try using a local `let` binding instead",
97 code = "let",
98 applicability = "maybe-incorrect",
99 style = "verbose"
100)]
101pub(crate) struct GenericParamsFromOuterItemUseLet {
102 #[primary_span]
103 pub(crate) span: Span,
104}
105
106#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for UseTypeDirectly {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
UseTypeDirectly { span: __binding_0, snippet: __binding_1 }
=> {
let __code_2 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_1))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("refer to the type directly here instead")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_2, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowAlways);
}
}
}
}
};Subdiagnostic)]
107#[suggestion(
108 "refer to the type directly here instead",
109 code = "{snippet}",
110 applicability = "maybe-incorrect",
111 style = "verbose"
112)]
113pub(crate) struct UseTypeDirectly {
114 #[primary_span]
115 pub(crate) span: Span,
116 pub(crate) snippet: String,
117}
118
119#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
NameAlreadyUsedInParameterList {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
NameAlreadyUsedInParameterList {
span: __binding_0,
first_use_span: __binding_1,
name: __binding_2 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the name `{$name}` is already used for a generic parameter in this item's generic parameters")));
diag.code(E0403);
;
diag.arg("name", __binding_2);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("already used")));
diag.span_label(__binding_1,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("first use of `{$name}`")));
diag
}
}
}
}
};Diagnostic)]
120#[diag("the name `{$name}` is already used for a generic parameter in this item's generic parameters", code = E0403)]
121pub(crate) struct NameAlreadyUsedInParameterList {
122 #[primary_span]
123 #[label("already used")]
124 pub(crate) span: Span,
125 #[label("first use of `{$name}`")]
126 pub(crate) first_use_span: Span,
127 pub(crate) name: Ident,
128}
129
130#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
MethodNotMemberOfTrait {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
MethodNotMemberOfTrait {
span: __binding_0,
method: __binding_1,
trait_: __binding_2,
sub: __binding_3 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("method `{$method}` is not a member of trait `{$trait_}`")));
diag.code(E0407);
;
diag.arg("method", __binding_1);
diag.arg("trait_", __binding_2);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("not a member of trait `{$trait_}`")));
if let Some(__binding_3) = __binding_3 {
diag.subdiagnostic(__binding_3);
}
diag
}
}
}
}
};Diagnostic)]
131#[diag("method `{$method}` is not a member of trait `{$trait_}`", code = E0407)]
132pub(crate) struct MethodNotMemberOfTrait {
133 #[primary_span]
134 #[label("not a member of trait `{$trait_}`")]
135 pub(crate) span: Span,
136 pub(crate) method: Ident,
137 pub(crate) trait_: String,
138 #[subdiagnostic]
139 pub(crate) sub: Option<AssociatedFnWithSimilarNameExists>,
140}
141
142#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for AssociatedFnWithSimilarNameExists
{
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
AssociatedFnWithSimilarNameExists {
span: __binding_0, candidate: __binding_1 } => {
let __code_3 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_1))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("there is an associated function with a similar name")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_3, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowCode);
}
}
}
}
};Subdiagnostic)]
143#[suggestion(
144 "there is an associated function with a similar name",
145 code = "{candidate}",
146 applicability = "maybe-incorrect"
147)]
148pub(crate) struct AssociatedFnWithSimilarNameExists {
149 #[primary_span]
150 pub(crate) span: Span,
151 pub(crate) candidate: Symbol,
152}
153
154#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for TypeNotMemberOfTrait
{
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
TypeNotMemberOfTrait {
span: __binding_0,
type_: __binding_1,
trait_: __binding_2,
sub: __binding_3 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("type `{$type_}` is not a member of trait `{$trait_}`")));
diag.code(E0437);
;
diag.arg("type_", __binding_1);
diag.arg("trait_", __binding_2);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("not a member of trait `{$trait_}`")));
if let Some(__binding_3) = __binding_3 {
diag.subdiagnostic(__binding_3);
}
diag
}
}
}
}
};Diagnostic)]
155#[diag("type `{$type_}` is not a member of trait `{$trait_}`", code = E0437)]
156pub(crate) struct TypeNotMemberOfTrait {
157 #[primary_span]
158 #[label("not a member of trait `{$trait_}`")]
159 pub(crate) span: Span,
160 pub(crate) type_: Ident,
161 pub(crate) trait_: String,
162 #[subdiagnostic]
163 pub(crate) sub: Option<AssociatedTypeWithSimilarNameExists>,
164}
165
166#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for
AssociatedTypeWithSimilarNameExists {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
AssociatedTypeWithSimilarNameExists {
span: __binding_0, candidate: __binding_1 } => {
let __code_4 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_1))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("there is an associated type with a similar name")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_4, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowCode);
}
}
}
}
};Subdiagnostic)]
167#[suggestion(
168 "there is an associated type with a similar name",
169 code = "{candidate}",
170 applicability = "maybe-incorrect"
171)]
172pub(crate) struct AssociatedTypeWithSimilarNameExists {
173 #[primary_span]
174 pub(crate) span: Span,
175 pub(crate) candidate: Symbol,
176}
177
178#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ConstNotMemberOfTrait {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ConstNotMemberOfTrait {
span: __binding_0,
const_: __binding_1,
trait_: __binding_2,
sub: __binding_3 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("const `{$const_}` is not a member of trait `{$trait_}`")));
diag.code(E0438);
;
diag.arg("const_", __binding_1);
diag.arg("trait_", __binding_2);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("not a member of trait `{$trait_}`")));
if let Some(__binding_3) = __binding_3 {
diag.subdiagnostic(__binding_3);
}
diag
}
}
}
}
};Diagnostic)]
179#[diag("const `{$const_}` is not a member of trait `{$trait_}`", code = E0438)]
180pub(crate) struct ConstNotMemberOfTrait {
181 #[primary_span]
182 #[label("not a member of trait `{$trait_}`")]
183 pub(crate) span: Span,
184 pub(crate) const_: Ident,
185 pub(crate) trait_: String,
186 #[subdiagnostic]
187 pub(crate) sub: Option<AssociatedConstWithSimilarNameExists>,
188}
189
190#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for
AssociatedConstWithSimilarNameExists {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
AssociatedConstWithSimilarNameExists {
span: __binding_0, candidate: __binding_1 } => {
let __code_5 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_1))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("there is an associated constant with a similar name")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_5, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowCode);
}
}
}
}
};Subdiagnostic)]
191#[suggestion(
192 "there is an associated constant with a similar name",
193 code = "{candidate}",
194 applicability = "maybe-incorrect"
195)]
196pub(crate) struct AssociatedConstWithSimilarNameExists {
197 #[primary_span]
198 pub(crate) span: Span,
199 pub(crate) candidate: Symbol,
200}
201
202#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
VariableBoundWithDifferentMode {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
VariableBoundWithDifferentMode {
span: __binding_0,
first_binding_span: __binding_1,
variable_name: __binding_2 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("variable `{$variable_name}` is bound inconsistently across alternatives separated by `|`")));
diag.code(E0409);
;
diag.arg("variable_name", __binding_2);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("bound in different ways")));
diag.span_label(__binding_1,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("first binding")));
diag
}
}
}
}
};Diagnostic)]
203#[diag("variable `{$variable_name}` is bound inconsistently across alternatives separated by `|`", code = E0409)]
204pub(crate) struct VariableBoundWithDifferentMode {
205 #[primary_span]
206 #[label("bound in different ways")]
207 pub(crate) span: Span,
208 #[label("first binding")]
209 pub(crate) first_binding_span: Span,
210 pub(crate) variable_name: Ident,
211}
212
213#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
IdentifierBoundMoreThanOnceInParameterList {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
IdentifierBoundMoreThanOnceInParameterList {
span: __binding_0, identifier: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("identifier `{$identifier}` is bound more than once in this parameter list")));
diag.code(E0415);
;
diag.arg("identifier", __binding_1);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("used as parameter more than once")));
diag
}
}
}
}
};Diagnostic)]
214#[diag("identifier `{$identifier}` is bound more than once in this parameter list", code = E0415)]
215pub(crate) struct IdentifierBoundMoreThanOnceInParameterList {
216 #[primary_span]
217 #[label("used as parameter more than once")]
218 pub(crate) span: Span,
219 pub(crate) identifier: Ident,
220}
221
222#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
IdentifierBoundMoreThanOnceInSamePattern {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
IdentifierBoundMoreThanOnceInSamePattern {
span: __binding_0, identifier: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("identifier `{$identifier}` is bound more than once in the same pattern")));
diag.code(E0416);
;
diag.arg("identifier", __binding_1);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("used in a pattern more than once")));
diag
}
}
}
}
};Diagnostic)]
223#[diag("identifier `{$identifier}` is bound more than once in the same pattern", code = E0416)]
224pub(crate) struct IdentifierBoundMoreThanOnceInSamePattern {
225 #[primary_span]
226 #[label("used in a pattern more than once")]
227 pub(crate) span: Span,
228 pub(crate) identifier: Ident,
229}
230
231#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for UndeclaredLabel {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
UndeclaredLabel {
span: __binding_0,
name: __binding_1,
sub_reachable: __binding_2,
sub_reachable_suggestion: __binding_3,
sub_unreachable: __binding_4 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("use of undeclared label `{$name}`")));
diag.code(E0426);
;
diag.arg("name", __binding_1);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("undeclared label `{$name}`")));
if let Some(__binding_2) = __binding_2 {
diag.subdiagnostic(__binding_2);
}
if let Some(__binding_3) = __binding_3 {
diag.subdiagnostic(__binding_3);
}
if let Some(__binding_4) = __binding_4 {
diag.subdiagnostic(__binding_4);
}
diag
}
}
}
}
};Diagnostic)]
232#[diag("use of undeclared label `{$name}`", code = E0426)]
233pub(crate) struct UndeclaredLabel {
234 #[primary_span]
235 #[label("undeclared label `{$name}`")]
236 pub(crate) span: Span,
237 pub(crate) name: Symbol,
238 #[subdiagnostic]
239 pub(crate) sub_reachable: Option<LabelWithSimilarNameReachable>,
240 #[subdiagnostic]
241 pub(crate) sub_reachable_suggestion: Option<TryUsingSimilarlyNamedLabel>,
242 #[subdiagnostic]
243 pub(crate) sub_unreachable: Option<UnreachableLabelWithSimilarNameExists>,
244}
245
246#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for LabelWithSimilarNameReachable {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
LabelWithSimilarNameReachable(__binding_0) => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("a label with a similar name is reachable")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
247#[label("a label with a similar name is reachable")]
248pub(crate) struct LabelWithSimilarNameReachable(#[primary_span] pub(crate) Span);
249
250#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for TryUsingSimilarlyNamedLabel {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
TryUsingSimilarlyNamedLabel {
span: __binding_0, ident_name: __binding_1 } => {
let __code_6 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_1))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("try using similarly named label")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_6, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowCode);
}
}
}
}
};Subdiagnostic)]
251#[suggestion(
252 "try using similarly named label",
253 code = "{ident_name}",
254 applicability = "maybe-incorrect"
255)]
256pub(crate) struct TryUsingSimilarlyNamedLabel {
257 #[primary_span]
258 pub(crate) span: Span,
259 pub(crate) ident_name: Symbol,
260}
261
262#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for
UnreachableLabelWithSimilarNameExists {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
UnreachableLabelWithSimilarNameExists {
ident_span: __binding_0 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("a label with a similar name exists but is unreachable")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
263#[label("a label with a similar name exists but is unreachable")]
264pub(crate) struct UnreachableLabelWithSimilarNameExists {
265 #[primary_span]
266 pub(crate) ident_span: Span,
267}
268
269#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
CannotCaptureDynamicEnvironmentInFnItem {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
CannotCaptureDynamicEnvironmentInFnItem {
span: __binding_0, suggest_closure: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("can't capture dynamic environment in a fn item")));
diag.code(E0434);
;
diag.span(__binding_0);
if __binding_1 {
diag.help(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("use the `|| {\"{\"} ... {\"}\"}` closure form instead")));
}
diag
}
}
}
}
};Diagnostic)]
270#[diag("can't capture dynamic environment in a fn item", code = E0434)]
271pub(crate) struct CannotCaptureDynamicEnvironmentInFnItem {
272 #[primary_span]
273 pub(crate) span: Span,
274 #[help("use the `|| {\"{\"} ... {\"}\"}` closure form instead")]
275 pub(crate) suggest_closure: bool,
276}
277
278#[derive(const _: () =
{
impl<'_sess, 'a> rustc_errors::Diagnostic<'_sess> for
AttemptToUseNonConstantValueInConstant<'a> {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
AttemptToUseNonConstantValueInConstant {
span: __binding_0,
with: __binding_1,
with_label: __binding_2,
without: __binding_3 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("attempt to use a non-constant value in a constant")));
diag.code(E0435);
;
diag.span(__binding_0);
if let Some(__binding_1) = __binding_1 {
diag.subdiagnostic(__binding_1);
}
if let Some(__binding_2) = __binding_2 {
diag.subdiagnostic(__binding_2);
}
if let Some(__binding_3) = __binding_3 {
diag.subdiagnostic(__binding_3);
}
diag
}
}
}
}
};Diagnostic)]
279#[diag("attempt to use a non-constant value in a constant", code = E0435)]
280pub(crate) struct AttemptToUseNonConstantValueInConstant<'a> {
281 #[primary_span]
282 pub(crate) span: Span,
283 #[subdiagnostic]
284 pub(crate) with: Option<AttemptToUseNonConstantValueInConstantWithSuggestion<'a>>,
285 #[subdiagnostic]
286 pub(crate) with_label: Option<AttemptToUseNonConstantValueInConstantLabelWithSuggestion>,
287 #[subdiagnostic]
288 pub(crate) without: Option<AttemptToUseNonConstantValueInConstantWithoutSuggestion<'a>>,
289}
290
291#[derive(const _: () =
{
impl<'a> rustc_errors::Subdiagnostic for
AttemptToUseNonConstantValueInConstantWithSuggestion<'a> {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
AttemptToUseNonConstantValueInConstantWithSuggestion::Placeholder {
span: __binding_0,
suggestion: __binding_1,
type_span: __binding_2,
current: __binding_3 } => {
let mut suggestions = Vec::new();
let __code_7 =
::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0} ", __binding_1))
});
let __code_8 =
::alloc::__export::must_use({
::alloc::fmt::format(format_args!(": /* Type */"))
});
suggestions.push((__binding_0, __code_7));
if let Some(__binding_2) = __binding_2 {
suggestions.push((__binding_2, __code_8));
}
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("suggestion".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
sub_args.insert("current".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_3,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("consider using `{$suggestion}` instead of `{$current}`")),
&sub_args);
diag.multipart_suggestion_with_style(__message, suggestions,
rustc_errors::Applicability::HasPlaceholders,
rustc_errors::SuggestionStyle::ShowAlways);
}
AttemptToUseNonConstantValueInConstantWithSuggestion::Usize {
span: __binding_0,
suggestion: __binding_1,
type_span: __binding_2,
current: __binding_3 } => {
let mut suggestions = Vec::new();
let __code_9 =
::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0} ", __binding_1))
});
let __code_10 =
::alloc::__export::must_use({
::alloc::fmt::format(format_args!(": usize"))
});
suggestions.push((__binding_0, __code_9));
if let Some(__binding_2) = __binding_2 {
suggestions.push((__binding_2, __code_10));
}
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("suggestion".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
sub_args.insert("current".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_3,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("consider using `{$suggestion}` instead of `{$current}`")),
&sub_args);
diag.multipart_suggestion_with_style(__message, suggestions,
rustc_errors::Applicability::MachineApplicable,
rustc_errors::SuggestionStyle::ShowAlways);
}
}
}
}
};Subdiagnostic)]
292pub(crate) enum AttemptToUseNonConstantValueInConstantWithSuggestion<'a> {
293 #[multipart_suggestion(
294 "consider using `{$suggestion}` instead of `{$current}`",
295 style = "verbose",
296 applicability = "has-placeholders"
297 )]
298 Placeholder {
299 #[suggestion_part(code = "{suggestion} ")]
300 span: Span,
301 suggestion: &'a str,
302 #[suggestion_part(code = ": /* Type */")]
303 type_span: Option<Span>,
304 current: &'a str,
305 },
306 #[multipart_suggestion(
307 "consider using `{$suggestion}` instead of `{$current}`",
308 style = "verbose",
309 applicability = "machine-applicable"
310 )]
311 Usize {
312 #[suggestion_part(code = "{suggestion} ")]
313 span: Span,
314 suggestion: &'a str,
315 #[suggestion_part(code = ": usize")]
316 type_span: Option<Span>,
317 current: &'a str,
318 },
319}
320
321#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for
AttemptToUseNonConstantValueInConstantLabelWithSuggestion {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
AttemptToUseNonConstantValueInConstantLabelWithSuggestion {
span: __binding_0 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("non-constant value")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
322#[label("non-constant value")]
323pub(crate) struct AttemptToUseNonConstantValueInConstantLabelWithSuggestion {
324 #[primary_span]
325 pub(crate) span: Span,
326}
327
328#[derive(const _: () =
{
impl<'a> rustc_errors::Subdiagnostic for
AttemptToUseNonConstantValueInConstantWithoutSuggestion<'a> {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
AttemptToUseNonConstantValueInConstantWithoutSuggestion {
ident_span: __binding_0, suggestion: __binding_1 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("suggestion".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("this would need to be a `{$suggestion}`")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
329#[label("this would need to be a `{$suggestion}`")]
330pub(crate) struct AttemptToUseNonConstantValueInConstantWithoutSuggestion<'a> {
331 #[primary_span]
332 pub(crate) ident_span: Span,
333 pub(crate) suggestion: &'a str,
334}
335
336#[derive(const _: () =
{
impl<'_sess, 'a> rustc_errors::Diagnostic<'_sess> for
BindingShadowsSomethingUnacceptable<'a> {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
BindingShadowsSomethingUnacceptable {
span: __binding_0,
shadowing_binding: __binding_1,
shadowed_binding: __binding_2,
article: __binding_3,
sub_suggestion: __binding_4,
shadowed_binding_span: __binding_5,
participle: __binding_6,
name: __binding_7 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("{$shadowing_binding}s cannot shadow {$shadowed_binding}s")));
diag.code(E0530);
;
diag.arg("shadowing_binding", __binding_1);
diag.arg("shadowed_binding", __binding_2);
diag.arg("article", __binding_3);
diag.arg("participle", __binding_6);
diag.arg("name", __binding_7);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("cannot be named the same as {$article} {$shadowed_binding}")));
if let Some(__binding_4) = __binding_4 {
diag.subdiagnostic(__binding_4);
}
diag.span_label(__binding_5,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the {$shadowed_binding} `{$name}` is {$participle} here")));
diag
}
}
}
}
};Diagnostic)]
337#[diag("{$shadowing_binding}s cannot shadow {$shadowed_binding}s", code = E0530)]
338pub(crate) struct BindingShadowsSomethingUnacceptable<'a> {
339 #[primary_span]
340 #[label("cannot be named the same as {$article} {$shadowed_binding}")]
341 pub(crate) span: Span,
342 pub(crate) shadowing_binding: PatternSource,
343 pub(crate) shadowed_binding: Res,
344 pub(crate) article: &'a str,
345 #[subdiagnostic]
346 pub(crate) sub_suggestion: Option<BindingShadowsSomethingUnacceptableSuggestion>,
347 #[label("the {$shadowed_binding} `{$name}` is {$participle} here")]
348 pub(crate) shadowed_binding_span: Span,
349 pub(crate) participle: &'a str,
350 pub(crate) name: Symbol,
351}
352
353#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for
BindingShadowsSomethingUnacceptableSuggestion {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
BindingShadowsSomethingUnacceptableSuggestion {
span: __binding_0, name: __binding_1 } => {
let __code_11 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}(..)", __binding_1))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("try specify the pattern arguments")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_11, rustc_errors::Applicability::Unspecified,
rustc_errors::SuggestionStyle::ShowCode);
}
}
}
}
};Subdiagnostic)]
354#[suggestion(
355 "try specify the pattern arguments",
356 code = "{name}(..)",
357 applicability = "unspecified"
358)]
359pub(crate) struct BindingShadowsSomethingUnacceptableSuggestion {
360 #[primary_span]
361 pub(crate) span: Span,
362 pub(crate) name: Symbol,
363}
364
365#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ForwardDeclaredGenericParam {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ForwardDeclaredGenericParam {
span: __binding_0, param: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("generic parameter defaults cannot reference parameters before they are declared")));
diag.code(E0128);
;
diag.arg("param", __binding_1);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("cannot reference `{$param}` before it is declared")));
diag
}
}
}
}
};Diagnostic)]
366#[diag("generic parameter defaults cannot reference parameters before they are declared", code = E0128)]
367pub(crate) struct ForwardDeclaredGenericParam {
368 #[primary_span]
369 #[label("cannot reference `{$param}` before it is declared")]
370 pub(crate) span: Span,
371 pub(crate) param: Symbol,
372}
373
374#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ForwardDeclaredGenericInConstParamTy {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ForwardDeclaredGenericInConstParamTy {
span: __binding_0, param: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("const parameter types cannot reference parameters before they are declared")));
;
diag.arg("param", __binding_1);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("const parameter type cannot reference `{$param}` before it is declared")));
diag
}
}
}
}
};Diagnostic)]
375#[diag("const parameter types cannot reference parameters before they are declared")]
376pub(crate) struct ForwardDeclaredGenericInConstParamTy {
377 #[primary_span]
378 #[label("const parameter type cannot reference `{$param}` before it is declared")]
379 pub(crate) span: Span,
380 pub(crate) param: Symbol,
381}
382
383#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ParamInTyOfConstParam {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ParamInTyOfConstParam { span: __binding_0, name: __binding_1
} => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the type of const parameters must not depend on other generic parameters")));
diag.code(E0770);
;
diag.arg("name", __binding_1);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the type must not depend on the parameter `{$name}`")));
diag
}
}
}
}
};Diagnostic)]
384#[diag("the type of const parameters must not depend on other generic parameters", code = E0770)]
385pub(crate) struct ParamInTyOfConstParam {
386 #[primary_span]
387 #[label("the type must not depend on the parameter `{$name}`")]
388 pub(crate) span: Span,
389 pub(crate) name: Symbol,
390}
391
392#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
SelfInGenericParamDefault {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
SelfInGenericParamDefault { span: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("generic parameters cannot use `Self` in their defaults")));
diag.code(E0735);
;
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
393#[diag("generic parameters cannot use `Self` in their defaults", code = E0735)]
394pub(crate) struct SelfInGenericParamDefault {
395 #[primary_span]
396 pub(crate) span: Span,
397}
398
399#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for SelfInConstGenericTy
{
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
SelfInConstGenericTy {
span: __binding_0, enable_feature: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("cannot use `Self` in const parameter type")));
;
diag.span(__binding_0);
if __binding_1 {
diag.help(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("add `#![feature(min_adt_const_params)]` to the crate attributes to enable `Self` as a const parameter type")));
}
diag
}
}
}
}
};Diagnostic)]
400#[diag("cannot use `Self` in const parameter type")]
401pub(crate) struct SelfInConstGenericTy {
402 #[primary_span]
403 pub(crate) span: Span,
404 #[help(
405 "add `#![feature(min_adt_const_params)]` to the crate attributes to enable `Self` as a const parameter type"
406 )]
407 pub(crate) enable_feature: bool,
408}
409
410#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ParamInNonTrivialAnonConst {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ParamInNonTrivialAnonConst {
span: __binding_0,
name: __binding_1,
param_kind: __binding_2,
help: __binding_3,
is_gca_const_items: __binding_4,
help_gca: __binding_5,
help_suggest_gca: __binding_6 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("{$is_gca_const_items ->\n [true] generic parameters in const blocks are not allowed; use a named `const` item instead\n *[false] generic parameters may not be used in const operations\n}")));
;
diag.arg("name", __binding_1);
diag.arg("is_gca_const_items", __binding_4);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("cannot perform const operation using `{$name}`")));
diag.subdiagnostic(__binding_2);
if __binding_3 {
diag.help(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("add `#![feature(generic_const_exprs)]` to allow generic const expressions")));
}
if __binding_5 {
diag.help(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("consider factoring the expression into a `type const` item and use it as the const argument instead")));
}
if __binding_6 {
diag.help(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("alternatively, you can use `#![feature(gca_const_items)]` and extract the expression into a `type const` item")));
}
diag
}
}
}
}
};Diagnostic)]
411#[diag(
412 "{$is_gca_const_items ->
413 [true] generic parameters in const blocks are not allowed; use a named `const` item instead
414 *[false] generic parameters may not be used in const operations
415}"
416)]
417pub(crate) struct ParamInNonTrivialAnonConst {
418 #[primary_span]
419 #[label("cannot perform const operation using `{$name}`")]
420 pub(crate) span: Span,
421 pub(crate) name: Symbol,
422 #[subdiagnostic]
423 pub(crate) param_kind: ParamKindInNonTrivialAnonConst,
424 #[help("add `#![feature(generic_const_exprs)]` to allow generic const expressions")]
425 pub(crate) help: bool,
426 pub(crate) is_gca_const_items: bool,
427 #[help(
428 "consider factoring the expression into a `type const` item and use it as the const argument instead"
429 )]
430 pub(crate) help_gca: bool,
431 #[help(
432 "alternatively, you can use `#![feature(gca_const_items)]` and extract the expression into a `type const` item"
433 )]
434 pub(crate) help_suggest_gca: bool,
435}
436
437#[derive(#[automatically_derived]
impl ::core::fmt::Debug for ParamKindInNonTrivialAnonConst {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
match self {
Self::Type => ::core::fmt::Formatter::write_str(f, "Type"),
Self::Const { name: __self_0 } =>
::core::fmt::Formatter::debug_struct_field1_finish(f, "Const",
"name", &__self_0),
Self::Lifetime =>
::core::fmt::Formatter::write_str(f, "Lifetime"),
}
}
}Debug)]
438#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for ParamKindInNonTrivialAnonConst {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
ParamKindInNonTrivialAnonConst::Type => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("type parameters may not be used in const expressions")),
&sub_args);
diag.note(__message);
}
ParamKindInNonTrivialAnonConst::Const { name: __binding_0 }
=> {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("name".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_0,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("const parameters may only be used as standalone arguments here, i.e. `{$name}`")),
&sub_args);
diag.help(__message);
}
ParamKindInNonTrivialAnonConst::Lifetime => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("lifetime parameters may not be used in const expressions")),
&sub_args);
diag.note(__message);
}
}
}
}
};Subdiagnostic)]
439pub(crate) enum ParamKindInNonTrivialAnonConst {
440 #[note("type parameters may not be used in const expressions")]
441 Type,
442 #[help("const parameters may only be used as standalone arguments here, i.e. `{$name}`")]
443 Const { name: Symbol },
444 #[note("lifetime parameters may not be used in const expressions")]
445 Lifetime,
446}
447
448#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for UnreachableLabel {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
UnreachableLabel {
span: __binding_0,
name: __binding_1,
definition_span: __binding_2,
sub_suggestion: __binding_3,
sub_suggestion_label: __binding_4,
sub_unreachable_label: __binding_5 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("use of unreachable label `{$name}`")));
diag.code(E0767);
diag.note(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("labels are unreachable through functions, closures, async blocks and modules")));
;
diag.arg("name", __binding_1);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("unreachable label `{$name}`")));
diag.span_label(__binding_2,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("unreachable label defined here")));
if let Some(__binding_3) = __binding_3 {
diag.subdiagnostic(__binding_3);
}
if let Some(__binding_4) = __binding_4 {
diag.subdiagnostic(__binding_4);
}
if let Some(__binding_5) = __binding_5 {
diag.subdiagnostic(__binding_5);
}
diag
}
}
}
}
};Diagnostic)]
449#[diag("use of unreachable label `{$name}`", code = E0767)]
450#[note("labels are unreachable through functions, closures, async blocks and modules")]
451pub(crate) struct UnreachableLabel {
452 #[primary_span]
453 #[label("unreachable label `{$name}`")]
454 pub(crate) span: Span,
455 pub(crate) name: Symbol,
456 #[label("unreachable label defined here")]
457 pub(crate) definition_span: Span,
458 #[subdiagnostic]
459 pub(crate) sub_suggestion: Option<UnreachableLabelSubSuggestion>,
460 #[subdiagnostic]
461 pub(crate) sub_suggestion_label: Option<UnreachableLabelSubLabel>,
462 #[subdiagnostic]
463 pub(crate) sub_unreachable_label: Option<UnreachableLabelSubLabelUnreachable>,
464}
465
466#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for UnreachableLabelSubSuggestion {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
UnreachableLabelSubSuggestion {
span: __binding_0, ident_name: __binding_1 } => {
let __code_12 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_1))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("try using similarly named label")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_12, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowCode);
}
}
}
}
};Subdiagnostic)]
467#[suggestion(
468 "try using similarly named label",
469 code = "{ident_name}",
470 applicability = "maybe-incorrect"
471)]
472pub(crate) struct UnreachableLabelSubSuggestion {
473 #[primary_span]
474 pub(crate) span: Span,
475 pub(crate) ident_name: Symbol,
476}
477
478#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for UnreachableLabelSubLabel {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
UnreachableLabelSubLabel { ident_span: __binding_0 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("a label with a similar name is reachable")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
479#[label("a label with a similar name is reachable")]
480pub(crate) struct UnreachableLabelSubLabel {
481 #[primary_span]
482 pub(crate) ident_span: Span,
483}
484
485#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for
UnreachableLabelSubLabelUnreachable {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
UnreachableLabelSubLabelUnreachable {
ident_span: __binding_0 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("a label with a similar name exists but is also unreachable")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
486#[label("a label with a similar name exists but is also unreachable")]
487pub(crate) struct UnreachableLabelSubLabelUnreachable {
488 #[primary_span]
489 pub(crate) ident_span: Span,
490}
491
492#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for InvalidAsmSym {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
InvalidAsmSym { span: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("invalid `sym` operand")));
diag.help(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`sym` operands must refer to either a function or a static")));
;
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("is a local variable")));
diag
}
}
}
}
};Diagnostic)]
493#[diag("invalid `sym` operand")]
494#[help("`sym` operands must refer to either a function or a static")]
495pub(crate) struct InvalidAsmSym {
496 #[primary_span]
497 #[label("is a local variable")]
498 pub(crate) span: Span,
499}
500
501#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for LowercaseSelf {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
LowercaseSelf { span: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("attempt to use a non-constant value in a constant")));
let __code_13 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("Self"))
})].into_iter();
;
diag.span(__binding_0);
diag.span_suggestions_with_style(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("try using `Self`")),
__code_13, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::HideCodeInline);
diag
}
}
}
}
};Diagnostic)]
502#[diag("attempt to use a non-constant value in a constant")]
503pub(crate) struct LowercaseSelf {
504 #[primary_span]
505 #[suggestion(
506 "try using `Self`",
507 code = "Self",
508 applicability = "maybe-incorrect",
509 style = "short"
510 )]
511 pub(crate) span: Span,
512}
513
514#[derive(#[automatically_derived]
impl ::core::fmt::Debug for BindingInNeverPattern {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field1_finish(f,
"BindingInNeverPattern", "span", &&self.span)
}
}Debug)]
515#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
BindingInNeverPattern {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
BindingInNeverPattern { span: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("never patterns cannot contain variable bindings")));
let __code_14 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("_"))
})].into_iter();
;
diag.span(__binding_0);
diag.span_suggestions_with_style(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("use a wildcard `_` instead")),
__code_14, rustc_errors::Applicability::MachineApplicable,
rustc_errors::SuggestionStyle::HideCodeInline);
diag
}
}
}
}
};Diagnostic)]
516#[diag("never patterns cannot contain variable bindings")]
517pub(crate) struct BindingInNeverPattern {
518 #[primary_span]
519 #[suggestion(
520 "use a wildcard `_` instead",
521 code = "_",
522 applicability = "machine-applicable",
523 style = "short"
524 )]
525 pub(crate) span: Span,
526}
527
528#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
CannotUseInnerLocalInMoveExpr {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
CannotUseInnerLocalInMoveExpr {
span: __binding_0,
ident: __binding_1,
binding_span: __binding_2,
move_expr_span: __binding_3,
scope_span: __binding_4 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("cannot use `{$ident}` in this move expression")));
;
diag.arg("ident", __binding_1);
diag.span(__binding_0);
diag.span_label(__binding_2,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`{$ident}` is defined here")));
diag.span_label(__binding_3,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("this expression is evaluated outside that scope")));
diag.span_label(__binding_4,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`{$ident}` is defined within this scope")));
diag
}
}
}
}
};Diagnostic)]
529#[diag("cannot use `{$ident}` in this move expression")]
530pub(crate) struct CannotUseInnerLocalInMoveExpr {
531 #[primary_span]
532 pub(crate) span: Span,
533 pub(crate) ident: Ident,
534 #[label("`{$ident}` is defined here")]
535 pub(crate) binding_span: Span,
536 #[label("this expression is evaluated outside that scope")]
537 pub(crate) move_expr_span: Span,
538 #[label("`{$ident}` is defined within this scope")]
539 pub(crate) scope_span: Span,
540}
541
542#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for TraitImplDuplicate {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
TraitImplDuplicate {
span: __binding_0,
old_span: __binding_1,
trait_item_span: __binding_2,
trait_span: __binding_3,
impl_span: __binding_4,
name: __binding_5 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("duplicate definitions with name `{$name}`:")));
diag.code(E0201);
;
diag.arg("name", __binding_5);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("duplicate definition")));
diag.span_label(__binding_1,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("previous definition here")));
diag.span_label(__binding_2,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("item in trait")));
diag.span_context(__binding_3);
diag.span_context(__binding_4);
diag
}
}
}
}
};Diagnostic)]
543#[diag("duplicate definitions with name `{$name}`:", code = E0201)]
544pub(crate) struct TraitImplDuplicate {
545 #[primary_span]
546 #[label("duplicate definition")]
547 pub(crate) span: Span,
548 #[label("previous definition here")]
549 pub(crate) old_span: Span,
550 #[label("item in trait")]
551 pub(crate) trait_item_span: Span,
552 #[context]
553 pub(crate) trait_span: Span,
554 #[context]
555 pub(crate) impl_span: Span,
556 pub(crate) name: Ident,
557}
558
559#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for Relative2018 {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
Relative2018 {
span: __binding_0,
path_span: __binding_1,
path_str: __binding_2 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("relative paths are not supported in visibilities in 2018 edition or later")));
let __code_15 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("crate::{0}",
__binding_2))
})].into_iter();
;
diag.span(__binding_0);
diag.span_suggestions_with_style(__binding_1,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("try")),
__code_15, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowCode);
diag
}
}
}
}
};Diagnostic)]
560#[diag("relative paths are not supported in visibilities in 2018 edition or later")]
561pub(crate) struct Relative2018 {
562 #[primary_span]
563 pub(crate) span: Span,
564 #[suggestion("try", code = "crate::{path_str}", applicability = "maybe-incorrect")]
565 pub(crate) path_span: Span,
566 pub(crate) path_str: String,
567}
568
569#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for AncestorOnly {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
AncestorOnly(__binding_0) => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("visibilities can only be restricted to ancestor modules")));
diag.code(E0742);
;
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
570#[diag("visibilities can only be restricted to ancestor modules", code = E0742)]
571pub(crate) struct AncestorOnly(#[primary_span] pub(crate) Span);
572
573#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for ExpectedModuleFound
{
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ExpectedModuleFound {
span: __binding_0, res: __binding_1, path_str: __binding_2 }
=> {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("expected module, found {$res} `{$path_str}`")));
diag.code(E0577);
;
diag.arg("res", __binding_1);
diag.arg("path_str", __binding_2);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("not a module")));
diag
}
}
}
}
};Diagnostic)]
574#[diag("expected module, found {$res} `{$path_str}`", code = E0577)]
575pub(crate) struct ExpectedModuleFound {
576 #[primary_span]
577 #[label("not a module")]
578 pub(crate) span: Span,
579 pub(crate) res: Res,
580 pub(crate) path_str: String,
581}
582
583#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for Indeterminate {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
Indeterminate(__binding_0) => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("cannot determine resolution for the visibility")));
diag.code(E0578);
;
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
584#[diag("cannot determine resolution for the visibility", code = E0578)]
585pub(crate) struct Indeterminate(#[primary_span] pub(crate) Span);
586
587#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for ToolModuleImported {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ToolModuleImported { span: __binding_0, import: __binding_1
} => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("cannot use a tool module through an import")));
;
diag.span(__binding_0);
diag.span_note(__binding_1,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the tool module imported here")));
diag
}
}
}
}
};Diagnostic)]
588#[diag("cannot use a tool module through an import")]
589pub(crate) struct ToolModuleImported {
590 #[primary_span]
591 pub(crate) span: Span,
592 #[note("the tool module imported here")]
593 pub(crate) import: Span,
594}
595
596#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for ModuleOnly {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ModuleOnly(__binding_0) => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("visibility must resolve to a module")));
;
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
597#[diag("visibility must resolve to a module")]
598pub(crate) struct ModuleOnly(#[primary_span] pub(crate) Span);
599
600#[derive(const _: () =
{
impl<'_sess, 'a> rustc_errors::Diagnostic<'_sess> for
MacroExpectedFound<'a> {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
MacroExpectedFound {
span: __binding_0,
found: __binding_1,
article: __binding_2,
expected: __binding_3,
macro_path: __binding_4,
remove_surrounding_derive: __binding_5,
add_as_non_derive: __binding_6 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("expected {$expected}, found {$found} `{$macro_path}`")));
;
diag.arg("found", __binding_1);
diag.arg("article", __binding_2);
diag.arg("expected", __binding_3);
diag.arg("macro_path", __binding_4);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("not {$article} {$expected}")));
if let Some(__binding_5) = __binding_5 {
diag.subdiagnostic(__binding_5);
}
if let Some(__binding_6) = __binding_6 {
diag.subdiagnostic(__binding_6);
}
diag
}
}
}
}
};Diagnostic)]
601#[diag("expected {$expected}, found {$found} `{$macro_path}`")]
602pub(crate) struct MacroExpectedFound<'a> {
603 #[primary_span]
604 #[label("not {$article} {$expected}")]
605 pub(crate) span: Span,
606 pub(crate) found: &'a str,
607 pub(crate) article: &'static str,
608 pub(crate) expected: &'a str,
609 pub(crate) macro_path: &'a str,
610 #[subdiagnostic]
611 pub(crate) remove_surrounding_derive: Option<RemoveSurroundingDerive>,
612 #[subdiagnostic]
613 pub(crate) add_as_non_derive: Option<AddAsNonDerive<'a>>,
614}
615
616#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for RemoveSurroundingDerive {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
RemoveSurroundingDerive { span: __binding_0 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("remove from the surrounding `derive()`")),
&sub_args);
diag.span_help(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
617#[help("remove from the surrounding `derive()`")]
618pub(crate) struct RemoveSurroundingDerive {
619 #[primary_span]
620 pub(crate) span: Span,
621}
622
623#[derive(const _: () =
{
impl<'a> rustc_errors::Subdiagnostic for AddAsNonDerive<'a> {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
AddAsNonDerive { macro_path: __binding_0 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("macro_path".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_0,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("\n add as non-Derive macro\n `#[{$macro_path}]`")),
&sub_args);
diag.help(__message);
}
}
}
}
};Subdiagnostic)]
624#[help(
625 "
626 add as non-Derive macro
627 `#[{$macro_path}]`"
628)]
629pub(crate) struct AddAsNonDerive<'a> {
630 pub(crate) macro_path: &'a str,
631}
632
633#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for ProcMacroSameCrate {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ProcMacroSameCrate { span: __binding_0, is_test: __binding_1
} => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("can't use a procedural macro from the same crate that defines it")));
;
diag.span(__binding_0);
if __binding_1 {
diag.help(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("you can define integration tests in a directory named `tests`")));
}
diag
}
}
}
}
};Diagnostic)]
634#[diag("can't use a procedural macro from the same crate that defines it")]
635pub(crate) struct ProcMacroSameCrate {
636 #[primary_span]
637 pub(crate) span: Span,
638 #[help("you can define integration tests in a directory named `tests`")]
639 pub(crate) is_test: bool,
640}
641
642#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ProcMacroDeriveResolutionFallback {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ProcMacroDeriveResolutionFallback {
span: __binding_0, ns_descr: __binding_1, ident: __binding_2
} => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("cannot find {$ns_descr} `{$ident}` in this scope")));
;
diag.arg("ns_descr", __binding_1);
diag.arg("ident", __binding_2);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("names from parent modules are not accessible without an explicit import")));
diag
}
}
}
}
};Diagnostic)]
643#[diag("cannot find {$ns_descr} `{$ident}` in this scope")]
644pub(crate) struct ProcMacroDeriveResolutionFallback {
645 #[label("names from parent modules are not accessible without an explicit import")]
646 pub span: Span,
647 pub ns_descr: &'static str,
648 pub ident: Symbol,
649}
650
651#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
MacroExpandedMacroExportsAccessedByAbsolutePaths {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
MacroExpandedMacroExportsAccessedByAbsolutePaths {
definition: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths")));
;
diag.span_note(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the macro is defined here")));
diag
}
}
}
}
};Diagnostic)]
652#[diag(
653 "macro-expanded `macro_export` macros from the current crate cannot be referred to by absolute paths"
654)]
655pub(crate) struct MacroExpandedMacroExportsAccessedByAbsolutePaths {
656 #[note("the macro is defined here")]
657 pub definition: Span,
658}
659
660#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
MacroUseExternCrateSelf {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
MacroUseExternCrateSelf { span: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`#[macro_use]` is not supported on `extern crate self`")));
;
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
661#[diag("`#[macro_use]` is not supported on `extern crate self`")]
662pub(crate) struct MacroUseExternCrateSelf {
663 #[primary_span]
664 pub(crate) span: Span,
665}
666
667#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for CfgAccessibleUnsure
{
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
CfgAccessibleUnsure { span: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("not sure whether the path is accessible or not")));
diag.note(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the type may have associated items, but we are currently not checking them")));
;
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
668#[diag("not sure whether the path is accessible or not")]
669#[note("the type may have associated items, but we are currently not checking them")]
670pub(crate) struct CfgAccessibleUnsure {
671 #[primary_span]
672 pub(crate) span: Span,
673}
674
675#[derive(#[automatically_derived]
impl ::core::fmt::Debug for ParamInEnumDiscriminant {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field3_finish(f,
"ParamInEnumDiscriminant", "span", &self.span, "name", &self.name,
"param_kind", &&self.param_kind)
}
}Debug)]
676#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ParamInEnumDiscriminant {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ParamInEnumDiscriminant {
span: __binding_0,
name: __binding_1,
param_kind: __binding_2 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("generic parameters may not be used in enum discriminant values")));
;
diag.arg("name", __binding_1);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("cannot perform const operation using `{$name}`")));
diag.subdiagnostic(__binding_2);
diag
}
}
}
}
};Diagnostic)]
677#[diag("generic parameters may not be used in enum discriminant values")]
678pub(crate) struct ParamInEnumDiscriminant {
679 #[primary_span]
680 #[label("cannot perform const operation using `{$name}`")]
681 pub(crate) span: Span,
682 pub(crate) name: Symbol,
683 #[subdiagnostic]
684 pub(crate) param_kind: ParamKindInEnumDiscriminant,
685}
686
687#[derive(#[automatically_derived]
impl ::core::fmt::Debug for ParamKindInEnumDiscriminant {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::write_str(f,
match self {
ParamKindInEnumDiscriminant::Type => "Type",
ParamKindInEnumDiscriminant::Const => "Const",
ParamKindInEnumDiscriminant::Lifetime => "Lifetime",
})
}
}Debug)]
688#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for ParamKindInEnumDiscriminant {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
ParamKindInEnumDiscriminant::Type => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("type parameters may not be used in enum discriminant values")),
&sub_args);
diag.note(__message);
}
ParamKindInEnumDiscriminant::Const => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("const parameters may not be used in enum discriminant values")),
&sub_args);
diag.note(__message);
}
ParamKindInEnumDiscriminant::Lifetime => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("lifetime parameters may not be used in enum discriminant values")),
&sub_args);
diag.note(__message);
}
}
}
}
};Subdiagnostic)]
689pub(crate) enum ParamKindInEnumDiscriminant {
690 #[note("type parameters may not be used in enum discriminant values")]
691 Type,
692 #[note("const parameters may not be used in enum discriminant values")]
693 Const,
694 #[note("lifetime parameters may not be used in enum discriminant values")]
695 Lifetime,
696}
697
698#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for ChangeImportBinding {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
ChangeImportBinding { span: __binding_0 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("you can use `as` to change the binding name of the import")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
699#[label("you can use `as` to change the binding name of the import")]
700pub(crate) struct ChangeImportBinding {
701 #[primary_span]
702 pub(crate) span: Span,
703}
704
705#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for ChangeImportBindingSuggestion {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
ChangeImportBindingSuggestion {
span: __binding_0, suggestion: __binding_1 } => {
let __code_16 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_1))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("you can use `as` to change the binding name of the import")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_16, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowCode);
}
}
}
}
};Subdiagnostic)]
706#[suggestion(
707 "you can use `as` to change the binding name of the import",
708 code = "{suggestion}",
709 applicability = "maybe-incorrect"
710)]
711pub(crate) struct ChangeImportBindingSuggestion {
712 #[primary_span]
713 pub(crate) span: Span,
714 pub(crate) suggestion: String,
715}
716
717#[derive(const _: () =
{
impl<'_sess, 'a> rustc_errors::Diagnostic<'_sess> for
ImportsCannotReferTo<'a> {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ImportsCannotReferTo { span: __binding_0, what: __binding_1
} => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("imports cannot refer to {$what}")));
;
diag.arg("what", __binding_1);
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
718#[diag("imports cannot refer to {$what}")]
719pub(crate) struct ImportsCannotReferTo<'a> {
720 #[primary_span]
721 pub(crate) span: Span,
722 pub(crate) what: &'a str,
723}
724
725#[derive(const _: () =
{
impl<'_sess, 'a> rustc_errors::Diagnostic<'_sess> for
CannotFindIdentInThisScope<'a> {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
CannotFindIdentInThisScope {
span: __binding_0, expected: __binding_1, ident: __binding_2
} => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("cannot find {$expected} `{$ident}` in this scope")));
;
diag.arg("expected", __binding_1);
diag.arg("ident", __binding_2);
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
726#[diag("cannot find {$expected} `{$ident}` in this scope")]
727pub(crate) struct CannotFindIdentInThisScope<'a> {
728 #[primary_span]
729 pub(crate) span: Span,
730 pub(crate) expected: &'a str,
731 pub(crate) ident: Ident,
732}
733
734#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for ExplicitUnsafeTraits {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
ExplicitUnsafeTraits { span: __binding_0, ident: __binding_1
} => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("ident".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("unsafe traits like `{$ident}` should be implemented explicitly")),
&sub_args);
diag.span_note(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
735#[note("unsafe traits like `{$ident}` should be implemented explicitly")]
736pub(crate) struct ExplicitUnsafeTraits {
737 #[primary_span]
738 pub(crate) span: Span,
739 pub(crate) ident: Ident,
740}
741
742#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for MacroDefinedLater {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
MacroDefinedLater { span: __binding_0 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("a macro with the same name exists, but it appears later")),
&sub_args);
diag.span_note(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
743#[note("a macro with the same name exists, but it appears later")]
744pub(crate) struct MacroDefinedLater {
745 #[primary_span]
746 pub(crate) span: Span,
747}
748
749#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for MacroSuggMovePosition {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
MacroSuggMovePosition {
span: __binding_0, ident: __binding_1 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("ident".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("consider moving the definition of `{$ident}` before this call")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
750#[label("consider moving the definition of `{$ident}` before this call")]
751pub(crate) struct MacroSuggMovePosition {
752 #[primary_span]
753 pub(crate) span: Span,
754 pub(crate) ident: Ident,
755}
756
757#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for MacroRulesNot {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
MacroRulesNot::Func { span: __binding_0, ident: __binding_1
} => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("ident".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`{$ident}` exists, but has no rules for function-like invocation")),
&sub_args);
diag.span_label(__binding_0, __message);
}
MacroRulesNot::Attr { span: __binding_0, ident: __binding_1
} => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("ident".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`{$ident}` exists, but has no `attr` rules")),
&sub_args);
diag.span_label(__binding_0, __message);
}
MacroRulesNot::Derive {
span: __binding_0, ident: __binding_1 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("ident".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`{$ident}` exists, but has no `derive` rules")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
758pub(crate) enum MacroRulesNot {
759 #[label("`{$ident}` exists, but has no rules for function-like invocation")]
760 Func {
761 #[primary_span]
762 span: Span,
763 ident: Ident,
764 },
765 #[label("`{$ident}` exists, but has no `attr` rules")]
766 Attr {
767 #[primary_span]
768 span: Span,
769 ident: Ident,
770 },
771 #[label("`{$ident}` exists, but has no `derive` rules")]
772 Derive {
773 #[primary_span]
774 span: Span,
775 ident: Ident,
776 },
777}
778
779#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for MaybeMissingMacroRulesName {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
MaybeMissingMacroRulesName { spans: __binding_0 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("maybe you have forgotten to define a name for this `macro_rules!`")),
&sub_args);
diag.span_note(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
780#[note("maybe you have forgotten to define a name for this `macro_rules!`")]
781pub(crate) struct MaybeMissingMacroRulesName {
782 #[primary_span]
783 pub(crate) spans: MultiSpan,
784}
785
786#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for AddedMacroUse {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
AddedMacroUse { span: __binding_0 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("you might be missing a `#[macro_use]` attribute on a `mod` module or `use` import")),
&sub_args);
diag.span_help(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
787#[help("you might be missing a `#[macro_use]` attribute on a `mod` module or `use` import")]
788pub(crate) struct AddedMacroUse {
789 #[primary_span]
790 pub(crate) span: MultiSpan,
791}
792
793#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for ConsiderAddingADerive {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
ConsiderAddingADerive {
span: __binding_0, suggestion: __binding_1 } => {
let __code_17 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_1))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("consider adding a derive")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_17, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowCode);
}
}
}
}
};Subdiagnostic)]
794#[suggestion("consider adding a derive", code = "{suggestion}", applicability = "maybe-incorrect")]
795pub(crate) struct ConsiderAddingADerive {
796 #[primary_span]
797 pub(crate) span: Span,
798 pub(crate) suggestion: String,
799}
800
801#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
CannotDetermineImportResolution {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
CannotDetermineImportResolution { span: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("cannot determine resolution for the import")));
;
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
802#[diag("cannot determine resolution for the import")]
803pub(crate) struct CannotDetermineImportResolution {
804 #[primary_span]
805 pub(crate) span: Span,
806}
807
808#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
CannotDetermineMacroResolution {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
CannotDetermineMacroResolution {
span: __binding_0, kind: __binding_1, path: __binding_2 } =>
{
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("cannot determine resolution for the {$kind} `{$path}`")));
diag.note(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("import resolution is stuck, try simplifying macro imports")));
;
diag.arg("kind", __binding_1);
diag.arg("path", __binding_2);
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
809#[diag("cannot determine resolution for the {$kind} `{$path}`")]
810#[note("import resolution is stuck, try simplifying macro imports")]
811pub(crate) struct CannotDetermineMacroResolution {
812 #[primary_span]
813 pub(crate) span: Span,
814 pub(crate) kind: &'static str,
815 pub(crate) path: String,
816}
817
818#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
CannotBeReexportedPrivate {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
CannotBeReexportedPrivate {
span: __binding_0, ident: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`{$ident}` is private, and cannot be re-exported")));
diag.code(E0364);
;
diag.arg("ident", __binding_1);
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
819#[diag("`{$ident}` is private, and cannot be re-exported", code = E0364)]
820pub(crate) struct CannotBeReexportedPrivate {
821 #[primary_span]
822 pub(crate) span: Span,
823 pub(crate) ident: Ident,
824}
825
826#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
CannotBeReexportedCratePublic {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
CannotBeReexportedCratePublic {
span: __binding_0, ident: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`{$ident}` is only public within the crate, and cannot be re-exported outside")));
diag.code(E0364);
;
diag.arg("ident", __binding_1);
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
827#[diag("`{$ident}` is only public within the crate, and cannot be re-exported outside", code = E0364)]
828pub(crate) struct CannotBeReexportedCratePublic {
829 #[primary_span]
830 pub(crate) span: Span,
831 pub(crate) ident: Ident,
832}
833
834#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
CannotBeReexportedPrivateNS {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
CannotBeReexportedPrivateNS {
span: __binding_0, ident: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`{$ident}` is private, and cannot be re-exported")));
diag.code(E0365);
diag.note(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("consider declaring type or module `{$ident}` with `pub`")));
;
diag.arg("ident", __binding_1);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("re-export of private `{$ident}`")));
diag
}
}
}
}
};Diagnostic)]
835#[diag("`{$ident}` is private, and cannot be re-exported", code = E0365)]
836#[note("consider declaring type or module `{$ident}` with `pub`")]
837pub(crate) struct CannotBeReexportedPrivateNS {
838 #[primary_span]
839 #[label("re-export of private `{$ident}`")]
840 pub(crate) span: Span,
841 pub(crate) ident: Ident,
842}
843
844#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
CannotBeReexportedCratePublicNS {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
CannotBeReexportedCratePublicNS {
span: __binding_0, ident: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`{$ident}` is only public within the crate, and cannot be re-exported outside")));
diag.code(E0365);
diag.note(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("consider declaring type or module `{$ident}` with `pub`")));
;
diag.arg("ident", __binding_1);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("re-export of crate public `{$ident}`")));
diag
}
}
}
}
};Diagnostic)]
845#[diag("`{$ident}` is only public within the crate, and cannot be re-exported outside", code = E0365)]
846#[note("consider declaring type or module `{$ident}` with `pub`")]
847pub(crate) struct CannotBeReexportedCratePublicNS {
848 #[primary_span]
849 #[label("re-export of crate public `{$ident}`")]
850 pub(crate) span: Span,
851 pub(crate) ident: Ident,
852}
853
854#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
PrivateExternCrateReexport {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
PrivateExternCrateReexport {
ident: __binding_0, sugg: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("extern crate `{$ident}` is private and cannot be re-exported")));
let __code_18 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("pub "))
})].into_iter();
diag.code(E0365);
;
diag.arg("ident", __binding_0);
if let Some(__binding_1) = __binding_1 {
diag.span_suggestions_with_style(__binding_1,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("consider making the `extern crate` item publicly accessible")),
__code_18, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowAlways);
}
diag
}
}
}
}
};Diagnostic)]
855#[diag("extern crate `{$ident}` is private and cannot be re-exported", code = E0365)]
856pub(crate) struct PrivateExternCrateReexport {
857 pub ident: Ident,
858 #[suggestion(
859 "consider making the `extern crate` item publicly accessible",
860 code = "pub ",
861 style = "verbose",
862 applicability = "maybe-incorrect"
863 )]
864 pub sugg: Option<Span>,
865}
866
867#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for ConsiderAddingMacroExport {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
ConsiderAddingMacroExport { span: __binding_0 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("consider adding a `#[macro_export]` to the macro in the imported module")),
&sub_args);
diag.span_help(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
868#[help("consider adding a `#[macro_export]` to the macro in the imported module")]
869pub(crate) struct ConsiderAddingMacroExport {
870 #[primary_span]
871 pub(crate) span: Span,
872}
873
874#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for ConsiderMarkingAsPubCrate {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
ConsiderMarkingAsPubCrate { vis_span: __binding_0 } => {
let __code_19 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("pub(crate)"))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("in case you want to use the macro within this crate only, reduce the visibility to `pub(crate)`")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_19, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowCode);
}
}
}
}
};Subdiagnostic)]
875#[suggestion(
876 "in case you want to use the macro within this crate only, reduce the visibility to `pub(crate)`",
877 code = "pub(crate)",
878 applicability = "maybe-incorrect"
879)]
880pub(crate) struct ConsiderMarkingAsPubCrate {
881 #[primary_span]
882 pub(crate) vis_span: Span,
883}
884
885#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for ConsiderMarkingAsPub {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
ConsiderMarkingAsPub { span: __binding_0, ident: __binding_1
} => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("ident".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("consider marking `{$ident}` as `pub` in the imported module")),
&sub_args);
diag.span_note(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
886#[note("consider marking `{$ident}` as `pub` in the imported module")]
887pub(crate) struct ConsiderMarkingAsPub {
888 #[primary_span]
889 pub(crate) span: Span,
890 pub(crate) ident: Ident,
891}
892
893#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
CannotGlobImportAllCrates {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
CannotGlobImportAllCrates { span: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("cannot glob-import all possible crates")));
;
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
894#[diag("cannot glob-import all possible crates")]
895pub(crate) struct CannotGlobImportAllCrates {
896 #[primary_span]
897 pub(crate) span: Span,
898}
899
900#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for
UnexpectedResChangeTyToConstParamSugg {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
UnexpectedResChangeTyToConstParamSugg {
span: __binding_0, applicability: __binding_1 } => {
let __code_20 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("const "))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("you might have meant to write a const parameter here")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_20, __binding_1,
rustc_errors::SuggestionStyle::ShowAlways);
}
}
}
}
};Subdiagnostic)]
901#[suggestion(
902 "you might have meant to write a const parameter here",
903 code = "const ",
904 style = "verbose"
905)]
906pub(crate) struct UnexpectedResChangeTyToConstParamSugg {
907 #[primary_span]
908 pub span: Span,
909 #[applicability]
910 pub applicability: Applicability,
911}
912
913#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for UnexpectedMissingConstParameter {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
UnexpectedMissingConstParameter {
span: __binding_0,
snippet: __binding_1,
item_name: __binding_2,
item_location: __binding_3 } => {
let __code_21 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_1))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("item_name".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_2,
&mut diag.long_ty_path));
sub_args.insert("item_location".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_3,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("you might have meant to introduce a const parameter `{$item_name}` on the {$item_location}")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_21, rustc_errors::Applicability::MachineApplicable,
rustc_errors::SuggestionStyle::ShowAlways);
}
}
}
}
};Subdiagnostic)]
914#[suggestion(
915 "you might have meant to introduce a const parameter `{$item_name}` on the {$item_location}",
916 code = "{snippet}",
917 applicability = "machine-applicable",
918 style = "verbose"
919)]
920pub(crate) struct UnexpectedMissingConstParameter {
921 #[primary_span]
922 pub span: Span,
923 pub snippet: String,
924 pub item_name: String,
925 pub item_location: String,
926}
927
928#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for
UnexpectedResChangeTyParamToConstParamSugg {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
UnexpectedResChangeTyParamToConstParamSugg {
before: __binding_0, after: __binding_1 } => {
let mut suggestions = Vec::new();
let __code_22 =
::alloc::__export::must_use({
::alloc::fmt::format(format_args!("const "))
});
let __code_23 =
::alloc::__export::must_use({
::alloc::fmt::format(format_args!(": /* Type */"))
});
suggestions.push((__binding_0, __code_22));
suggestions.push((__binding_1, __code_23));
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("you might have meant to write a const parameter here")),
&sub_args);
diag.multipart_suggestion_with_style(__message, suggestions,
rustc_errors::Applicability::HasPlaceholders,
rustc_errors::SuggestionStyle::ShowAlways);
}
}
}
}
};Subdiagnostic)]
929#[multipart_suggestion(
930 "you might have meant to write a const parameter here",
931 applicability = "has-placeholders",
932 style = "verbose"
933)]
934pub(crate) struct UnexpectedResChangeTyParamToConstParamSugg {
935 #[suggestion_part(code = "const ")]
936 pub before: Span,
937 #[suggestion_part(code = ": /* Type */")]
938 pub after: Span,
939}
940
941#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for
UnexpectedResUseAtOpInSlicePatWithRangeSugg {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
UnexpectedResUseAtOpInSlicePatWithRangeSugg {
span: __binding_0, ident: __binding_1, snippet: __binding_2
} => {
let __code_24 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_2))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("ident".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("if you meant to collect the rest of the slice in `{$ident}`, use the at operator")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_24, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowAlways);
}
}
}
}
};Subdiagnostic)]
942#[suggestion(
943 "if you meant to collect the rest of the slice in `{$ident}`, use the at operator",
944 code = "{snippet}",
945 applicability = "maybe-incorrect",
946 style = "verbose"
947)]
948pub(crate) struct UnexpectedResUseAtOpInSlicePatWithRangeSugg {
949 #[primary_span]
950 pub span: Span,
951 pub ident: Ident,
952 pub snippet: String,
953}
954
955#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ExternCrateLoadingMacroNotAtCrateRoot {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ExternCrateLoadingMacroNotAtCrateRoot { span: __binding_0 }
=> {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("an `extern crate` loading macros must be at the crate root")));
diag.code(E0468);
;
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
956#[diag("an `extern crate` loading macros must be at the crate root", code = E0468)]
957pub(crate) struct ExternCrateLoadingMacroNotAtCrateRoot {
958 #[primary_span]
959 pub(crate) span: Span,
960}
961
962#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ExternCrateSelfRequiresRenaming {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ExternCrateSelfRequiresRenaming { span: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`extern crate self;` requires renaming")));
let __code_25 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("extern crate self as name;"))
})].into_iter();
;
diag.span(__binding_0);
diag.span_suggestions_with_style(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("rename the `self` crate to be able to import it")),
__code_25, rustc_errors::Applicability::HasPlaceholders,
rustc_errors::SuggestionStyle::ShowCode);
diag
}
}
}
}
};Diagnostic)]
963#[diag("`extern crate self;` requires renaming")]
964pub(crate) struct ExternCrateSelfRequiresRenaming {
965 #[primary_span]
966 #[suggestion(
967 "rename the `self` crate to be able to import it",
968 code = "extern crate self as name;",
969 applicability = "has-placeholders"
970 )]
971 pub(crate) span: Span,
972}
973
974#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
MacroUseNameAlreadyInUse {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
MacroUseNameAlreadyInUse {
span: __binding_0, name: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`{$name}` is already in scope")));
diag.note(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("macro-expanded `#[macro_use]`s may not shadow existing macros (see RFC 1560)")));
;
diag.arg("name", __binding_1);
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
975#[diag("`{$name}` is already in scope")]
976#[note("macro-expanded `#[macro_use]`s may not shadow existing macros (see RFC 1560)")]
977pub(crate) struct MacroUseNameAlreadyInUse {
978 #[primary_span]
979 pub(crate) span: Span,
980 pub(crate) name: Symbol,
981}
982
983#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ImportedMacroNotFound {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ImportedMacroNotFound { span: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("imported macro not found")));
diag.code(E0469);
;
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
984#[diag("imported macro not found", code = E0469)]
985pub(crate) struct ImportedMacroNotFound {
986 #[primary_span]
987 pub(crate) span: Span,
988}
989
990#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
MacroExternDeprecated {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
MacroExternDeprecated {
span: __binding_0, inner_attribute: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`#[macro_escape]` is a deprecated synonym for `#[macro_use]`")));
;
diag.span(__binding_0);
if __binding_1 {
diag.help(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("try an outer attribute: `#[macro_use]`")));
}
diag
}
}
}
}
};Diagnostic)]
991#[diag("`#[macro_escape]` is a deprecated synonym for `#[macro_use]`")]
992pub(crate) struct MacroExternDeprecated {
993 #[primary_span]
994 pub(crate) span: Span,
995 #[help("try an outer attribute: `#[macro_use]`")]
996 pub inner_attribute: bool,
997}
998
999#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ArgumentsMacroUseNotAllowed {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ArgumentsMacroUseNotAllowed { span: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("arguments to `macro_use` are not allowed here")));
;
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
1000#[diag("arguments to `macro_use` are not allowed here")]
1001pub(crate) struct ArgumentsMacroUseNotAllowed {
1002 #[primary_span]
1003 pub(crate) span: Span,
1004}
1005
1006#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for UnnamedImportSugg {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
UnnamedImportSugg { span: __binding_0, ident: __binding_1 }
=> {
let mut suggestions = Vec::new();
let __code_26 =
::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0} as name",
__binding_1))
});
suggestions.push((__binding_0, __code_26));
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("try renaming it with a name")),
&sub_args);
diag.multipart_suggestion_with_style(__message, suggestions,
rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowAlways);
}
}
}
}
};Subdiagnostic)]
1007#[multipart_suggestion(
1008 "try renaming it with a name",
1009 applicability = "maybe-incorrect",
1010 style = "verbose"
1011)]
1012pub(crate) struct UnnamedImportSugg {
1013 #[suggestion_part(code = "{ident} as name")]
1014 pub(crate) span: Span,
1015 pub(crate) ident: Ident,
1016}
1017
1018#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for UnnamedImport {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
UnnamedImport { span: __binding_0, sugg: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("imports need to be explicitly named")));
;
diag.span(__binding_0);
diag.subdiagnostic(__binding_1);
diag
}
}
}
}
};Diagnostic)]
1019#[diag("imports need to be explicitly named")]
1020pub(crate) struct UnnamedImport {
1021 #[primary_span]
1022 pub(crate) span: Span,
1023 #[subdiagnostic]
1024 pub(crate) sugg: UnnamedImportSugg,
1025}
1026
1027#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
MacroExpandedExternCrateCannotShadowExternArguments {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
MacroExpandedExternCrateCannotShadowExternArguments {
span: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("macro-expanded `extern crate` items cannot shadow names passed with `--extern`")));
;
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
1028#[diag("macro-expanded `extern crate` items cannot shadow names passed with `--extern`")]
1029pub(crate) struct MacroExpandedExternCrateCannotShadowExternArguments {
1030 #[primary_span]
1031 pub(crate) span: Span,
1032}
1033
1034#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ElidedAnonymousLifetimeReportError {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ElidedAnonymousLifetimeReportError {
span: __binding_0, suggestion: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`&` without an explicit lifetime name cannot be used here")));
diag.code(E0637);
;
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("explicit lifetime name needed here")));
if let Some(__binding_1) = __binding_1 {
diag.subdiagnostic(__binding_1);
}
diag
}
}
}
}
};Diagnostic)]
1035#[diag("`&` without an explicit lifetime name cannot be used here", code = E0637)]
1036pub(crate) struct ElidedAnonymousLifetimeReportError {
1037 #[primary_span]
1038 #[label("explicit lifetime name needed here")]
1039 pub(crate) span: Span,
1040 #[subdiagnostic]
1041 pub(crate) suggestion: Option<ElidedAnonymousLifetimeReportErrorSuggestion>,
1042}
1043
1044#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
LendingIteratorReportError {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
LendingIteratorReportError {
lifetime: __binding_0, ty: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("associated type `Iterator::Item` is declared without lifetime parameters, so using a borrowed type for them requires that lifetime to come from the implemented type")));
;
diag.span(__binding_0);
diag.span_note(__binding_1,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("you can't create an `Iterator` that borrows each `Item` from itself, but you can instead create a new type that borrows your existing type and implement `Iterator` for that new type")));
diag
}
}
}
}
};Diagnostic)]
1045#[diag(
1046 "associated type `Iterator::Item` is declared without lifetime parameters, so using a borrowed type for them requires that lifetime to come from the implemented type"
1047)]
1048pub(crate) struct LendingIteratorReportError {
1049 #[primary_span]
1050 pub(crate) lifetime: Span,
1051 #[note(
1052 "you can't create an `Iterator` that borrows each `Item` from itself, but you can instead create a new type that borrows your existing type and implement `Iterator` for that new type"
1053 )]
1054 pub(crate) ty: Span,
1055}
1056
1057#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
AnonymousLifetimeNonGatReportError {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
AnonymousLifetimeNonGatReportError {
lifetime: __binding_0, decl: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("missing lifetime in associated type")));
;
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("this lifetime must come from the implemented type")));
diag.span_note(__binding_1,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("in the trait the associated type is declared without lifetime parameters, so using a borrowed type for them requires that lifetime to come from the implemented type")));
diag
}
}
}
}
};Diagnostic)]
1058#[diag("missing lifetime in associated type")]
1059pub(crate) struct AnonymousLifetimeNonGatReportError {
1060 #[primary_span]
1061 #[label("this lifetime must come from the implemented type")]
1062 pub(crate) lifetime: Span,
1063 #[note(
1064 "in the trait the associated type is declared without lifetime parameters, so using a borrowed type for them requires that lifetime to come from the implemented type"
1065 )]
1066 pub(crate) decl: MultiSpan,
1067}
1068
1069#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for
ElidedAnonymousLifetimeReportErrorSuggestion {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
ElidedAnonymousLifetimeReportErrorSuggestion {
lo: __binding_0, hi: __binding_1 } => {
let mut suggestions = Vec::new();
let __code_27 =
::alloc::__export::must_use({
::alloc::fmt::format(format_args!("for<\'a> "))
});
let __code_28 =
::alloc::__export::must_use({
::alloc::fmt::format(format_args!("\'a "))
});
suggestions.push((__binding_0, __code_27));
suggestions.push((__binding_1, __code_28));
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("consider introducing a higher-ranked lifetime here")),
&sub_args);
diag.multipart_suggestion_with_style(__message, suggestions,
rustc_errors::Applicability::MachineApplicable,
rustc_errors::SuggestionStyle::ShowCode);
}
}
}
}
};Subdiagnostic)]
1070#[multipart_suggestion(
1071 "consider introducing a higher-ranked lifetime here",
1072 applicability = "machine-applicable"
1073)]
1074pub(crate) struct ElidedAnonymousLifetimeReportErrorSuggestion {
1075 #[suggestion_part(code = "for<'a> ")]
1076 pub(crate) lo: Span,
1077 #[suggestion_part(code = "'a ")]
1078 pub(crate) hi: Span,
1079}
1080
1081#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ExplicitAnonymousLifetimeReportError {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ExplicitAnonymousLifetimeReportError { span: __binding_0 }
=> {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`'_` cannot be used here")));
diag.code(E0637);
;
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`'_` is a reserved lifetime name")));
diag
}
}
}
}
};Diagnostic)]
1082#[diag("`'_` cannot be used here", code = E0637)]
1083pub(crate) struct ExplicitAnonymousLifetimeReportError {
1084 #[primary_span]
1085 #[label("`'_` is a reserved lifetime name")]
1086 pub(crate) span: Span,
1087}
1088
1089#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ImplicitElidedLifetimeNotAllowedHere {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ImplicitElidedLifetimeNotAllowedHere {
span: __binding_0, subdiag: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("implicit elided lifetime not allowed here")));
diag.code(E0726);
;
diag.span(__binding_0);
diag.subdiagnostic(__binding_1);
diag
}
}
}
}
};Diagnostic)]
1090#[diag("implicit elided lifetime not allowed here", code = E0726)]
1091pub(crate) struct ImplicitElidedLifetimeNotAllowedHere {
1092 #[primary_span]
1093 pub(crate) span: Span,
1094 #[subdiagnostic]
1095 pub(crate) subdiag: ElidedLifetimeInPathSubdiag,
1096}
1097
1098#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
UnderscoreLifetimeIsReserved {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
UnderscoreLifetimeIsReserved { span: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`'_` cannot be used here")));
diag.code(E0637);
diag.help(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("use another lifetime specifier")));
;
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`'_` is a reserved lifetime name")));
diag
}
}
}
}
};Diagnostic)]
1099#[diag("`'_` cannot be used here", code = E0637)]
1100#[help("use another lifetime specifier")]
1101pub(crate) struct UnderscoreLifetimeIsReserved {
1102 #[primary_span]
1103 #[label("`'_` is a reserved lifetime name")]
1104 pub(crate) span: Span,
1105}
1106
1107#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
StaticLifetimeIsReserved {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
StaticLifetimeIsReserved {
span: __binding_0, lifetime: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("invalid lifetime parameter name: `{$lifetime}`")));
diag.code(E0262);
;
diag.arg("lifetime", __binding_1);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("'static is a reserved lifetime name")));
diag
}
}
}
}
};Diagnostic)]
1108#[diag("invalid lifetime parameter name: `{$lifetime}`", code = E0262)]
1109pub(crate) struct StaticLifetimeIsReserved {
1110 #[primary_span]
1111 #[label("'static is a reserved lifetime name")]
1112 pub(crate) span: Span,
1113 pub(crate) lifetime: Ident,
1114}
1115
1116#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
VariableIsNotBoundInAllPatterns {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
VariableIsNotBoundInAllPatterns {
multispan: __binding_0, name: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("variable `{$name}` is not bound in all patterns")));
diag.code(E0408);
;
diag.arg("name", __binding_1);
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
1117#[diag("variable `{$name}` is not bound in all patterns", code = E0408)]
1118pub(crate) struct VariableIsNotBoundInAllPatterns {
1119 #[primary_span]
1120 pub(crate) multispan: MultiSpan,
1121 pub(crate) name: Ident,
1122}
1123
1124#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for PatternDoesntBindName {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
PatternDoesntBindName { span: __binding_0, name: __binding_1
} => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("name".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("pattern doesn't bind `{$name}`")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic, #[automatically_derived]
impl ::core::fmt::Debug for PatternDoesntBindName {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field2_finish(f,
"PatternDoesntBindName", "span", &self.span, "name", &&self.name)
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for PatternDoesntBindName {
#[inline]
fn clone(&self) -> Self {
PatternDoesntBindName {
span: ::core::clone::Clone::clone(&self.span),
name: ::core::clone::Clone::clone(&self.name),
}
}
}Clone)]
1125#[label("pattern doesn't bind `{$name}`")]
1126pub(crate) struct PatternDoesntBindName {
1127 #[primary_span]
1128 pub(crate) span: Span,
1129 pub(crate) name: Ident,
1130}
1131
1132#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for VariableNotInAllPatterns {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
VariableNotInAllPatterns { span: __binding_0 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("variable not in all patterns")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic, #[automatically_derived]
impl ::core::fmt::Debug for VariableNotInAllPatterns {
#[inline]
fn fmt(&self, f: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {
::core::fmt::Formatter::debug_struct_field1_finish(f,
"VariableNotInAllPatterns", "span", &&self.span)
}
}Debug, #[automatically_derived]
impl ::core::clone::Clone for VariableNotInAllPatterns {
#[inline]
fn clone(&self) -> Self {
VariableNotInAllPatterns {
span: ::core::clone::Clone::clone(&self.span),
}
}
}Clone)]
1133#[label("variable not in all patterns")]
1134pub(crate) struct VariableNotInAllPatterns {
1135 #[primary_span]
1136 pub(crate) span: Span,
1137}
1138
1139#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for PatternBindingTypo {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
PatternBindingTypo { spans: __binding_0, typo: __binding_1 }
=> {
let mut suggestions = Vec::new();
let __code_29 =
::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_1))
});
for __binding_0 in __binding_0 {
suggestions.push((__binding_0, __code_29.clone()));
}
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("typo".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("you might have meant to use the similarly named previously used binding `{$typo}`")),
&sub_args);
diag.multipart_suggestion_with_style(__message, suggestions,
rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowAlways);
}
}
}
}
};Subdiagnostic)]
1140#[multipart_suggestion(
1141 "you might have meant to use the similarly named previously used binding `{$typo}`",
1142 applicability = "maybe-incorrect",
1143 style = "verbose"
1144)]
1145pub(crate) struct PatternBindingTypo {
1146 #[suggestion_part(code = "{typo}")]
1147 pub(crate) spans: Vec<Span>,
1148 pub(crate) typo: Symbol,
1149}
1150
1151#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
NameDefinedMultipleTime {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
NameDefinedMultipleTime {
span: __binding_0,
name: __binding_1,
descr: __binding_2,
container: __binding_3,
label: __binding_4,
old_binding_label: __binding_5 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the name `{$name}` is defined multiple times")));
diag.note(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`{$name}` must be defined only once in the {$descr} namespace of this {$container}")));
;
diag.arg("name", __binding_1);
diag.arg("descr", __binding_2);
diag.arg("container", __binding_3);
diag.span(__binding_0);
diag.subdiagnostic(__binding_4);
if let Some(__binding_5) = __binding_5 {
diag.subdiagnostic(__binding_5);
}
diag
}
}
}
}
};Diagnostic)]
1152#[diag("the name `{$name}` is defined multiple times")]
1153#[note("`{$name}` must be defined only once in the {$descr} namespace of this {$container}")]
1154pub(crate) struct NameDefinedMultipleTime {
1155 #[primary_span]
1156 pub(crate) span: Span,
1157 pub(crate) name: Symbol,
1158 pub(crate) descr: &'static str,
1159 pub(crate) container: &'static str,
1160 #[subdiagnostic]
1161 pub(crate) label: NameDefinedMultipleTimeLabel,
1162 #[subdiagnostic]
1163 pub(crate) old_binding_label: Option<NameDefinedMultipleTimeOldBindingLabel>,
1164}
1165
1166#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for NameDefinedMultipleTimeLabel {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
NameDefinedMultipleTimeLabel::Reimported {
span: __binding_0, name: __binding_1 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("name".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`{$name}` reimported here")),
&sub_args);
diag.span_label(__binding_0, __message);
}
NameDefinedMultipleTimeLabel::Redefined {
span: __binding_0, name: __binding_1 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("name".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`{$name}` redefined here")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
1167pub(crate) enum NameDefinedMultipleTimeLabel {
1168 #[label("`{$name}` reimported here")]
1169 Reimported {
1170 #[primary_span]
1171 span: Span,
1172 name: Symbol,
1173 },
1174 #[label("`{$name}` redefined here")]
1175 Redefined {
1176 #[primary_span]
1177 span: Span,
1178 name: Symbol,
1179 },
1180}
1181
1182#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for
NameDefinedMultipleTimeOldBindingLabel {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
NameDefinedMultipleTimeOldBindingLabel::Import {
span: __binding_0, old_kind: __binding_1, name: __binding_2
} => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("old_kind".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
sub_args.insert("name".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_2,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("previous import of the {$old_kind} `{$name}` here")),
&sub_args);
diag.span_label(__binding_0, __message);
}
NameDefinedMultipleTimeOldBindingLabel::Definition {
span: __binding_0, old_kind: __binding_1, name: __binding_2
} => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("old_kind".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
sub_args.insert("name".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_2,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("previous definition of the {$old_kind} `{$name}` here")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
1183pub(crate) enum NameDefinedMultipleTimeOldBindingLabel {
1184 #[label("previous import of the {$old_kind} `{$name}` here")]
1185 Import {
1186 #[primary_span]
1187 span: Span,
1188 old_kind: &'static str,
1189 name: Symbol,
1190 },
1191 #[label("previous definition of the {$old_kind} `{$name}` here")]
1192 Definition {
1193 #[primary_span]
1194 span: Span,
1195 old_kind: &'static str,
1196 name: Symbol,
1197 },
1198}
1199
1200#[derive(const _: () =
{
impl<'_sess, 'a> rustc_errors::Diagnostic<'_sess> for IsPrivate<'a> {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
IsPrivate {
span: __binding_0,
ident_descr: __binding_1,
ident: __binding_2 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("{$ident_descr} `{$ident}` is private")));
diag.code(E0603);
;
diag.arg("ident_descr", __binding_1);
diag.arg("ident", __binding_2);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("private {$ident_descr}")));
diag
}
}
}
}
};Diagnostic)]
1201#[diag("{$ident_descr} `{$ident}` is private", code = E0603)]
1202pub(crate) struct IsPrivate<'a> {
1203 #[primary_span]
1204 #[label("private {$ident_descr}")]
1205 pub(crate) span: Span,
1206 pub(crate) ident_descr: &'a str,
1207 pub(crate) ident: Ident,
1208}
1209
1210#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
GenericArgumentsInMacroPath {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
GenericArgumentsInMacroPath { span: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("generic arguments in macro path")));
;
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
1211#[diag("generic arguments in macro path")]
1212pub(crate) struct GenericArgumentsInMacroPath {
1213 #[primary_span]
1214 pub(crate) span: Span,
1215}
1216
1217#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
AttributesStartingWithRustcAreReserved {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
AttributesStartingWithRustcAreReserved { span: __binding_0 }
=> {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("attributes starting with `rustc` are reserved for use by the `rustc` compiler")));
;
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
1218#[diag("attributes starting with `rustc` are reserved for use by the `rustc` compiler")]
1219pub(crate) struct AttributesStartingWithRustcAreReserved {
1220 #[primary_span]
1221 pub(crate) span: Span,
1222}
1223
1224#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
AttributesContainingRustcAreReserved {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
AttributesContainingRustcAreReserved { span: __binding_0 }
=> {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("attributes containing a segment starting with `rustc` are reserved for use by the `rustc` compiler")));
;
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
1225#[diag(
1226 "attributes containing a segment starting with `rustc` are reserved for use by the `rustc` compiler"
1227)]
1228pub(crate) struct AttributesContainingRustcAreReserved {
1229 #[primary_span]
1230 pub(crate) span: Span,
1231}
1232
1233#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
CannotUseThroughAnImport {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
CannotUseThroughAnImport {
span: __binding_0,
article: __binding_1,
descr: __binding_2,
binding_span: __binding_3 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("cannot use {$article} {$descr} through an import")));
;
diag.arg("article", __binding_1);
diag.arg("descr", __binding_2);
diag.span(__binding_0);
if let Some(__binding_3) = __binding_3 {
diag.span_note(__binding_3,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the {$descr} imported here")));
}
diag
}
}
}
}
};Diagnostic)]
1234#[diag("cannot use {$article} {$descr} through an import")]
1235pub(crate) struct CannotUseThroughAnImport {
1236 #[primary_span]
1237 pub(crate) span: Span,
1238 pub(crate) article: &'static str,
1239 pub(crate) descr: &'static str,
1240 #[note("the {$descr} imported here")]
1241 pub(crate) binding_span: Option<Span>,
1242}
1243
1244#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
NameReservedInAttributeNamespace {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
NameReservedInAttributeNamespace {
span: __binding_0, ident: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("name `{$ident}` is reserved in attribute namespace")));
;
diag.arg("ident", __binding_1);
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
1245#[diag("name `{$ident}` is reserved in attribute namespace")]
1246pub(crate) struct NameReservedInAttributeNamespace {
1247 #[primary_span]
1248 pub(crate) span: Span,
1249 pub(crate) ident: Symbol,
1250}
1251
1252#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
CannotFindBuiltinMacroWithName {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
CannotFindBuiltinMacroWithName {
span: __binding_0, ident: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("cannot find a built-in macro with name `{$ident}`")));
;
diag.arg("ident", __binding_1);
diag.span(__binding_0);
diag
}
}
}
}
};Diagnostic)]
1253#[diag("cannot find a built-in macro with name `{$ident}`")]
1254pub(crate) struct CannotFindBuiltinMacroWithName {
1255 #[primary_span]
1256 pub(crate) span: Span,
1257 pub(crate) ident: Ident,
1258}
1259
1260#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for DefinedHere {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
DefinedHere::SimilarlyNamed {
span: __binding_0,
candidate_descr: __binding_1,
candidate: __binding_2 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("candidate_descr".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
sub_args.insert("candidate".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_2,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("similarly named {$candidate_descr} `{$candidate}` defined here")),
&sub_args);
diag.span_note(__binding_0, __message);
}
DefinedHere::SingleItem {
span: __binding_0,
candidate_descr: __binding_1,
candidate: __binding_2 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("candidate_descr".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
sub_args.insert("candidate".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_2,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("{$candidate_descr} `{$candidate}` defined here")),
&sub_args);
diag.span_note(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
1261pub(crate) enum DefinedHere {
1262 #[note("similarly named {$candidate_descr} `{$candidate}` defined here")]
1263 SimilarlyNamed {
1264 #[primary_span]
1265 span: Span,
1266 candidate_descr: &'static str,
1267 candidate: Symbol,
1268 },
1269 #[note("{$candidate_descr} `{$candidate}` defined here")]
1270 SingleItem {
1271 #[primary_span]
1272 span: Span,
1273 candidate_descr: &'static str,
1274 candidate: Symbol,
1275 },
1276}
1277
1278#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for OuterIdentIsNotPubliclyReexported
{
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
OuterIdentIsNotPubliclyReexported {
span: __binding_0,
outer_ident_descr: __binding_1,
outer_ident: __binding_2 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("outer_ident_descr".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
sub_args.insert("outer_ident".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_2,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("{$outer_ident_descr} `{$outer_ident}` is not publicly re-exported")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
1279#[label("{$outer_ident_descr} `{$outer_ident}` is not publicly re-exported")]
1280pub(crate) struct OuterIdentIsNotPubliclyReexported {
1281 #[primary_span]
1282 pub(crate) span: Span,
1283 pub(crate) outer_ident_descr: &'static str,
1284 pub(crate) outer_ident: Ident,
1285}
1286
1287#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for
ConstructorPrivateIfAnyFieldPrivate {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
ConstructorPrivateIfAnyFieldPrivate { span: __binding_0 } =>
{
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("a constructor is private if any of the fields is private")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
1288#[label("a constructor is private if any of the fields is private")]
1289pub(crate) struct ConstructorPrivateIfAnyFieldPrivate {
1290 #[primary_span]
1291 pub(crate) span: Span,
1292}
1293
1294#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for ConsiderMakingTheFieldPublic {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
ConsiderMakingTheFieldPublic {
spans: __binding_0, number_of_fields: __binding_1 } => {
let mut suggestions = Vec::new();
let __code_30 =
::alloc::__export::must_use({
::alloc::fmt::format(format_args!("pub "))
});
for __binding_0 in __binding_0 {
suggestions.push((__binding_0, __code_30.clone()));
}
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("number_of_fields".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("{ $number_of_fields ->\n [one] consider making the field publicly accessible\n *[other] consider making the fields publicly accessible\n }")),
&sub_args);
diag.multipart_suggestion_with_style(__message, suggestions,
rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowAlways);
}
}
}
}
};Subdiagnostic)]
1295#[multipart_suggestion(
1296 "{ $number_of_fields ->
1297 [one] consider making the field publicly accessible
1298 *[other] consider making the fields publicly accessible
1299 }",
1300 applicability = "maybe-incorrect",
1301 style = "verbose"
1302)]
1303pub(crate) struct ConsiderMakingTheFieldPublic {
1304 #[suggestion_part(code = "pub ")]
1305 pub(crate) spans: Vec<Span>,
1306 pub(crate) number_of_fields: usize,
1307}
1308
1309#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for ImportIdent {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
ImportIdent::ThroughReExport {
span: __binding_0, ident: __binding_1, path: __binding_2 }
=> {
let __code_31 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_2))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("ident".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("import `{$ident}` through the re-export")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_31, rustc_errors::Applicability::MachineApplicable,
rustc_errors::SuggestionStyle::ShowAlways);
}
ImportIdent::Directly {
span: __binding_0, ident: __binding_1, path: __binding_2 }
=> {
let __code_32 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_2))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("ident".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("import `{$ident}` directly")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_32, rustc_errors::Applicability::MachineApplicable,
rustc_errors::SuggestionStyle::ShowAlways);
}
}
}
}
};Subdiagnostic)]
1310pub(crate) enum ImportIdent {
1311 #[suggestion(
1312 "import `{$ident}` through the re-export",
1313 code = "{path}",
1314 applicability = "machine-applicable",
1315 style = "verbose"
1316 )]
1317 ThroughReExport {
1318 #[primary_span]
1319 span: Span,
1320 ident: Ident,
1321 path: String,
1322 },
1323 #[suggestion(
1324 "import `{$ident}` directly",
1325 code = "{path}",
1326 applicability = "machine-applicable",
1327 style = "verbose"
1328 )]
1329 Directly {
1330 #[primary_span]
1331 span: Span,
1332 ident: Ident,
1333 path: String,
1334 },
1335}
1336
1337#[derive(const _: () =
{
impl<'a> rustc_errors::Subdiagnostic for
NoteAndRefersToTheItemDefinedHere<'a> {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
NoteAndRefersToTheItemDefinedHere {
span: __binding_0,
binding_descr: __binding_1,
binding_name: __binding_2,
first: __binding_3,
dots: __binding_4 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("binding_descr".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
sub_args.insert("binding_name".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_2,
&mut diag.long_ty_path));
sub_args.insert("first".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_3,
&mut diag.long_ty_path));
sub_args.insert("dots".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_4,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("{$first ->\n [true] {$dots ->\n [true] the {$binding_descr} `{$binding_name}` is defined here...\n *[false] the {$binding_descr} `{$binding_name}` is defined here\n }\n *[false] {$dots ->\n [true] ...and refers to the {$binding_descr} `{$binding_name}` which is defined here...\n *[false] ...and refers to the {$binding_descr} `{$binding_name}` which is defined here\n }\n }")),
&sub_args);
diag.span_note(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
1338#[note(
1339 "{$first ->
1340 [true] {$dots ->
1341 [true] the {$binding_descr} `{$binding_name}` is defined here...
1342 *[false] the {$binding_descr} `{$binding_name}` is defined here
1343 }
1344 *[false] {$dots ->
1345 [true] ...and refers to the {$binding_descr} `{$binding_name}` which is defined here...
1346 *[false] ...and refers to the {$binding_descr} `{$binding_name}` which is defined here
1347 }
1348 }"
1349)]
1350pub(crate) struct NoteAndRefersToTheItemDefinedHere<'a> {
1351 #[primary_span]
1352 pub(crate) span: MultiSpan,
1353 pub(crate) binding_descr: &'a str,
1354 pub(crate) binding_name: Ident,
1355 pub(crate) first: bool,
1356 pub(crate) dots: bool,
1357}
1358
1359#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for RemoveUnnecessaryImport {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
RemoveUnnecessaryImport { span: __binding_0 } => {
let __code_33 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!(""))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("remove unnecessary import")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_33, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::ShowCode);
}
}
}
}
};Subdiagnostic)]
1360#[suggestion("remove unnecessary import", code = "", applicability = "maybe-incorrect")]
1361pub(crate) struct RemoveUnnecessaryImport {
1362 #[primary_span]
1363 pub(crate) span: Span,
1364}
1365
1366#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for ToolOnlyRemoveUnnecessaryImport {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
ToolOnlyRemoveUnnecessaryImport { span: __binding_0 } => {
let __code_34 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!(""))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("remove unnecessary import")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_34, rustc_errors::Applicability::MaybeIncorrect,
rustc_errors::SuggestionStyle::CompletelyHidden);
}
}
}
}
};Subdiagnostic)]
1367#[suggestion(
1368 "remove unnecessary import",
1369 code = "",
1370 applicability = "maybe-incorrect",
1371 style = "tool-only"
1372)]
1373pub(crate) struct ToolOnlyRemoveUnnecessaryImport {
1374 #[primary_span]
1375 pub(crate) span: Span,
1376}
1377
1378#[derive(const _: () =
{
impl<'a> rustc_errors::Subdiagnostic for
IdentImporterHereButItIsDesc<'a> {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
IdentImporterHereButItIsDesc {
span: __binding_0,
imported_ident: __binding_1,
imported_ident_desc: __binding_2 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("imported_ident".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
sub_args.insert("imported_ident_desc".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_2,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`{$imported_ident}` is imported here, but it is {$imported_ident_desc}")),
&sub_args);
diag.span_note(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
1379#[note("`{$imported_ident}` is imported here, but it is {$imported_ident_desc}")]
1380pub(crate) struct IdentImporterHereButItIsDesc<'a> {
1381 #[primary_span]
1382 pub(crate) span: Span,
1383 pub(crate) imported_ident: Ident,
1384 pub(crate) imported_ident_desc: &'a str,
1385}
1386
1387#[derive(const _: () =
{
impl<'a> rustc_errors::Subdiagnostic for IdentInScopeButItIsDesc<'a> {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
IdentInScopeButItIsDesc {
imported_ident: __binding_0,
imported_ident_desc: __binding_1 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("imported_ident".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_0,
&mut diag.long_ty_path));
sub_args.insert("imported_ident_desc".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`{$imported_ident}` is in scope, but it is {$imported_ident_desc}")),
&sub_args);
diag.note(__message);
}
}
}
}
};Subdiagnostic)]
1388#[note("`{$imported_ident}` is in scope, but it is {$imported_ident_desc}")]
1389pub(crate) struct IdentInScopeButItIsDesc<'a> {
1390 pub(crate) imported_ident: Ident,
1391 pub(crate) imported_ident_desc: &'a str,
1392}
1393
1394pub(crate) struct FoundItemConfigureOut {
1395 pub(crate) span: Span,
1396 pub(crate) item_was: ItemWas,
1397}
1398
1399pub(crate) enum ItemWas {
1400 BehindFeature { feature: Symbol, span: Span },
1401 CfgOut { span: Span },
1402}
1403
1404impl Subdiagnostic for FoundItemConfigureOut {
1405 fn add_to_diag(self, diag: &mut Diag<'_>) {
1406 let mut multispan: MultiSpan = self.span.into();
1407 match self.item_was {
1408 ItemWas::BehindFeature { feature, span } => {
1409 let value = feature.into_diag_arg(&mut None);
1410 let msg = rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the item is gated behind the `{$feature}` feature"))msg!("the item is gated behind the `{$feature}` feature")
1411 .arg("feature", value)
1412 .format();
1413 multispan.push_span_label(span, msg);
1414 }
1415 ItemWas::CfgOut { span } => {
1416 multispan.push_span_label(span, rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the item is gated here"))msg!("the item is gated here"));
1417 }
1418 }
1419 diag.span_note(multispan, rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("found an item that was configured out"))msg!("found an item that was configured out"));
1420 }
1421}
1422
1423#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for TraitImplMismatch {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
TraitImplMismatch {
span: __binding_0,
name: __binding_1,
kind: __binding_2,
trait_path: __binding_3,
trait_item_span: __binding_4,
trait_span: __binding_5,
impl_span: __binding_6 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("item `{$name}` is an associated {$kind}, which doesn't match its trait `{$trait_path}`")));
;
diag.arg("name", __binding_1);
diag.arg("kind", __binding_2);
diag.arg("trait_path", __binding_3);
diag.span(__binding_0);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("does not match trait")));
diag.span_label(__binding_4,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("item in trait")));
diag.span_context(__binding_5);
diag.span_context(__binding_6);
diag
}
}
}
}
};Diagnostic)]
1424#[diag("item `{$name}` is an associated {$kind}, which doesn't match its trait `{$trait_path}`")]
1425pub(crate) struct TraitImplMismatch {
1426 #[primary_span]
1427 #[label("does not match trait")]
1428 pub(crate) span: Span,
1429 pub(crate) name: Ident,
1430 pub(crate) kind: &'static str,
1431 pub(crate) trait_path: String,
1432 #[label("item in trait")]
1433 pub(crate) trait_item_span: Span,
1434 #[context]
1435 pub(crate) trait_span: Span,
1436 #[context]
1437 pub(crate) impl_span: Span,
1438}
1439
1440#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for LegacyDeriveHelpers
{
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
LegacyDeriveHelpers { span: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("derive helper attribute is used before it is introduced")));
;
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the attribute is introduced here")));
diag
}
}
}
}
};Diagnostic)]
1441#[diag("derive helper attribute is used before it is introduced")]
1442pub(crate) struct LegacyDeriveHelpers {
1443 #[label("the attribute is introduced here")]
1444 pub span: Span,
1445}
1446
1447#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for UnusedExternCrate {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
UnusedExternCrate {
span: __binding_0, removal_span: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("unused extern crate")));
let __code_35 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!(""))
})].into_iter();
;
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("unused")));
diag.span_suggestions_with_style(__binding_1,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("remove the unused `extern crate`")),
__code_35, rustc_errors::Applicability::MachineApplicable,
rustc_errors::SuggestionStyle::ShowAlways);
diag
}
}
}
}
};Diagnostic)]
1448#[diag("unused extern crate")]
1449pub(crate) struct UnusedExternCrate {
1450 #[label("unused")]
1451 pub span: Span,
1452 #[suggestion(
1453 "remove the unused `extern crate`",
1454 code = "",
1455 applicability = "machine-applicable",
1456 style = "verbose"
1457 )]
1458 pub removal_span: Span,
1459}
1460
1461#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ReexportPrivateDependency {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ReexportPrivateDependency {
name: __binding_0, kind: __binding_1, krate: __binding_2 }
=> {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("{$kind} `{$name}` from private dependency '{$krate}' is re-exported")));
;
diag.arg("name", __binding_0);
diag.arg("kind", __binding_1);
diag.arg("krate", __binding_2);
diag
}
}
}
}
};Diagnostic)]
1462#[diag("{$kind} `{$name}` from private dependency '{$krate}' is re-exported")]
1463pub(crate) struct ReexportPrivateDependency {
1464 pub name: Symbol,
1465 pub kind: &'static str,
1466 pub krate: Symbol,
1467}
1468
1469#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for UnusedLabel {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
UnusedLabel => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("unused label")));
;
diag
}
}
}
}
};Diagnostic)]
1470#[diag("unused label")]
1471pub(crate) struct UnusedLabel;
1472
1473#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for UnusedMacroUse {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
UnusedMacroUse => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("unused `#[macro_use]` import")));
;
diag
}
}
}
}
};Diagnostic)]
1474#[diag("unused `#[macro_use]` import")]
1475pub(crate) struct UnusedMacroUse;
1476
1477#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for MacroUseDeprecated {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
MacroUseDeprecated => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("applying the `#[macro_use]` attribute to an `extern crate` item is deprecated")));
diag.help(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("remove it and import macros at use sites with a `use` item instead")));
;
diag
}
}
}
}
};Diagnostic)]
1478#[diag("applying the `#[macro_use]` attribute to an `extern crate` item is deprecated")]
1479#[help("remove it and import macros at use sites with a `use` item instead")]
1480pub(crate) struct MacroUseDeprecated;
1481
1482#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for MacroIsPrivate {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
MacroIsPrivate { ident: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("macro `{$ident}` is private")));
;
diag.arg("ident", __binding_0);
diag
}
}
}
}
};Diagnostic)]
1483#[diag("macro `{$ident}` is private")]
1484pub(crate) struct MacroIsPrivate {
1485 pub ident: Ident,
1486}
1487
1488#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
UnusedMacroDefinition {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
UnusedMacroDefinition {
name: __binding_0,
unannotated_mod: __binding_1,
annotated_mod: __binding_2 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("unused macro definition: `{$name}`")));
let __code_36 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("#[macro_use]\n"))
})].into_iter();
;
diag.arg("name", __binding_0);
if let Some(__binding_1) = __binding_1 {
diag.span_suggestions_with_style(__binding_1,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("consider annotating the enclosing module with `#[macro_use]`")),
__code_36, rustc_errors::Applicability::MachineApplicable,
rustc_errors::SuggestionStyle::ShowCode);
}
if let Some(__binding_2) = __binding_2 {
diag.span_label(__binding_2,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the macro is exported by its enclosing module")));
}
diag
}
}
}
}
};Diagnostic)]
1489#[diag("unused macro definition: `{$name}`")]
1490pub(crate) struct UnusedMacroDefinition {
1491 pub name: Symbol,
1492 #[suggestion(
1493 "consider annotating the enclosing module with `#[macro_use]`",
1494 code = "#[macro_use]\n",
1495 applicability = "machine-applicable"
1496 )]
1497 pub unannotated_mod: Option<Span>,
1498 #[label("the macro is exported by its enclosing module")]
1499 pub annotated_mod: Option<Span>,
1500}
1501
1502#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for MacroRuleNeverUsed {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
MacroRuleNeverUsed { n: __binding_0, name: __binding_1 } =>
{
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("rule #{$n} of macro `{$name}` is never used")));
;
diag.arg("n", __binding_0);
diag.arg("name", __binding_1);
diag
}
}
}
}
};Diagnostic)]
1503#[diag("rule #{$n} of macro `{$name}` is never used")]
1504pub(crate) struct MacroRuleNeverUsed {
1505 pub n: usize,
1506 pub name: Symbol,
1507}
1508
1509#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ExternCrateNotIdiomatic {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ExternCrateNotIdiomatic {
span: __binding_0, code: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("`extern crate` is not idiomatic in the new edition")));
let __code_37 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_1))
})].into_iter();
;
diag.span_suggestions_with_style(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("convert it to a `use`")),
__code_37, rustc_errors::Applicability::MachineApplicable,
rustc_errors::SuggestionStyle::ShowAlways);
diag
}
}
}
}
};Diagnostic)]
1510#[diag("`extern crate` is not idiomatic in the new edition")]
1511pub(crate) struct ExternCrateNotIdiomatic {
1512 #[suggestion(
1513 "convert it to a `use`",
1514 style = "verbose",
1515 code = "{code}",
1516 applicability = "machine-applicable"
1517 )]
1518 pub span: Span,
1519 pub code: &'static str,
1520}
1521
1522#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for OutOfScopeMacroCalls
{
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
OutOfScopeMacroCalls {
span: __binding_0, path: __binding_1, location: __binding_2
} => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("cannot find macro `{$path}` in the current scope when looking from {$location}")));
diag.help(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("import `macro_rules` with `use` to make it callable above its definition")));
;
diag.arg("path", __binding_1);
diag.arg("location", __binding_2);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("not found from {$location}")));
diag
}
}
}
}
};Diagnostic)]
1523#[diag("cannot find macro `{$path}` in the current scope when looking from {$location}")]
1524#[help("import `macro_rules` with `use` to make it callable above its definition")]
1525pub(crate) struct OutOfScopeMacroCalls {
1526 #[label("not found from {$location}")]
1527 pub span: Span,
1528 pub path: String,
1529 pub location: String,
1530}
1531
1532#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
RedundantImportVisibility {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
RedundantImportVisibility {
span: __binding_0,
help: __binding_1,
import_vis: __binding_2,
max_vis: __binding_3 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("glob import doesn't reexport anything with visibility `{$import_vis}` because no imported item is public enough")));
;
diag.arg("import_vis", __binding_2);
diag.arg("max_vis", __binding_3);
diag.span_note(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the most public imported item is `{$max_vis}`")));
diag.help(rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("reduce the glob import's visibility or increase visibility of imported items")));
diag
}
}
}
}
};Diagnostic)]
1533#[diag(
1534 "glob import doesn't reexport anything with visibility `{$import_vis}` because no imported item is public enough"
1535)]
1536pub(crate) struct RedundantImportVisibility {
1537 #[note("the most public imported item is `{$max_vis}`")]
1538 pub span: Span,
1539 #[help("reduce the glob import's visibility or increase visibility of imported items")]
1540 pub help: (),
1541 pub import_vis: String,
1542 pub max_vis: String,
1543}
1544
1545pub(crate) struct Ambiguity {
1547 pub ident: Ident,
1548 pub ambig_vis: Option<String>,
1549 pub kind: &'static str,
1550 pub help: Option<&'static [&'static str]>,
1551 pub b1_note: Spanned<String>,
1552 pub b1_help_msgs: Vec<String>,
1553 pub b2_note: Spanned<String>,
1554 pub b2_help_msgs: Vec<String>,
1555 pub is_error: bool,
1557}
1558
1559impl<'a> Diagnostic<'a> for Ambiguity {
1560 fn into_diag(self, dcx: DiagCtxtHandle<'a>, level: Level) -> Diag<'a> {
1561 let Self {
1562 ident,
1563 ambig_vis,
1564 kind,
1565 help,
1566 b1_note,
1567 b1_help_msgs,
1568 b2_note,
1569 b2_help_msgs,
1570 is_error,
1571 } = self;
1572
1573 let mut diag = Diag::new(dcx, level, "").with_span(ident.span);
1574 if is_error {
1575 diag.code(E0659);
1576 }
1577 if let Some(ambig_vis) = ambig_vis {
1578 diag.primary_message(::alloc::__export::must_use({
::alloc::fmt::format(format_args!("ambiguous import visibility: {0}",
ambig_vis))
})format!("ambiguous import visibility: {ambig_vis}"));
1579 } else {
1580 diag.primary_message(::alloc::__export::must_use({
::alloc::fmt::format(format_args!("`{0}` is ambiguous", ident))
})format!("`{}` is ambiguous", ident));
1581 diag.span_label(ident.span, "ambiguous name");
1582 }
1583 diag.note(::alloc::__export::must_use({
::alloc::fmt::format(format_args!("ambiguous because of {0}", kind))
})format!("ambiguous because of {}", kind));
1584 diag.span_note(b1_note.span, b1_note.node);
1585 if let Some(help) = help {
1586 for help in help {
1587 diag.help(*help);
1588 }
1589 }
1590 for help_msg in b1_help_msgs {
1591 diag.help(help_msg);
1592 }
1593 diag.span_note(b2_note.span, b2_note.node);
1594 for help_msg in b2_help_msgs {
1595 diag.help(help_msg);
1596 }
1597 diag
1598 }
1599}
1600
1601#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for UnusedLifetime {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
UnusedLifetime {
deletion_span: __binding_0, ident: __binding_1 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("lifetime parameter `{$ident}` never used")));
let __code_38 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!(""))
})].into_iter();
;
diag.arg("ident", __binding_1);
if let Some(__binding_0) = __binding_0 {
diag.span_suggestions_with_style(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("elide the unused lifetime")),
__code_38, rustc_errors::Applicability::MachineApplicable,
rustc_errors::SuggestionStyle::ShowCode);
}
diag
}
}
}
}
};Diagnostic)]
1602#[diag("lifetime parameter `{$ident}` never used")]
1603pub(crate) struct UnusedLifetime {
1604 #[suggestion("elide the unused lifetime", code = "", applicability = "machine-applicable")]
1605 pub deletion_span: Option<Span>,
1606
1607 pub ident: Ident,
1608}
1609
1610#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
AmbiguousGlobReexports {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
AmbiguousGlobReexports {
first_reexport: __binding_0,
duplicate_reexport: __binding_1,
name: __binding_2,
namespace: __binding_3 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("ambiguous glob re-exports")));
;
diag.arg("name", __binding_2);
diag.arg("namespace", __binding_3);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the name `{$name}` in the {$namespace} namespace is first re-exported here")));
diag.span_label(__binding_1,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("but the name `{$name}` in the {$namespace} namespace is also re-exported here")));
diag
}
}
}
}
};Diagnostic)]
1611#[diag("ambiguous glob re-exports")]
1612pub(crate) struct AmbiguousGlobReexports {
1613 #[label("the name `{$name}` in the {$namespace} namespace is first re-exported here")]
1614 pub first_reexport: Span,
1615 #[label("but the name `{$name}` in the {$namespace} namespace is also re-exported here")]
1616 pub duplicate_reexport: Span,
1617
1618 pub name: String,
1619 pub namespace: String,
1620}
1621
1622#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for HiddenGlobReexports
{
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
HiddenGlobReexports {
glob_reexport: __binding_0,
private_item: __binding_1,
name: __binding_2,
namespace: __binding_3 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("private item shadows public glob re-export")));
;
diag.arg("name", __binding_2);
diag.arg("namespace", __binding_3);
diag.span_note(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the name `{$name}` in the {$namespace} namespace is supposed to be publicly re-exported here")));
diag.span_note(__binding_1,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("but the private item here shadows it")));
diag
}
}
}
}
};Diagnostic)]
1623#[diag("private item shadows public glob re-export")]
1624pub(crate) struct HiddenGlobReexports {
1625 #[note(
1626 "the name `{$name}` in the {$namespace} namespace is supposed to be publicly re-exported here"
1627 )]
1628 pub glob_reexport: Span,
1629 #[note("but the private item here shadows it")]
1630 pub private_item: Span,
1631
1632 pub name: String,
1633 pub namespace: String,
1634}
1635
1636#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for RedundantImport {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
RedundantImport { subs: __binding_0, ident: __binding_1 } =>
{
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the item `{$ident}` is imported redundantly")));
;
diag.arg("ident", __binding_1);
for __binding_0 in __binding_0 {
diag.subdiagnostic(__binding_0);
}
diag
}
}
}
}
};Diagnostic)]
1637#[diag("the item `{$ident}` is imported redundantly")]
1638pub(crate) struct RedundantImport {
1639 #[subdiagnostic]
1640 pub subs: Vec<RedundantImportSub>,
1641 pub ident: Ident,
1642}
1643
1644#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for RedundantImportSub {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
RedundantImportSub::ImportedHere {
span: __binding_0, ident: __binding_1 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("ident".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the item `{$ident}` is already imported here")),
&sub_args);
diag.span_label(__binding_0, __message);
}
RedundantImportSub::DefinedHere {
span: __binding_0, ident: __binding_1 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("ident".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the item `{$ident}` is already defined here")),
&sub_args);
diag.span_label(__binding_0, __message);
}
RedundantImportSub::ImportedPrelude {
span: __binding_0, ident: __binding_1 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("ident".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the item `{$ident}` is already imported by the extern prelude")),
&sub_args);
diag.span_label(__binding_0, __message);
}
RedundantImportSub::DefinedPrelude {
span: __binding_0, ident: __binding_1 } => {
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("ident".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("the item `{$ident}` is already defined by the extern prelude")),
&sub_args);
diag.span_label(__binding_0, __message);
}
}
}
}
};Subdiagnostic)]
1645pub(crate) enum RedundantImportSub {
1646 #[label("the item `{$ident}` is already imported here")]
1647 ImportedHere {
1648 #[primary_span]
1649 span: Span,
1650 ident: Ident,
1651 },
1652 #[label("the item `{$ident}` is already defined here")]
1653 DefinedHere {
1654 #[primary_span]
1655 span: Span,
1656 ident: Ident,
1657 },
1658 #[label("the item `{$ident}` is already imported by the extern prelude")]
1659 ImportedPrelude {
1660 #[primary_span]
1661 span: Span,
1662 ident: Ident,
1663 },
1664 #[label("the item `{$ident}` is already defined by the extern prelude")]
1665 DefinedPrelude {
1666 #[primary_span]
1667 span: Span,
1668 ident: Ident,
1669 },
1670}
1671
1672#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for UnusedQualifications
{
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
UnusedQualifications { removal_span: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("unnecessary qualification")));
let __code_39 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!(""))
})].into_iter();
;
diag.span_suggestions_with_style(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("remove the unnecessary path segments")),
__code_39, rustc_errors::Applicability::MachineApplicable,
rustc_errors::SuggestionStyle::ShowAlways);
diag
}
}
}
}
};Diagnostic)]
1673#[diag("unnecessary qualification")]
1674pub(crate) struct UnusedQualifications {
1675 #[suggestion(
1676 "remove the unnecessary path segments",
1677 style = "verbose",
1678 code = "",
1679 applicability = "machine-applicable"
1680 )]
1681 pub removal_span: Span,
1682}
1683
1684#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for SingleUseLifetime {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
SingleUseLifetime {
param_span: __binding_0,
use_span: __binding_1,
suggestion: __binding_2,
ident: __binding_3 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("lifetime parameter `{$ident}` only used once")));
;
diag.arg("ident", __binding_3);
diag.span_label(__binding_0,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("this lifetime...")));
diag.span_label(__binding_1,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("...is used only here")));
if let Some(__binding_2) = __binding_2 {
diag.subdiagnostic(__binding_2);
}
diag
}
}
}
}
};Diagnostic)]
1685#[diag("lifetime parameter `{$ident}` only used once")]
1686pub(crate) struct SingleUseLifetime {
1687 #[label("this lifetime...")]
1688 pub param_span: Span,
1689 #[label("...is used only here")]
1690 pub use_span: Span,
1691 #[subdiagnostic]
1692 pub suggestion: Option<SingleUseLifetimeSugg>,
1693
1694 pub ident: Ident,
1695}
1696
1697#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for SingleUseLifetimeSugg {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
SingleUseLifetimeSugg {
deletion_span: __binding_0,
use_span: __binding_1,
replace_lt: __binding_2 } => {
let mut suggestions = Vec::new();
let __code_40 =
::alloc::__export::must_use({
::alloc::fmt::format(format_args!(""))
});
let __code_41 =
::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_2))
});
if let Some(__binding_0) = __binding_0 {
suggestions.push((__binding_0, __code_40));
}
suggestions.push((__binding_1, __code_41));
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("elide the single-use lifetime")),
&sub_args);
diag.multipart_suggestion_with_style(__message, suggestions,
rustc_errors::Applicability::MachineApplicable,
rustc_errors::SuggestionStyle::ShowCode);
}
}
}
}
};Subdiagnostic)]
1698#[multipart_suggestion("elide the single-use lifetime", applicability = "machine-applicable")]
1699pub(crate) struct SingleUseLifetimeSugg {
1700 #[suggestion_part(code = "")]
1701 pub deletion_span: Option<Span>,
1702 #[suggestion_part(code = "{replace_lt}")]
1703 pub use_span: Span,
1704
1705 pub replace_lt: String,
1706}
1707
1708#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for AbsPathWithModule {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
AbsPathWithModule { sugg: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition")));
;
diag.subdiagnostic(__binding_0);
diag
}
}
}
}
};Diagnostic)]
1709#[diag(
1710 "absolute paths must start with `self`, `super`, `crate`, or an external crate name in the 2018 edition"
1711)]
1712pub(crate) struct AbsPathWithModule {
1713 #[subdiagnostic]
1714 pub sugg: AbsPathWithModuleSugg,
1715}
1716
1717#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for AbsPathWithModuleSugg {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
AbsPathWithModuleSugg {
span: __binding_0,
applicability: __binding_1,
replacement: __binding_2 } => {
let __code_42 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!("{0}", __binding_2))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("use `crate`")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_42, __binding_1,
rustc_errors::SuggestionStyle::ShowCode);
}
}
}
}
};Subdiagnostic)]
1718#[suggestion("use `crate`", code = "{replacement}")]
1719pub(crate) struct AbsPathWithModuleSugg {
1720 #[primary_span]
1721 pub span: Span,
1722 #[applicability]
1723 pub applicability: Applicability,
1724 pub replacement: String,
1725}
1726
1727#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for
ElidedLifetimesInPaths {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
ElidedLifetimesInPaths { subdiag: __binding_0 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("hidden lifetime parameters in types are deprecated")));
;
diag.subdiagnostic(__binding_0);
diag
}
}
}
}
};Diagnostic)]
1728#[diag("hidden lifetime parameters in types are deprecated")]
1729pub(crate) struct ElidedLifetimesInPaths {
1730 #[subdiagnostic]
1731 pub subdiag: rustc_errors::ElidedLifetimeInPathSubdiag,
1732}
1733
1734#[derive(const _: () =
{
impl<'_sess> rustc_errors::Diagnostic<'_sess> for UnusedImports {
#[track_caller]
fn into_diag(self, dcx: rustc_errors::DiagCtxtHandle<'_sess>,
level: rustc_errors::Level) -> rustc_errors::Diag<'_sess> {
match self {
UnusedImports {
sugg: __binding_0,
test_module_span: __binding_1,
span_snippets: __binding_2,
num_snippets: __binding_3 } => {
let mut diag =
rustc_errors::Diag::new(dcx, level,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("{$num_snippets ->\n [one] unused import: {$span_snippets}\n *[other] unused imports: {$span_snippets}\n }")));
;
diag.arg("span_snippets", __binding_2);
diag.arg("num_snippets", __binding_3);
if let Some(__binding_0) = __binding_0 {
diag.subdiagnostic(__binding_0);
}
if let Some(__binding_1) = __binding_1 {
diag.span_help(__binding_1,
rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("if this is a test module, consider adding a `#[cfg(test)]` to the containing module")));
}
diag
}
}
}
}
};Diagnostic)]
1735#[diag(
1736 "{$num_snippets ->
1737 [one] unused import: {$span_snippets}
1738 *[other] unused imports: {$span_snippets}
1739 }"
1740)]
1741pub(crate) struct UnusedImports {
1742 #[subdiagnostic]
1743 pub sugg: Option<UnusedImportsSugg>,
1744 #[help("if this is a test module, consider adding a `#[cfg(test)]` to the containing module")]
1745 pub test_module_span: Option<Span>,
1746
1747 pub span_snippets: DiagArgValue,
1748 pub num_snippets: usize,
1749}
1750
1751#[derive(const _: () =
{
impl rustc_errors::Subdiagnostic for UnusedImportsSugg {
fn add_to_diag(self, diag: &mut rustc_errors::Diag<'_>) {
match self {
UnusedImportsSugg::RemoveWholeUse { span: __binding_0 } => {
let __code_43 =
[::alloc::__export::must_use({
::alloc::fmt::format(format_args!(""))
})].into_iter();
let mut sub_args = rustc_errors::DiagArgMap::default();
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("remove the whole `use` item")),
&sub_args);
diag.span_suggestions_with_style(__binding_0, __message,
__code_43, rustc_errors::Applicability::MachineApplicable,
rustc_errors::SuggestionStyle::CompletelyHidden);
}
UnusedImportsSugg::RemoveImports {
remove_spans: __binding_0, num_to_remove: __binding_1 } => {
let mut suggestions = Vec::new();
let __code_44 =
::alloc::__export::must_use({
::alloc::fmt::format(format_args!(""))
});
for __binding_0 in __binding_0 {
suggestions.push((__binding_0, __code_44.clone()));
}
let mut sub_args = rustc_errors::DiagArgMap::default();
sub_args.insert("num_to_remove".into(),
rustc_errors::IntoDiagArg::into_diag_arg(__binding_1,
&mut diag.long_ty_path));
let __message =
rustc_errors::format_diag_message(&rustc_errors::DiagMessage::Inline(std::borrow::Cow::Borrowed("{$num_to_remove ->\n [one] remove the unused import\n *[other] remove the unused imports\n }")),
&sub_args);
diag.multipart_suggestion_with_style(__message, suggestions,
rustc_errors::Applicability::MachineApplicable,
rustc_errors::SuggestionStyle::CompletelyHidden);
}
}
}
}
};Subdiagnostic)]
1752pub(crate) enum UnusedImportsSugg {
1753 #[suggestion(
1754 "remove the whole `use` item",
1755 applicability = "machine-applicable",
1756 code = "",
1757 style = "tool-only"
1758 )]
1759 RemoveWholeUse {
1760 #[primary_span]
1761 span: Span,
1762 },
1763 #[multipart_suggestion(
1764 "{$num_to_remove ->
1765 [one] remove the unused import
1766 *[other] remove the unused imports
1767 }",
1768 applicability = "machine-applicable",
1769 style = "tool-only"
1770 )]
1771 RemoveImports {
1772 #[suggestion_part(code = "")]
1773 remove_spans: Vec<Span>,
1774 num_to_remove: usize,
1775 },
1776}