about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMazdak Farrokhzad <twingoow@gmail.com>2019-06-20 14:13:28 +0200
committerMazdak Farrokhzad <twingoow@gmail.com>2019-07-06 06:43:58 +0200
commitf01562af33272fd5960fd2b6d1880abfcb790116 (patch)
treed4ca4c2a10c43bd6b614fd149ad6ce48013becc8
parentebcc966ac1a3c0784e4ff0a2191aa1a01639c273 (diff)
downloadrust-f01562af33272fd5960fd2b6d1880abfcb790116.tar.gz
rust-f01562af33272fd5960fd2b6d1880abfcb790116.zip
Make sure while-exprs require 'cond: bool' exactly.
-rw-r--r--src/test/ui/if/if-no-match-bindings.rs6
-rw-r--r--src/test/ui/if/if-no-match-bindings.stderr38
2 files changed, 43 insertions, 1 deletions
diff --git a/src/test/ui/if/if-no-match-bindings.rs b/src/test/ui/if/if-no-match-bindings.rs
index 581ce18c1d6..ca3df0fdde4 100644
--- a/src/test/ui/if/if-no-match-bindings.rs
+++ b/src/test/ui/if/if-no-match-bindings.rs
@@ -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]
 }
diff --git a/src/test/ui/if/if-no-match-bindings.stderr b/src/test/ui/if/if-no-match-bindings.stderr
index 7b0b472121f..cbf52476ae3 100644
--- a/src/test/ui/if/if-no-match-bindings.stderr
+++ b/src/test/ui/if/if-no-match-bindings.stderr
@@ -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`.