Fix the issue of wrong diagnosis for extern pub fn
This commit is contained in:
parent
b7bc6f88ac
commit
f25463e848
3 changed files with 25 additions and 1 deletions
|
@ -2182,7 +2182,11 @@ impl<'a> Parser<'a> {
|
|||
// `extern ABI fn`
|
||||
|| self.check_keyword_case(kw::Extern, case)
|
||||
&& self.look_ahead(1, |t| t.can_begin_literal_maybe_minus())
|
||||
&& self.look_ahead(2, |t| t.is_keyword_case(kw::Fn, case))
|
||||
&& (self.look_ahead(2, |t| t.is_keyword_case(kw::Fn, case)) ||
|
||||
// this branch is only for better diagnostic in later, `pub` is not allowed here
|
||||
(self.may_recover()
|
||||
&& self.look_ahead(2, |t| t.is_keyword(kw::Pub))
|
||||
&& self.look_ahead(3, |t| t.is_keyword_case(kw::Fn, case))))
|
||||
}
|
||||
|
||||
/// Parses all the "front matter" (or "qualifiers") for a `fn` declaration,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue