]> git.lizzy.rs Git - rust.git/commitdiff
Reduce span to function name in unreachable calls
authorShiqing <shiqing-thu18@yandex.com>
Fri, 6 Sep 2019 16:16:11 +0000 (00:16 +0800)
committerShiqing <shiqing-thu18@yandex.com>
Fri, 6 Sep 2019 16:16:11 +0000 (00:16 +0800)
src/librustc_typeck/check/expr.rs
src/test/ui/never-assign-dead-code.stderr
src/test/ui/reachable/expr_call.stderr
src/test/ui/reachable/expr_method.stderr
src/test/ui/unreachable/unreachable-in-call.rs
src/test/ui/unreachable/unreachable-in-call.stderr

index 9644815f805d992191fcabcd024dfe95ff63ce4e..da72dfd1551829c1a62421a13fee279a2da0a0ce 100644 (file)
@@ -161,6 +161,10 @@ fn check_expr_with_expectation_and_needs(
         // Warn for non-block expressions with diverging children.
         match expr.node {
             ExprKind::Block(..) | ExprKind::Loop(..) | ExprKind::Match(..) => {},
+            ExprKind::Call(ref callee, _) =>
+                self.warn_if_unreachable(expr.hir_id, callee.span, "call"),
+            ExprKind::MethodCall(_, ref span, _) =>
+                self.warn_if_unreachable(expr.hir_id, *span, "call"),
             _ => self.warn_if_unreachable(expr.hir_id, expr.span, "expression"),
         }
 
index 779780a90a81d3a401d2f0f16599ffb7144c9ae5..b1b5bf03fe52abf806f9a56a0d4fcc292aec1ca5 100644 (file)
@@ -11,11 +11,11 @@ LL | #![warn(unused)]
    |         ^^^^^^
    = note: `#[warn(unreachable_code)]` implied by `#[warn(unused)]`
 
-warning: unreachable expression
+warning: unreachable call
   --> $DIR/never-assign-dead-code.rs:10:5
    |
 LL |     drop(x);
-   |     ^^^^^^^
+   |     ^^^^
 
 warning: unused variable: `x`
   --> $DIR/never-assign-dead-code.rs:9:9
index df5cff16f9a46c8460063a03e175ade8588d465e..f2db17e4dfe8e1be6ff3bdd064f3f438738f21b4 100644 (file)
@@ -10,11 +10,11 @@ note: lint level defined here
 LL | #![deny(unreachable_code)]
    |         ^^^^^^^^^^^^^^^^
 
-error: unreachable expression
+error: unreachable call
   --> $DIR/expr_call.rs:18:5
    |
 LL |     bar(return);
-   |     ^^^^^^^^^^^
+   |     ^^^
 
 error: aborting due to 2 previous errors
 
index bbfa2ef529add7254a3fe94dbe22a9702d08caa0..947ea0fee889c9e0c50a0ad9b619f538821e5ebd 100644 (file)
@@ -10,11 +10,11 @@ note: lint level defined here
 LL | #![deny(unreachable_code)]
    |         ^^^^^^^^^^^^^^^^
 
-error: unreachable expression
-  --> $DIR/expr_method.rs:21:5
+error: unreachable call
+  --> $DIR/expr_method.rs:21:9
    |
 LL |     Foo.bar(return);
-   |     ^^^^^^^^^^^^^^^
+   |         ^^^
 
 error: aborting due to 2 previous errors
 
index 25f849d7a0a91cd3a76a0c65fc37a7249b7e4231..dd94e79f4d84c717895f8821461dc716529374be 100644 (file)
@@ -14,7 +14,7 @@ fn diverge_first() {
          get_u8()); //~ ERROR unreachable expression
 }
 fn diverge_second() {
-    call( //~ ERROR unreachable expression
+    call( //~ ERROR unreachable call
         get_u8(),
         diverge());
 }
index f8dd54590f6ae312be03d7e2634b035f1bc238e1..c740011c4a125711bfdbc4ab2314d17009ec2618 100644 (file)
@@ -10,13 +10,11 @@ note: lint level defined here
 LL | #![deny(unreachable_code)]
    |         ^^^^^^^^^^^^^^^^
 
-error: unreachable expression
+error: unreachable call
   --> $DIR/unreachable-in-call.rs:17:5
    |
-LL | /     call(
-LL | |         get_u8(),
-LL | |         diverge());
-   | |__________________^
+LL |     call(
+   |     ^^^^
 
 error: aborting due to 2 previous errors