diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2019-03-06 17:54:35 -0800 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2019-03-07 13:17:50 -0800 |
| commit | 369058eacde8ffdfeed9b362b10720799729a835 (patch) | |
| tree | e5c9b2b287ffd8005fb5e876aabb660e1911d95f /src/test | |
| parent | f22dca0a1bef4141e75326caacc3cd59f3d5be8e (diff) | |
| download | rust-369058eacde8ffdfeed9b362b10720799729a835.tar.gz rust-369058eacde8ffdfeed9b362b10720799729a835.zip | |
Point at coercion reason for if exprs without else clause
```
error[E0317]: if may be missing an else clause
--> $DIR/if-without-else-as-fn-expr.rs:2:5
|
LL | fn foo(bar: usize) -> usize {
| ----- found `usize` because of this return type
LL | / if bar % 5 == 0 {
LL | | return 3;
LL | | }
| |_____^ expected (), found usize
|
= note: expected type `()`
found type `usize`
= note: `if` expressions without `else` must evaluate to `()`
```
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/if/if-without-else-as-fn-expr.rs | 10 | ||||
| -rw-r--r-- | src/test/ui/if/if-without-else-as-fn-expr.stderr | 17 | ||||
| -rw-r--r-- | src/test/ui/if/if-without-else-result.stderr | 1 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-4201.stderr | 1 | ||||
| -rw-r--r-- | src/test/ui/issues/issue-50577.stderr | 1 |
5 files changed, 30 insertions, 0 deletions
diff --git a/src/test/ui/if/if-without-else-as-fn-expr.rs b/src/test/ui/if/if-without-else-as-fn-expr.rs new file mode 100644 index 00000000000..76ffb49697f --- /dev/null +++ b/src/test/ui/if/if-without-else-as-fn-expr.rs @@ -0,0 +1,10 @@ +fn foo(bar: usize) -> usize { + if bar % 5 == 0 { + return 3; + } + //~^^^ ERROR if may be missing an else clause +} + +fn main() { + let _ = foo(1); +} diff --git a/src/test/ui/if/if-without-else-as-fn-expr.stderr b/src/test/ui/if/if-without-else-as-fn-expr.stderr new file mode 100644 index 00000000000..b8628ee291d --- /dev/null +++ b/src/test/ui/if/if-without-else-as-fn-expr.stderr @@ -0,0 +1,17 @@ +error[E0317]: if may be missing an else clause + --> $DIR/if-without-else-as-fn-expr.rs:2:5 + | +LL | fn foo(bar: usize) -> usize { + | ----- found `usize` because of this return type +LL | / if bar % 5 == 0 { +LL | | return 3; +LL | | } + | |_____^ expected (), found usize + | + = note: expected type `()` + found type `usize` + = note: `if` expressions without `else` must evaluate to `()` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0317`. diff --git a/src/test/ui/if/if-without-else-result.stderr b/src/test/ui/if/if-without-else-result.stderr index 2134781088c..6e720d59af5 100644 --- a/src/test/ui/if/if-without-else-result.stderr +++ b/src/test/ui/if/if-without-else-result.stderr @@ -6,6 +6,7 @@ LL | let a = if true { true }; | = note: expected type `()` found type `bool` + = note: `if` expressions without `else` must evaluate to `()` error: aborting due to previous error diff --git a/src/test/ui/issues/issue-4201.stderr b/src/test/ui/issues/issue-4201.stderr index 4f8ec96d531..fcda41d78cc 100644 --- a/src/test/ui/issues/issue-4201.stderr +++ b/src/test/ui/issues/issue-4201.stderr @@ -13,6 +13,7 @@ LL | | }; | = note: expected type `()` found type `{integer}` + = note: `if` expressions without `else` must evaluate to `()` error: aborting due to previous error diff --git a/src/test/ui/issues/issue-50577.stderr b/src/test/ui/issues/issue-50577.stderr index f26f5a9a9ba..2747f9375f8 100644 --- a/src/test/ui/issues/issue-50577.stderr +++ b/src/test/ui/issues/issue-50577.stderr @@ -6,6 +6,7 @@ LL | Drop = assert_eq!(1, 1) | = note: expected type `()` found type `isize` + = note: `if` expressions without `else` must evaluate to `()` = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info) error: aborting due to previous error |
