Skip to content

Commit ad6f98c

Browse files
committed
Remove the merge dependency
1 parent 947e948 commit ad6f98c

File tree

3 files changed

+9
-10
lines changed

3 files changed

+9
-10
lines changed

Cargo.lock

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,6 @@ dependencies = [
176176
"getopts",
177177
"ignore",
178178
"libc",
179-
"merge",
180179
"num_cpus",
181180
"once_cell",
182181
"opener",
@@ -2220,12 +2219,6 @@ dependencies = [
22202219
"autocfg",
22212220
]
22222221

2223-
[[package]]
2224-
name = "merge"
2225-
version = "0.1.0"
2226-
source = "registry+https://github.com/rust-lang/crates.io-index"
2227-
checksum = "10bbef93abb1da61525bbc45eeaff6473a41907d19f8f9aa5168d214e10693e9"
2228-
22292222
[[package]]
22302223
name = "minifier"
22312224
version = "0.0.41"

src/bootstrap/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ toml = "0.5"
4747
time = "0.1"
4848
ignore = "0.4.10"
4949
opener = "0.5"
50-
merge = { version = "0.1.0", default-features = false, features = ["std"] }
5150
once_cell = "1.7.2"
5251

5352
[target.'cfg(windows)'.dependencies.winapi]

src/bootstrap/config.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ pub use crate::flags::Subcommand;
1818
use crate::flags::{Color, Flags};
1919
use crate::util::exe;
2020
use build_helper::t;
21-
use merge::Merge;
2221
use serde::Deserialize;
2322

2423
macro_rules! check_ci_llvm {
@@ -334,6 +333,10 @@ struct TomlConfig {
334333
profile: Option<String>,
335334
}
336335

336+
trait Merge {
337+
fn merge(&mut self, other: Self);
338+
}
339+
337340
impl Merge for TomlConfig {
338341
fn merge(
339342
&mut self,
@@ -357,6 +360,8 @@ impl Merge for TomlConfig {
357360
}
358361
}
359362

363+
// We are using a decl macro instead of a derive proc macro here to reduce the compile time of
364+
// rustbuild.
360365
macro_rules! derive_merge {
361366
($(#[$attr:meta])* struct $name:ident {
362367
$($field:ident: $field_ty:ty,)*
@@ -369,7 +374,9 @@ macro_rules! derive_merge {
369374
impl Merge for $name {
370375
fn merge(&mut self, other: Self) {
371376
$(
372-
Merge::merge(&mut self.$field, other.$field);
377+
if !self.$field.is_some() {
378+
self.$field = other.$field;
379+
}
373380
)*
374381
}
375382
}

0 commit comments

Comments
 (0)