Skip to content

Commit 89f38a0

Browse files
authored
Rollup merge of rust-lang#84803 - jyn514:duplicate-macros, r=petrochenkov
Reduce duplication in `impl_dep_tracking_hash` macros Cherry-picked from rust-lang#84234 since it will be a while until it lands.
2 parents 5d5ba5a + dd43d13 commit 89f38a0

File tree

1 file changed

+61
-57
lines changed

1 file changed

+61
-57
lines changed

compiler/rustc_session/src/config.rs

+61-57
Original file line numberDiff line numberDiff line change
@@ -2332,17 +2332,17 @@ crate mod dep_tracking {
23322332
}
23332333

23342334
macro_rules! impl_dep_tracking_hash_via_hash {
2335-
($t:ty) => {
2335+
($($t:ty),+ $(,)?) => {$(
23362336
impl DepTrackingHash for $t {
23372337
fn hash(&self, hasher: &mut DefaultHasher, _: ErrorOutputType) {
23382338
Hash::hash(self, hasher);
23392339
}
23402340
}
2341-
};
2341+
)+};
23422342
}
23432343

23442344
macro_rules! impl_dep_tracking_hash_for_sortable_vec_of {
2345-
($t:ty) => {
2345+
($($t:ty),+ $(,)?) => {$(
23462346
impl DepTrackingHash for Vec<$t> {
23472347
fn hash(&self, hasher: &mut DefaultHasher, error_format: ErrorOutputType) {
23482348
let mut elems: Vec<&$t> = self.iter().collect();
@@ -2354,61 +2354,65 @@ crate mod dep_tracking {
23542354
}
23552355
}
23562356
}
2357-
};
2358-
}
2357+
)+};
2358+
}
2359+
2360+
impl_dep_tracking_hash_via_hash!(
2361+
bool,
2362+
usize,
2363+
u64,
2364+
String,
2365+
PathBuf,
2366+
lint::Level,
2367+
Option<bool>,
2368+
Option<u32>,
2369+
Option<usize>,
2370+
Option<NonZeroUsize>,
2371+
Option<String>,
2372+
Option<(String, u64)>,
2373+
Option<Vec<String>>,
2374+
Option<MergeFunctions>,
2375+
Option<RelocModel>,
2376+
Option<CodeModel>,
2377+
Option<TlsModel>,
2378+
Option<WasiExecModel>,
2379+
Option<PanicStrategy>,
2380+
Option<RelroLevel>,
2381+
Option<InstrumentCoverage>,
2382+
Option<lint::Level>,
2383+
Option<PathBuf>,
2384+
CrateType,
2385+
MergeFunctions,
2386+
PanicStrategy,
2387+
RelroLevel,
2388+
Passes,
2389+
OptLevel,
2390+
LtoCli,
2391+
DebugInfo,
2392+
UnstableFeatures,
2393+
OutputTypes,
2394+
NativeLibKind,
2395+
SanitizerSet,
2396+
CFGuard,
2397+
TargetTriple,
2398+
Edition,
2399+
LinkerPluginLto,
2400+
Option<SplitDebuginfo>,
2401+
SwitchWithOptPath,
2402+
Option<SymbolManglingVersion>,
2403+
Option<SourceFileHashAlgorithm>,
2404+
TrimmedDefPaths,
2405+
);
23592406

