提交 ad6f98cd 编写于 作者: B bjorn3

Remove the merge dependency

上级 947e9483
......@@ -176,7 +176,6 @@ dependencies = [
"getopts",
"ignore",
"libc",
"merge",
"num_cpus",
"once_cell",
"opener",
......@@ -2220,12 +2219,6 @@ dependencies = [
"autocfg",
]
[[package]]
name = "merge"
version = "0.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "10bbef93abb1da61525bbc45eeaff6473a41907d19f8f9aa5168d214e10693e9"
[[package]]
name = "minifier"
version = "0.0.41"
......
......@@ -47,7 +47,6 @@ toml = "0.5"
time = "0.1"
ignore = "0.4.10"
opener = "0.5"
merge = { version = "0.1.0", default-features = false, features = ["std"] }
once_cell = "1.7.2"
[target.'cfg(windows)'.dependencies.winapi]
......
......@@ -18,7 +18,6 @@
use crate::flags::{Color, Flags};
use crate::util::exe;
use build_helper::t;
use merge::Merge;
use serde::Deserialize;
macro_rules! check_ci_llvm {
......@@ -334,6 +333,10 @@ struct TomlConfig {
profile: Option<String>,
}
trait Merge {
fn merge(&mut self, other: Self);
}
impl Merge for TomlConfig {
fn merge(
&mut self,
......@@ -357,6 +360,8 @@ fn do_merge<T: Merge>(x: &mut Option<T>, y: Option<T>) {
}
}
// We are using a decl macro instead of a derive proc macro here to reduce the compile time of
// rustbuild.
macro_rules! derive_merge {
($(#[$attr:meta])* struct $name:ident {
$($field:ident: $field_ty:ty,)*
......@@ -369,7 +374,9 @@ struct $name {
impl Merge for $name {
fn merge(&mut self, other: Self) {
$(
Merge::merge(&mut self.$field, other.$field);
if !self.$field.is_some() {
self.$field = other.$field;
}
)*
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册