Make sure while-exprs require 'cond: bool' exactly.

This commit is contained in:
Mazdak Farrokhzad 2019-06-20 14:13:28 +02:00
parent ebcc966ac1
commit f01562af33
2 changed files with 43 additions and 1 deletions

View file

@ -19,4 +19,10 @@ fn main() {
if b_mut_ref() {} //~ ERROR mismatched types [E0308]
if &true {} //~ ERROR mismatched types [E0308]
if &mut true {} //~ ERROR mismatched types [E0308]
// This is also NOT:
while b_ref() {} //~ ERROR mismatched types [E0308]
while b_mut_ref() {} //~ ERROR mismatched types [E0308]
while &true {} //~ ERROR mismatched types [E0308]
while &mut true {} //~ ERROR mismatched types [E0308]
}

View file

@ -34,6 +34,42 @@ LL | if &mut true {}
= note: expected type `bool`
found type `&mut bool`
error: aborting due to 4 previous errors
error[E0308]: mismatched types
--> $DIR/if-no-match-bindings.rs:24:11
|
LL | while b_ref() {}
| ^^^^^^^ expected bool, found &bool
|
= note: expected type `bool`
found type `&bool`
error[E0308]: mismatched types
--> $DIR/if-no-match-bindings.rs:25:11
|
LL | while b_mut_ref() {}
| ^^^^^^^^^^^ expected bool, found &mut bool
|
= note: expected type `bool`
found type `&mut bool`
error[E0308]: mismatched types
--> $DIR/if-no-match-bindings.rs:26:11
|
LL | while &true {}
| ^^^^^ expected bool, found &bool
|
= note: expected type `bool`
found type `&bool`
error[E0308]: mismatched types
--> $DIR/if-no-match-bindings.rs:27:11
|
LL | while &mut true {}
| ^^^^^^^^^ expected bool, found &mut bool
|
= note: expected type `bool`
found type `&mut bool`
error: aborting due to 8 previous errors
For more information about this error, try `rustc --explain E0308`.