2360-
impl_dep_tracking_hash_via_hash!(bool);
2361-
impl_dep_tracking_hash_via_hash!(usize);
2362-
impl_dep_tracking_hash_via_hash!(u64);
2363-
impl_dep_tracking_hash_via_hash!(String);
2364-
impl_dep_tracking_hash_via_hash!(PathBuf);
2365-
impl_dep_tracking_hash_via_hash!(lint::Level);
2366-
impl_dep_tracking_hash_via_hash!(Option<bool>);
2367-
impl_dep_tracking_hash_via_hash!(Option<u32>);
2368-
impl_dep_tracking_hash_via_hash!(Option<usize>);
2369-
impl_dep_tracking_hash_via_hash!(Option<NonZeroUsize>);
2370-
impl_dep_tracking_hash_via_hash!(Option<String>);
2371-
impl_dep_tracking_hash_via_hash!(Option<(String, u64)>);
2372-
impl_dep_tracking_hash_via_hash!(Option<Vec<String>>);
2373-
impl_dep_tracking_hash_via_hash!(Option<MergeFunctions>);
2374-
impl_dep_tracking_hash_via_hash!(Option<RelocModel>);
2375-
impl_dep_tracking_hash_via_hash!(Option<CodeModel>);
2376-
impl_dep_tracking_hash_via_hash!(Option<TlsModel>);
2377-
impl_dep_tracking_hash_via_hash!(Option<WasiExecModel>);
2378-
impl_dep_tracking_hash_via_hash!(Option<PanicStrategy>);
2379-
impl_dep_tracking_hash_via_hash!(Option<RelroLevel>);
2380-
impl_dep_tracking_hash_via_hash!(Option<InstrumentCoverage>);
2381-
impl_dep_tracking_hash_via_hash!(Option<lint::Level>);
2382-
impl_dep_tracking_hash_via_hash!(Option<PathBuf>);
2383-
impl_dep_tracking_hash_via_hash!(CrateType);
2384-
impl_dep_tracking_hash_via_hash!(MergeFunctions);
2385-
impl_dep_tracking_hash_via_hash!(PanicStrategy);
2386-
impl_dep_tracking_hash_via_hash!(RelroLevel);
2387-
impl_dep_tracking_hash_via_hash!(Passes);
2388-
impl_dep_tracking_hash_via_hash!(OptLevel);
2389-
impl_dep_tracking_hash_via_hash!(LtoCli);
2390-
impl_dep_tracking_hash_via_hash!(DebugInfo);
2391-
impl_dep_tracking_hash_via_hash!(UnstableFeatures);
2392-
impl_dep_tracking_hash_via_hash!(OutputTypes);
2393-
impl_dep_tracking_hash_via_hash!(NativeLibKind);
2394-
impl_dep_tracking_hash_via_hash!(SanitizerSet);
2395-
impl_dep_tracking_hash_via_hash!(CFGuard);
2396-
impl_dep_tracking_hash_via_hash!(TargetTriple);
2397-
impl_dep_tracking_hash_via_hash!(Edition);
2398-
impl_dep_tracking_hash_via_hash!(LinkerPluginLto);
2399-
impl_dep_tracking_hash_via_hash!(Option<SplitDebuginfo>);
2400-
impl_dep_tracking_hash_via_hash!(SwitchWithOptPath);
2401-
impl_dep_tracking_hash_via_hash!(Option<SymbolManglingVersion>);
2402-
impl_dep_tracking_hash_via_hash!(Option<SourceFileHashAlgorithm>);
2403-
impl_dep_tracking_hash_via_hash!(TrimmedDefPaths);
2404-
2405-
impl_dep_tracking_hash_for_sortable_vec_of!(String);
2406-
impl_dep_tracking_hash_for_sortable_vec_of!(PathBuf);
2407-
impl_dep_tracking_hash_for_sortable_vec_of!((PathBuf, PathBuf));
2408-
impl_dep_tracking_hash_for_sortable_vec_of!(CrateType);
2409-
impl_dep_tracking_hash_for_sortable_vec_of!((String, lint::Level));
2410-
impl_dep_tracking_hash_for_sortable_vec_of!((String, Option<String>, NativeLibKind));
2411-
impl_dep_tracking_hash_for_sortable_vec_of!((String, u64));
2407+
impl_dep_tracking_hash_for_sortable_vec_of!(
2408+
String,
2409+
PathBuf,
2410+
(PathBuf, PathBuf),
2411+
CrateType,
2412+
(String, lint::Level),
2413+
(String, Option<String>, NativeLibKind),
2414+
(String, u64)
2415+
);
24122416

24132417
impl<T1, T2> DepTrackingHash for (T1, T2)
24142418
where

0 commit comments

Comments
 (0)