@@ -41,51 +41,27 @@ use std::iter;
41
41
42
42
pub fn mark_used ( attr : & Attribute ) {
43
43
debug ! ( "Marking {:?} as used." , attr) ;
44
- let AttrId ( id) = attr. id ;
45
44
GLOBALS . with ( |globals| {
46
- let mut slot = globals. used_attrs . lock ( ) ;
47
- let idx = ( id / 64 ) as usize ;
48
- let shift = id % 64 ;
49
- if slot. len ( ) <= idx {
50
- slot. resize ( idx + 1 , 0 ) ;
51
- }
52
- slot[ idx] |= 1 << shift;
45
+ globals. used_attrs . lock ( ) . insert ( attr. id ) ;
53
46
} ) ;
54
47
}
55
48
56
49
pub fn is_used ( attr : & Attribute ) -> bool {
57
- let AttrId ( id) = attr. id ;
58
50
GLOBALS . with ( |globals| {
59
- let slot = globals. used_attrs . lock ( ) ;
60
- let idx = ( id / 64 ) as usize ;
61
- let shift = id % 64 ;
62
- slot. get ( idx) . map ( |bits| bits & ( 1 << shift) != 0 )
63
- . unwrap_or ( false )
51
+ globals. used_attrs . lock ( ) . contains ( attr. id )
64
52
} )
65
53
}
66
54
67
55
pub fn mark_known ( attr : & Attribute ) {
68
56
debug ! ( "Marking {:?} as known." , attr) ;
69
- let AttrId ( id) = attr. id ;
70
57
GLOBALS . with ( |globals| {
71
- let mut slot = globals. known_attrs . lock ( ) ;
72
- let idx = ( id / 64 ) as usize ;
73
- let shift = id % 64 ;
74
- if slot. len ( ) <= idx {
75
- slot. resize ( idx + 1 , 0 ) ;
76
- }
77
- slot[ idx] |= 1 << shift;
58
+ globals. known_attrs . lock ( ) . insert ( attr. id ) ;
78
59
} ) ;
79
60
}
80
61
81
62
pub fn is_known ( attr : & Attribute ) -> bool {
82
- let AttrId ( id) = attr. id ;
83
63
GLOBALS . with ( |globals| {
84
- let slot = globals. known_attrs . lock ( ) ;
85
- let idx = ( id / 64 ) as usize ;
86
- let shift = id % 64 ;
87
- slot. get ( idx) . map ( |bits| bits & ( 1 << shift) != 0 )
88
- . unwrap_or ( false )
64
+ globals. known_attrs . lock ( ) . contains ( attr. id )
89
65
} )
90
66
}
91
67
0 commit comments