Auto merge of #46857 - estebank:use-loop-sp, r=nikomatsakis

Point at `while true` span instead of entire block
This commit is contained in:
bors 2017-12-23 02:08:27 +00:00
commit 565907fefb
4 changed files with 7 additions and 28 deletions

View File

@ -102,11 +102,9 @@ fn check_expr(&mut self, cx: &LateContext, e: &hir::Expr) {
if let ast::LitKind::Bool(true) = lit.node {
if lit.span.ctxt() == SyntaxContext::empty() {
let msg = "denote infinite loops with `loop { ... }`";
let mut err = cx.struct_span_lint(WHILE_TRUE, e.span, msg);
let condition_span = cx.tcx.sess.codemap().def_span(e.span);
err.span_suggestion_short(condition_span,
"use `loop`",
"loop".to_owned());
let mut err = cx.struct_span_lint(WHILE_TRUE, condition_span, msg);
err.span_suggestion_short(condition_span, "use `loop`", "loop".to_owned());
err.emit();
}
}

View File

@ -2,9 +2,7 @@ warning: denote infinite loops with `loop { ... }`
--> $DIR/unicode_3.rs:14:45
|
14 | let s = "ZͨA͑ͦ͒͋ͤ͑̚L̄͑͋Ĝͨͥ̿͒̽̈́Oͥ͛ͭ!̏"; while true { break; }
| ----------^^^^^^^^^^^
| |
| help: use `loop`
| ^^^^^^^^^^ help: use `loop`
|
= note: #[warn(while_true)] on by default

View File

@ -1,15 +1,8 @@
error: denote infinite loops with `loop { ... }`
--> $DIR/issue-1962.rs:14:3
|
14 | while true { //~ ERROR denote infinite loops with `loop
| ^---------
| |
| ___help: use `loop`
| |
15 | | i += 1;
16 | | if i == 5 { break; }
17 | | }
| |___^
14 | while true { //~ ERROR denote infinite loops with `loop
| ^^^^^^^^^^ help: use `loop`
|
= note: requested on the command line with `-D while-true`

View File

@ -75,18 +75,8 @@ warning: function is marked #[no_mangle], but not exported
warning: denote infinite loops with `loop { ... }`
--> $DIR/suggestions.rs:34:5
|
34 | while true { // should suggest `loop`
| ^---------
| |
| _____help: use `loop`
| |
35 | | //~^ WARN denote infinite loops
36 | | let mut a = (1); // should suggest no `mut`, no parens
37 | | //~^ WARN does not need to be mutable
... |
44 | | println!("{}", a);
45 | | }
| |_____^
34 | while true { // should suggest `loop`
| ^^^^^^^^^^ help: use `loop`
|
= note: #[warn(while_true)] on by default