@@ -49,8 +49,7 @@ tag resolve_result {
49
49
// Callback to translate defs to strs or back.
50
50
type str_def = fn ( str ) -> ast. def_id ;
51
51
52
- type pstate = rec ( str rep, mutable uint pos, uint len,
53
- @ty. type_store tystore ) ;
52
+ type pstate = rec ( str rep, mutable uint pos, uint len, ty. ctxt tcx ) ;
54
53
55
54
fn peek ( @pstate st ) -> u8 {
56
55
if ( st. pos < st. len ) { ret st. rep . ( st. pos ) as u8 ; }
@@ -63,9 +62,9 @@ fn next(@pstate st) -> u8 {
63
62
ret ch as u8 ;
64
63
}
65
64
66
- fn parse_ty_str ( str rep, str_def sd, @ ty. type_store tystore ) -> ty . t {
65
+ fn parse_ty_str ( str rep, str_def sd, ty. ctxt tcx ) -> ty . t {
67
66
auto len = _str. byte_len ( rep) ;
68
- auto st = @rec ( rep=rep, mutable pos=0 u, len=len, tystore=tystore ) ;
67
+ auto st = @rec ( rep=rep, mutable pos=0 u, len=len, tcx=tcx ) ;
69
68
auto result = parse_ty ( st, sd) ;
70
69
if ( st. pos != len) {
71
70
log_err "parse_ty_str: incomplete parse, stopped at byte "
@@ -77,27 +76,27 @@ fn parse_ty_str(str rep, str_def sd, @ty.type_store tystore) -> ty.t {
77
76
78
77
fn parse_ty ( @pstate st , str_def sd) -> ty . t {
79
78
alt ( next ( st) as char ) {
80
- case ( 'n' ) { ret ty. mk_nil ( st. tystore ) ; }
81
- case ( 'b' ) { ret ty. mk_bool ( st. tystore ) ; }
82
- case ( 'i' ) { ret ty. mk_int ( st. tystore ) ; }
83
- case ( 'u' ) { ret ty. mk_uint ( st. tystore ) ; }
84
- case ( 'l' ) { ret ty. mk_float ( st. tystore ) ; }
79
+ case ( 'n' ) { ret ty. mk_nil ( st. tcx ) ; }
80
+ case ( 'b' ) { ret ty. mk_bool ( st. tcx ) ; }
81
+ case ( 'i' ) { ret ty. mk_int ( st. tcx ) ; }
82
+ case ( 'u' ) { ret ty. mk_uint ( st. tcx ) ; }
83
+ case ( 'l' ) { ret ty. mk_float ( st. tcx ) ; }
85
84
case ( 'M' ) {
86
85
alt ( next ( st) as char ) {
87
- case ( 'b' ) { ret ty. mk_mach ( st. tystore , common. ty_u8 ) ; }
88
- case ( 'w' ) { ret ty. mk_mach ( st. tystore , common. ty_u16 ) ; }
89
- case ( 'l' ) { ret ty. mk_mach ( st. tystore , common. ty_u32 ) ; }
90
- case ( 'd' ) { ret ty. mk_mach ( st. tystore , common. ty_u64 ) ; }
91
- case ( 'B' ) { ret ty. mk_mach ( st. tystore , common. ty_i8 ) ; }
92
- case ( 'W' ) { ret ty. mk_mach ( st. tystore , common. ty_i16 ) ; }
93
- case ( 'L' ) { ret ty. mk_mach ( st. tystore , common. ty_i32 ) ; }
94
- case ( 'D' ) { ret ty. mk_mach ( st. tystore , common. ty_i64 ) ; }
95
- case ( 'f' ) { ret ty. mk_mach ( st. tystore , common. ty_f32 ) ; }
96
- case ( 'F' ) { ret ty. mk_mach ( st. tystore , common. ty_f64 ) ; }
86
+ case ( 'b' ) { ret ty. mk_mach ( st. tcx , common. ty_u8 ) ; }
87
+ case ( 'w' ) { ret ty. mk_mach ( st. tcx , common. ty_u16 ) ; }
88
+ case ( 'l' ) { ret ty. mk_mach ( st. tcx , common. ty_u32 ) ; }
89
+ case ( 'd' ) { ret ty. mk_mach ( st. tcx , common. ty_u64 ) ; }
90
+ case ( 'B' ) { ret ty. mk_mach ( st. tcx , common. ty_i8 ) ; }
91
+ case ( 'W' ) { ret ty. mk_mach ( st. tcx , common. ty_i16 ) ; }
92
+ case ( 'L' ) { ret ty. mk_mach ( st. tcx , common. ty_i32 ) ; }
93
+ case ( 'D' ) { ret ty. mk_mach ( st. tcx , common. ty_i64 ) ; }
94
+ case ( 'f' ) { ret ty. mk_mach ( st. tcx , common. ty_f32 ) ; }
95
+ case ( 'F' ) { ret ty. mk_mach ( st. tcx , common. ty_f64 ) ; }
97
96
}
98
97
}
99
- case ( 'c' ) { ret ty. mk_char ( st. tystore ) ; }
100
- case ( 's' ) { ret ty. mk_str ( st. tystore ) ; }
98
+ case ( 'c' ) { ret ty. mk_char ( st. tcx ) ; }
99
+ case ( 's' ) { ret ty. mk_str ( st. tcx ) ; }
101
100
case ( 't' ) {
102
101
check ( next ( st) as char == '[' ) ;
103
102
auto def = parse_def ( st, sd) ;
@@ -106,21 +105,21 @@ fn parse_ty(@pstate st, str_def sd) -> ty.t {
106
105
params += vec ( parse_ty ( st, sd) ) ;
107
106
}
108
107
st. pos = st. pos + 1 u;
109
- ret ty. mk_tag ( st. tystore , def, params) ;
108
+ ret ty. mk_tag ( st. tcx , def, params) ;
110
109
}
111
- case ( 'p' ) { ret ty. mk_param ( st. tystore , parse_int ( st) as uint ) ; }
112
- case ( '@' ) { ret ty. mk_box ( st. tystore , parse_mt ( st, sd) ) ; }
113
- case ( 'V' ) { ret ty. mk_vec ( st. tystore , parse_mt ( st, sd) ) ; }
114
- case ( 'P' ) { ret ty. mk_port ( st. tystore , parse_ty ( st, sd) ) ; }
115
- case ( 'C' ) { ret ty. mk_chan ( st. tystore , parse_ty ( st, sd) ) ; }
110
+ case ( 'p' ) { ret ty. mk_param ( st. tcx , parse_int ( st) as uint ) ; }
111
+ case ( '@' ) { ret ty. mk_box ( st. tcx , parse_mt ( st, sd) ) ; }
112
+ case ( 'V' ) { ret ty. mk_vec ( st. tcx , parse_mt ( st, sd) ) ; }
113
+ case ( 'P' ) { ret ty. mk_port ( st. tcx , parse_ty ( st, sd) ) ; }
114
+ case ( 'C' ) { ret ty. mk_chan ( st. tcx , parse_ty ( st, sd) ) ; }
116
115
case ( 'T' ) {
117
116
check ( next ( st) as char == '[' ) ;
118
117
let vec[ ty. mt ] params = vec ( ) ;
119
118
while ( peek ( st) as char != ']' ) {
120
119
params += vec ( parse_mt ( st, sd) ) ;
121
120
}
122
121
st. pos = st. pos + 1 u;
123
- ret ty. mk_tup ( st. tystore , params) ;
122
+ ret ty. mk_tup ( st. tcx , params) ;
124
123
}
125
124
case ( 'R' ) {
126
125
check ( next ( st) as char == '[' ) ;
@@ -134,15 +133,15 @@ fn parse_ty(@pstate st, str_def sd) -> ty.t {
134
133
fields += vec ( rec ( ident=name, mt=parse_mt ( st, sd) ) ) ;
135
134
}
136
135
st. pos = st. pos + 1 u;
137
- ret ty. mk_rec ( st. tystore , fields) ;
136
+ ret ty. mk_rec ( st. tcx , fields) ;
138
137
}
139
138
case ( 'F' ) {
140
139
auto func = parse_ty_fn ( st, sd) ;
141
- ret ty. mk_fn ( st. tystore , ast. proto_fn , func. _0 , func. _1 ) ;
140
+ ret ty. mk_fn ( st. tcx , ast. proto_fn , func. _0 , func. _1 ) ;
142
141
}
143
142
case ( 'W' ) {
144
143
auto func = parse_ty_fn ( st, sd) ;
145
- ret ty. mk_fn ( st. tystore , ast. proto_iter , func. _0 , func. _1 ) ;
144
+ ret ty. mk_fn ( st. tcx , ast. proto_iter , func. _0 , func. _1 ) ;
146
145
}
147
146
case ( 'N' ) {
148
147
auto abi;
@@ -152,7 +151,7 @@ fn parse_ty(@pstate st, str_def sd) -> ty.t {
152
151
case ( 'l' ) { abi = ast. native_abi_llvm ; }
153
152
}
154
153
auto func = parse_ty_fn ( st, sd) ;
155
- ret ty. mk_native_fn ( st. tystore , abi, func. _0 , func. _1 ) ;
154
+ ret ty. mk_native_fn ( st. tcx , abi, func. _0 , func. _1 ) ;
156
155
}
157
156
case ( 'O' ) {
158
157
check ( next ( st) as char == '[' ) ;
@@ -174,11 +173,11 @@ fn parse_ty(@pstate st, str_def sd) -> ty.t {
174
173
output=func. _1 ) ) ;
175
174
}
176
175
st. pos += 1 u;
177
- ret ty. mk_obj ( st. tystore , methods) ;
176
+ ret ty. mk_obj ( st. tcx , methods) ;
178
177
}
179
- case ( 'X' ) { ret ty. mk_var ( st. tystore , parse_int ( st) ) ; }
180
- case ( 'E' ) { ret ty. mk_native ( st. tystore ) ; }
181
- case ( 'Y' ) { ret ty. mk_type ( st. tystore ) ; }
178
+ case ( 'X' ) { ret ty. mk_var ( st. tcx , parse_int ( st) ) ; }
179
+ case ( 'E' ) { ret ty. mk_native ( st. tcx ) ; }
180
+ case ( 'Y' ) { ret ty. mk_type ( st. tcx ) ; }
182
181
}
183
182
}
184
183
@@ -331,7 +330,7 @@ fn variant_tag_id(&ebml.doc d) -> ast.def_id {
331
330
ret parse_def_id( ebml. doc_data( tagdoc) ) ;
332
331
}
333
332
334
- fn item_type( & ebml. doc item, int this_cnum, @ ty. type_store tystore ) -> ty. t {
333
+ fn item_type( & ebml. doc item, int this_cnum, ty. ctxt tcx ) -> ty. t {
335
334
fn parse_external_def_id( int this_cnum, str s) -> ast. def_id {
336
335
// FIXME: This is completely wrong when linking against a crate
337
336
// that, in turn, links against another crate. We need a mapping
@@ -344,7 +343,7 @@ fn item_type(&ebml.doc item, int this_cnum, @ty.type_store tystore) -> ty.t {
344
343
345
344
auto tp = ebml. get_doc( item, metadata. tag_items_data_item_type) ;
346
345
auto s = _str. unsafe_from_bytes( ebml. doc_data( tp) ) ;
347
- ret parse_ty_str( s, bind parse_external_def_id( this_cnum, _) , tystore ) ;
346
+ ret parse_ty_str( s, bind parse_external_def_id( this_cnum, _) , tcx ) ;
348
347
}
349
348
350
349
fn item_ty_param_count( & ebml. doc item, int this_cnum) -> uint {
@@ -506,12 +505,12 @@ fn lookup_def(session.session sess, int cnum, vec[ast.ident] path)
506
505
ret some[ ast. def] ( def) ;
507
506
}
508
507
509
- fn get_type( session. session sess, @ ty. type_store tystore , ast. def_id def)
508
+ fn get_type( session. session sess, ty. ctxt tcx , ast. def_id def)
510
509
-> ty. ty_param_count_and_ty {
511
510
auto external_crate_id = def. _0;
512
511
auto data = sess. get_external_crate( external_crate_id) . data;
513
512
auto item = lookup_item( def. _1, data) ;
514
- auto t = item_type( item, external_crate_id, tystore ) ;
513
+ auto t = item_type( item, external_crate_id, tcx ) ;
515
514
516
515
auto tp_count;
517
516
auto kind_ch = item_kind( item) ;
@@ -532,9 +531,8 @@ fn get_symbol(session.session sess, ast.def_id def) -> str {
532
531
ret item_symbol( item) ;
533
532
}
534
533
535
- fn get_tag_variants( session. session sess,
536
- @ty. type_store tystore,
537
- ast. def_id def) -> vec[ trans. variant_info] {
534
+ fn get_tag_variants( session. session sess, ty. ctxt tcx, ast. def_id def)
535
+ -> vec[ trans. variant_info] {
538
536
auto external_crate_id = def. _0;
539
537
auto data = sess. get_external_crate( external_crate_id) . data;
540
538
auto items = ebml. get_doc( ebml. new_doc( data) , metadata. tag_items) ;
@@ -544,9 +542,9 @@ fn get_tag_variants(session.session sess,
544
542
auto variant_ids = tag_variant_ids( item, external_crate_id) ;
545
543
for ( ast. def_id did in variant_ids) {
546
544
auto item = find_item( did. _1, items) ;
547
- auto ctor_ty = item_type( item, external_crate_id, tystore ) ;
545
+ auto ctor_ty = item_type( item, external_crate_id, tcx ) ;
548
546
let vec[ ty. t] arg_tys = vec( ) ;
549
- alt ( ty. struct ( tystore , ctor_ty) ) {
547
+ alt ( ty. struct ( tcx , ctor_ty) ) {
550
548
case ( ty. ty_fn( _, ?args, _) ) {
551
549
for ( ty. arg a in args) {
552
550
arg_tys += vec( a. ty) ;
0 commit comments