Skip to content

Commit ad72c3a

Browse files
committed
parser: inline parse_assoc_macro_invoc
1 parent aaaf0ba commit ad72c3a

File tree

1 file changed

+10
-20
lines changed

1 file changed

+10
-20
lines changed

src/librustc_parse/parser/item.rs

+10-20
Original file line numberDiff line numberDiff line change
@@ -333,24 +333,6 @@ impl<'a> Parser<'a> {
333333
self.token.is_keyword(kw::Async) && self.is_keyword_ahead(1, &[kw::Fn])
334334
}
335335

336-
/// Parses a macro invocation inside a `trait`, `impl`, or `extern` block.
337-
fn parse_assoc_macro_invoc(
338-
&mut self,
339-
item_kind: &str,
340-
vis: &Visibility,
341-
at_end: &mut bool,
342-
) -> PResult<'a, Option<Mac>> {
343-
if self.isnt_macro_invocation() {
344-
Err(self.missing_assoc_item_kind_err(item_kind, self.prev_span))
345-
} else if self.token.is_path_start() {
346-
let mac = self.parse_item_macro(vis)?;
347-
*at_end = true;
348-
Ok(Some(mac))
349-
} else {
350-
Ok(None)
351-
}
352-
}
353-
354336
fn missing_assoc_item_kind_err(
355337
&self,
356338
item_type: &str,
@@ -690,7 +672,11 @@ impl<'a> Parser<'a> {
690672
(ident, AssocItemKind::Fn(sig, body), generics)
691673
} else if self.check_keyword(kw::Const) {
692674
self.parse_assoc_const()?
693-
} else if let Some(mac) = self.parse_assoc_macro_invoc("associated", &vis, at_end)? {
675+
} else if self.isnt_macro_invocation() {
676+
return Err(self.missing_assoc_item_kind_err("associated", self.prev_span));
677+
} else if self.token.is_path_start() {
678+
let mac = self.parse_item_macro(&vis)?;
679+
*at_end = true;
694680
(Ident::invalid(), AssocItemKind::Macro(mac), Generics::default())
695681
} else {
696682
self.recover_attrs_no_item(&attrs)?;
@@ -913,7 +899,11 @@ impl<'a> Parser<'a> {
913899
)
914900
.emit();
915901
self.parse_item_foreign_static()?
916-
} else if let Some(mac) = self.parse_assoc_macro_invoc("extern", &vis, at_end)? {
902+
} else if self.isnt_macro_invocation() {
903+
return Err(self.missing_assoc_item_kind_err("extern", self.prev_span));
904+
} else if self.token.is_path_start() {
905+
let mac = self.parse_item_macro(&vis)?;
906+
*at_end = true;
917907
(Ident::invalid(), ForeignItemKind::Macro(mac))
918908
} else {
919909
self.recover_attrs_no_item(&attrs)?;

0 commit comments

Comments
 (0)