@@ -4036,7 +4036,8 @@ impl<'a> Parser<'a> {
4036
4036
// attributes (of length 0 or 1), parse all of the items in a module
4037
4037
fn parse_mod_items ( & mut self ,
4038
4038
term : token:: Token ,
4039
- first_item_attrs : Vec < Attribute > )
4039
+ first_item_attrs : Vec < Attribute > ,
4040
+ inner_lo : BytePos )
4040
4041
-> Mod {
4041
4042
// parse all of the items up to closing or an attribute.
4042
4043
// view items are legal here.
@@ -4081,7 +4082,11 @@ impl<'a> Parser<'a> {
4081
4082
self . span_err ( self . last_span , "expected item after attributes" ) ;
4082
4083
}
4083
4084
4084
- ast:: Mod { view_items : view_items, items : items }
4085
+ ast:: Mod {
4086
+ inner : mk_sp ( inner_lo, self . span . lo ) ,
4087
+ view_items : view_items,
4088
+ items : items
4089
+ }
4085
4090
}
4086
4091
4087
4092
fn parse_item_const ( & mut self ) -> ItemInfo {
@@ -4107,8 +4112,9 @@ impl<'a> Parser<'a> {
4107
4112
} else {
4108
4113
self . push_mod_path ( id, outer_attrs) ;
4109
4114
self . expect ( & token:: LBRACE ) ;
4115
+ let mod_inner_lo = self . span . lo ;
4110
4116
let ( inner, next) = self . parse_inner_attrs_and_next ( ) ;
4111
- let m = self . parse_mod_items ( token:: RBRACE , next) ;
4117
+ let m = self . parse_mod_items ( token:: RBRACE , next, mod_inner_lo ) ;
4112
4118
self . expect ( & token:: RBRACE ) ;
4113
4119
self . pop_mod_path ( ) ;
4114
4120
( id, ItemMod ( m) , Some ( inner) )
@@ -4197,10 +4203,11 @@ impl<'a> Parser<'a> {
4197
4203
self . cfg . clone ( ) ,
4198
4204
& path,
4199
4205
id_sp) ;
4206
+ let mod_inner_lo = p0. span . lo ;
4200
4207
let ( inner, next) = p0. parse_inner_attrs_and_next ( ) ;
4201
4208
let mod_attrs = outer_attrs. append ( inner. as_slice ( ) ) ;
4202
4209
let first_item_outer_attrs = next;
4203
- let m0 = p0. parse_mod_items ( token:: EOF , first_item_outer_attrs) ;
4210
+ let m0 = p0. parse_mod_items ( token:: EOF , first_item_outer_attrs, mod_inner_lo ) ;
4204
4211
self . sess . included_mod_stack . borrow_mut ( ) . pop ( ) ;
4205
4212
return ( ast:: ItemMod ( m0) , mod_attrs) ;
4206
4213
}
@@ -5061,7 +5068,7 @@ impl<'a> Parser<'a> {
5061
5068
let ( inner, next) = self . parse_inner_attrs_and_next ( ) ;
5062
5069
let first_item_outer_attrs = next;
5063
5070
// parse the items inside the crate:
5064
- let m = self . parse_mod_items ( token:: EOF , first_item_outer_attrs) ;
5071
+ let m = self . parse_mod_items ( token:: EOF , first_item_outer_attrs, lo ) ;
5065
5072
5066
5073
ast:: Crate {
5067
5074
module : m,
0 commit comments