From b79a83b4e41858205e5cf057a9f05d299d66859a Mon Sep 17 00:00:00 2001 From: csmoe <35686186+csmoe@users.noreply.github.com> Date: Sun, 17 Jun 2018 10:52:02 +0800 Subject: [PATCH] Suggestion for print --- src/libsyntax_ext/concat.rs | 9 ++++++++- src/test/ui/macros/bad_hello.stderr | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/libsyntax_ext/concat.rs b/src/libsyntax_ext/concat.rs index 6c085528a663..9ebd2e4be71c 100644 --- a/src/libsyntax_ext/concat.rs +++ b/src/libsyntax_ext/concat.rs @@ -14,6 +14,7 @@ use syntax::ext::build::AstBuilder; use syntax::symbol::Symbol; use syntax_pos; use syntax::tokenstream; +use syntax::print::pprust; use std::string::String; @@ -53,7 +54,13 @@ pub fn expand_syntax_ext(cx: &mut base::ExtCtxt, } } _ => { - cx.span_err(e.span, "expected a literal"); + let mut err = cx.struct_span_err(e.span, "expected a literal"); + err.span_suggestion( + e.span, + "consider changing this to", + format!("\"{{}}\", {}", pprust::expr_to_string(&e)) + ); + err.emit(); } } } diff --git a/src/test/ui/macros/bad_hello.stderr b/src/test/ui/macros/bad_hello.stderr index 578ff4ab9d4a..23486e3cd1c2 100644 --- a/src/test/ui/macros/bad_hello.stderr +++ b/src/test/ui/macros/bad_hello.stderr @@ -2,7 +2,7 @@ error: expected a literal --> $DIR/bad_hello.rs:12:14 | LL | println!(3 + 4); //~ ERROR expected a literal - | ^^^^^ + | ^^^^^ help: consider changing this to: `"{}", 3 + 4` error: aborting due to previous error