]> git.lizzy.rs Git - rust.git/blobdiff - src/bootstrap/config.rs
Rollup merge of #92663 - cuviper:generic-write-cursor, r=dtolnay
[rust.git] / src / bootstrap / config.rs
index 6e8471b1de7a38a6ceb2ed0778168d0252829736..9534cc5f4341e3aad4057a4ea2d5c903a4c18cc9 100644 (file)
@@ -389,37 +389,6 @@ fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
             where
                 D: Deserializer<'de>,
             {
-                #[allow(non_camel_case_types)]
-                enum FieldName {
-                    $($field,)*
-                }
-                struct FieldNameVisitor;
-                impl<'de> serde::de::Visitor<'de> for FieldNameVisitor {
-                    type Value = FieldName;
-                    fn expecting(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
-                        f.write_str("field identifier")
-                    }
-
-                    #[inline]
-                    fn visit_str<E>(self, value: &str) -> Result<Self::Value, E>
-                    where
-                        E: serde::de::Error,
-                    {
-                        match value {
-                            $($field_key => Ok(FieldName::$field),)*
-                            _ => Err(serde::de::Error::unknown_field(value, FIELDS)),
-                        }
-                    }
-                }
-                impl<'de> Deserialize<'de> for FieldName {
-                    #[inline]
-                    fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
-                    where
-                        D: Deserializer<'de>,
-                    {
-                        Deserializer::deserialize_identifier(deserializer, FieldNameVisitor)
-                    }
-                }
                 struct Field;
                 impl<'de> serde::de::Visitor<'de> for Field {
                     type Value = $name;
@@ -434,15 +403,15 @@ fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
                     {
                         $(let mut $field: Option<$field_ty> = None;)*
                         while let Some(key) =
-                            match serde::de::MapAccess::next_key::<FieldName>(&mut map) {
+                            match serde::de::MapAccess::next_key::<String>(&mut map) {
                                 Ok(val) => val,
                                 Err(err) => {
                                     return Err(err);
                                 }
                             }
                         {
-                            match key {
-                                $(FieldName::$field => {
+                            match &*key {
+                                $($field_key => {
                                     if $field.is_some() {
                                         return Err(<A::Error as serde::de::Error>::duplicate_field(
                                             $field_key,
@@ -457,6 +426,9 @@ fn visit_map<A>(self, mut map: A) -> Result<Self::Value, A::Error>
                                         }
                                     };
                                 })*
+                                key => {
+                                    return Err(serde::de::Error::unknown_field(key, FIELDS));
+                                }
                             }
                         }
                         Ok($name { $($field),* })
@@ -673,6 +645,7 @@ pub fn default_opts() -> Config {
         config.llvm_optimize = true;
         config.ninja_in_file = true;
         config.llvm_version_check = true;
+        config.llvm_static_stdcpp = true;
         config.backtrace = true;
         config.rust_optimize = true;
         config.rust_optimize_tests = true;