From 993710eb169f555dc1b942e2f32c2805381e1df8 Mon Sep 17 00:00:00 2001 From: Adam Crume Date: Thu, 31 May 2018 19:57:23 -0700 Subject: [PATCH] Use compile_error! instead of panicking Fixes #1168 --- serde_derive/src/lib.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/serde_derive/src/lib.rs b/serde_derive/src/lib.rs index 708f3bf4..33b0aee9 100644 --- a/serde_derive/src/lib.rs +++ b/serde_derive/src/lib.rs @@ -53,6 +53,7 @@ extern crate proc_macro2; mod internals; +use std::str::FromStr; use proc_macro::TokenStream; use syn::DeriveInput; @@ -71,7 +72,7 @@ pub fn derive_serialize(input: TokenStream) -> TokenStream { let input: DeriveInput = syn::parse(input).unwrap(); match ser::expand_derive_serialize(&input) { Ok(expanded) => expanded.into(), - Err(msg) => panic!(msg), + Err(msg) => TokenStream::from_str(&format!("compile_error!({:?});", msg)).unwrap(), } } @@ -80,6 +81,6 @@ pub fn derive_deserialize(input: TokenStream) -> TokenStream { let input: DeriveInput = syn::parse(input).unwrap(); match de::expand_derive_deserialize(&input) { Ok(expanded) => expanded.into(), - Err(msg) => panic!(msg), + Err(msg) => TokenStream::from_str(&format!("compile_error!({:?});", msg)).unwrap(), } }