diff options
| author | bors <bors@rust-lang.org> | 2017-07-06 22:22:21 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-07-06 22:22:21 +0000 |
| commit | d2ebb12a1d6f6599f9171a65a2160e523b53ccdf (patch) | |
| tree | 38e1d25905b9a0e8355da901cf1b6a7040c34b76 /src/libsyntax/parse | |
| parent | 696412de7e4e119f8536686c643621115b90c775 (diff) | |
| parent | 697c85a4f15b8dd560fb1f78129f5bfdd4baf1f4 (diff) | |
| download | rust-d2ebb12a1d6f6599f9171a65a2160e523b53ccdf.tar.gz rust-d2ebb12a1d6f6599f9171a65a2160e523b53ccdf.zip | |
Auto merge of #42904 - estebank:number-suggestions, r=nikomatsakis
Make suggestion include the line number
When there're more than one suggestions in the same diagnostic, they are
displayed in their own block, instead of inline. In order to reduce
confusion, those blocks now display the line number.
New output:
```
error[E0308]: mismatched types
--> ../../src/test/ui/block-result/unexpected-return-on-unit.rs:19:5
|
19 | foo()
| ^^^^^ expected (), found usize
|
= note: expected type `()`
found type `usize`
help: did you mean to add a semicolon here?
|
19 | foo();
| ^
help: possibly return type missing here?
|
18 | fn bar() -> usize {
| ^^^^^^^^
error: aborting due to previous error(s)
```
Fix #39152.
Diffstat (limited to 'src/libsyntax/parse')
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index c248e20b608..23d85232369 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -2920,10 +2920,6 @@ impl<'a> Parser<'a> { err.cancel(); let codemap = self.sess.codemap(); let suggestion_span = lhs_span.to(self.prev_span); - let suggestion = match codemap.span_to_snippet(suggestion_span) { - Ok(lstring) => format!("({})", lstring), - _ => format!("(<expression> as <type>)") - }; let warn_message = match codemap.span_to_snippet(self.prev_span) { Ok(lstring) => format!("`{}`", lstring), _ => "a type".to_string(), @@ -2934,6 +2930,10 @@ impl<'a> Parser<'a> { let mut err = self.sess.span_diagnostic.struct_span_err(sp, &msg); err.span_label(sp, "interpreted as generic argument"); err.span_label(self.span, "not interpreted as comparison"); + let suggestion = match codemap.span_to_snippet(suggestion_span) { + Ok(lstring) => format!("({})", lstring), + _ => format!("(<expression> as <type>)") + }; err.span_suggestion(suggestion_span, "if you want to compare the casted value then write:", suggestion); |
