1
Fork 0

Clarify the error message for malformed extern crate statements

Closes #25468.
This commit is contained in:
P1start 2015-05-16 22:35:59 +12:00
parent 716f920b7e
commit dadac15477
3 changed files with 13 additions and 6 deletions

View file

@ -5266,11 +5266,7 @@ impl<'a> Parser<'a> {
return Ok(Some(try!(self.parse_item_foreign_mod(lo, opt_abi, visibility, attrs))));
}
let span = self.span;
let token_str = self.this_token_to_string();
return Err(self.span_fatal(span,
&format!("expected `{}` or `fn`, found `{}`", "{",
token_str)))
try!(self.expect_one_of(&[], &[]));
}
if try!(self.eat_keyword_noexpect(keywords::Virtual) ){

View file

@ -0,0 +1,11 @@
// Copyright 2015 The Rust Project Developers. See the COPYRIGHT
// file at the top-level directory of this distribution and at
// http://rust-lang.org/COPYRIGHT.
//
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
// option. This file may not be copied, modified, or distributed
// except according to those terms.
extern crte foo; //~ ERROR expected one of `crate`, `fn`, or `{`, found `crte`

View file

@ -13,4 +13,4 @@
// Verifies that the expected token errors for `extern crate` are
// raised
extern "C" mod foo; //~ERROR expected `{` or `fn`, found `mod`
extern "C" mod foo; //~ERROR expected one of `fn` or `{`, found `mod`