@@ -33,63 +33,64 @@ use syntax::visit::visit_crate;
33
33
use core:: hashmap:: HashMap ;
34
34
35
35
pub enum LangItem {
36
- FreezeTraitLangItem , // 0
37
- CopyTraitLangItem , // 1
38
- SendTraitLangItem , // 2
39
- SizedTraitLangItem , // 3
40
-
41
- DropTraitLangItem , // 4
42
-
43
- AddTraitLangItem , // 5
44
- SubTraitLangItem , // 6
45
- MulTraitLangItem , // 7
46
- DivTraitLangItem , // 8
47
- RemTraitLangItem , // 9
48
- NegTraitLangItem , // 10
49
- NotTraitLangItem , // 11
50
- BitXorTraitLangItem , // 11
51
- BitAndTraitLangItem , // 13
52
- BitOrTraitLangItem , // 14
53
- ShlTraitLangItem , // 15
54
- ShrTraitLangItem , // 16
55
- IndexTraitLangItem , // 17
56
-
57
- EqTraitLangItem , // 18
58
- OrdTraitLangItem , // 19
59
-
60
- StrEqFnLangItem , // 20
61
- UniqStrEqFnLangItem , // 21
62
- AnnihilateFnLangItem , // 22
63
- LogTypeFnLangItem , // 23
64
- FailFnLangItem , // 24
65
- FailBoundsCheckFnLangItem , // 25
66
- ExchangeMallocFnLangItem , // 26
67
- ExchangeFreeFnLangItem , // 27
68
- MallocFnLangItem , // 28
69
- FreeFnLangItem , // 29
70
- BorrowAsImmFnLangItem , // 30
71
- BorrowAsMutFnLangItem , // 31
72
- ReturnToMutFnLangItem , // 32
73
- CheckNotBorrowedFnLangItem , // 33
74
- StrDupUniqFnLangItem , // 34
75
- RecordBorrowFnLangItem , // 35
76
- UnrecordBorrowFnLangItem , // 36
77
-
78
- StartFnLangItem , // 37
79
-
80
- TyDescStructLangItem , // 38
81
- TyVisitorTraitLangItem , // 39
82
- OpaqueStructLangItem , // 40
36
+ FreezeTraitLangItem , // 0
37
+ CopyTraitLangItem , // 1
38
+ SendTraitLangItem , // 2
39
+ SizedTraitLangItem , // 3
40
+
41
+ DropTraitLangItem , // 4
42
+
43
+ AddTraitLangItem , // 5
44
+ SubTraitLangItem , // 6
45
+ MulTraitLangItem , // 7
46
+ DivTraitLangItem , // 8
47
+ RemTraitLangItem , // 9
48
+ NegTraitLangItem , // 10
49
+ NotTraitLangItem , // 11
50
+ BitXorTraitLangItem , // 11
51
+ BitAndTraitLangItem , // 13
52
+ BitOrTraitLangItem , // 14
53
+ ShlTraitLangItem , // 15
54
+ ShrTraitLangItem , // 16
55
+ IndexTraitLangItem , // 17
56
+
57
+ EqTraitLangItem , // 18
58
+ OrdTraitLangItem , // 19
59
+
60
+ StrEqFnLangItem , // 20
61
+ UniqStrEqFnLangItem , // 21
62
+ AnnihilateFnLangItem , // 22
63
+ LogTypeFnLangItem , // 23
64
+ FailFnLangItem , // 24
65
+ FailBoundsCheckFnLangItem , // 25
66
+ ExchangeMallocFnLangItem , // 26
67
+ ClosureExchangeMallocFnLangItem , // 27
68
+ ExchangeFreeFnLangItem , // 28
69
+ MallocFnLangItem , // 29
70
+ FreeFnLangItem , // 30
71
+ BorrowAsImmFnLangItem , // 31
72
+ BorrowAsMutFnLangItem , // 32
73
+ ReturnToMutFnLangItem , // 33
74
+ CheckNotBorrowedFnLangItem , // 34
75
+ StrDupUniqFnLangItem , // 35
76
+ RecordBorrowFnLangItem , // 36
77
+ UnrecordBorrowFnLangItem , // 37
78
+
79
+ StartFnLangItem , // 38
80
+
81
+ TyDescStructLangItem , // 39
82
+ TyVisitorTraitLangItem , // 40
83
+ OpaqueStructLangItem , // 41
83
84
}
84
85
85
86
pub struct LanguageItems {
86
- items : [ Option < def_id > , ..41 ]
87
+ items : [ Option < def_id > , ..42 ]
87
88
}
88
89
89
90
impl LanguageItems {
90
91
pub fn new ( ) -> LanguageItems {
91
92
LanguageItems {
92
- items : [ None , ..41 ]
93
+ items : [ None , ..42 ]
93
94
}
94
95
}
95
96
@@ -129,22 +130,23 @@ impl LanguageItems {
129
130
24 => "fail_" ,
130
131
25 => "fail_bounds_check" ,
131
132
26 => "exchange_malloc" ,
132
- 27 => "exchange_free" ,
133
- 28 => "malloc" ,
134
- 29 => "free" ,
135
- 30 => "borrow_as_imm" ,
136
- 31 => "borrow_as_mut" ,
137
- 32 => "return_to_mut" ,
138
- 33 => "check_not_borrowed" ,
139
- 34 => "strdup_uniq" ,
140
- 35 => "record_borrow" ,
141
- 36 => "unrecord_borrow" ,
142
-
143
- 37 => "start" ,
144
-
145
- 38 => "ty_desc" ,
146
- 39 => "ty_visitor" ,
147
- 40 => "opaque" ,
133
+ 27 => "closure_exchange_malloc" ,
134
+ 28 => "exchange_free" ,
135
+ 29 => "malloc" ,
136
+ 30 => "free" ,
137
+ 31 => "borrow_as_imm" ,
138
+ 32 => "borrow_as_mut" ,
139
+ 33 => "return_to_mut" ,
140
+ 34 => "check_not_borrowed" ,
141
+ 35 => "strdup_uniq" ,
142
+ 36 => "record_borrow" ,
143
+ 37 => "unrecord_borrow" ,
144
+
145
+ 38 => "start" ,
146
+
147
+ 39 => "ty_desc" ,
148
+ 40 => "ty_visitor" ,
149
+ 41 => "opaque" ,
148
150
149
151
_ => "???"
150
152
}
@@ -237,6 +239,9 @@ impl LanguageItems {
237
239
pub fn exchange_malloc_fn ( & self ) -> def_id {
238
240
self . items [ ExchangeMallocFnLangItem as uint ] . get ( )
239
241
}
242
+ pub fn closure_exchange_malloc_fn ( & self ) -> def_id {
243
+ self . items [ ClosureExchangeMallocFnLangItem as uint ] . get ( )
244
+ }
240
245
pub fn exchange_free_fn ( & self ) -> def_id {
241
246
self . items [ ExchangeFreeFnLangItem as uint ] . get ( )
242
247
}
@@ -327,6 +332,7 @@ impl<'self> LanguageItemCollector<'self> {
327
332
item_refs. insert ( @"fail_bounds_check",
328
333
FailBoundsCheckFnLangItem as uint ) ;
329
334
item_refs. insert ( @"exchange_malloc", ExchangeMallocFnLangItem as uint ) ;
335
+ item_refs. insert ( @"closure_exchange_malloc", ClosureExchangeMallocFnLangItem as uint ) ;
330
336
item_refs. insert ( @"exchange_free", ExchangeFreeFnLangItem as uint ) ;
331
337
item_refs. insert ( @"malloc", MallocFnLangItem as uint ) ;
332
338
item_refs. insert ( @"free", FreeFnLangItem as uint ) ;
0 commit comments