mirror of
https://github.com/rust-lang/rust.git
synced 2025-06-22 04:27:33 +00:00

Previously `-Zprint-mono-items` would override the mono item collection strategy. When debugging one doesn't want to change the behaviour, so this was counter productive. Additionally, the produced behaviour was artificial and might never arise without using the option in the first place (`-Zprint-mono-items=eager` without `-Clink-dead-code`). Finally, the option was incorrectly marked as `UNTRACKED`. Resolve those issues, by turning `-Zprint-mono-items` into a boolean flag that prints results of mono item collection without changing the behaviour of mono item collection. For codegen-units test incorporate `-Zprint-mono-items` flag directly into compiletest tool. Test changes are mechanical. `-Zprint-mono-items=lazy` was removed without additional changes, and `-Zprint-mono-items=eager` was turned into `-Clink-dead-code`. Linking dead code disables internalization, so tests have been updated accordingly.
112 lines
2.6 KiB
Rust
112 lines
2.6 KiB
Rust
use std::path::PathBuf;
|
|
|
|
use rustc_macros::{Diagnostic, LintDiagnostic};
|
|
use rustc_middle::ty::Ty;
|
|
use rustc_span::{Span, Symbol};
|
|
|
|
#[derive(Diagnostic)]
|
|
#[diag(monomorphize_recursion_limit)]
|
|
pub(crate) struct RecursionLimit {
|
|
#[primary_span]
|
|
pub span: Span,
|
|
pub shrunk: String,
|
|
#[note]
|
|
pub def_span: Span,
|
|
pub def_path_str: String,
|
|
#[note(monomorphize_written_to_path)]
|
|
pub was_written: bool,
|
|
pub path: PathBuf,
|
|
}
|
|
|
|
#[derive(Diagnostic)]
|
|
#[diag(monomorphize_no_optimized_mir)]
|
|
pub(crate) struct NoOptimizedMir {
|
|
#[note]
|
|
pub span: Span,
|
|
pub crate_name: Symbol,
|
|
pub instance: String,
|
|
}
|
|
|
|
#[derive(LintDiagnostic)]
|
|
#[diag(monomorphize_large_assignments)]
|
|
#[note]
|
|
pub(crate) struct LargeAssignmentsLint {
|
|
#[label]
|
|
pub span: Span,
|
|
pub size: u64,
|
|
pub limit: u64,
|
|
}
|
|
|
|
#[derive(Diagnostic)]
|
|
#[diag(monomorphize_symbol_already_defined)]
|
|
pub(crate) struct SymbolAlreadyDefined {
|
|
#[primary_span]
|
|
pub span: Option<Span>,
|
|
pub symbol: String,
|
|
}
|
|
|
|
#[derive(Diagnostic)]
|
|
#[diag(monomorphize_couldnt_dump_mono_stats)]
|
|
pub(crate) struct CouldntDumpMonoStats {
|
|
pub error: String,
|
|
}
|
|
|
|
#[derive(Diagnostic)]
|
|
#[diag(monomorphize_encountered_error_while_instantiating)]
|
|
pub(crate) struct EncounteredErrorWhileInstantiating {
|
|
#[primary_span]
|
|
pub span: Span,
|
|
pub formatted_item: String,
|
|
}
|
|
|
|
#[derive(Diagnostic)]
|
|
#[diag(monomorphize_start_not_found)]
|
|
#[help]
|
|
pub(crate) struct StartNotFound;
|
|
|
|
#[derive(Diagnostic)]
|
|
#[diag(monomorphize_abi_error_disabled_vector_type)]
|
|
#[help]
|
|
pub(crate) struct AbiErrorDisabledVectorType<'a> {
|
|
#[primary_span]
|
|
#[label]
|
|
pub span: Span,
|
|
pub required_feature: &'a str,
|
|
pub ty: Ty<'a>,
|
|
/// Whether this is a problem at a call site or at a declaration.
|
|
pub is_call: bool,
|
|
}
|
|
|
|
#[derive(Diagnostic)]
|
|
#[diag(monomorphize_abi_error_unsupported_vector_type)]
|
|
pub(crate) struct AbiErrorUnsupportedVectorType<'a> {
|
|
#[primary_span]
|
|
#[label]
|
|
pub span: Span,
|
|
pub ty: Ty<'a>,
|
|
/// Whether this is a problem at a call site or at a declaration.
|
|
pub is_call: bool,
|
|
}
|
|
|
|
#[derive(Diagnostic)]
|
|
#[diag(monomorphize_abi_required_target_feature)]
|
|
#[help]
|
|
pub(crate) struct AbiRequiredTargetFeature<'a> {
|
|
#[primary_span]
|
|
#[label]
|
|
pub span: Span,
|
|
pub required_feature: &'a str,
|
|
pub abi: &'a str,
|
|
/// Whether this is a problem at a call site or at a declaration.
|
|
pub is_call: bool,
|
|
}
|
|
|
|
#[derive(LintDiagnostic)]
|
|
#[diag(monomorphize_wasm_c_abi_transition)]
|
|
#[help]
|
|
pub(crate) struct WasmCAbiTransition<'a> {
|
|
pub ty: Ty<'a>,
|
|
/// Whether this is a problem at a call site or at a declaration.
|
|
pub is_call: bool,
|
|
}
|