@@ -8,7 +8,7 @@ use rustc_ast::ast;
88use rustc_ast:: ast:: { Expr , MetaItem , Mutability } ;
99use rustc_ast:: ptr:: P ;
1010use rustc_expand:: base:: { Annotatable , ExtCtxt } ;
11- use rustc_span:: symbol:: { sym, Symbol } ;
11+ use rustc_span:: symbol:: { sym, Ident , Symbol } ;
1212use rustc_span:: Span ;
1313
1414pub fn expand_deriving_rustc_decodable (
@@ -18,38 +18,37 @@ pub fn expand_deriving_rustc_decodable(
1818 item : & Annotatable ,
1919 push : & mut dyn FnMut ( Annotatable ) ,
2020) {
21- let krate = " rustc_serialize" ;
22- let typaram = " __D" ;
21+ let krate = sym :: rustc_serialize;
22+ let typaram = sym :: __D;
2323
2424 let trait_def = TraitDef {
2525 span,
2626 attributes : Vec :: new ( ) ,
27- path : Path :: new_ ( vec ! [ krate, " Decodable" ] , None , vec ! [ ] , PathKind :: Global ) ,
27+ path : Path :: new_ ( vec ! [ krate, sym :: Decodable ] , None , vec ! [ ] , PathKind :: Global ) ,
2828 additional_bounds : Vec :: new ( ) ,
29- generics : LifetimeBounds :: empty ( ) ,
29+ generics : Bounds :: empty ( ) ,
3030 is_unsafe : false ,
3131 supports_unions : false ,
3232 methods : vec ! [ MethodDef {
3333 name: sym:: decode,
34- generics: LifetimeBounds {
35- lifetimes: Vec :: new( ) ,
34+ generics: Bounds {
3635 bounds: vec![ (
3736 typaram,
38- vec![ Path :: new_( vec![ krate, " Decoder" ] , None , vec![ ] , PathKind :: Global ) ] ,
37+ vec![ Path :: new_( vec![ krate, sym :: Decoder ] , None , vec![ ] , PathKind :: Global ) ] ,
3938 ) ] ,
4039 } ,
4140 explicit_self: None ,
4241 args: vec![ (
4342 Ptr ( Box :: new( Literal ( Path :: new_local( typaram) ) ) , Borrowed ( None , Mutability :: Mut ) ) ,
44- "d" ,
43+ sym :: d ,
4544 ) ] ,
4645 ret_ty: Literal ( Path :: new_(
47- pathvec_std!( cx , result:: Result ) ,
46+ pathvec_std!( result:: Result ) ,
4847 None ,
4948 vec![
5049 Box :: new( Self_ ) ,
5150 Box :: new( Literal ( Path :: new_(
52- vec![ typaram, " Error" ] ,
51+ vec![ typaram, sym :: Error ] ,
5352 None ,
5453 vec![ ] ,
5554 PathKind :: Local ,
@@ -74,17 +73,17 @@ fn decodable_substructure(
7473 cx : & mut ExtCtxt < ' _ > ,
7574 trait_span : Span ,
7675 substr : & Substructure < ' _ > ,
77- krate : & str ,
76+ krate : Symbol ,
7877) -> P < Expr > {
7978 let decoder = substr. nonself_args [ 0 ] . clone ( ) ;
8079 let recurse = vec ! [
81- cx . ident_of ( krate, trait_span) ,
82- cx . ident_of ( " Decodable" , trait_span) ,
83- cx . ident_of ( " decode" , trait_span) ,
80+ Ident :: new ( krate, trait_span) ,
81+ Ident :: new ( sym :: Decodable , trait_span) ,
82+ Ident :: new ( sym :: decode, trait_span) ,
8483 ] ;
8584 let exprdecode = cx. expr_path ( cx. path_global ( trait_span, recurse) ) ;
8685 // throw an underscore in front to suppress unused variable warnings
87- let blkarg = cx . ident_of ( "_d" , trait_span) ;
86+ let blkarg = Ident :: new ( sym :: _d , trait_span) ;
8887 let blkdecoder = cx. expr_ident ( trait_span, blkarg) ;
8988
9089 match * substr. fields {
@@ -93,7 +92,7 @@ fn decodable_substructure(
9392 Unnamed ( ref fields, _) => fields. len ( ) ,
9493 Named ( ref fields) => fields. len ( ) ,
9594 } ;
96- let read_struct_field = cx . ident_of ( " read_struct_field" , trait_span) ;
95+ let read_struct_field = Ident :: new ( sym :: read_struct_field, trait_span) ;
9796
9897 let path = cx. path_ident ( trait_span, substr. type_ident ) ;
9998 let result =
@@ -116,7 +115,7 @@ fn decodable_substructure(
116115 cx. expr_method_call (
117116 trait_span,
118117 decoder,
119- cx . ident_of ( " read_struct" , trait_span) ,
118+ Ident :: new ( sym :: read_struct, trait_span) ,
120119 vec ! [
121120 cx. expr_str( trait_span, substr. type_ident. name) ,
122121 cx. expr_usize( trait_span, nfields) ,
@@ -125,11 +124,11 @@ fn decodable_substructure(
125124 )
126125 }
127126 StaticEnum ( _, ref fields) => {
128- let variant = cx . ident_of ( "i" , trait_span) ;
127+ let variant = Ident :: new ( sym :: i , trait_span) ;
129128
130129 let mut arms = Vec :: with_capacity ( fields. len ( ) + 1 ) ;
131130 let mut variants = Vec :: with_capacity ( fields. len ( ) ) ;
132- let rvariant_arg = cx . ident_of ( " read_enum_variant_arg" , trait_span) ;
131+ let rvariant_arg = Ident :: new ( sym :: read_enum_variant_arg, trait_span) ;
133132
134133 for ( i, & ( ident, v_span, ref parts) ) in fields. iter ( ) . enumerate ( ) {
135134 variants. push ( cx. expr_str ( v_span, ident. name ) ) ;
@@ -164,13 +163,13 @@ fn decodable_substructure(
164163 let result = cx. expr_method_call (
165164 trait_span,
166165 blkdecoder,
167- cx . ident_of ( " read_enum_variant" , trait_span) ,
166+ Ident :: new ( sym :: read_enum_variant, trait_span) ,
168167 vec ! [ variant_vec, lambda] ,
169168 ) ;
170169 cx. expr_method_call (
171170 trait_span,
172171 decoder,
173- cx . ident_of ( " read_enum" , trait_span) ,
172+ Ident :: new ( sym :: read_enum, trait_span) ,
174173 vec ! [
175174 cx. expr_str( trait_span, substr. type_ident. name) ,
176175 cx. lambda1( trait_span, result, blkarg) ,
0 commit comments