diff options
| author | Andy Russell <arussell123@gmail.com> | 2020-01-22 11:24:32 -0500 |
|---|---|---|
| committer | Andy Russell <arussell123@gmail.com> | 2020-01-30 09:00:35 -0500 |
| commit | db319a8fb0126b84e0a0abbac83d4e1adeca6a95 (patch) | |
| tree | f48f75d7e54f2a3ff40d032d58acd01b05372491 /src/librustc_parse | |
| parent | c4071d09197e22d2fab8334aa8d30659961bb977 (diff) | |
| download | rust-db319a8fb0126b84e0a0abbac83d4e1adeca6a95.tar.gz rust-db319a8fb0126b84e0a0abbac83d4e1adeca6a95.zip | |
suggest adding space in accidental doc comments
Diffstat (limited to 'src/librustc_parse')
| -rw-r--r-- | src/librustc_parse/parser/stmt.rs | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/src/librustc_parse/parser/stmt.rs b/src/librustc_parse/parser/stmt.rs index a94d8228bbe..ae8f1e4db1b 100644 --- a/src/librustc_parse/parser/stmt.rs +++ b/src/librustc_parse/parser/stmt.rs @@ -7,13 +7,13 @@ use crate::maybe_whole; use crate::DirectoryOwnership; use rustc_errors::{Applicability, PResult}; -use rustc_span::source_map::{respan, Span}; +use rustc_span::source_map::{respan, BytePos, Span}; use rustc_span::symbol::{kw, sym, Symbol}; use syntax::ast; use syntax::ast::{AttrStyle, AttrVec, Attribute, Mac, MacStmtStyle, VisibilityKind}; use syntax::ast::{Block, BlockCheckMode, Expr, ExprKind, Local, Stmt, StmtKind, DUMMY_NODE_ID}; use syntax::ptr::P; -use syntax::token; +use syntax::token::{self, TokenKind}; use syntax::util::classify; use std::mem; @@ -431,6 +431,23 @@ impl<'a> Parser<'a> { if let Err(mut e) = self.expect_one_of(&[], &[token::Semi, token::CloseDelim(token::Brace)]) { + if let TokenKind::DocComment(..) = self.token.kind { + if let Ok(snippet) = self.span_to_snippet(self.token.span) { + let sp = self.token.span; + let marker = &snippet[..3]; + let (comment_marker, doc_comment_marker) = marker.split_at(2); + + e.span_suggestion( + sp.with_hi(sp.lo() + BytePos(marker.len() as u32)), + &format!( + "add a space before `{}` to use a regular comment", + doc_comment_marker, + ), + format!("{} {}", comment_marker, doc_comment_marker), + Applicability::MaybeIncorrect, + ); + } + } e.emit(); self.recover_stmt(); // Don't complain about type errors in body tail after parse error (#57383). |
