@@ -27,9 +27,9 @@ type abbrev_map = map::hashmap<ty::t, tyencode::ty_abbrev>;
27
27
type encode_ctxt = { ccx : @crate_ctxt , type_abbrevs : abbrev_map } ;
28
28
29
29
// Path table encoding
30
- fn encode_name ( ebml_w : & ebml:: writer , name : & str ) {
30
+ fn encode_name ( ebml_w : & ebml:: writer , name : & istr ) {
31
31
ebml:: start_tag ( ebml_w, tag_paths_data_name) ;
32
- ebml_w. writer . write ( str :: bytes ( name) ) ;
32
+ ebml_w. writer . write ( istr :: bytes ( name) ) ;
33
33
ebml:: end_tag ( ebml_w) ;
34
34
}
35
35
@@ -42,117 +42,121 @@ fn encode_def_id(ebml_w: &ebml::writer, id: &def_id) {
42
42
type entry < T > = { val : T , pos : uint } ;
43
43
44
44
fn encode_tag_variant_paths ( ebml_w : & ebml:: writer , variants : & [ variant ] ,
45
- path : & [ str ] , index : & mutable [ entry < str > ] ) {
45
+ path : & [ istr ] , index : & mutable [ entry < istr > ] ) {
46
46
for variant: variant in variants {
47
- add_to_index ( ebml_w, path, index, variant. node . name ) ;
47
+ add_to_index ( ebml_w, path, index, istr :: from_estr ( variant. node . name ) ) ;
48
48
ebml:: start_tag ( ebml_w, tag_paths_data_item) ;
49
- encode_name ( ebml_w, variant. node . name ) ;
49
+ encode_name ( ebml_w, istr :: from_estr ( variant. node . name ) ) ;
50
50
encode_def_id ( ebml_w, local_def ( variant. node . id ) ) ;
51
51
ebml:: end_tag ( ebml_w) ;
52
52
}
53
53
}
54
54
55
- fn add_to_index ( ebml_w : & ebml:: writer , path : & [ str ] ,
56
- index : & mutable [ entry < str > ] , name : & str ) {
55
+ fn add_to_index ( ebml_w : & ebml:: writer , path : & [ istr ] ,
56
+ index : & mutable [ entry < istr > ] , name : & istr ) {
57
57
let full_path = path + [ name] ;
58
58
index +=
59
- [ { val: str :: connect ( full_path, "::" ) , pos: ebml_w. writer . tell ( ) } ] ;
59
+ [ { val: istr :: connect ( full_path, ~ ":: ") , pos: ebml_w. writer . tell ( ) } ] ;
60
60
}
61
61
62
62
fn encode_native_module_item_paths ( ebml_w : & ebml:: writer , nmod : & native_mod ,
63
- path : & [ str ] ,
64
- index : & mutable [ entry < str > ] ) {
63
+ path : & [ istr ] ,
64
+ index : & mutable [ entry < istr > ] ) {
65
65
for nitem: @native_item in nmod. items {
66
- add_to_index ( ebml_w, path, index, nitem. ident ) ;
66
+ add_to_index ( ebml_w, path, index, istr :: from_estr ( nitem. ident ) ) ;
67
67
ebml:: start_tag ( ebml_w, tag_paths_data_item) ;
68
- encode_name ( ebml_w, nitem. ident ) ;
68
+ encode_name ( ebml_w, istr :: from_estr ( nitem. ident ) ) ;
69
69
encode_def_id ( ebml_w, local_def ( nitem. id ) ) ;
70
70
ebml:: end_tag ( ebml_w) ;
71
71
}
72
72
}
73
73
74
74
fn encode_module_item_paths ( ebml_w : & ebml:: writer , module : & _mod ,
75
- path : & [ str ] , index : & mutable [ entry < str > ] ) {
75
+ path : & [ istr ] , index : & mutable [ entry < istr > ] ) {
76
76
for it: @item in module. items {
77
77
if !ast_util:: is_exported ( it. ident , module) { cont; }
78
78
alt it. node {
79
79
item_const ( _, _) {
80
- add_to_index ( ebml_w, path, index, it. ident ) ;
80
+ add_to_index ( ebml_w, path, index, istr :: from_estr ( it. ident ) ) ;
81
81
ebml:: start_tag ( ebml_w, tag_paths_data_item) ;
82
- encode_name ( ebml_w, it. ident ) ;
82
+ encode_name ( ebml_w, istr :: from_estr ( it. ident ) ) ;
83
83
encode_def_id ( ebml_w, local_def ( it. id ) ) ;
84
84
ebml:: end_tag ( ebml_w) ;
85
85
}
86
86
item_fn ( _, tps) {
87
- add_to_index ( ebml_w, path, index, it. ident ) ;
87
+ add_to_index ( ebml_w, path, index, istr :: from_estr ( it. ident ) ) ;
88
88
ebml:: start_tag ( ebml_w, tag_paths_data_item) ;
89
- encode_name ( ebml_w, it. ident ) ;
89
+ encode_name ( ebml_w, istr :: from_estr ( it. ident ) ) ;
90
90
encode_def_id ( ebml_w, local_def ( it. id ) ) ;
91
91
ebml:: end_tag ( ebml_w) ;
92
92
}
93
93
item_mod ( _mod) {
94
- add_to_index ( ebml_w, path, index, it. ident ) ;
94
+ add_to_index ( ebml_w, path, index, istr :: from_estr ( it. ident ) ) ;
95
95
ebml:: start_tag ( ebml_w, tag_paths_data_mod) ;
96
- encode_name ( ebml_w, it. ident ) ;
96
+ encode_name ( ebml_w, istr :: from_estr ( it. ident ) ) ;
97
97
encode_def_id ( ebml_w, local_def ( it. id ) ) ;
98
- encode_module_item_paths ( ebml_w, _mod, path + [ it. ident ] , index) ;
98
+ encode_module_item_paths ( ebml_w, _mod,
99
+ path + [ istr:: from_estr ( it. ident ) ] ,
100
+ index) ;
99
101
ebml:: end_tag ( ebml_w) ;
100
102
}
101
103
item_native_mod ( nmod) {
102
- add_to_index ( ebml_w, path, index, it. ident ) ;
104
+ add_to_index ( ebml_w, path, index, istr :: from_estr ( it. ident ) ) ;
103
105
ebml:: start_tag ( ebml_w, tag_paths_data_mod) ;
104
- encode_name ( ebml_w, it. ident ) ;
106
+ encode_name ( ebml_w, istr :: from_estr ( it. ident ) ) ;
105
107
encode_def_id ( ebml_w, local_def ( it. id ) ) ;
106
- encode_native_module_item_paths ( ebml_w, nmod, path + [ it. ident ] ,
107
- index) ;
108
+ encode_native_module_item_paths (
109
+ ebml_w, nmod,
110
+ path + [ istr:: from_estr ( it. ident ) ] ,
111
+ index) ;
108
112
ebml:: end_tag ( ebml_w) ;
109
113
}
110
114
item_ty ( _, tps) {
111
- add_to_index ( ebml_w, path, index, it. ident ) ;
115
+ add_to_index ( ebml_w, path, index, istr :: from_estr ( it. ident ) ) ;
112
116
ebml:: start_tag ( ebml_w, tag_paths_data_item) ;
113
- encode_name ( ebml_w, it. ident ) ;
117
+ encode_name ( ebml_w, istr :: from_estr ( it. ident ) ) ;
114
118
encode_def_id ( ebml_w, local_def ( it. id ) ) ;
115
119
ebml:: end_tag ( ebml_w) ;
116
120
}
117
121
item_res ( _, _, tps, ctor_id) {
118
- add_to_index ( ebml_w, path, index, it. ident ) ;
122
+ add_to_index ( ebml_w, path, index, istr :: from_estr ( it. ident ) ) ;
119
123
ebml:: start_tag ( ebml_w, tag_paths_data_item) ;
120
- encode_name ( ebml_w, it. ident ) ;
124
+ encode_name ( ebml_w, istr :: from_estr ( it. ident ) ) ;
121
125
encode_def_id ( ebml_w, local_def ( ctor_id) ) ;
122
126
ebml:: end_tag ( ebml_w) ;
123
- add_to_index ( ebml_w, path, index, it. ident ) ;
127
+ add_to_index ( ebml_w, path, index, istr :: from_estr ( it. ident ) ) ;
124
128
ebml:: start_tag ( ebml_w, tag_paths_data_item) ;
125
- encode_name ( ebml_w, it. ident ) ;
129
+ encode_name ( ebml_w, istr :: from_estr ( it. ident ) ) ;
126
130
encode_def_id ( ebml_w, local_def ( it. id ) ) ;
127
131
ebml:: end_tag ( ebml_w) ;
128
132
}
129
133
item_tag ( variants, tps) {
130
- add_to_index ( ebml_w, path, index, it. ident ) ;
134
+ add_to_index ( ebml_w, path, index, istr :: from_estr ( it. ident ) ) ;
131
135
ebml:: start_tag ( ebml_w, tag_paths_data_item) ;
132
- encode_name ( ebml_w, it. ident ) ;
136
+ encode_name ( ebml_w, istr :: from_estr ( it. ident ) ) ;
133
137
encode_def_id ( ebml_w, local_def ( it. id ) ) ;
134
138
ebml:: end_tag ( ebml_w) ;
135
139
encode_tag_variant_paths ( ebml_w, variants, path, index) ;
136
140
}
137
141
item_obj ( _, tps, ctor_id) {
138
- add_to_index ( ebml_w, path, index, it. ident ) ;
142
+ add_to_index ( ebml_w, path, index, istr :: from_estr ( it. ident ) ) ;
139
143
ebml:: start_tag ( ebml_w, tag_paths_data_item) ;
140
- encode_name ( ebml_w, it. ident ) ;
144
+ encode_name ( ebml_w, istr :: from_estr ( it. ident ) ) ;
141
145
encode_def_id ( ebml_w, local_def ( ctor_id) ) ;
142
146
ebml:: end_tag ( ebml_w) ;
143
- add_to_index ( ebml_w, path, index, it. ident ) ;
147
+ add_to_index ( ebml_w, path, index, istr :: from_estr ( it. ident ) ) ;
144
148
ebml:: start_tag ( ebml_w, tag_paths_data_item) ;
145
- encode_name ( ebml_w, it. ident ) ;
149
+ encode_name ( ebml_w, istr :: from_estr ( it. ident ) ) ;
146
150
encode_def_id ( ebml_w, local_def ( it. id ) ) ;
147
151
ebml:: end_tag ( ebml_w) ;
148
152
}
149
153
}
150
154
}
151
155
}
152
156
153
- fn encode_item_paths ( ebml_w : & ebml:: writer , crate : & @crate ) -> [ entry < str > ] {
154
- let index: [ entry < str > ] = [ ] ;
155
- let path: [ str ] = [ ] ;
157
+ fn encode_item_paths ( ebml_w : & ebml:: writer , crate : & @crate ) -> [ entry < istr > ] {
158
+ let index: [ entry < istr > ] = [ ] ;
159
+ let path: [ istr ] = [ ] ;
156
160
ebml:: start_tag ( ebml_w, tag_paths) ;
157
161
encode_module_item_paths ( ebml_w, crate . node. module , path, index) ;
158
162
ebml:: end_tag ( ebml_w) ;
@@ -436,8 +440,8 @@ fn encode_index<T>(ebml_w: &ebml::writer, buckets: &[@[entry<T>]],
436
440
ebml:: end_tag ( ebml_w) ;
437
441
}
438
442
439
- fn write_str ( writer : & io:: writer , s : & str ) {
440
- writer. write_str ( istr :: from_estr ( s ) ) ;
443
+ fn write_str ( writer : & io:: writer , s : & istr ) {
444
+ writer. write_str ( s ) ;
441
445
}
442
446
443
447
fn write_int ( writer : & io:: writer , n : & int ) {
@@ -623,11 +627,11 @@ fn encode_metadata(cx: &@crate_ctxt, crate: &@crate) -> str {
623
627
}
624
628
625
629
// Get the encoded string for a type
626
- fn encoded_ty ( tcx : & ty:: ctxt , t : ty:: t ) -> str {
630
+ fn encoded_ty ( tcx : & ty:: ctxt , t : ty:: t ) -> istr {
627
631
let cx = @{ ds: def_to_str, tcx: tcx, abbrevs: tyencode:: ac_no_abbrevs} ;
628
632
let sw = io:: string_writer ( ) ;
629
633
tyencode:: enc_ty ( sw. get_writer ( ) , cx, t) ;
630
- ret istr :: to_estr ( sw. get_str ( ) ) ;
634
+ ret sw. get_str ( ) ;
631
635
}
632
636
633
637
0 commit comments