mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-29 11:37:39 +00:00
Rename DiagnosticDeriveKind::Diagnostic::handler
as DiagnosticDeriveKind::Diagnostic::dcx
.
This commit is contained in:
parent
f7125f1f66
commit
7b8644e5cf
@ -17,11 +17,11 @@ pub(crate) struct DiagnosticDerive<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> DiagnosticDerive<'a> {
|
impl<'a> DiagnosticDerive<'a> {
|
||||||
pub(crate) fn new(diag: syn::Ident, handler: syn::Ident, structure: Structure<'a>) -> Self {
|
pub(crate) fn new(diag: syn::Ident, dcx: syn::Ident, structure: Structure<'a>) -> Self {
|
||||||
Self {
|
Self {
|
||||||
builder: DiagnosticDeriveBuilder {
|
builder: DiagnosticDeriveBuilder {
|
||||||
diag,
|
diag,
|
||||||
kind: DiagnosticDeriveKind::Diagnostic { handler },
|
kind: DiagnosticDeriveKind::Diagnostic { dcx },
|
||||||
},
|
},
|
||||||
structure,
|
structure,
|
||||||
}
|
}
|
||||||
@ -36,7 +36,7 @@ impl<'a> DiagnosticDerive<'a> {
|
|||||||
let body = builder.body(variant);
|
let body = builder.body(variant);
|
||||||
|
|
||||||
let diag = &builder.parent.diag;
|
let diag = &builder.parent.diag;
|
||||||
let DiagnosticDeriveKind::Diagnostic { handler } = &builder.parent.kind else {
|
let DiagnosticDeriveKind::Diagnostic { dcx } = &builder.parent.kind else {
|
||||||
unreachable!()
|
unreachable!()
|
||||||
};
|
};
|
||||||
let init = match builder.slug.value_ref() {
|
let init = match builder.slug.value_ref() {
|
||||||
@ -62,7 +62,7 @@ impl<'a> DiagnosticDerive<'a> {
|
|||||||
Some(slug) => {
|
Some(slug) => {
|
||||||
slugs.borrow_mut().push(slug.clone());
|
slugs.borrow_mut().push(slug.clone());
|
||||||
quote! {
|
quote! {
|
||||||
let mut #diag = #handler.struct_diagnostic(crate::fluent_generated::#slug);
|
let mut #diag = #dcx.struct_diagnostic(crate::fluent_generated::#slug);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -77,7 +77,7 @@ impl<'a> DiagnosticDerive<'a> {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
let DiagnosticDeriveKind::Diagnostic { handler } = &builder.kind else { unreachable!() };
|
let DiagnosticDeriveKind::Diagnostic { dcx } = &builder.kind else { unreachable!() };
|
||||||
|
|
||||||
let mut imp = structure.gen_impl(quote! {
|
let mut imp = structure.gen_impl(quote! {
|
||||||
gen impl<'__diagnostic_handler_sess, G>
|
gen impl<'__diagnostic_handler_sess, G>
|
||||||
@ -89,7 +89,7 @@ impl<'a> DiagnosticDerive<'a> {
|
|||||||
#[track_caller]
|
#[track_caller]
|
||||||
fn into_diagnostic(
|
fn into_diagnostic(
|
||||||
self,
|
self,
|
||||||
#handler: &'__diagnostic_handler_sess rustc_errors::DiagCtxt
|
#dcx: &'__diagnostic_handler_sess rustc_errors::DiagCtxt
|
||||||
) -> rustc_errors::DiagnosticBuilder<'__diagnostic_handler_sess, G> {
|
) -> rustc_errors::DiagnosticBuilder<'__diagnostic_handler_sess, G> {
|
||||||
use rustc_errors::IntoDiagnosticArg;
|
use rustc_errors::IntoDiagnosticArg;
|
||||||
#implementation
|
#implementation
|
||||||
|
@ -19,7 +19,7 @@ use super::utils::SubdiagnosticVariant;
|
|||||||
/// What kind of diagnostic is being derived - a fatal/error/warning or a lint?
|
/// What kind of diagnostic is being derived - a fatal/error/warning or a lint?
|
||||||
#[derive(Clone, PartialEq, Eq)]
|
#[derive(Clone, PartialEq, Eq)]
|
||||||
pub(crate) enum DiagnosticDeriveKind {
|
pub(crate) enum DiagnosticDeriveKind {
|
||||||
Diagnostic { handler: syn::Ident },
|
Diagnostic { dcx: syn::Ident },
|
||||||
LintDiagnostic,
|
LintDiagnostic,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -348,11 +348,11 @@ impl<'a> DiagnosticDeriveVariantBuilder<'a> {
|
|||||||
}
|
}
|
||||||
(Meta::Path(_), "subdiagnostic") => {
|
(Meta::Path(_), "subdiagnostic") => {
|
||||||
if FieldInnerTy::from_type(&info.binding.ast().ty).will_iterate() {
|
if FieldInnerTy::from_type(&info.binding.ast().ty).will_iterate() {
|
||||||
let DiagnosticDeriveKind::Diagnostic { handler } = &self.parent.kind else {
|
let DiagnosticDeriveKind::Diagnostic { dcx } = &self.parent.kind else {
|
||||||
// No eager translation for lints.
|
// No eager translation for lints.
|
||||||
return Ok(quote! { #diag.subdiagnostic(#binding); });
|
return Ok(quote! { #diag.subdiagnostic(#binding); });
|
||||||
};
|
};
|
||||||
return Ok(quote! { #diag.eager_subdiagnostic(#handler, #binding); });
|
return Ok(quote! { #diag.eager_subdiagnostic(#dcx, #binding); });
|
||||||
} else {
|
} else {
|
||||||
return Ok(quote! { #diag.subdiagnostic(#binding); });
|
return Ok(quote! { #diag.subdiagnostic(#binding); });
|
||||||
}
|
}
|
||||||
@ -377,7 +377,7 @@ impl<'a> DiagnosticDeriveVariantBuilder<'a> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
let handler = match &self.parent.kind {
|
let handler = match &self.parent.kind {
|
||||||
DiagnosticDeriveKind::Diagnostic { handler } => handler,
|
DiagnosticDeriveKind::Diagnostic { dcx } => dcx,
|
||||||
DiagnosticDeriveKind::LintDiagnostic => {
|
DiagnosticDeriveKind::LintDiagnostic => {
|
||||||
throw_invalid_attr!(attr, |diag| {
|
throw_invalid_attr!(attr, |diag| {
|
||||||
diag.help("eager subdiagnostics are not supported on lints")
|
diag.help("eager subdiagnostics are not supported on lints")
|
||||||
|
Loading…
Reference in New Issue
Block a user