parser: do not try to continue with unsafe
on foreign fns
The changed line makes it look like `unsafe` is allowed, but the first statement of `parse_item_foreign_fn` is: `self.expect_keyword(keywords::Fn)?;` So we get the strange "expected one of `fn`, `pub`, `static`, or `unsafe`, found `unsafe`". Fixes: #27361
This commit is contained in:
parent
855fb61922
commit
b75f81c9b3
3 changed files with 3 additions and 3 deletions
|
@ -6025,7 +6025,7 @@ impl<'a> Parser<'a> {
|
||||||
// FOREIGN STATIC ITEM
|
// FOREIGN STATIC ITEM
|
||||||
return Ok(Some(self.parse_item_foreign_static(visibility, lo, attrs)?));
|
return Ok(Some(self.parse_item_foreign_static(visibility, lo, attrs)?));
|
||||||
}
|
}
|
||||||
if self.check_keyword(keywords::Fn) || self.check_keyword(keywords::Unsafe) {
|
if self.check_keyword(keywords::Fn) {
|
||||||
// FOREIGN FUNCTION ITEM
|
// FOREIGN FUNCTION ITEM
|
||||||
return Ok(Some(self.parse_item_foreign_fn(visibility, lo, attrs)?));
|
return Ok(Some(self.parse_item_foreign_fn(visibility, lo, attrs)?));
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
// compile-flags: -Z parse-only
|
// compile-flags: -Z parse-only
|
||||||
|
|
||||||
extern {
|
extern {
|
||||||
f(); //~ ERROR expected one of `fn`, `pub`, `static`, `unsafe`, or `}`, found `f`
|
f(); //~ ERROR expected one of `fn`, `pub`, `static`, or `}`, found `f`
|
||||||
}
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
|
|
|
@ -12,5 +12,5 @@
|
||||||
|
|
||||||
extern {
|
extern {
|
||||||
const i: isize;
|
const i: isize;
|
||||||
//~^ ERROR expected one of `fn`, `pub`, `static`, `unsafe`, or `}`, found `const`
|
//~^ ERROR expected one of `fn`, `pub`, `static`, or `}`, found `const`
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue