Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Use snippet instead of pprinting statement
  • Loading branch information
estebank committed Jul 12, 2019
1 parent 4bb6b4a commit 726aa14
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 22 deletions.
30 changes: 13 additions & 17 deletions src/libsyntax/parse/parser.rs
Expand Up @@ -4378,9 +4378,10 @@ impl<'a> Parser<'a> {
Ok(Some(self.mk_item(span, ident, ItemKind::MacroDef(def), vis.clone(), attrs.to_vec())))
}

fn parse_stmt_without_recovery(&mut self,
macro_legacy_warnings: bool)
-> PResult<'a, Option<Stmt>> {
fn parse_stmt_without_recovery(
&mut self,
macro_legacy_warnings: bool,
) -> PResult<'a, Option<Stmt>> {
maybe_whole!(self, NtStmt, |x| Some(x));

let attrs = self.parse_outer_attributes()?;
Expand Down Expand Up @@ -4586,20 +4587,15 @@ impl<'a> Parser<'a> {
if self.eat(&token::Semi) {
stmt_span = stmt_span.with_hi(self.prev_span.hi());
}
let sugg = pprust::to_string(|s| {
use crate::print::pprust::INDENT_UNIT;
s.ibox(INDENT_UNIT);
s.bopen();
s.print_stmt(&stmt);
s.bclose_maybe_open(stmt.span, false)
});
e.span_suggestion(
stmt_span,
"try placing this code inside a block",
sugg,
// speculative, has been misleading in the past (closed Issue #46836)
Applicability::MaybeIncorrect
);
if let Ok(snippet) = self.sess.source_map().span_to_snippet(stmt_span) {
e.span_suggestion(
stmt_span,
"try placing this code inside a block",
format!("{{ {} }}", snippet),
// speculative, has been misleading in the past (#46836)
Applicability::MaybeIncorrect,
);
}
}
Err(mut e) => {
self.recover_stmt_(SemiColonMode::Break, BlockMode::Ignore);
Expand Down
3 changes: 1 addition & 2 deletions src/libsyntax/print/pprust.rs
Expand Up @@ -745,8 +745,7 @@ impl<'a> State<'a> {
self.bclose_maybe_open(span, true)
}

crate fn break_offset_if_not_bol(&mut self, n: usize,
off: isize) {
crate fn break_offset_if_not_bol(&mut self, n: usize, off: isize) {
if !self.s.is_beginning_of_line() {
self.s.break_offset(n, off)
} else {
Expand Down
2 changes: 1 addition & 1 deletion src/test/ui/issues/issue-39848.stderr
Expand Up @@ -2,7 +2,7 @@ error: expected `{`, found `foo`
--> $DIR/issue-39848.rs:8:19
|
LL | if $tgt.has_$field() {}
| -- - help: try placing this code inside a block: `{ foo(); }`
| -- - help: try placing this code inside a block: `{ ) }`
| |
| this `if` statement has a condition, but no block
...
Expand Down
4 changes: 2 additions & 2 deletions src/test/ui/label/label_break_value_illegal_uses.stderr
Expand Up @@ -11,7 +11,7 @@ LL | if true 'b: {}
| -- ^^----
| | |
| | expected `{`
| | help: try placing this code inside a block: `{ 'b: { } }`
| | help: try placing this code inside a block: `{ 'b: {} }`
| this `if` statement has a condition, but no block

error: expected `{`, found `'b`
Expand All @@ -21,7 +21,7 @@ LL | if true {} else 'b: {}
| ^^----
| |
| expected `{`
| help: try placing this code inside a block: `{ 'b: { } }`
| help: try placing this code inside a block: `{ 'b: {} }`

error: expected one of `.`, `?`, `{`, or an operator, found `'b`
--> $DIR/label_break_value_illegal_uses.rs:18:17
Expand Down

0 comments on commit 726aa14

Please sign in to comment.