@@ -68,7 +68,7 @@ type abbrev_map = map::HashMap<ty::t, tyencode::ty_abbrev>;
6868
6969pub  type  encode_inlined_item  = fn @( ecx :  @encode_ctxt , 
7070                                   ebml_w :  writer:: Encoder , 
71-                                    path :  ast_map:: path , 
71+                                    path :  & [ ast_map:: path_elt ] , 
7272                                   ii :  ast:: inlined_item ) ; 
7373
7474type  encode_parms  = { 
@@ -194,7 +194,7 @@ fn encode_ty_type_param_bounds(ebml_w: writer::Encoder, ecx: @encode_ctxt,
194194} 
195195
196196fn  encode_type_param_bounds ( ebml_w :  writer:: Encoder ,  ecx :  @encode_ctxt , 
197-                             params :  ~ [ ty_param ] )  { 
197+                             params :  & [ ty_param ] )  { 
198198    let  ty_param_bounds =
199199        @params. map ( |param| ecx. tcx . ty_param_bounds . get ( param. id ) ) ; 
200200    encode_ty_type_param_bounds ( ebml_w,  ecx,  ty_param_bounds) ; 
@@ -268,9 +268,10 @@ fn encode_parent_item(ebml_w: writer::Encoder, id: def_id) {
268268} 
269269
270270fn  encode_enum_variant_info ( ecx :  @encode_ctxt ,  ebml_w :  writer:: Encoder , 
271-                             id :  node_id ,  variants :  ~[ variant ] , 
272-                             path :  ast_map:: path ,  index :  @mut  ~[ entry < int > ] , 
273-                             ty_params :  ~[ ty_param ] )  { 
271+                             id :  node_id ,  variants :  & [ variant ] , 
272+                             path :  & [ ast_map:: path_elt ] , 
273+                             index :  @mut  ~[ entry < int > ] , 
274+                             ty_params :  & [ ty_param ] )  { 
274275    let  mut  disr_val = 0 ; 
275276    let  mut  i = 0 ; 
276277    let  vi = ty:: enum_variants ( ecx. tcx , 
@@ -297,8 +298,8 @@ fn encode_enum_variant_info(ecx: @encode_ctxt, ebml_w: writer::Encoder,
297298            encode_disr_val ( ecx,  ebml_w,  vi[ i] . disr_val ) ; 
298299            disr_val = vi[ i] . disr_val ; 
299300        } 
300-         encode_type_param_bounds ( ebml_w,  ecx,  /*bad*/ copy  ty_params) ; 
301-         encode_path ( ecx,  ebml_w,  & path, 
301+         encode_type_param_bounds ( ebml_w,  ecx,  ty_params) ; 
302+         encode_path ( ecx,  ebml_w,  path, 
302303                    ast_map:: path_name ( variant. node . name ) ) ; 
303304        ebml_w. end_tag ( ) ; 
304305        disr_val += 1 ; 
@@ -307,7 +308,7 @@ fn encode_enum_variant_info(ecx: @encode_ctxt, ebml_w: writer::Encoder,
307308} 
308309
309310fn  encode_path ( ecx :  @encode_ctxt ,  ebml_w :  writer:: Encoder , 
310-                path :  & ast_map:: path ,  name :  ast_map:: path_elt )  { 
311+                path :  & [ ast_map:: path_elt ] ,  name :  ast_map:: path_elt )  { 
311312    fn  encode_path_elt ( ecx :  @encode_ctxt ,  ebml_w :  writer:: Encoder , 
312313                       elt :  ast_map:: path_elt )  { 
313314        let  ( tag,  name)  = match  elt { 
@@ -328,7 +329,7 @@ fn encode_path(ecx: @encode_ctxt, ebml_w: writer::Encoder,
328329} 
329330
330331fn  encode_info_for_mod ( ecx :  @encode_ctxt ,  ebml_w :  writer:: Encoder , 
331-                        md :  _mod ,  id :  node_id , + path :  ast_map:: path , 
332+                        md :  _mod ,  id :  node_id ,  path :  & [ ast_map:: path_elt ] , 
332333                       name :  ident )  { 
333334    ebml_w. start_tag ( tag_items_data_item) ; 
334335    encode_def_id ( ebml_w,  local_def ( id) ) ; 
@@ -357,7 +358,7 @@ fn encode_info_for_mod(ecx: @encode_ctxt, ebml_w: writer::Encoder,
357358        } 
358359    } 
359360
360-     encode_path ( ecx,  ebml_w,  & path,  ast_map:: path_mod ( name) ) ; 
361+     encode_path ( ecx,  ebml_w,  path,  ast_map:: path_mod ( name) ) ; 
361362
362363    // Encode the reexports of this module. 
363364    debug ! ( "(encoding info for module) encoding reexports for %d" ,  id) ; 
@@ -434,8 +435,8 @@ fn encode_method_sort(ebml_w: writer::Encoder, sort: char) {
434435
435436/* Returns an index of items in this class */ 
436437fn  encode_info_for_struct ( ecx :  @encode_ctxt ,  ebml_w :  writer:: Encoder , 
437-                          path :  ast_map:: path , 
438-                          fields :  ~ [ @struct_field ] , 
438+                          path :  & [ ast_map:: path_elt ] , 
439+                          fields :  & [ @struct_field ] , 
439440                         global_index :  @mut ~[ entry < int > ] )  -> ~[ entry < int > ]  { 
440441    /* Each class has its own index, since different classes 
441442       may have fields with the same name */ 
@@ -455,7 +456,7 @@ fn encode_info_for_struct(ecx: @encode_ctxt, ebml_w: writer::Encoder,
455456                       tcx. sess. str_of( nm) ,  id) ; 
456457                encode_visibility ( ebml_w,  vis) ; 
457458                encode_name ( ecx,  ebml_w,  nm) ; 
458-                 encode_path ( ecx,  ebml_w,  & path,  ast_map:: path_name ( nm) ) ; 
459+                 encode_path ( ecx,  ebml_w,  path,  ast_map:: path_name ( nm) ) ; 
459460                encode_type ( ecx,  ebml_w,  node_id_to_type ( tcx,  id) ) ; 
460461                encode_mutability ( ebml_w,  mt) ; 
461462                encode_def_id ( ebml_w,  local_def ( id) ) ; 
@@ -469,8 +470,8 @@ fn encode_info_for_struct(ecx: @encode_ctxt, ebml_w: writer::Encoder,
469470
470471// This is for encoding info for ctors and dtors 
471472fn  encode_info_for_ctor ( ecx :  @encode_ctxt ,  ebml_w :  writer:: Encoder , 
472-                         id :  node_id ,  ident :  ident , + path :  ast_map:: path , 
473-                         item :  Option < inlined_item > ,  + tps :  ~ [ ty_param ] )  { 
473+                         id :  node_id ,  ident :  ident ,  path :  & [ ast_map:: path_elt ] , 
474+                         item :  Option < inlined_item > ,  tps :  & [ ty_param ] )  { 
474475        ebml_w. start_tag ( tag_items_data_item) ; 
475476        encode_name ( ecx,  ebml_w,  ident) ; 
476477        encode_def_id ( ebml_w,  local_def ( id) ) ; 
@@ -481,7 +482,7 @@ fn encode_info_for_ctor(ecx: @encode_ctxt, ebml_w: writer::Encoder,
481482               ecx. tcx. sess. str_of( ident) , 
482483               ty_to_str( ecx. tcx,  its_ty) ,  id) ; 
483484        encode_type ( ecx,  ebml_w,  its_ty) ; 
484-         encode_path ( ecx,  ebml_w,  & path,  ast_map:: path_name ( ident) ) ; 
485+         encode_path ( ecx,  ebml_w,  path,  ast_map:: path_name ( ident) ) ; 
485486        match  item { 
486487           Some ( ref  it)  => { 
487488             ( ecx. encode_inlined_item ) ( ecx,  ebml_w,  path,  ( * it) ) ; 
@@ -495,7 +496,7 @@ fn encode_info_for_ctor(ecx: @encode_ctxt, ebml_w: writer::Encoder,
495496
496497fn  encode_info_for_method ( ecx :  @encode_ctxt , 
497498                          ebml_w :  writer:: Encoder , 
498-                           + impl_path :  ast_map:: path , 
499+                           impl_path :  & [ ast_map:: path_elt ] , 
499500                          should_inline :  bool , 
500501                          parent_id :  node_id , 
501502                          m :  @method , 
@@ -514,7 +515,7 @@ fn encode_info_for_method(ecx: @encode_ctxt,
514515    encode_type_param_bounds ( ebml_w,  ecx,  all_tps) ; 
515516    encode_type ( ecx,  ebml_w,  node_id_to_type ( ecx. tcx ,  m. id ) ) ; 
516517    encode_name ( ecx,  ebml_w,  m. ident ) ; 
517-     encode_path ( ecx,  ebml_w,  & impl_path,  ast_map:: path_name ( m. ident ) ) ; 
518+     encode_path ( ecx,  ebml_w,  impl_path,  ast_map:: path_name ( m. ident ) ) ; 
518519    encode_self_type ( ebml_w,  m. self_ty . node ) ; 
519520    if  len > 0 u || should_inline { 
520521        ( ecx. encode_inlined_item ) ( 
@@ -544,7 +545,7 @@ fn purity_static_method_family(p: purity) -> char {
544545} 
545546
546547
547- fn  should_inline ( attrs:  ~ [ attribute] )  -> bool  { 
548+ fn  should_inline ( attrs:  & [ attribute] )  -> bool  { 
548549    match  attr:: find_inline_attr ( attrs)  { 
549550        attr:: ia_none | attr:: ia_never  => false , 
550551        attr:: ia_hint | attr:: ia_always => true 
@@ -554,7 +555,7 @@ fn should_inline(attrs: ~[attribute]) -> bool {
554555
555556fn  encode_info_for_item( ecx :  @encode_ctxt ,  ebml_w :  writer:: Encoder , 
556557                        item:  @item,  index :  @mut  ~[ entry < int > ] , 
557-                         + path :  ast_map:: path )  { 
558+                         path :  & [ ast_map:: path_elt ] )  { 
558559
559560    let  tcx = ecx. tcx ; 
560561    let  must_write =
@@ -582,7 +583,7 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: writer::Encoder,
582583        encode_family ( ebml_w,  'c' ) ; 
583584        encode_type ( ecx,  ebml_w,  node_id_to_type ( tcx,  item. id ) ) ; 
584585        encode_symbol ( ecx,  ebml_w,  item. id ) ; 
585-         encode_path ( ecx,  ebml_w,  & path,  ast_map:: path_name ( item. ident ) ) ; 
586+         encode_path ( ecx,  ebml_w,  path,  ast_map:: path_name ( item. ident ) ) ; 
586587        ebml_w. end_tag ( ) ; 
587588      } 
588589      item_fn( _,  purity,  tps,  _)  => { 
@@ -593,8 +594,8 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: writer::Encoder,
593594        let  tps_len = tps. len ( ) ; 
594595        encode_type_param_bounds ( ebml_w,  ecx,  tps) ; 
595596        encode_type ( ecx,  ebml_w,  node_id_to_type ( tcx,  item. id ) ) ; 
596-         encode_path ( ecx,  ebml_w,  & path,  ast_map:: path_name ( item. ident ) ) ; 
597-         encode_attributes ( ebml_w,  /*bad*/ copy  item. attrs ) ; 
597+         encode_path ( ecx,  ebml_w,  path,  ast_map:: path_name ( item. ident ) ) ; 
598+         encode_attributes ( ebml_w,  item. attrs ) ; 
598599        if  tps_len > 0 u || should_inline ( item. attrs )  { 
599600            ( ecx. encode_inlined_item ) ( ecx,  ebml_w,  path,  ii_item ( item) ) ; 
600601        }  else  { 
@@ -612,7 +613,7 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: writer::Encoder,
612613        encode_def_id ( ebml_w,  local_def ( item. id ) ) ; 
613614        encode_family ( ebml_w,  'n' ) ; 
614615        encode_name ( ecx,  ebml_w,  item. ident ) ; 
615-         encode_path ( ecx,  ebml_w,  & path,  ast_map:: path_name ( item. ident ) ) ; 
616+         encode_path ( ecx,  ebml_w,  path,  ast_map:: path_name ( item. ident ) ) ; 
616617        ebml_w. end_tag ( ) ; 
617618      } 
618619      item_ty( _,  tps)  => { 
@@ -623,7 +624,7 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: writer::Encoder,
623624        encode_type_param_bounds ( ebml_w,  ecx,  tps) ; 
624625        encode_type ( ecx,  ebml_w,  node_id_to_type ( tcx,  item. id ) ) ; 
625626        encode_name ( ecx,  ebml_w,  item. ident ) ; 
626-         encode_path ( ecx,  ebml_w,  & path,  ast_map:: path_name ( item. ident ) ) ; 
627+         encode_path ( ecx,  ebml_w,  path,  ast_map:: path_name ( item. ident ) ) ; 
627628        encode_region_param ( ecx,  ebml_w,  item) ; 
628629        ebml_w. end_tag ( ) ; 
629630      } 
@@ -632,44 +633,42 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: writer::Encoder,
632633        do ebml_w. wr_tag ( tag_items_data_item) { 
633634            encode_def_id ( ebml_w,  local_def ( item. id ) ) ; 
634635            encode_family ( ebml_w,  't' ) ; 
635-             encode_type_param_bounds ( ebml_w,  ecx,  /*bad*/ copy  * tps) ; 
636+             encode_type_param_bounds ( ebml_w,  ecx,  * tps) ; 
636637            encode_type ( ecx,  ebml_w,  node_id_to_type ( tcx,  item. id ) ) ; 
637638            encode_name ( ecx,  ebml_w,  item. ident ) ; 
638639            for  ( * enum_definition) . variants. each |v| { 
639640                encode_variant_id( ebml_w,  local_def( v. node. id) ) ; 
640641            } 
641-             ( ecx. encode_inlined_item ) ( ecx,  ebml_w,  /*bad*/ copy path, 
642-                                       ii_item ( item) ) ; 
643-             encode_path ( ecx,  ebml_w,  & path,  ast_map:: path_name ( item. ident ) ) ; 
642+             ( ecx. encode_inlined_item ) ( ecx,  ebml_w,  path,  ii_item ( item) ) ; 
643+             encode_path ( ecx,  ebml_w,  path,  ast_map:: path_name ( item. ident ) ) ; 
644644            encode_region_param ( ecx,  ebml_w,  item) ; 
645645        } 
646646        encode_enum_variant_info( ecx, 
647647                                 ebml_w, 
648648                                 item. id, 
649-                                  /*bad*/ copy  ( * enum_definition) . variants, 
649+                                  ( * enum_definition) . variants, 
650650                                 path, 
651651                                 index, 
652-                                  /*bad*/ copy  * tps) ; 
652+                                  * tps) ; 
653653      } 
654654      item_struct( struct_def,  tps)  => { 
655655        /* First, encode the fields 
656656           These come first because we need to write them to make 
657657           the index, and the index needs to be in the item for the 
658658           class itself */ 
659-         // XXX: Bad copy of `path`. 
660-         let  idx = encode_info_for_struct ( ecx,  ebml_w,  copy path, 
661-                                         /*bad*/ copy struct_def. fields ,  index) ; 
659+         let  idx = encode_info_for_struct ( ecx,  ebml_w,  path, 
660+                                          struct_def. fields ,  index) ; 
662661        /* Encode the dtor */ 
663662        do struct_def. dtor . iter  |dtor| { 
664663            index. push ( { val:  dtor. node . id ,  pos:  ebml_w. writer . tell ( ) } ) ; 
665664          encode_info_for_ctor ( ecx,  ebml_w,  dtor. node . id , 
666665                               ecx. tcx . sess . ident_of ( 
667666                                   ecx. tcx . sess . str_of ( item. ident )  +
668667                                   ~"_dtor") , 
669-                                /*bad*/ copy  path,  if  tps. len ( )  > 0 u { 
668+                                path,  if  tps. len ( )  > 0 u { 
670669                                   Some ( ii_dtor ( * dtor,  item. ident ,  tps, 
671670                                                local_def ( item. id ) ) )  } 
672-                                else  {  None  } ,  /*bad*/ copy  tps) ; 
671+                                else  {  None  } ,  tps) ; 
673672        } 
674673
675674        /* Index the class*/ 
@@ -681,7 +680,7 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: writer::Encoder,
681680        encode_type_param_bounds ( ebml_w,  ecx,  tps) ; 
682681        encode_type ( ecx,  ebml_w,  node_id_to_type ( tcx,  item. id ) ) ; 
683682        encode_name ( ecx,  ebml_w,  item. ident ) ; 
684-         encode_path ( ecx,  ebml_w,  & path,  ast_map:: path_name ( item. ident ) ) ; 
683+         encode_path ( ecx,  ebml_w,  path,  ast_map:: path_name ( item. ident ) ) ; 
685684        encode_region_param ( ecx,  ebml_w,  item) ; 
686685        /* Encode the dtor */ 
687686        /* Encode id for dtor */ 
@@ -718,11 +717,10 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: writer::Encoder,
718717        encode_def_id ( ebml_w,  local_def ( item. id ) ) ; 
719718        encode_family ( ebml_w,  'i' ) ; 
720719        encode_region_param ( ecx,  ebml_w,  item) ; 
721-         // XXX: Bad copy. 
722-         encode_type_param_bounds ( ebml_w,  ecx,  copy tps) ; 
720+         encode_type_param_bounds ( ebml_w,  ecx,  tps) ; 
723721        encode_type ( ecx,  ebml_w,  node_id_to_type ( tcx,  item. id ) ) ; 
724722        encode_name ( ecx,  ebml_w,  item. ident ) ; 
725-         encode_attributes ( ebml_w,  /*bad*/ copy  item. attrs ) ; 
723+         encode_attributes ( ebml_w,  item. attrs ) ; 
726724        match  ty. node  { 
727725            ast:: ty_path( path,  _)  if  path. idents . len ( )  == 1  => { 
728726                encode_impl_type_basename ( ecx,  ebml_w, 
@@ -739,15 +737,17 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: writer::Encoder,
739737        do opt_trait. iter ( )  |associated_trait| { 
740738           encode_trait_ref ( ebml_w,  ecx,  * associated_trait) ; 
741739        } 
742-         encode_path ( ecx,  ebml_w,  & path,  ast_map:: path_name ( item. ident ) ) ; 
740+         encode_path ( ecx,  ebml_w,  path,  ast_map:: path_name ( item. ident ) ) ; 
743741        ebml_w. end_tag ( ) ; 
744742
745-         let  impl_path = vec:: append_one ( path, 
746-                                         ast_map:: path_name ( item. ident ) ) ; 
743+         // >:-< 
744+         let  mut  impl_path = vec:: append ( ~[ ] ,  path) ; 
745+         impl_path += ~[ ast_map:: path_name ( item. ident ) ] ; 
746+ 
747747        for  methods. each |m| { 
748748            index. push ( { val:  m. id ,  pos:  ebml_w. writer . tell ( ) } ) ; 
749-             encode_info_for_method ( ecx,  ebml_w,  /*bad*/ copy  impl_path, 
750-                                    should_inline ( /*bad*/ copy  m. attrs ) , 
749+             encode_info_for_method ( ecx,  ebml_w,  impl_path, 
750+                                    should_inline ( m. attrs ) , 
751751                                   item. id ,  * m, 
752752                                   vec:: append ( /*bad*/ copy tps,  m. tps ) ) ; 
753753        } 
@@ -760,10 +760,10 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: writer::Encoder,
760760        encode_def_id ( ebml_w,  local_def ( item. id ) ) ; 
761761        encode_family ( ebml_w,  'I' ) ; 
762762        encode_region_param ( ecx,  ebml_w,  item) ; 
763-         encode_type_param_bounds ( ebml_w,  ecx,  /*bad*/ copy  * tps) ; 
763+         encode_type_param_bounds ( ebml_w,  ecx,  * tps) ; 
764764        encode_type ( ecx,  ebml_w,  node_id_to_type ( tcx,  item. id ) ) ; 
765765        encode_name ( ecx,  ebml_w,  item. ident ) ; 
766-         encode_attributes ( ebml_w,  /*bad*/ copy  item. attrs ) ; 
766+         encode_attributes ( ebml_w,  item. attrs ) ; 
767767        let  mut  i = 0 u; 
768768        for  vec:: each( * ty:: trait_methods ( tcx,  local_def ( item. id ) ) )  |mty| { 
769769            match  ( * ms) [ i]  { 
@@ -772,7 +772,7 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: writer::Encoder,
772772                encode_def_id ( ebml_w,  local_def ( ( * ty_m) . id ) ) ; 
773773                encode_name ( ecx,  ebml_w,  mty. ident ) ; 
774774                encode_type_param_bounds ( ebml_w,  ecx, 
775-                                          /*bad*/ copy   ( * ty_m) . tps ) ; 
775+                                          ( * ty_m) . tps ) ; 
776776                encode_type ( ecx,  ebml_w,  ty:: mk_fn ( tcx,  /*bad*/ copy mty. fty ) ) ; 
777777                encode_family ( ebml_w,  purity_fn_family ( mty. fty . meta . purity ) ) ; 
778778                encode_self_type ( ebml_w,  mty. self_ty ) ; 
@@ -785,17 +785,17 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: writer::Encoder,
785785                ebml_w. start_tag ( tag_item_trait_method) ; 
786786                encode_def_id ( ebml_w,  local_def ( m. id ) ) ; 
787787                encode_name ( ecx,  ebml_w,  mty. ident ) ; 
788-                 encode_type_param_bounds ( ebml_w,  ecx,  /*bad*/ copy  m. tps ) ; 
788+                 encode_type_param_bounds ( ebml_w,  ecx,  m. tps ) ; 
789789                encode_type ( ecx,  ebml_w,  ty:: mk_fn ( tcx,  /*bad*/ copy mty. fty ) ) ; 
790790                encode_family ( ebml_w,  purity_fn_family ( mty. fty . meta . purity ) ) ; 
791791                encode_self_type ( ebml_w,  mty. self_ty ) ; 
792792                encode_method_sort ( ebml_w,  'p' ) ; 
793793                ebml_w. end_tag ( ) ; 
794794              } 
795795            } 
796-             i += 1 u ; 
796+             i += 1 ; 
797797        } 
798-         encode_path ( ecx,  ebml_w,  & path,  ast_map:: path_name ( item. ident ) ) ; 
798+         encode_path ( ecx,  ebml_w,  path,  ast_map:: path_name ( item. ident ) ) ; 
799799        for  traits. each |associated_trait| { 
800800           encode_trait_ref( ebml_w,  ecx,  * associated_trait) 
801801        } 
@@ -821,9 +821,9 @@ fn encode_info_for_item(ecx: @encode_ctxt, ebml_w: writer::Encoder,
821821            let  polyty = ecx. tcx . tcache . get ( local_def ( ty_m. id ) ) ; 
822822            encode_ty_type_param_bounds ( ebml_w,  ecx,  polyty. bounds ) ; 
823823            encode_type ( ecx,  ebml_w,  polyty. ty ) ; 
824-             let  m_path = vec:: append_one ( /*bad*/ copy path , 
825-                                           ast_map:: path_name ( item. ident ) ) ; 
826-             encode_path ( ecx,  ebml_w,  & m_path,  ast_map:: path_name ( ty_m. ident ) ) ; 
824+             let  mut   m_path = vec:: append ( ~ [ ] ,  path ) ;   // :-( 
825+             m_path +=  [ ast_map:: path_name ( item. ident ) ] ; 
826+             encode_path ( ecx,  ebml_w,  m_path,  ast_map:: path_name ( ty_m. ident ) ) ; 
827827            ebml_w. end_tag ( ) ; 
828828        } 
829829
@@ -855,20 +855,18 @@ fn encode_info_for_foreign_item(ecx: @encode_ctxt,
855855        encode_type_param_bounds ( ebml_w,  ecx,  tps) ; 
856856        encode_type ( ecx,  ebml_w,  node_id_to_type ( ecx. tcx ,  nitem. id ) ) ; 
857857        if  abi == foreign_abi_rust_intrinsic { 
858-             // XXX: Bad copy of `path`. 
859-             ( ecx. encode_inlined_item ) ( ecx,  ebml_w,  copy path, 
860-                                       ii_foreign ( nitem) ) ; 
858+             ( ecx. encode_inlined_item ) ( ecx,  ebml_w,  path,  ii_foreign ( nitem) ) ; 
861859        }  else  { 
862860            encode_symbol ( ecx,  ebml_w,  nitem. id ) ; 
863861        } 
864-         encode_path ( ecx,  ebml_w,  & path,  ast_map:: path_name ( nitem. ident ) ) ; 
862+         encode_path ( ecx,  ebml_w,  path,  ast_map:: path_name ( nitem. ident ) ) ; 
865863      } 
866864      foreign_item_const( * )  => { 
867865        encode_def_id ( ebml_w,  local_def ( nitem. id ) ) ; 
868866        encode_family ( ebml_w,  'c' ) ; 
869867        encode_type ( ecx,  ebml_w,  node_id_to_type ( ecx. tcx ,  nitem. id ) ) ; 
870868        encode_symbol ( ecx,  ebml_w,  nitem. id ) ; 
871-         encode_path ( ecx,  ebml_w,  & path,  ast_map:: path_name ( nitem. ident ) ) ; 
869+         encode_path ( ecx,  ebml_w,  path,  ast_map:: path_name ( nitem. ident ) ) ; 
872870      } 
873871    } 
874872    ebml_w. end_tag ( ) ; 
@@ -888,7 +886,7 @@ fn encode_info_for_items(ecx: @encode_ctxt, ebml_w: writer::Encoder,
888886            visit:: visit_item ( i,  cx,  v) ; 
889887            match  ecx. tcx . items . get ( i. id )  { 
890888              ast_map:: node_item( _,  pt)  => { 
891-                 encode_info_for_item ( ecx,  ebml_w,  i,  index,  /*bad*/ copy  * pt) ; 
889+                 encode_info_for_item ( ecx,  ebml_w,  i,  index,  * pt) ; 
892890              } 
893891              _ => fail ~"bad item"
894892            } 
@@ -1001,7 +999,7 @@ fn encode_meta_item(ebml_w: writer::Encoder, mi: meta_item) {
1001999    } 
10021000} 
10031001
1004- fn  encode_attributes ( ebml_w :  writer:: Encoder ,  attrs :  ~ [ attribute ] )  { 
1002+ fn  encode_attributes ( ebml_w :  writer:: Encoder ,  attrs :  & [ attribute ] )  { 
10051003    ebml_w. start_tag ( tag_attributes) ; 
10061004    for  attrs. each |attr| { 
10071005        ebml_w. start_tag ( tag_attribute) ; 
0 commit comments