Rollup merge of #39420 - oli-obk:sugg, r=pnkfelix
parser: use suggestions instead of helps with code in them
This commit is contained in:
commit
a561ad831d
@ -8,8 +8,6 @@
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
//#![allow(non_camel_case_types)]
|
||||
|
||||
use rustc::middle::const_val::ConstVal::*;
|
||||
use rustc::middle::const_val::ConstVal;
|
||||
use self::ErrKind::*;
|
||||
|
@ -2456,9 +2456,21 @@ fn parse_dot_or_call_expr_with_(&mut self, e0: P<Expr>, lo: BytePos) -> PResult<
|
||||
Some(f) => f,
|
||||
None => continue,
|
||||
};
|
||||
err.help(&format!("try parenthesizing the first index; e.g., `(foo.{}){}`",
|
||||
float.trunc() as usize,
|
||||
format!(".{}", fstr.splitn(2, ".").last().unwrap())));
|
||||
let sugg = pprust::to_string(|s| {
|
||||
use print::pprust::PrintState;
|
||||
use print::pp::word;
|
||||
s.popen()?;
|
||||
s.print_expr(&e)?;
|
||||
word(&mut s.s, ".")?;
|
||||
s.print_usize(float.trunc() as usize)?;
|
||||
s.pclose()?;
|
||||
word(&mut s.s, ".")?;
|
||||
word(&mut s.s, fstr.splitn(2, ".").last().unwrap())
|
||||
});
|
||||
err.span_suggestion(
|
||||
prev_span,
|
||||
"try parenthesizing the first index",
|
||||
sugg);
|
||||
}
|
||||
return Err(err);
|
||||
|
||||
@ -3900,7 +3912,14 @@ pub fn parse_block(&mut self) -> PResult<'a, P<Block>> {
|
||||
if self.eat(&token::Semi) {
|
||||
stmt_span.hi = self.prev_span.hi;
|
||||
}
|
||||
e.span_help(stmt_span, "try placing this code inside a block");
|
||||
let sugg = pprust::to_string(|s| {
|
||||
use print::pprust::{PrintState, INDENT_UNIT};
|
||||
s.ibox(INDENT_UNIT)?;
|
||||
s.bopen()?;
|
||||
s.print_stmt(&stmt)?;
|
||||
s.bclose_maybe_open(stmt.span, INDENT_UNIT, false)
|
||||
});
|
||||
e.span_suggestion(stmt_span, "try placing this code inside a block", sugg);
|
||||
}
|
||||
Err(mut e) => {
|
||||
self.recover_stmt_(SemiColonMode::Break);
|
||||
|
@ -15,6 +15,7 @@ fn main() {
|
||||
{
|
||||
if (foo)
|
||||
bar; //~ ERROR expected `{`, found `bar`
|
||||
//^ HELP try placing this code inside a block
|
||||
//~^ HELP try placing this code inside a block
|
||||
//~| SUGGESTION { bar; }
|
||||
}
|
||||
}
|
||||
|
@ -12,5 +12,6 @@
|
||||
|
||||
fn main () {
|
||||
(1, (2, 3)).1.1; //~ ERROR unexpected token
|
||||
//~^ HELP try parenthesizing the first index; e.g., `(foo.1).1`
|
||||
//~^ HELP try parenthesizing the first index
|
||||
//~| SUGGESTION ((1, (2, 3)).1).1
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user