@@ -64,7 +64,7 @@ pub fn read_crates(diag: span_handler,
64
64
type cache_entry = {
65
65
cnum : int ,
66
66
span : span ,
67
- hash : ~str ,
67
+ hash : @ ~str ,
68
68
metas : @~[ @ast:: meta_item ]
69
69
} ;
70
70
@@ -100,7 +100,7 @@ fn warn_if_multiple_versions(e: @mut Env,
100
100
101
101
if matches. len ( ) != 1 u {
102
102
diag. handler ( ) . warn (
103
- fmt ! ( "using multiple versions of crate `%s`" , name) ) ;
103
+ fmt ! ( "using multiple versions of crate `%s`" , * name) ) ;
104
104
for matches. each |match_| {
105
105
diag. span_note ( match_. span , ~"used here") ;
106
106
let attrs = ~[
@@ -145,7 +145,7 @@ fn visit_view_item(e: @mut Env, i: @ast::view_item) {
145
145
ast:: view_item_extern_mod( ident, meta_items, id) => {
146
146
debug ! ( "resolving extern mod stmt. ident: %?, meta: %?" ,
147
147
ident, meta_items) ;
148
- let cnum = resolve_crate ( e, ident, meta_items, ~"", i. span ) ;
148
+ let cnum = resolve_crate ( e, ident, meta_items, @ ~"", i. span ) ;
149
149
cstore:: add_extern_mod_stmt_cnum ( e. cstore , id, cnum) ;
150
150
}
151
151
_ => ( )
@@ -172,21 +172,20 @@ fn visit_item(e: @mut Env, i: @ast::item) {
172
172
let foreign_name =
173
173
match attr:: first_attr_value_str_by_name ( i. attrs ,
174
174
~"link_name") {
175
- Some ( ref nn) => {
176
- if * * nn == ~"" {
175
+ Some ( nn) => {
176
+ if * nn == ~"" {
177
177
e. diag . span_fatal (
178
178
i. span ,
179
179
~"empty #[ link_name] not allowed; use " +
180
180
~" #[ nolink] . ") ;
181
181
}
182
- /*bad*/ copy * nn
182
+ nn
183
183
}
184
- None => @/ * bad * /copy * e. intr . get ( i. ident )
184
+ None => e. intr . get ( i. ident )
185
185
} ;
186
186
if attr:: find_attrs_by_name ( i. attrs , ~"nolink") . is_empty ( ) {
187
187
already_added =
188
- !cstore:: add_used_library ( cstore,
189
- /*bad*/ copy * foreign_name) ;
188
+ !cstore:: add_used_library ( cstore, foreign_name) ;
190
189
}
191
190
if !link_args. is_empty ( ) && already_added {
192
191
e. diag . span_fatal ( i. span , ~"library ' " + * foreign_name +
@@ -198,8 +197,8 @@ fn visit_item(e: @mut Env, i: @ast::item) {
198
197
199
198
for link_args. each |a| {
200
199
match attr:: get_meta_item_value_str ( attr:: attr_meta ( * a) ) {
201
- Some ( ref linkarg) => {
202
- cstore:: add_used_link_args ( cstore, /*bad*/ copy * * linkarg) ;
200
+ Some ( linkarg) => {
201
+ cstore:: add_used_link_args ( cstore, * linkarg) ;
203
202
}
204
203
None => { /* fallthrough */ }
205
204
}
@@ -209,22 +208,22 @@ fn visit_item(e: @mut Env, i: @ast::item) {
209
208
}
210
209
}
211
210
212
- fn metas_with ( + ident : ~str , + key : ~str , +metas : ~[ @ast:: meta_item ] )
211
+ fn metas_with ( ident : @ ~str , key : @ ~str , +metas : ~[ @ast:: meta_item ] )
213
212
-> ~[ @ast:: meta_item ] {
214
- let name_items = attr:: find_meta_items_by_name ( metas, key) ;
213
+ let name_items = attr:: find_meta_items_by_name ( metas, * key) ;
215
214
if name_items. is_empty ( ) {
216
- vec:: append_one ( metas, attr:: mk_name_value_item_str ( @ key, @ ident) )
215
+ vec:: append_one ( metas, attr:: mk_name_value_item_str ( key, ident) )
217
216
} else {
218
217
metas
219
218
}
220
219
}
221
220
222
- fn metas_with_ident ( + ident : ~str , +metas : ~[ @ast:: meta_item ] )
221
+ fn metas_with_ident ( ident : @ ~str , +metas : ~[ @ast:: meta_item ] )
223
222
-> ~[ @ast:: meta_item ] {
224
- metas_with ( ident, ~"name", metas)
223
+ metas_with ( ident, @ ~"name", metas)
225
224
}
226
225
227
- fn existing_match ( e : @mut Env , metas : ~[ @ast:: meta_item ] , hash : ~str )
226
+ fn existing_match ( e : @mut Env , metas : ~[ @ast:: meta_item ] , hash : @ ~str )
228
227
-> Option < int > {
229
228
for e. crate_cache. each |c| {
230
229
if loader:: metadata_matches ( * c. metas , metas)
@@ -238,10 +237,10 @@ fn existing_match(e: @mut Env, metas: ~[@ast::meta_item], hash: ~str)
238
237
fn resolve_crate ( e : @mut Env ,
239
238
ident : ast:: ident ,
240
239
+metas : ~[ @ast:: meta_item ] ,
241
- + hash : ~str ,
240
+ hash : @ ~str ,
242
241
span : span )
243
242
-> ast:: crate_num {
244
- let metas = metas_with_ident ( /*bad*/ copy * e. intr . get ( ident) , metas) ;
243
+ let metas = metas_with_ident ( @ /* bad* /copy * e. intr . get ( ident) , metas) ;
245
244
246
245
match existing_match ( e, metas, hash) {
247
246
None => {
@@ -277,10 +276,10 @@ fn resolve_crate(e: @mut Env,
277
276
let cname =
278
277
match attr:: last_meta_item_value_str_by_name ( load_ctxt. metas ,
279
278
~"name") {
280
- Some ( ref v) => /*bad*/ copy * v,
281
- None => @/ * bad * /copy * e. intr . get ( ident) ,
279
+ Some ( v) => v,
280
+ None => e. intr . get ( ident) ,
282
281
} ;
283
- let cmeta = @{ name: /*bad*/ copy * cname, data: cdata,
282
+ let cmeta = @{ name: cname, data: cdata,
284
283
cnum_map: cnum_map, cnum: cnum} ;
285
284
286
285
let cstore = e. cstore ;
@@ -303,10 +302,10 @@ fn resolve_crate_deps(e: @mut Env, cdata: @~[u8]) -> cstore::cnum_map {
303
302
for decoder:: get_crate_deps( e. intr, cdata) . each |dep| {
304
303
let extrn_cnum = dep. cnum ;
305
304
let cname = dep. name ;
306
- let cmetas = metas_with ( /*bad*/ copy dep. vers , ~"vers", ~[ ] ) ;
305
+ let cmetas = metas_with ( dep. vers , @ ~"vers", ~[ ] ) ;
307
306
debug ! ( "resolving dep crate %s ver: %s hash: %s" ,
308
- * e. intr. get( dep. name) , dep. vers, dep. hash) ;
309
- match existing_match ( e, metas_with_ident ( copy * e. intr . get ( cname) ,
307
+ * e. intr. get( dep. name) , * dep. vers, * dep. hash) ;
308
+ match existing_match ( e, metas_with_ident ( e. intr . get ( cname) ,
310
309
copy cmetas) ,
311
310
dep. hash ) {
312
311
Some ( local_cnum) => {
@@ -320,8 +319,8 @@ fn resolve_crate_deps(e: @mut Env, cdata: @~[u8]) -> cstore::cnum_map {
320
319
// FIXME (#2404): Need better error reporting than just a bogus
321
320
// span.
322
321
let fake_span = dummy_sp ( ) ;
323
- let local_cnum = resolve_crate ( e, cname, cmetas,
324
- /*bad*/ copy dep . hash , fake_span) ;
322
+ let local_cnum = resolve_crate ( e, cname, cmetas, dep . hash ,
323
+ fake_span) ;
325
324
cnum_map. insert ( extrn_cnum, local_cnum) ;
326
325
}
327
326
}
0 commit comments