@@ -318,7 +318,7 @@ pub fn Parser(sess: @mut ParseSess, cfg: ast::CrateConfig, rdr: @mut reader)
318
318
quote_depth : 0 ,
319
319
obsolete_set : HashSet :: new ( ) ,
320
320
mod_path_stack : ~[ ] ,
321
- open_braces : @ mut ~[ ] ,
321
+ open_braces : ~[ ] ,
322
322
non_copyable : util:: NonCopyable
323
323
}
324
324
}
@@ -349,7 +349,7 @@ pub struct Parser {
349
349
/// Used to determine the path to externally loaded source files
350
350
mod_path_stack : ~[ @str ] ,
351
351
/// Stack of spans of open delimiters. Used for error message.
352
- open_braces : @ mut ~[ Span ] ,
352
+ open_braces : ~[ Span ] ,
353
353
/* do not copy the parser; its state is tied to outside state */
354
354
priv non_copyable : util:: NonCopyable
355
355
}
@@ -2093,7 +2093,10 @@ impl Parser {
2093
2093
// This is a conservative error: only report the last unclosed delimiter. The
2094
2094
// previous unclosed delimiters could actually be closed! The parser just hasn't
2095
2095
// gotten to them yet.
2096
- p. open_braces . last_opt ( ) . map ( |sp| p. span_note ( * sp, "unclosed delimiter" ) ) ;
2096
+ match p. open_braces . last_opt ( ) {
2097
+ None => { }
2098
+ Some ( & sp) => p. span_note ( sp, "unclosed delimiter" ) ,
2099
+ } ;
2097
2100
let token_str = p. this_token_to_str ( ) ;
2098
2101
p. fatal ( format ! ( "incorrect close delimiter: `{}`" ,
2099
2102
token_str) )
@@ -2137,7 +2140,8 @@ impl Parser {
2137
2140
2138
2141
match self . token {
2139
2142
token:: EOF => {
2140
- for sp in self . open_braces . iter ( ) {
2143
+ let open_braces = self . open_braces . clone ( ) ;
2144
+ for sp in open_braces. iter ( ) {
2141
2145
self . span_note ( * sp, "Did you mean to close this delimiter?" ) ;
2142
2146
}
2143
2147
// There shouldn't really be a span, but it's easier for the test runner
@@ -2148,7 +2152,7 @@ impl Parser {
2148
2152
let close_delim = token:: flip_delimiter ( & self . token ) ;
2149
2153
2150
2154
// Parse the open delimiter.
2151
- ( * self . open_braces ) . push ( self . span ) ;
2155
+ self . open_braces . push ( self . span ) ;
2152
2156
let mut result = ~[ parse_any_tt_tok ( self ) ] ;
2153
2157
2154
2158
let trees =
0 commit comments