@@ -23,42 +23,52 @@ import std::map::{hashmap, str_hash};
23
23
import str_eq = str:: eq;
24
24
25
25
struct LanguageItems {
26
- let mut const_trait : Option < def_id > ;
27
- let mut copy_trait: Option < def_id > ;
28
- let mut send_trait: Option < def_id > ;
29
- let mut owned_trait: Option < def_id > ;
30
-
31
- let mut add_trait: Option < def_id > ;
32
- let mut sub_trait: Option < def_id > ;
33
- let mut mul_trait: Option < def_id > ;
34
- let mut div_trait: Option < def_id > ;
35
- let mut modulo_trait: Option < def_id > ;
36
- let mut neg_trait: Option < def_id > ;
37
- let mut bitxor_trait: Option < def_id > ;
38
- let mut bitand_trait: Option < def_id > ;
39
- let mut bitor_trait: Option < def_id > ;
40
- let mut shl_trait: Option < def_id > ;
41
- let mut shr_trait: Option < def_id > ;
42
- let mut index_trait: Option < def_id > ;
43
-
44
- new ( ) {
45
- self . const_trait = None ;
46
- self . copy_trait = None ;
47
- self . send_trait = None ;
48
- self . owned_trait = None ;
49
-
50
- self . add_trait = None ;
51
- self . sub_trait = None ;
52
- self . mul_trait = None ;
53
- self . div_trait = None ;
54
- self . modulo_trait = None ;
55
- self . neg_trait = None ;
56
- self . bitxor_trait = None ;
57
- self . bitand_trait = None ;
58
- self . bitor_trait = None ;
59
- self . shl_trait = None ;
60
- self . shr_trait = None ;
61
- self . index_trait = None ;
26
+ mut const_trait : Option < def_id > ;
27
+ mut copy_trait: Option <def_id>;
28
+ mut send_trait: Option <def_id>;
29
+ mut owned_trait: Option <def_id>;
30
+
31
+ mut add_trait: Option <def_id>;
32
+ mut sub_trait: Option <def_id>;
33
+ mut mul_trait: Option <def_id>;
34
+ mut div_trait: Option <def_id>;
35
+ mut modulo_trait: Option <def_id>;
36
+ mut neg_trait: Option <def_id>;
37
+ mut bitxor_trait: Option <def_id>;
38
+ mut bitand_trait: Option <def_id>;
39
+ mut bitor_trait: Option <def_id>;
40
+ mut shl_trait: Option <def_id>;
41
+ mut shr_trait: Option <def_id>;
42
+ mut index_trait: Option <def_id>;
43
+
44
+ mut eq_trait: Option <def_id>;
45
+ mut ord_trait: Option <def_id>;
46
+ }
47
+
48
+ mod LanguageItems {
49
+ fn make ( ) -> LanguageItems {
50
+ LanguageItems {
51
+ const_trait : None ,
52
+ copy_trait : None ,
53
+ send_trait : None ,
54
+ owned_trait : None ,
55
+
56
+ add_trait : None ,
57
+ sub_trait : None ,
58
+ mul_trait : None ,
59
+ div_trait : None ,
60
+ modulo_trait : None ,
61
+ neg_trait : None ,
62
+ bitxor_trait : None ,
63
+ bitand_trait : None ,
64
+ bitor_trait : None ,
65
+ shl_trait : None ,
66
+ shr_trait : None ,
67
+ index_trait : None ,
68
+
69
+ eq_trait : None ,
70
+ ord_trait : None
71
+ }
62
72
}
63
73
}
64
74
@@ -93,6 +103,9 @@ struct LanguageItemCollector {
93
103
self . item_refs . insert ( ~"shl", & mut self . items . shl_trait ) ;
94
104
self . item_refs . insert ( ~"shr", & mut self . items . shr_trait ) ;
95
105
self . item_refs . insert ( ~"index", & mut self . items . index_trait ) ;
106
+
107
+ self . item_refs . insert ( ~"eq", & mut self . items . eq_trait ) ;
108
+ self . item_refs . insert ( ~"ord", & mut self . items . ord_trait ) ;
96
109
}
97
110
98
111
fn match_and_collect_meta_item ( item_def_id : def_id ,
@@ -202,7 +215,7 @@ struct LanguageItemCollector {
202
215
}
203
216
204
217
fn collect_language_items ( crate : @crate , session : session ) -> LanguageItems {
205
- let items = LanguageItems ( ) ;
218
+ let items = LanguageItems :: make ( ) ;
206
219
let collector = LanguageItemCollector ( crate , session, & items) ;
207
220
collector. collect ( ) ;
208
221
copy items
0 commit comments