about summary refs log tree commit diff
path: root/src/parse/parser.rs
diff options
context:
space:
mode:
authorFelix S. Klock II <pnkfelix@pnkfx.org>2022-01-20 14:07:54 -0500
committerFelix S. Klock II <pnkfelix@pnkfx.org>2022-03-03 18:58:37 -0500
commit651f46376aa6bb259c58cbb3debad6e0edce31bf (patch)
treef3039ee6c0dce674c3826486e17faecf391ce931 /src/parse/parser.rs
parent74876ef4e9b29184787f6d8f3ba447e78def3a47 (diff)
Adjusted diagnostic output so that if there is no `use` in a item sequence,
then we just suggest the first legal position where you could inject a use.

To do this, I added `inject_use_span` field to `ModSpans`, and populate it in
parser (it is the span of the first token found after inner attributes, if any).
Then I rewrote the use-suggestion code to utilize it, and threw out some stuff
that is now unnecessary with this in place. (I think the result is easier to
understand.)

Then I added a test of issue 87613.
Diffstat (limited to 'src/parse/parser.rs')
-rw-r--r--src/parse/parser.rs2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/parse/parser.rs b/src/parse/parser.rs
index 3b4e762b6dd..6983249c15d 100644
--- a/src/parse/parser.rs
+++ b/src/parse/parser.rs
@@ -113,7 +113,7 @@ impl<'a> Parser<'a> {
         let result = catch_unwind(AssertUnwindSafe(|| {
             let mut parser = new_parser_from_file(sess.inner(), path, Some(span));
             match parser.parse_mod(&TokenKind::Eof) {
-                Ok((a, i, ast::ModSpans { inner_span })) => Some((a, i, inner_span)),
+                Ok((a, i, ast::ModSpans { inner_span, inject_use_span: _ })) => Some((a, i, inner_span)),
                 Err(mut e) => {
                     e.emit();
                     if sess.can_reset_errors() {