Clean up dead code

This commit is contained in:
Erick Tryzelaar
2015-03-07 19:30:25 -08:00
parent 4a83639b33
commit d9f78e3112
+42 -44
View File
@@ -1,8 +1,10 @@
#![feature(plugin_registrar, quote, unboxed_closures, rustc_private)] #![feature(plugin_registrar, quote, unboxed_closures, rustc_private)]
extern crate syntax;
extern crate rustc; extern crate rustc;
extern crate "syntax_ast_builder" as builder; extern crate syntax;
extern crate syntax_ast_builder;
use syntax_ast_builder as builder;
use syntax::ast::{ use syntax::ast::{
Ident, Ident,
@@ -221,8 +223,6 @@ fn serialize_tuple_struct(
.tup_field(i) .tup_field(i)
.field("value").self_(); .field("value").self_();
let i = i as u32;
quote_arm!(cx, quote_arm!(cx,
$i => { $i => {
self.state += 1; self.state += 1;
@@ -251,7 +251,7 @@ fn serialize_tuple_struct(
quote_expr!(cx, { quote_expr!(cx, {
struct Visitor $visitor_impl_generics { struct Visitor $visitor_impl_generics {
state: u32, state: usize,
value: &'__a $type_ident $type_generics, value: &'__a $type_ident $type_generics,
} }
@@ -307,8 +307,6 @@ fn serialize_struct(
None => builder.expr().str(name), None => builder.expr().str(name),
}; };
let i = i as u32;
quote_arm!(cx, quote_arm!(cx,
$i => { $i => {
self.state += 1; self.state += 1;
@@ -337,7 +335,7 @@ fn serialize_struct(
quote_expr!(cx, { quote_expr!(cx, {
struct Visitor $visitor_impl_generics { struct Visitor $visitor_impl_generics {
state: u32, state: usize,
value: &'__a $type_ident $type_generics, value: &'__a $type_ident $type_generics,
} }
@@ -445,51 +443,50 @@ fn serialize_variant(
} }
}; };
let len = fields.len(); let value_ty = builder.ty()
.tuple()
let visitor_field_names: Vec<ast::Ident> = (0 .. len) .with_tys(tys.into_iter().map(|ty| {
.map(|i| builder.id(&format!("field{}", i))) builder.ty()
.collect(); .ref_()
.lifetime("'__a")
.build_ty(ty)
}))
.build();
let visitor_ident = builder.id("__Visitor"); let visitor_ident = builder.id("__Visitor");
let mut struct_builder = builder.item().struct_(visitor_ident) let visitor_struct = builder.item().struct_(visitor_ident)
.with_generics(generics.clone()) .with_generics(generics.clone())
.field("state").u32(); .field("state").usize()
.field("value").build_ty(value_ty)
.build();
for (name, ty) in visitor_field_names.iter().zip(tys.iter()) { let visitor_expr = builder.expr().struct_path(visitor_ident)
struct_builder = struct_builder.field(name) .field("state").usize(0)
.ref_().lifetime("'__a").build_ty(ty.clone()); .field("value").tuple()
} .with_exprs(
fields.iter().map(|field| {
let visitor_struct = struct_builder.build(); builder.expr()
.addr_of()
let mut struct_builder = builder.expr().struct_path(visitor_ident) .build_expr(field.self_.clone())
.field("state").u32(0); })
)
for (name, field) in visitor_field_names.iter().zip(fields.iter()) { .build()
struct_builder = struct_builder.field(name) .build();
.addr_of()
.build_expr(field.self_.clone());
}
let visitor_expr = struct_builder.build();
let mut first = true; let mut first = true;
let visitor_arms: Vec<ast::Arm> = visitor_field_names.iter() let visitor_arms: Vec<ast::Arm> = fields.iter()
.zip(fields.iter())
.enumerate() .enumerate()
.map(|(state, (name, field))| { .map(|(state, field)| {
let field_expr = cx.expr_field_access( let field_expr = builder.expr()
span, .tup_field(state)
cx.expr_self(span), .field("value").self_();
*name,
);
let visit_expr = match field.name { let visit_expr = match field.name {
Some(real_name) => { Some(real_name) => {
let real_name = cx.expr_str(span, token::get_ident(real_name)); let real_name = builder.expr().str(real_name);
quote_expr!(cx, quote_expr!(cx,
::serde2::ser::Visitor::visit_map_elt( ::serde2::ser::Visitor::visit_map_elt(
visitor, visitor,
@@ -512,8 +509,6 @@ fn serialize_variant(
first = false; first = false;
let state = state as u32;
quote_arm!(cx, quote_arm!(cx,
$state => { $state => {
self.state += 1; self.state += 1;
@@ -533,9 +528,12 @@ fn serialize_variant(
let self_ty = builder.ty() let self_ty = builder.ty()
.path() .path()
.segment("__Visitor").with_generics(generics.clone()).build() .segment("__Visitor")
.with_generics(generics.clone())
.build()
.build(); .build();
let len = fields.len();
let impl_ident = ast_util::impl_pretty_name(&opt_trait_ref, Some(&self_ty)); let impl_ident = ast_util::impl_pretty_name(&opt_trait_ref, Some(&self_ty));
let methods = vec![ let methods = vec![