Revamp serde_codegen_internals error handling

This commit is contained in:
David Tolnay committed 2016-09-27 00:11:37 -07:00
1 parent 4ad6c4fd56
commit 0c18c151e2
5 files changed
+54 -27

No files matched your search

+8 -4
View File
@@ -9,13 +9,17 @@ use rustc_macro::TokenStream;
#[rustc_macro_derive(Serialize)]
pub fn derive_serialize(input: TokenStream) -> TokenStream {
let item = format!("#[derive(Serialize)]\n{}", input);
let expanded = serde_codegen::expand_single_item(&item);
expanded.parse().unwrap()
match serde_codegen::expand_single_item(&item) {
Ok(expanded) => expanded.parse().unwrap(),
Err(msg) => panic!(msg),
}
}
#[rustc_macro_derive(Deserialize)]
pub fn derive_deserialize(input: TokenStream) -> TokenStream {
let item = format!("#[derive(Deserialize)]\n{}", input);
let expanded = serde_codegen::expand_single_item(&item);
expanded.parse().unwrap()
match serde_codegen::expand_single_item(&item) {
Ok(expanded) => expanded.parse().unwrap(),
Err(msg) => panic!(msg),
}
}