Skip to content

Commit 33f6af8

Browse files
committed
Auto merge of #118300 - compiler-errors:rollup-cm3i8fg, r=compiler-errors
Rollup of 7 pull requests Successful merges: - #117651 (coverage: Simplify building coverage expressions based on sums) - #117968 (Stabilize `ptr::addr_eq`) - #118158 (Reduce fluent boilerplate) - #118201 (Miscellaneous `ObligationCauseCode` cleanups) - #118288 (Use `is_{some,ok}_and` more in the compiler) - #118289 (`is_{some,ok}_and` for rustdoc) - #118290 (Don't ICE when encountering placeholders in implied bounds computation) r? `@ghost` `@rustbot` modify labels: rollup
2 parents ee80c8d + 2eccebb commit 33f6af8

File tree

81 files changed

+632
-792
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

81 files changed

+632
-792
lines changed

Cargo.lock

-3
Original file line numberDiff line numberDiff line change
@@ -3716,7 +3716,6 @@ dependencies = [
37163716
"rustc_const_eval",
37173717
"rustc_data_structures",
37183718
"rustc_error_codes",
3719-
"rustc_error_messages",
37203719
"rustc_errors",
37213720
"rustc_expand",
37223721
"rustc_feature",
@@ -3771,7 +3770,6 @@ dependencies = [
37713770
"intl-memoizer",
37723771
"rustc_baked_icu_data",
37733772
"rustc_data_structures",
3774-
"rustc_fluent_macro",
37753773
"rustc_macros",
37763774
"rustc_serialize",
37773775
"rustc_span",
@@ -3869,7 +3867,6 @@ dependencies = [
38693867
"rustc_arena",
38703868
"rustc_ast",
38713869
"rustc_data_structures",
3872-
"rustc_error_messages",
38733870
"rustc_index",
38743871
"rustc_macros",
38753872
"rustc_serialize",

compiler/rustc_ast_lowering/src/lib.rs

+2-5
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,7 @@ use rustc_data_structures::fx::FxHashMap;
5555
use rustc_data_structures::sorted_map::SortedMap;
5656
use rustc_data_structures::stable_hasher::{HashStable, StableHasher};
5757
use rustc_data_structures::sync::Lrc;
58-
use rustc_errors::{
59-
DiagnosticArgFromDisplay, DiagnosticMessage, Handler, StashKey, SubdiagnosticMessage,
60-
};
61-
use rustc_fluent_macro::fluent_messages;
58+
use rustc_errors::{DiagnosticArgFromDisplay, Handler, StashKey};
6259
use rustc_hir as hir;
6360
use rustc_hir::def::{DefKind, LifetimeRes, Namespace, PartialRes, PerNS, Res};
6461
use rustc_hir::def_id::{LocalDefId, CRATE_DEF_ID, LOCAL_CRATE};
@@ -94,7 +91,7 @@ mod lifetime_collector;
9491
mod pat;
9592
mod path;
9693

97-
fluent_messages! { "../messages.ftl" }
94+
rustc_fluent_macro::fluent_messages! { "../messages.ftl" }
9895

9996
struct LoweringContext<'a, 'hir> {
10097
tcx: TyCtxt<'hir>,

compiler/rustc_ast_passes/src/lib.rs

+1-4
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,10 @@
1515
#![deny(rustc::untranslatable_diagnostic)]
1616
#![deny(rustc::diagnostic_outside_of_impl)]
1717

18-
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
19-
use rustc_fluent_macro::fluent_messages;
20-
2118
pub mod ast_validation;
2219
mod errors;
2320
pub mod feature_gate;
2421
pub mod node_count;
2522
pub mod show_span;
2623

27-
fluent_messages! { "../messages.ftl" }
24+
rustc_fluent_macro::fluent_messages! { "../messages.ftl" }

compiler/rustc_attr/src/lib.rs

+1-4
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@
1414
#[macro_use]
1515
extern crate rustc_macros;
1616

17-
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
18-
use rustc_fluent_macro::fluent_messages;
19-
2017
mod builtin;
2118
mod session_diagnostics;
2219

@@ -29,4 +26,4 @@ pub use rustc_ast::attr::*;
2926

3027
pub(crate) use rustc_session::HashStableContext;
3128

32-
fluent_messages! { "../messages.ftl" }
29+
rustc_fluent_macro::fluent_messages! { "../messages.ftl" }

compiler/rustc_borrowck/src/lib.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ extern crate tracing;
2222

2323
use rustc_data_structures::fx::{FxIndexMap, FxIndexSet};
2424
use rustc_data_structures::graph::dominators::Dominators;
25-
use rustc_errors::{Diagnostic, DiagnosticBuilder, DiagnosticMessage, SubdiagnosticMessage};
26-
use rustc_fluent_macro::fluent_messages;
25+
use rustc_errors::{Diagnostic, DiagnosticBuilder};
2726
use rustc_hir as hir;
2827
use rustc_hir::def_id::LocalDefId;
2928
use rustc_index::bit_set::{BitSet, ChunkedBitSet};
@@ -98,7 +97,7 @@ use places_conflict::{places_conflict, PlaceConflictBias};
9897
use region_infer::RegionInferenceContext;
9998
use renumber::RegionCtxt;
10099

101-
fluent_messages! { "../messages.ftl" }
100+
rustc_fluent_macro::fluent_messages! { "../messages.ftl" }
102101

103102
// FIXME(eddyb) perhaps move this somewhere more centrally.
104103
#[derive(Debug)]

compiler/rustc_builtin_macros/src/lib.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,8 @@ extern crate tracing;
2323

2424
use crate::deriving::*;
2525

26-
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
2726
use rustc_expand::base::{MacroExpanderFn, ResolverExpand, SyntaxExtensionKind};
2827
use rustc_expand::proc_macro::BangProcMacro;
29-
use rustc_fluent_macro::fluent_messages;
3028
use rustc_span::symbol::sym;
3129

3230
mod alloc_error_handler;
@@ -59,7 +57,7 @@ pub mod proc_macro_harness;
5957
pub mod standard_library_imports;
6058
pub mod test_harness;
6159

62-
fluent_messages! { "../messages.ftl" }
60+
rustc_fluent_macro::fluent_messages! { "../messages.ftl" }
6361

6462
pub fn register_builtin_macros(resolver: &mut dyn ResolverExpand) {
6563
let mut register = |name, kind| resolver.register_builtin_macro(name, kind);

compiler/rustc_codegen_gcc/src/lib.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,7 @@ use rustc_codegen_ssa::target_features::supported_target_features;
101101
use rustc_data_structures::fx::FxIndexMap;
102102
use rustc_data_structures::sync::IntoDynSyncSend;
103103
use rustc_codegen_ssa::traits::{CodegenBackend, ExtraBackendMethods, ThinBufferMethods, WriteBackendMethods};
104-
use rustc_errors::{DiagnosticMessage, ErrorGuaranteed, Handler, SubdiagnosticMessage};
105-
use rustc_fluent_macro::fluent_messages;
104+
use rustc_errors::{ErrorGuaranteed, Handler};
106105
use rustc_metadata::EncodedMetadata;
107106
use rustc_middle::dep_graph::{WorkProduct, WorkProductId};
108107
use rustc_middle::util::Providers;
@@ -116,7 +115,7 @@ use tempfile::TempDir;
116115
use crate::back::lto::ModuleBuffer;
117116
use crate::gcc_util::target_cpu;
118117

119-
fluent_messages! { "../messages.ftl" }
118+
rustc_fluent_macro::fluent_messages! { "../messages.ftl" }
120119

121120
pub struct PrintOnPanic<F: Fn() -> String>(pub F);
122121

compiler/rustc_codegen_llvm/src/lib.rs

+2-3
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,7 @@ use rustc_codegen_ssa::traits::*;
4040
use rustc_codegen_ssa::ModuleCodegen;
4141
use rustc_codegen_ssa::{CodegenResults, CompiledModule};
4242
use rustc_data_structures::fx::FxIndexMap;
43-
use rustc_errors::{DiagnosticMessage, ErrorGuaranteed, FatalError, Handler, SubdiagnosticMessage};
44-
use rustc_fluent_macro::fluent_messages;
43+
use rustc_errors::{ErrorGuaranteed, FatalError, Handler};
4544
use rustc_metadata::EncodedMetadata;
4645
use rustc_middle::dep_graph::{WorkProduct, WorkProductId};
4746
use rustc_middle::ty::TyCtxt;
@@ -92,7 +91,7 @@ mod type_of;
9291
mod va_arg;
9392
mod value;
9493

95-
fluent_messages! { "../messages.ftl" }
94+
rustc_fluent_macro::fluent_messages! { "../messages.ftl" }
9695

9796
#[derive(Clone)]
9897
pub struct LlvmCodegenBackend(());

compiler/rustc_codegen_ssa/src/lib.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,6 @@ extern crate rustc_middle;
2727
use rustc_ast as ast;
2828
use rustc_data_structures::fx::{FxHashMap, FxHashSet};
2929
use rustc_data_structures::sync::Lrc;
30-
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
31-
use rustc_fluent_macro::fluent_messages;
3230
use rustc_hir::def_id::CrateNum;
3331
use rustc_middle::dep_graph::WorkProduct;
3432
use rustc_middle::middle::debugger_visualizer::DebuggerVisualizerFile;
@@ -60,7 +58,7 @@ pub mod mono_item;
6058
pub mod target_features;
6159
pub mod traits;
6260

63-
fluent_messages! { "../messages.ftl" }
61+
rustc_fluent_macro::fluent_messages! { "../messages.ftl" }
6462

6563
pub struct ModuleCodegen<M> {
6664
/// The name of the module. When the crate may be saved between

compiler/rustc_const_eval/src/lib.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,9 @@ pub mod util;
3939

4040
pub use errors::ReportErrorExt;
4141

42-
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
43-
use rustc_fluent_macro::fluent_messages;
4442
use rustc_middle::{ty, util::Providers};
4543

46-
fluent_messages! { "../messages.ftl" }
44+
rustc_fluent_macro::fluent_messages! { "../messages.ftl" }
4745

4846
pub fn provide(providers: &mut Providers) {
4947
const_eval::provide(providers);

compiler/rustc_driver_impl/Cargo.toml

-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ rustc_codegen_ssa = { path = "../rustc_codegen_ssa" }
1616
rustc_const_eval = { path = "../rustc_const_eval" }
1717
rustc_data_structures = { path = "../rustc_data_structures" }
1818
rustc_error_codes = { path = "../rustc_error_codes" }
19-
rustc_error_messages = { path = "../rustc_error_messages" }
2019
rustc_errors = { path = "../rustc_errors" }
2120
rustc_expand = { path = "../rustc_expand" }
2221
rustc_feature = { path = "../rustc_feature" }

compiler/rustc_driver_impl/src/lib.rs

+2-4
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,8 @@ use rustc_data_structures::profiling::{
2828
use rustc_data_structures::sync::SeqCst;
2929
use rustc_errors::registry::{InvalidErrorCode, Registry};
3030
use rustc_errors::{markdown, ColorConfig};
31-
use rustc_errors::{DiagnosticMessage, ErrorGuaranteed, Handler, PResult, SubdiagnosticMessage};
31+
use rustc_errors::{ErrorGuaranteed, Handler, PResult};
3232
use rustc_feature::find_gated_cfg;
33-
use rustc_fluent_macro::fluent_messages;
3433
use rustc_interface::util::{self, collect_crate_types, get_codegen_backend};
3534
use rustc_interface::{interface, Queries};
3635
use rustc_lint::unerased_lint_store;
@@ -102,7 +101,7 @@ use crate::session_diagnostics::{
102101
RLinkWrongFileType, RlinkNotAFile, RlinkUnableToRead,
103102
};
104103

105-
fluent_messages! { "../messages.ftl" }
104+
rustc_fluent_macro::fluent_messages! { "../messages.ftl" }
106105

107106
pub static DEFAULT_LOCALE_RESOURCES: &[&str] = &[
108107
// tidy-alphabetical-start
@@ -114,7 +113,6 @@ pub static DEFAULT_LOCALE_RESOURCES: &[&str] = &[
114113
rustc_builtin_macros::DEFAULT_LOCALE_RESOURCE,
115114
rustc_codegen_ssa::DEFAULT_LOCALE_RESOURCE,
116115
rustc_const_eval::DEFAULT_LOCALE_RESOURCE,
117-
rustc_error_messages::DEFAULT_LOCALE_RESOURCE,
118116
rustc_errors::DEFAULT_LOCALE_RESOURCE,
119117
rustc_expand::DEFAULT_LOCALE_RESOURCE,
120118
rustc_hir_analysis::DEFAULT_LOCALE_RESOURCE,

compiler/rustc_error_messages/Cargo.toml

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ icu_provider_adapters = "1.2"
1313
intl-memoizer = "0.5.1"
1414
rustc_baked_icu_data = { path = "../rustc_baked_icu_data" }
1515
rustc_data_structures = { path = "../rustc_data_structures" }
16-
rustc_fluent_macro = { path = "../rustc_fluent_macro" }
1716
rustc_macros = { path = "../rustc_macros" }
1817
rustc_serialize = { path = "../rustc_serialize" }
1918
rustc_span = { path = "../rustc_span" }

compiler/rustc_error_messages/messages.ftl

-1
This file was deleted.

compiler/rustc_error_messages/src/lib.rs

-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ use fluent_bundle::FluentResource;
1515
use fluent_syntax::parser::ParserError;
1616
use icu_provider_adapters::fallback::{LocaleFallbackProvider, LocaleFallbacker};
1717
use rustc_data_structures::sync::{IntoDynSyncSend, Lrc};
18-
use rustc_fluent_macro::fluent_messages;
1918
use rustc_macros::{Decodable, Encodable};
2019
use rustc_span::Span;
2120
use std::borrow::Cow;
@@ -38,8 +37,6 @@ use intl_memoizer::IntlLangMemoizer;
3837
pub use fluent_bundle::{self, types::FluentType, FluentArgs, FluentError, FluentValue};
3938
pub use unic_langid::{langid, LanguageIdentifier};
4039

41-
fluent_messages! { "../messages.ftl" }
42-
4340
pub type FluentBundle =
4441
IntoDynSyncSend<fluent_bundle::bundle::FluentBundle<FluentResource, IntlLangMemoizer>>;
4542

compiler/rustc_errors/src/lib.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ pub use rustc_error_messages::{
4141
fallback_fluent_bundle, fluent_bundle, DelayDm, DiagnosticMessage, FluentBundle,
4242
LanguageIdentifier, LazyFallbackBundle, MultiSpan, SpanLabel, SubdiagnosticMessage,
4343
};
44-
use rustc_fluent_macro::fluent_messages;
4544
pub use rustc_lint_defs::{pluralize, Applicability};
4645
use rustc_span::source_map::SourceMap;
4746
pub use rustc_span::ErrorGuaranteed;
@@ -82,7 +81,7 @@ pub use snippet::Style;
8281
pub type PErr<'a> = DiagnosticBuilder<'a, ErrorGuaranteed>;
8382
pub type PResult<'a, T> = Result<T, PErr<'a>>;
8483

85-
fluent_messages! { "../messages.ftl" }
84+
rustc_fluent_macro::fluent_messages! { "../messages.ftl" }
8685

8786
// `PResult` is used a lot. Make sure it doesn't unintentionally get bigger.
8887
// (See also the comment on `DiagnosticBuilderInner`'s `diagnostic` field.)

compiler/rustc_expand/src/lib.rs

+1-4
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ extern crate tracing;
2323

2424
extern crate proc_macro as pm;
2525

26-
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
27-
use rustc_fluent_macro::fluent_messages;
28-
2926
mod placeholders;
3027
mod proc_macro_server;
3128

@@ -67,4 +64,4 @@ mod mut_visit {
6764
mod tests;
6865
}
6966

70-
fluent_messages! { "../messages.ftl" }
67+
rustc_fluent_macro::fluent_messages! { "../messages.ftl" }

compiler/rustc_fluent_macro/src/fluent.rs

+14-19
Original file line numberDiff line numberDiff line change
@@ -57,20 +57,20 @@ fn finish(body: TokenStream, resource: TokenStream) -> proc_macro::TokenStream {
5757
/// identifiers for different subdiagnostic kinds.
5858
pub mod _subdiag {
5959
/// Default for `#[help]`
60-
pub const help: crate::SubdiagnosticMessage =
61-
crate::SubdiagnosticMessage::FluentAttr(std::borrow::Cow::Borrowed("help"));
60+
pub const help: rustc_errors::SubdiagnosticMessage =
61+
rustc_errors::SubdiagnosticMessage::FluentAttr(std::borrow::Cow::Borrowed("help"));
6262
/// Default for `#[note]`
63-
pub const note: crate::SubdiagnosticMessage =
64-
crate::SubdiagnosticMessage::FluentAttr(std::borrow::Cow::Borrowed("note"));
63+
pub const note: rustc_errors::SubdiagnosticMessage =
64+
rustc_errors::SubdiagnosticMessage::FluentAttr(std::borrow::Cow::Borrowed("note"));
6565
/// Default for `#[warn]`
66-
pub const warn: crate::SubdiagnosticMessage =
67-
crate::SubdiagnosticMessage::FluentAttr(std::borrow::Cow::Borrowed("warn"));
66+
pub const warn: rustc_errors::SubdiagnosticMessage =
67+
rustc_errors::SubdiagnosticMessage::FluentAttr(std::borrow::Cow::Borrowed("warn"));
6868
/// Default for `#[label]`
69-
pub const label: crate::SubdiagnosticMessage =
70-
crate::SubdiagnosticMessage::FluentAttr(std::borrow::Cow::Borrowed("label"));
69+
pub const label: rustc_errors::SubdiagnosticMessage =
70+
rustc_errors::SubdiagnosticMessage::FluentAttr(std::borrow::Cow::Borrowed("label"));
7171
/// Default for `#[suggestion]`
72-
pub const suggestion: crate::SubdiagnosticMessage =
73-
crate::SubdiagnosticMessage::FluentAttr(std::borrow::Cow::Borrowed("suggestion"));
72+
pub const suggestion: rustc_errors::SubdiagnosticMessage =
73+
rustc_errors::SubdiagnosticMessage::FluentAttr(std::borrow::Cow::Borrowed("suggestion"));
7474
}
7575
}
7676
}
@@ -248,11 +248,8 @@ pub(crate) fn fluent_messages(input: proc_macro::TokenStream) -> proc_macro::Tok
248248
format!("Constant referring to Fluent message `{name}` from `{crate_name}`");
249249
constants.extend(quote! {
250250
#[doc = #docstr]
251-
pub const #snake_name: crate::DiagnosticMessage =
252-
crate::DiagnosticMessage::FluentIdentifier(
253-
std::borrow::Cow::Borrowed(#name),
254-
None
255-
);
251+
pub const #snake_name: rustc_errors::DiagnosticMessage =
252+
rustc_errors::DiagnosticMessage::FluentIdentifier(std::borrow::Cow::Borrowed(#name), None);
256253
});
257254

258255
for Attribute { id: Identifier { name: attr_name }, .. } in attributes {
@@ -279,10 +276,8 @@ pub(crate) fn fluent_messages(input: proc_macro::TokenStream) -> proc_macro::Tok
279276
);
280277
constants.extend(quote! {
281278
#[doc = #msg]
282-
pub const #snake_name: crate::SubdiagnosticMessage =
283-
crate::SubdiagnosticMessage::FluentAttr(
284-
std::borrow::Cow::Borrowed(#attr_name)
285-
);
279+
pub const #snake_name: rustc_errors::SubdiagnosticMessage =
280+
rustc_errors::SubdiagnosticMessage::FluentAttr(std::borrow::Cow::Borrowed(#attr_name));
286281
});
287282
}
288283

compiler/rustc_fluent_macro/src/lib.rs

+4
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,10 @@ mod fluent;
6161
/// );
6262
/// err.emit();
6363
/// ```
64+
///
65+
/// Note: any crate using this macro must also have a dependency on
66+
/// `rustc_errors`, because the generated code refers to things from that
67+
/// crate.
6468
#[proc_macro]
6569
pub fn fluent_messages(input: TokenStream) -> TokenStream {
6670
fluent::fluent_messages(input)

compiler/rustc_hir/Cargo.toml

-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ odht = { version = "0.3.1", features = ["nightly"] }
99
rustc_arena = { path = "../rustc_arena" }
1010
rustc_ast = { path = "../rustc_ast" }
1111
rustc_data_structures = { path = "../rustc_data_structures" }
12-
rustc_error_messages = { path = "../rustc_error_messages" }
1312
rustc_index = { path = "../rustc_index" }
1413
rustc_macros = { path = "../rustc_macros" }
1514
rustc_serialize = { path = "../rustc_serialize" }

compiler/rustc_hir_analysis/src/check/compare_impl_item/refine.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ pub(super) fn check_refining_return_position_impl_trait_in_trait<'tcx>(
9191

9292
// This opaque also needs to be from the impl method -- otherwise,
9393
// it's a refinement to a TAIT.
94-
if !tcx.hir().get_if_local(impl_opaque.def_id).map_or(false, |node| {
94+
if !tcx.hir().get_if_local(impl_opaque.def_id).is_some_and(|node| {
9595
matches!(
9696
node.expect_item().expect_opaque_ty().origin,
9797
hir::OpaqueTyOrigin::AsyncFn(def_id) | hir::OpaqueTyOrigin::FnReturn(def_id)

compiler/rustc_hir_analysis/src/lib.rs

+1-3
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,6 @@ pub mod structured_errors;
9999
mod variance;
100100

101101
use rustc_errors::ErrorGuaranteed;
102-
use rustc_errors::{DiagnosticMessage, SubdiagnosticMessage};
103-
use rustc_fluent_macro::fluent_messages;
104102
use rustc_hir as hir;
105103
use rustc_middle::middle;
106104
use rustc_middle::query::Providers;
@@ -115,7 +113,7 @@ use astconv::{AstConv, OnlySelfBounds};
115113
use bounds::Bounds;
116114
use rustc_hir::def::DefKind;
117115

118-
fluent_messages! { "../messages.ftl" }
116+
rustc_fluent_macro::fluent_messages! { "../messages.ftl" }
119117

120118
fn require_c_abi_if_c_variadic(tcx: TyCtxt<'_>, decl: &hir::FnDecl<'_>, abi: Abi, span: Span) {
121119
const CONVENTIONS_UNSTABLE: &str = "`C`, `cdecl`, `aapcs`, `win64`, `sysv64` or `efiapi`";

0 commit comments

Comments
 (0)