@@ -1912,7 +1912,7 @@ fn parse_item_const(&parser p) -> @ast::item {
1912
1912
ret @spanned ( lo, hi, item) ;
1913
1913
}
1914
1914
1915
- fn parse_item_mod ( & parser p, vec[ ast:: meta_item ] attrs ) -> @ast:: item {
1915
+ fn parse_item_mod ( & parser p, vec[ ast:: attribute ] attrs ) -> @ast:: item {
1916
1916
auto lo = p. get_last_lo_pos ( ) ;
1917
1917
auto id = parse_ident ( p) ;
1918
1918
expect ( p, token:: LBRACE ) ;
@@ -2125,7 +2125,7 @@ tag parsed_item {
2125
2125
fn_no_item;
2126
2126
}
2127
2127
2128
- fn parse_item ( & parser p, vec[ ast:: meta_item ] attrs ) -> parsed_item {
2128
+ fn parse_item ( & parser p, vec[ ast:: attribute ] attrs ) -> parsed_item {
2129
2129
2130
2130
if ( eat_word ( p, "const" ) ) {
2131
2131
ret got_item ( parse_item_const ( p) ) ;
@@ -2156,19 +2156,27 @@ fn parse_item(&parser p, vec[ast::meta_item] attrs) -> parsed_item {
2156
2156
}
2157
2157
}
2158
2158
2159
- fn parse_attributes ( & parser p) -> vec[ ast:: meta_item ] {
2160
- let vec[ ast:: meta_item ] attrs = [ ] ;
2159
+ fn parse_attributes ( & parser p) -> vec[ ast:: attribute ] {
2160
+ let vec[ ast:: attribute ] attrs = [ ] ;
2161
2161
2162
2162
while ( p. peek ( ) == token:: POUND ) {
2163
- p. bump ( ) ;
2164
- expect ( p, token:: LBRACKET ) ;
2165
- attrs += [ * parse_meta_item ( p) ] ;
2166
- expect ( p, token:: RBRACKET ) ;
2163
+ attrs += [ parse_attribute ( p) ] ;
2167
2164
}
2168
2165
2169
2166
ret attrs;
2170
2167
}
2171
2168
2169
+ fn parse_attribute ( & parser p) -> ast:: attribute {
2170
+ auto lo = p. get_lo_pos ( ) ;
2171
+ expect ( p, token:: POUND ) ;
2172
+ expect ( p, token:: LBRACKET ) ;
2173
+ auto meta_item = parse_meta_item ( p) ;
2174
+ expect ( p, token:: RBRACKET ) ;
2175
+ auto hi = p. get_hi_pos ( ) ;
2176
+ ret spanned( lo, hi, rec ( style = ast:: attr_outer,
2177
+ value = * meta_item) ) ;
2178
+ }
2179
+
2172
2180
fn parse_meta_item ( & parser p) -> @ast:: meta_item {
2173
2181
auto lo = p. get_lo_pos ( ) ;
2174
2182
auto ident = parse_ident ( p) ;
0 commit comments