From a1fc2f9fad6ce652e50fb06546f3e665ec1a2139 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Thu, 17 Dec 2020 18:25:11 +0100 Subject: [PATCH] Revert parts of "Use absolute paths in generated code" to restore compatibility with older versions of Rust. --- yaserde_derive/src/common/field.rs | 22 +++++++++++----------- yaserde_derive/src/de/expand_enum.rs | 2 +- yaserde_derive/src/de/expand_struct.rs | 6 +++--- yaserde_derive/src/de/mod.rs | 6 ++++-- yaserde_derive/src/ser/mod.rs | 6 ++++-- 5 files changed, 23 insertions(+), 19 deletions(-) diff --git a/yaserde_derive/src/common/field.rs b/yaserde_derive/src/common/field.rs index dc6ff23..9cdb65e 100644 --- a/yaserde_derive/src/common/field.rs +++ b/yaserde_derive/src/common/field.rs @@ -256,17 +256,17 @@ impl Into for Field { fn into(self) -> proc_macro2::TokenStream { match self { Field::FieldString => quote! { ::std::string::String }, - Field::FieldBool => quote! { ::std::primitive::bool }, - Field::FieldI8 => quote! { ::std::primitive::i8 }, - Field::FieldU8 => quote! { ::std::primitive::u8 }, - Field::FieldI16 => quote! { ::std::primitive::i16 }, - Field::FieldU16 => quote! { ::std::primitive::u16 }, - Field::FieldI32 => quote! { ::std::primitive::i32 }, - Field::FieldU32 => quote! { ::std::primitive::u32 }, - Field::FieldI64 => quote! { ::std::primitive::i64 }, - Field::FieldU64 => quote! { ::std::primitive::u64 }, - Field::FieldF32 => quote! { ::std::primitive::f32 }, - Field::FieldF64 => quote! { ::std::primitive::f64 }, + Field::FieldBool => quote! { bool }, + Field::FieldI8 => quote! { i8 }, + Field::FieldU8 => quote! { u8 }, + Field::FieldI16 => quote! { i16 }, + Field::FieldU16 => quote! { u16 }, + Field::FieldI32 => quote! { i32 }, + Field::FieldU32 => quote! { u32 }, + Field::FieldI64 => quote! { i64 }, + Field::FieldU64 => quote! { u64 }, + Field::FieldF32 => quote! { f32 }, + Field::FieldF64 => quote! { f64 }, _ => panic!("Not a simple type: {:?}", self), } } diff --git a/yaserde_derive/src/de/expand_enum.rs b/yaserde_derive/src/de/expand_enum.rs index c53b89d..0b3c1e2 100644 --- a/yaserde_derive/src/de/expand_enum.rs +++ b/yaserde_derive/src/de/expand_enum.rs @@ -161,7 +161,7 @@ fn build_unnamed_field_visitors(fields: &syn::FieldsUnnamed) -> TokenStream { fn #visitor( self, - v: &::std::primitive::str, + v: &str, ) -> ::std::result::Result { #fn_body } diff --git a/yaserde_derive/src/de/expand_struct.rs b/yaserde_derive/src/de/expand_struct.rs index 8edab56..211ce0e 100644 --- a/yaserde_derive/src/de/expand_struct.rs +++ b/yaserde_derive/src/de/expand_struct.rs @@ -82,7 +82,7 @@ pub fn parse( fn visit_str( self, - v: &::std::primitive::str, + v: &str, ) -> ::std::result::Result { let content = "<".to_string() + #struct_id + ">" + v + ""; ::yaserde::de::from_str(&content) @@ -114,7 +114,7 @@ pub fn parse( fn #visitor( self, - v: &::std::primitive::str, + v: &str, ) -> ::std::result::Result { ::std::result::Result::Ok(#field_type::from_str(#map_if_bool).unwrap()) } @@ -363,7 +363,7 @@ pub fn parse( let event = reader.peek()?.to_owned(); ::log::trace!( "Struct {} @ {}: matching {:?}", - ::std::stringify!(#name), start_depth, event, + stringify!(#name), start_depth, event, ); match event { ::xml::reader::XmlEvent::StartElement{ref name, ref attributes, ..} => { diff --git a/yaserde_derive/src/de/mod.rs b/yaserde_derive/src/de/mod.rs index 9e3f87b..043a3a0 100644 --- a/yaserde_derive/src/de/mod.rs +++ b/yaserde_derive/src/de/mod.rs @@ -3,7 +3,7 @@ pub mod expand_enum; pub mod expand_struct; use crate::common::YaSerdeAttribute; -use proc_macro2::TokenStream; +use proc_macro2::{Ident, TokenStream}; use quote::quote; pub fn expand_derive_deserialize(ast: &syn::DeriveInput) -> Result { @@ -29,9 +29,11 @@ pub fn expand_derive_deserialize(ast: &syn::DeriveInput) -> Result unimplemented!(), }; + let dummy_const = Ident::new(&format!("_IMPL_YA_DESERIALIZE_FOR_{}", name), name.span()); + Ok(quote! { #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)] - const _: () = { + const #dummy_const: () = { use ::std::str::FromStr as _; use ::yaserde::Visitor as _; diff --git a/yaserde_derive/src/ser/mod.rs b/yaserde_derive/src/ser/mod.rs index fd87688..98548ab 100644 --- a/yaserde_derive/src/ser/mod.rs +++ b/yaserde_derive/src/ser/mod.rs @@ -6,7 +6,7 @@ pub mod label; pub mod namespace; use crate::common::YaSerdeAttribute; -use proc_macro2::TokenStream; +use proc_macro2::{Ident, TokenStream}; use quote::quote; pub fn expand_derive_serialize(ast: &syn::DeriveInput) -> Result { @@ -32,9 +32,11 @@ pub fn expand_derive_serialize(ast: &syn::DeriveInput) -> Result unimplemented!(), }; + let dummy_const = Ident::new(&format!("_IMPL_YA_SERIALIZE_FOR_{}", name), name.span()); + Ok(quote! { #[allow(non_upper_case_globals, unused_attributes, unused_qualifications)] - const _: () = { + const #dummy_const: () = { use ::std::str::FromStr as _; #impl_block