errors: generate typed identifiers in each crate
Instead of loading the Fluent resources for every crate in `rustc_error_messages`, each crate generates typed identifiers for its own diagnostics and creates a static which are pulled together in the `rustc_driver` crate and provided to the diagnostic emitter. Signed-off-by: David Wood <david.wood@huawei.com>
This commit is contained in:
parent
f9216b7564
commit
d1fcf61117
151 changed files with 1721 additions and 1440 deletions
|
@ -9,12 +9,12 @@ pub(crate) struct UnstableInStable {
|
|||
#[primary_span]
|
||||
pub span: Span,
|
||||
#[suggestion(
|
||||
unstable_sugg,
|
||||
const_eval_unstable_sugg,
|
||||
code = "#[rustc_const_unstable(feature = \"...\", issue = \"...\")]\n",
|
||||
applicability = "has-placeholders"
|
||||
)]
|
||||
#[suggestion(
|
||||
bypass_sugg,
|
||||
const_eval_bypass_sugg,
|
||||
code = "#[rustc_allow_const_fn_unstable({gate})]\n",
|
||||
applicability = "has-placeholders"
|
||||
)]
|
||||
|
@ -35,15 +35,15 @@ pub(crate) struct StaticAccessErr {
|
|||
#[primary_span]
|
||||
pub span: Span,
|
||||
pub kind: ConstContext,
|
||||
#[note(teach_note)]
|
||||
#[help(teach_help)]
|
||||
#[note(const_eval_teach_note)]
|
||||
#[help(const_eval_teach_help)]
|
||||
pub teach: Option<()>,
|
||||
}
|
||||
|
||||
#[derive(Diagnostic)]
|
||||
#[diag(const_eval_raw_ptr_to_int)]
|
||||
#[note]
|
||||
#[note(note2)]
|
||||
#[note(const_eval_note2)]
|
||||
pub(crate) struct RawPtrToIntErr {
|
||||
#[primary_span]
|
||||
pub span: Span,
|
||||
|
@ -118,7 +118,7 @@ pub(crate) struct UnallowedMutableRefs {
|
|||
#[primary_span]
|
||||
pub span: Span,
|
||||
pub kind: ConstContext,
|
||||
#[note(teach_note)]
|
||||
#[note(const_eval_teach_note)]
|
||||
pub teach: Option<()>,
|
||||
}
|
||||
|
||||
|
@ -128,7 +128,7 @@ pub(crate) struct UnallowedMutableRefsRaw {
|
|||
#[primary_span]
|
||||
pub span: Span,
|
||||
pub kind: ConstContext,
|
||||
#[note(teach_note)]
|
||||
#[note(const_eval_teach_note)]
|
||||
pub teach: Option<()>,
|
||||
}
|
||||
#[derive(Diagnostic)]
|
||||
|
@ -163,7 +163,7 @@ pub(crate) struct UnallowedHeapAllocations {
|
|||
#[label]
|
||||
pub span: Span,
|
||||
pub kind: ConstContext,
|
||||
#[note(teach_note)]
|
||||
#[note(const_eval_teach_note)]
|
||||
pub teach: Option<()>,
|
||||
}
|
||||
|
||||
|
@ -184,7 +184,7 @@ pub(crate) struct InteriorMutableDataRefer {
|
|||
#[help]
|
||||
pub opt_help: Option<()>,
|
||||
pub kind: ConstContext,
|
||||
#[note(teach_note)]
|
||||
#[note(const_eval_teach_note)]
|
||||
pub teach: Option<()>,
|
||||
}
|
||||
|
||||
|
|
|
@ -34,10 +34,14 @@ pub mod interpret;
|
|||
pub mod transform;
|
||||
pub mod util;
|
||||
|
||||
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
|
||||
use rustc_macros::fluent_messages;
|
||||
use rustc_middle::ty;
|
||||
use rustc_middle::ty::query::Providers;
|
||||
use rustc_target::abi::InitKind;
|
||||
|
||||
fluent_messages! { "../locales/en-US.ftl" }
|
||||
|
||||
pub fn provide(providers: &mut Providers) {
|
||||
const_eval::provide(providers);
|
||||
providers.eval_to_const_value_raw = const_eval::eval_to_const_value_raw_provider;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue