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()?;
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);
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 {
| -- ^^----
| | |
| | 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`
| ^^----
| |
| 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