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
|
@ -38,7 +38,7 @@ pub(crate) struct NameAlreadyUsedInParameterList {
|
|||
#[primary_span]
|
||||
#[label]
|
||||
pub(crate) span: Span,
|
||||
#[label(first_use_of_name)]
|
||||
#[label(resolve_first_use_of_name)]
|
||||
pub(crate) first_use_span: Span,
|
||||
pub(crate) name: Symbol,
|
||||
}
|
||||
|
@ -121,7 +121,7 @@ pub(crate) struct VariableBoundWithDifferentMode {
|
|||
#[primary_span]
|
||||
#[label]
|
||||
pub(crate) span: Span,
|
||||
#[label(first_binding_span)]
|
||||
#[label(resolve_first_binding_span)]
|
||||
pub(crate) first_binding_span: Span,
|
||||
pub(crate) variable_name: Symbol,
|
||||
}
|
||||
|
@ -293,7 +293,7 @@ pub(crate) struct BindingShadowsSomethingUnacceptable<'a> {
|
|||
pub(crate) article: &'a str,
|
||||
#[subdiagnostic]
|
||||
pub(crate) sub_suggestion: Option<BindingShadowsSomethingUnacceptableSuggestion>,
|
||||
#[label(label_shadowed_binding)]
|
||||
#[label(resolve_label_shadowed_binding)]
|
||||
pub(crate) shadowed_binding_span: Span,
|
||||
pub(crate) participle: &'a str,
|
||||
pub(crate) name: Symbol,
|
||||
|
@ -369,7 +369,7 @@ pub(crate) struct UnreachableLabel {
|
|||
#[label]
|
||||
pub(crate) span: Span,
|
||||
pub(crate) name: Symbol,
|
||||
#[label(label_definition_span)]
|
||||
#[label(resolve_label_definition_span)]
|
||||
pub(crate) definition_span: Span,
|
||||
#[subdiagnostic]
|
||||
pub(crate) sub_suggestion: Option<UnreachableLabelSubSuggestion>,
|
||||
|
@ -413,7 +413,7 @@ pub(crate) struct TraitImplMismatch {
|
|||
pub(crate) span: Span,
|
||||
pub(crate) name: Symbol,
|
||||
pub(crate) kind: String,
|
||||
#[label(label_trait_item)]
|
||||
#[label(resolve_label_trait_item)]
|
||||
pub(crate) trait_item_span: Span,
|
||||
pub(crate) trait_path: String,
|
||||
pub(crate) code: String,
|
||||
|
@ -434,9 +434,9 @@ pub(crate) struct TraitImplDuplicate {
|
|||
#[primary_span]
|
||||
#[label]
|
||||
pub(crate) span: Span,
|
||||
#[label(old_span_label)]
|
||||
#[label(resolve_old_span_label)]
|
||||
pub(crate) old_span: Span,
|
||||
#[label(trait_item_span)]
|
||||
#[label(resolve_trait_item_span)]
|
||||
pub(crate) trait_item_span: Span,
|
||||
pub(crate) name: Symbol,
|
||||
}
|
||||
|
|
|
@ -28,7 +28,9 @@ use rustc_ast::{AngleBracketedArg, Crate, Expr, ExprKind, GenericArg, GenericArg
|
|||
use rustc_data_structures::fx::{FxHashMap, FxHashSet, FxIndexMap, FxIndexSet};
|
||||
use rustc_data_structures::intern::Interned;
|
||||
use rustc_data_structures::sync::{Lrc, MappedReadGuard};
|
||||
use rustc_errors::{Applicability, DiagnosticBuilder, ErrorGuaranteed};
|
||||
use rustc_errors::{
|
||||
Applicability, DiagnosticBuilder, DiagnosticMessage, ErrorGuaranteed, SubdiagnosticMessage,
|
||||
};
|
||||
use rustc_expand::base::{DeriveResolutions, SyntaxExtension, SyntaxExtensionKind};
|
||||
use rustc_hir::def::Namespace::{self, *};
|
||||
use rustc_hir::def::{self, CtorOf, DefKind, DocLinkResMap, LifetimeRes, PartialRes, PerNS};
|
||||
|
@ -37,6 +39,7 @@ use rustc_hir::def_id::{CRATE_DEF_ID, LOCAL_CRATE};
|
|||
use rustc_hir::definitions::DefPathData;
|
||||
use rustc_hir::TraitCandidate;
|
||||
use rustc_index::vec::IndexVec;
|
||||
use rustc_macros::fluent_messages;
|
||||
use rustc_metadata::creader::{CStore, CrateLoader};
|
||||
use rustc_middle::metadata::ModChild;
|
||||
use rustc_middle::middle::privacy::EffectiveVisibilities;
|
||||
|
@ -77,6 +80,8 @@ mod late;
|
|||
mod macros;
|
||||
pub mod rustdoc;
|
||||
|
||||
fluent_messages! { "../locales/en-US.ftl" }
|
||||
|
||||
enum Weak {
|
||||
Yes,
|
||||
No,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue