@@ -20,9 +20,8 @@ use syntax::ast::*;
20
20
use syntax:: ast;
21
21
use syntax:: ast_util:: { def_id_of_def, local_def, mtwt_resolve} ;
22
22
use syntax:: ast_util:: { path_to_ident, walk_pat, trait_method_to_ty_method} ;
23
+ use syntax:: parse:: token:: { IdentInterner , special_idents} ;
23
24
use syntax:: parse:: token;
24
- use syntax:: parse:: token:: { IdentInterner , interner_get} ;
25
- use syntax:: parse:: token:: special_idents;
26
25
use syntax:: print:: pprust:: path_to_str;
27
26
use syntax:: codemap:: { Span , DUMMY_SP , Pos } ;
28
27
use syntax:: opt_vec:: OptVec ;
@@ -53,7 +52,7 @@ pub type TraitMap = HashMap<NodeId,@RefCell<~[DefId]>>;
53
52
pub type ExportMap2 = @RefCell < HashMap < NodeId , ~[ Export2 ] > > ;
54
53
55
54
pub struct Export2 {
56
- name : @ str , // The name of the target.
55
+ name : ~ str , // The name of the target.
57
56
def_id : DefId , // The definition of the target.
58
57
}
59
58
@@ -2114,24 +2113,26 @@ impl Resolver {
2114
2113
}
2115
2114
2116
2115
fn import_directive_subclass_to_str ( & mut self ,
2117
- subclass : ImportDirectiveSubclass )
2118
- -> @ str {
2116
+ subclass : ImportDirectiveSubclass )
2117
+ -> ~ str {
2119
2118
match subclass {
2120
- SingleImport ( _target, source) => self . session . str_of ( source) ,
2121
- GlobImport => @"* "
2119
+ SingleImport ( _target, source) => {
2120
+ self . session . str_of ( source) . to_str ( )
2121
+ }
2122
+ GlobImport => ~"* "
2122
2123
}
2123
2124
}
2124
2125
2125
2126
fn import_path_to_str(&mut self,
2126
- idents: &[Ident],
2127
- subclass: ImportDirectiveSubclass)
2128
- -> @ str {
2127
+ idents: &[Ident],
2128
+ subclass: ImportDirectiveSubclass)
2129
+ -> ~ str {
2129
2130
if idents.is_empty() {
2130
2131
self.import_directive_subclass_to_str(subclass)
2131
2132
} else {
2132
2133
(format!(" { } :: { } ",
2133
- self.idents_to_str(idents),
2134
- self.import_directive_subclass_to_str(subclass))).to_managed( )
2134
+ self.idents_to_str(idents),
2135
+ self.import_directive_subclass_to_str(subclass)))
2135
2136
}
2136
2137
}
2137
2138
@@ -2584,7 +2585,7 @@ impl Resolver {
2584
2585
2585
2586
debug ! ( "(resolving glob import) writing resolution `{}` in `{}` \
2586
2587
to `{}`",
2587
- interner_get ( name) ,
2588
+ token :: get_ident ( name) . get ( ) . to_str ( ) ,
2588
2589
self . module_to_str( containing_module) ,
2589
2590
self . module_to_str( module_) ) ;
2590
2591
@@ -3354,10 +3355,10 @@ impl Resolver {
3354
3355
match namebindings. def_for_namespace ( ns) {
3355
3356
Some ( d) => {
3356
3357
debug ! ( "(computing exports) YES: export '{}' => {:?}" ,
3357
- interner_get ( name) ,
3358
+ token :: get_ident ( name) . get ( ) . to_str ( ) ,
3358
3359
def_id_of_def( d) ) ;
3359
3360
exports2. push ( Export2 {
3360
- name : interner_get ( name) ,
3361
+ name : token :: get_ident ( name) . get ( ) . to_str ( ) ,
3361
3362
def_id : def_id_of_def ( d)
3362
3363
} ) ;
3363
3364
}
@@ -3380,7 +3381,7 @@ impl Resolver {
3380
3381
match importresolution. target_for_namespace ( ns) {
3381
3382
Some ( target) => {
3382
3383
debug ! ( "(computing exports) maybe export '{}'" ,
3383
- interner_get ( * name) ) ;
3384
+ token :: get_ident ( * name) . get ( ) . to_str ( ) ) ;
3384
3385
self . add_exports_of_namebindings ( exports2,
3385
3386
* name,
3386
3387
target. bindings ,
@@ -4155,31 +4156,37 @@ impl Resolver {
4155
4156
for ( & key, & binding_0) in map_0. iter ( ) {
4156
4157
match map_i. find ( & key) {
4157
4158
None => {
4159
+ let string = token:: get_ident ( key) ;
4158
4160
self . resolve_error (
4159
4161
p. span ,
4160
4162
format ! ( "variable `{}` from pattern \\ #1 is \
4161
4163
not bound in pattern \\ #{}",
4162
- interner_get( key) , i + 1 ) ) ;
4164
+ string. get( ) ,
4165
+ i + 1 ) ) ;
4163
4166
}
4164
4167
Some ( binding_i) => {
4165
4168
if binding_0. binding_mode != binding_i. binding_mode {
4169
+ let string = token:: get_ident ( key) ;
4166
4170
self . resolve_error (
4167
4171
binding_i. span ,
4168
4172
format ! ( "variable `{}` is bound with different \
4169
4173
mode in pattern \\ #{} than in pattern \\ #1",
4170
- interner_get( key) , i + 1 ) ) ;
4174
+ string. get( ) ,
4175
+ i + 1 ) ) ;
4171
4176
}
4172
4177
}
4173
4178
}
4174
4179
}
4175
4180
4176
4181
for ( & key, & binding) in map_i. iter ( ) {
4177
4182
if !map_0. contains_key ( & key) {
4183
+ let string = token:: get_ident ( key) ;
4178
4184
self . resolve_error (
4179
4185
binding. span ,
4180
4186
format ! ( "variable `{}` from pattern \\ #{} is \
4181
4187
not bound in pattern \\ #1",
4182
- interner_get( key) , i + 1 ) ) ;
4188
+ string. get( ) ,
4189
+ i + 1 ) ) ;
4183
4190
}
4184
4191
}
4185
4192
}
@@ -4371,9 +4378,10 @@ impl Resolver {
4371
4378
match self . resolve_bare_identifier_pattern ( ident) {
4372
4379
FoundStructOrEnumVariant ( def, lp)
4373
4380
if mode == RefutableMode => {
4381
+ let string = token:: get_ident ( renamed) ;
4374
4382
debug ! ( "(resolving pattern) resolving `{}` to \
4375
4383
struct or enum variant",
4376
- interner_get ( renamed ) ) ;
4384
+ string . get ( ) ) ;
4377
4385
4378
4386
self . enforce_default_binding_mode (
4379
4387
pattern,
@@ -4382,17 +4390,19 @@ impl Resolver {
4382
4390
self . record_def ( pattern. id , ( def, lp) ) ;
4383
4391
}
4384
4392
FoundStructOrEnumVariant ( ..) => {
4393
+ let string = token:: get_ident ( renamed) ;
4385
4394
self . resolve_error ( pattern. span ,
4386
4395
format ! ( "declaration of `{}` \
4387
4396
shadows an enum \
4388
4397
variant or unit-like \
4389
4398
struct in scope",
4390
- interner_get ( renamed ) ) ) ;
4399
+ string . get ( ) ) ) ;
4391
4400
}
4392
4401
FoundConst ( def, lp) if mode == RefutableMode => {
4402
+ let string = token:: get_ident ( renamed) ;
4393
4403
debug ! ( "(resolving pattern) resolving `{}` to \
4394
4404
constant",
4395
- interner_get ( renamed ) ) ;
4405
+ string . get ( ) ) ;
4396
4406
4397
4407
self . enforce_default_binding_mode (
4398
4408
pattern,
@@ -4406,8 +4416,9 @@ impl Resolver {
4406
4416
allowed here") ;
4407
4417
}
4408
4418
BareIdentifierPatternUnresolved => {
4419
+ let string = token:: get_ident ( renamed) ;
4409
4420
debug ! ( "(resolving pattern) binding `{}`" ,
4410
- interner_get ( renamed ) ) ;
4421
+ string . get ( ) ) ;
4411
4422
4412
4423
let def = match mode {
4413
4424
RefutableMode => {
@@ -5009,10 +5020,10 @@ impl Resolver {
5009
5020
}
5010
5021
5011
5022
fn find_best_match_for_name ( & mut self , name : & str , max_distance : uint )
5012
- -> Option < @ str > {
5023
+ -> Option < ~ str > {
5013
5024
let this = & mut * self ;
5014
5025
5015
- let mut maybes: ~[ @ str ] = ~[ ] ;
5026
+ let mut maybes: ~[ ~ str ] = ~[ ] ;
5016
5027
let mut values: ~[ uint ] = ~[ ] ;
5017
5028
5018
5029
let mut j = {
@@ -5024,14 +5035,15 @@ impl Resolver {
5024
5035
let value_ribs = this. value_ribs . borrow ( ) ;
5025
5036
let bindings = value_ribs. get ( ) [ j] . bindings . borrow ( ) ;
5026
5037
for ( & k, _) in bindings. get ( ) . iter ( ) {
5027
- maybes. push ( interner_get ( k) ) ;
5038
+ let string = token:: get_ident ( k) ;
5039
+ maybes. push ( string. get ( ) . to_str ( ) ) ;
5028
5040
values. push ( uint:: MAX ) ;
5029
5041
}
5030
5042
}
5031
5043
5032
5044
let mut smallest = 0 ;
5033
- for ( i, & other) in maybes. iter ( ) . enumerate ( ) {
5034
- values[ i] = name. lev_distance ( other) ;
5045
+ for ( i, other) in maybes. iter ( ) . enumerate ( ) {
5046
+ values[ i] = name. lev_distance ( * other) ;
5035
5047
5036
5048
if values[ i] <= values[ smallest] {
5037
5049
smallest = i;
@@ -5190,7 +5202,9 @@ impl Resolver {
5190
5202
self . resolve_error ( expr. span ,
5191
5203
format ! ( "use of undeclared label \
5192
5204
`{}`",
5193
- interner_get( label) ) ) ,
5205
+ token:: get_ident( label)
5206
+ . get( )
5207
+ . to_str( ) ) ) ,
5194
5208
Some ( DlDef ( def @ DefLabel ( _) ) ) => {
5195
5209
// FIXME: is AllPublic correct?
5196
5210
self . record_def ( expr. id , ( def, AllPublic ) )
@@ -5510,7 +5524,7 @@ impl Resolver {
5510
5524
self . populate_module_if_necessary ( module_) ;
5511
5525
let children = module_. children . borrow ( ) ;
5512
5526
for ( & name, _) in children. get ( ) . iter ( ) {
5513
- debug ! ( "* {}" , interner_get ( name) ) ;
5527
+ debug ! ( "* {}" , token :: get_ident ( name) . get ( ) . to_str ( ) ) ;
5514
5528
}
5515
5529
5516
5530
debug ! ( "Import resolutions:" ) ;
@@ -5534,7 +5548,7 @@ impl Resolver {
5534
5548
}
5535
5549
}
5536
5550
5537
- debug ! ( "* {}:{}{}" , interner_get ( * name) ,
5551
+ debug ! ( "* {}:{}{}" , token :: get_ident ( * name) . get ( ) . to_str ( ) ,
5538
5552
value_repr, type_repr) ;
5539
5553
}
5540
5554
}
0 commit comments