Auto merge of #91149 - notriddle:notriddle/rustdoc-doctest-semicolon, r=jyn514

fix(doctest): detect extern crate items in statement doctests

This partially reverts #91026, because rustdoc needs to detect the extern statements, even when they appear inside implicit `main()`. It does not entirely revert it, so the old bug is still fixed, by duplicating some of the logic from `parse_mod` instead of trying to use it directly.

Fixes #91134
This commit is contained in:
bors 2021-11-23 23:48:55 +00:00
commit de4b242e1e
5 changed files with 38 additions and 8 deletions

View file

@ -1121,7 +1121,7 @@ impl<'a> Parser<'a> {
Ok(P(T::recovered(Some(QSelf { ty, path_span, position: 0 }), path)))
}
pub(super) fn maybe_consume_incorrect_semicolon(&mut self, items: &[P<Item>]) -> bool {
pub fn maybe_consume_incorrect_semicolon(&mut self, items: &[P<Item>]) -> bool {
if self.eat(&token::Semi) {
let mut err = self.struct_span_err(self.prev_token.span, "expected item, found `;`");
err.span_suggestion_short(