about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorvarkor <github@varkor.com>2019-01-12 03:10:59 +0000
committervarkor <github@varkor.com>2019-01-12 03:10:59 +0000
commitafcb93811650252f1533d4a1453ab697f787cfec (patch)
tree25418a88cbbbd014f05b547f7cfae7db622b940a /src/test
parentb43986184b8f4e0d633e8ae1704f0e19aec30cb2 (diff)
downloadrust-afcb93811650252f1533d4a1453ab697f787cfec.tar.gz
rust-afcb93811650252f1533d4a1453ab697f787cfec.zip
Stabilise irrefutable if-let and while-let patterns
This stabilises RFC 2086 (https://github.com/rust-lang/rust/issues/44495).

Co-Authored-By: Sebastian Malton <sebastian@malton.name>
Diffstat (limited to 'src/test')
-rw-r--r--src/test/run-pass/binding/allow_irrefutable_let_patterns.rs12
-rw-r--r--src/test/ui/error-codes/E0162.rs8
-rw-r--r--src/test/ui/error-codes/E0162.stderr9
-rw-r--r--src/test/ui/error-codes/E0165.rs9
-rw-r--r--src/test/ui/error-codes/E0165.stderr9
-rw-r--r--src/test/ui/feature-gates/feature-gate-without_gate_irrefutable_pattern.rs8
-rw-r--r--src/test/ui/feature-gates/feature-gate-without_gate_irrefutable_pattern.stderr9
-rw-r--r--src/test/ui/if/if-let.rs14
-rw-r--r--src/test/ui/if/if-let.stderr77
-rw-r--r--src/test/ui/issues/issue-51714.rs2
-rw-r--r--src/test/ui/issues/issue-51714.stderr13
-rw-r--r--src/test/ui/pattern/deny-irrefutable-let-patterns.rs9
-rw-r--r--src/test/ui/pattern/deny-irrefutable-let-patterns.stderr22
-rw-r--r--src/test/ui/pattern/enum-variant-generic-args.rs (renamed from src/test/run-pass/enum-variant-generic-args.rs)3
-rw-r--r--src/test/ui/pattern/irrefutable-let-patterns.rs11
-rw-r--r--src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2015.rs1
-rw-r--r--src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2015.stderr12
-rw-r--r--src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2018.rs1
-rw-r--r--src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2018.stderr12
-rw-r--r--src/test/ui/should-fail-no_gate_irrefutable_if_let_pattern.rs5
-rw-r--r--src/test/ui/should-fail-no_gate_irrefutable_if_let_pattern.stderr9
-rw-r--r--src/test/ui/should-fail-with_gate_irrefutable_pattern_deny.rs7
-rw-r--r--src/test/ui/should-fail-with_gate_irrefutable_pattern_deny.stderr10
-rw-r--r--src/test/ui/while-let.rs9
-rw-r--r--src/test/ui/while-let.stderr41
25 files changed, 154 insertions, 168 deletions
diff --git a/src/test/run-pass/binding/allow_irrefutable_let_patterns.rs b/src/test/run-pass/binding/allow_irrefutable_let_patterns.rs
deleted file mode 100644
index d9a42a29639..00000000000
--- a/src/test/run-pass/binding/allow_irrefutable_let_patterns.rs
+++ /dev/null
@@ -1,12 +0,0 @@
-// run-pass
-#![feature(irrefutable_let_patterns)]
-
-// must-compile-successfully-irrefutable_let_patterns_with_gate
-#[allow(irrefutable_let_patterns)]
-fn main() {
-    if let _ = 5 {}
-
-    while let _ = 5 {
-        break;
-    }
-}
diff --git a/src/test/ui/error-codes/E0162.rs b/src/test/ui/error-codes/E0162.rs
deleted file mode 100644
index d3221f8e176..00000000000
--- a/src/test/ui/error-codes/E0162.rs
+++ /dev/null
@@ -1,8 +0,0 @@
-struct Irrefutable(i32);
-
-fn main() {
-    let irr = Irrefutable(0);
-    if let Irrefutable(x) = irr { //~ ERROR E0162
-        println!("{}", x);
-    }
-}
diff --git a/src/test/ui/error-codes/E0162.stderr b/src/test/ui/error-codes/E0162.stderr
deleted file mode 100644
index ca5c56cd59d..00000000000
--- a/src/test/ui/error-codes/E0162.stderr
+++ /dev/null
@@ -1,9 +0,0 @@
-error[E0162]: irrefutable if-let pattern
-  --> $DIR/E0162.rs:5:12
-   |
-LL |     if let Irrefutable(x) = irr { //~ ERROR E0162
-   |            ^^^^^^^^^^^^^^ irrefutable pattern
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0162`.
diff --git a/src/test/ui/error-codes/E0165.rs b/src/test/ui/error-codes/E0165.rs
deleted file mode 100644
index 952071c8b9e..00000000000
--- a/src/test/ui/error-codes/E0165.rs
+++ /dev/null
@@ -1,9 +0,0 @@
-struct Irrefutable(i32);
-
-fn main() {
-    let irr = Irrefutable(0);
-    while let Irrefutable(x) = irr { //~ ERROR E0165
-                                     //~| irrefutable pattern
-        // ...
-    }
-}
diff --git a/src/test/ui/error-codes/E0165.stderr b/src/test/ui/error-codes/E0165.stderr
deleted file mode 100644
index e0d192ea152..00000000000
--- a/src/test/ui/error-codes/E0165.stderr
+++ /dev/null
@@ -1,9 +0,0 @@
-error[E0165]: irrefutable while-let pattern
-  --> $DIR/E0165.rs:5:15
-   |
-LL |     while let Irrefutable(x) = irr { //~ ERROR E0165
-   |               ^^^^^^^^^^^^^^ irrefutable pattern
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0165`.
diff --git a/src/test/ui/feature-gates/feature-gate-without_gate_irrefutable_pattern.rs b/src/test/ui/feature-gates/feature-gate-without_gate_irrefutable_pattern.rs
deleted file mode 100644
index cae2f1d2793..00000000000
--- a/src/test/ui/feature-gates/feature-gate-without_gate_irrefutable_pattern.rs
+++ /dev/null
@@ -1,8 +0,0 @@
-// gate-test-irrefutable_let_patterns
-
-
-#[allow(irrefutable_let_patterns)]
-fn main() {
-    if let _ = 5 {}
-    //~^ ERROR irrefutable if-let pattern [E0162]
-}
diff --git a/src/test/ui/feature-gates/feature-gate-without_gate_irrefutable_pattern.stderr b/src/test/ui/feature-gates/feature-gate-without_gate_irrefutable_pattern.stderr
deleted file mode 100644
index fa8b74ffecf..00000000000
--- a/src/test/ui/feature-gates/feature-gate-without_gate_irrefutable_pattern.stderr
+++ /dev/null
@@ -1,9 +0,0 @@
-error[E0162]: irrefutable if-let pattern
-  --> $DIR/feature-gate-without_gate_irrefutable_pattern.rs:6:12
-   |
-LL |     if let _ = 5 {}
-   |            ^ irrefutable pattern
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0162`.
diff --git a/src/test/ui/if/if-let.rs b/src/test/ui/if/if-let.rs
index 304de457059..741685fe9b6 100644
--- a/src/test/ui/if/if-let.rs
+++ b/src/test/ui/if/if-let.rs
@@ -1,3 +1,5 @@
+// compile-pass
+
 fn macros() {
     macro_rules! foo{
         ($p:pat, $e:expr, $b:block) => {{
@@ -10,20 +12,20 @@ fn macros() {
         }}
     }
 
-    foo!(a, 1, { //~ ERROR irrefutable if-let
+    foo!(a, 1, { //~ WARN irrefutable if-let
         println!("irrefutable pattern");
     });
-    bar!(a, 1, { //~ ERROR irrefutable if-let
+    bar!(a, 1, { //~ WARN irrefutable if-let
         println!("irrefutable pattern");
     });
 }
 
 pub fn main() {
-    if let a = 1 { //~ ERROR irrefutable if-let
+    if let a = 1 { //~ WARN irrefutable if-let
         println!("irrefutable pattern");
     }
 
-    if let a = 1 { //~ ERROR irrefutable if-let
+    if let a = 1 { //~ WARN irrefutable if-let
         println!("irrefutable pattern");
     } else if true {
         println!("else-if in irrefutable if-let");
@@ -33,13 +35,13 @@ pub fn main() {
 
     if let 1 = 2 {
         println!("refutable pattern");
-    } else if let a = 1 { //~ ERROR irrefutable if-let
+    } else if let a = 1 { //~ WARN irrefutable if-let
         println!("irrefutable pattern");
     }
 
     if true {
         println!("if");
-    } else if let a = 1 { //~ ERROR irrefutable if-let
+    } else if let a = 1 { //~ WARN irrefutable if-let
         println!("irrefutable pattern");
     }
 }
diff --git a/src/test/ui/if/if-let.stderr b/src/test/ui/if/if-let.stderr
index 3802d7828ae..b2a104bfacf 100644
--- a/src/test/ui/if/if-let.stderr
+++ b/src/test/ui/if/if-let.stderr
@@ -1,39 +1,62 @@
-error[E0162]: irrefutable if-let pattern
-  --> $DIR/if-let.rs:13:10
+warning: irrefutable if-let pattern
+  --> $DIR/if-let.rs:6:13
    |
-LL |     foo!(a, 1, { //~ ERROR irrefutable if-let
-   |          ^ irrefutable pattern
-
-error[E0162]: irrefutable if-let pattern
-  --> $DIR/if-let.rs:16:10
+LL |               if let $p = $e $b
+   |               ^^
+...
+LL | /     foo!(a, 1, { //~ WARN irrefutable if-let
+LL | |         println!("irrefutable pattern");
+LL | |     });
+   | |_______- in this macro invocation
    |
-LL |     bar!(a, 1, { //~ ERROR irrefutable if-let
-   |          ^ irrefutable pattern
+   = note: #[warn(irrefutable_let_patterns)] on by default
 
-error[E0162]: irrefutable if-let pattern
-  --> $DIR/if-let.rs:22:12
+warning: irrefutable if-let pattern
+  --> $DIR/if-let.rs:6:13
    |
-LL |     if let a = 1 { //~ ERROR irrefutable if-let
-   |            ^ irrefutable pattern
+LL |               if let $p = $e $b
+   |               ^^
+...
+LL | /     bar!(a, 1, { //~ WARN irrefutable if-let
+LL | |         println!("irrefutable pattern");
+LL | |     });
+   | |_______- in this macro invocation
 
-error[E0162]: irrefutable if-let pattern
-  --> $DIR/if-let.rs:26:12
+warning: irrefutable if-let pattern
+  --> $DIR/if-let.rs:24:5
    |
-LL |     if let a = 1 { //~ ERROR irrefutable if-let
-   |            ^ irrefutable pattern
+LL | /     if let a = 1 { //~ WARN irrefutable if-let
+LL | |         println!("irrefutable pattern");
+LL | |     }
+   | |_____^
 
-error[E0162]: irrefutable if-let pattern
-  --> $DIR/if-let.rs:36:19
+warning: irrefutable if-let pattern
+  --> $DIR/if-let.rs:28:5
    |
-LL |     } else if let a = 1 { //~ ERROR irrefutable if-let
-   |                   ^ irrefutable pattern
+LL | /     if let a = 1 { //~ WARN irrefutable if-let
+LL | |         println!("irrefutable pattern");
+LL | |     } else if true {
+LL | |         println!("else-if in irrefutable if-let");
+LL | |     } else {
+LL | |         println!("else in irrefutable if-let");
+LL | |     }
+   | |_____^
 
-error[E0162]: irrefutable if-let pattern
-  --> $DIR/if-let.rs:42:19
+warning: irrefutable if-let pattern
+  --> $DIR/if-let.rs:38:12
    |
-LL |     } else if let a = 1 { //~ ERROR irrefutable if-let
-   |                   ^ irrefutable pattern
+LL |       } else if let a = 1 { //~ WARN irrefutable if-let
+   |  ____________^
+LL | |         println!("irrefutable pattern");
+LL | |     }
+   | |_____^
 
-error: aborting due to 6 previous errors
+warning: irrefutable if-let pattern
+  --> $DIR/if-let.rs:44:12
+   |
+LL |       } else if let a = 1 { //~ WARN irrefutable if-let
+   |  ____________^
+LL | |         println!("irrefutable pattern");
+LL | |     }
+   | |_____^
 
-For more information about this error, try `rustc --explain E0162`.
diff --git a/src/test/ui/issues/issue-51714.rs b/src/test/ui/issues/issue-51714.rs
index b52e3ac6abd..4885e4a2db7 100644
--- a/src/test/ui/issues/issue-51714.rs
+++ b/src/test/ui/issues/issue-51714.rs
@@ -10,5 +10,5 @@ fn main() {
 
     [(); return while let Some(n) = Some(0) {}];
     //~^ ERROR return statement outside of function body
-    //~^^ ERROR irrefutable while-let pattern
+    //~^^ WARN irrefutable while-let pattern
 }
diff --git a/src/test/ui/issues/issue-51714.stderr b/src/test/ui/issues/issue-51714.stderr
index 47a8b415b0c..df11f6b7f5a 100644
--- a/src/test/ui/issues/issue-51714.stderr
+++ b/src/test/ui/issues/issue-51714.stderr
@@ -22,13 +22,14 @@ error[E0572]: return statement outside of function body
 LL |     [(); return while let Some(n) = Some(0) {}];
    |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-error[E0165]: irrefutable while-let pattern
-  --> $DIR/issue-51714.rs:11:27
+warning: irrefutable while-let pattern
+  --> $DIR/issue-51714.rs:11:17
    |
 LL |     [(); return while let Some(n) = Some(0) {}];
-   |                           ^^^^^^^ irrefutable pattern
+   |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+   |
+   = note: #[warn(irrefutable_let_patterns)] on by default
 
-error: aborting due to 5 previous errors
+error: aborting due to 4 previous errors
 
-Some errors occurred: E0165, E0572.
-For more information about an error, try `rustc --explain E0165`.
+For more information about this error, try `rustc --explain E0572`.
diff --git a/src/test/ui/pattern/deny-irrefutable-let-patterns.rs b/src/test/ui/pattern/deny-irrefutable-let-patterns.rs
new file mode 100644
index 00000000000..14040c8ada6
--- /dev/null
+++ b/src/test/ui/pattern/deny-irrefutable-let-patterns.rs
@@ -0,0 +1,9 @@
+#![deny(irrefutable_let_patterns)]
+
+fn main() {
+    if let _ = 5 {} //~ ERROR irrefutable if-let pattern
+
+    while let _ = 5 { //~ ERROR irrefutable while-let pattern
+        break;
+    }
+}
diff --git a/src/test/ui/pattern/deny-irrefutable-let-patterns.stderr b/src/test/ui/pattern/deny-irrefutable-let-patterns.stderr
new file mode 100644
index 00000000000..ad8cc2ef897
--- /dev/null
+++ b/src/test/ui/pattern/deny-irrefutable-let-patterns.stderr
@@ -0,0 +1,22 @@
+error: irrefutable if-let pattern
+  --> $DIR/deny-irrefutable-let-patterns.rs:4:5
+   |
+LL |     if let _ = 5 {} //~ ERROR irrefutable if-let pattern
+   |     ^^^^^^^^^^^^^^^
+   |
+note: lint level defined here
+  --> $DIR/deny-irrefutable-let-patterns.rs:1:9
+   |
+LL | #![deny(irrefutable_let_patterns)]
+   |         ^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: irrefutable while-let pattern
+  --> $DIR/deny-irrefutable-let-patterns.rs:6:5
+   |
+LL | /     while let _ = 5 { //~ ERROR irrefutable while-let pattern
+LL | |         break;
+LL | |     }
+   | |_____^
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/run-pass/enum-variant-generic-args.rs b/src/test/ui/pattern/enum-variant-generic-args.rs
index 0743f998979..85599530ea6 100644
--- a/src/test/run-pass/enum-variant-generic-args.rs
+++ b/src/test/ui/pattern/enum-variant-generic-args.rs
@@ -1,4 +1,5 @@
-#![feature(irrefutable_let_patterns)]
+// run-pass
+
 #![feature(type_alias_enum_variants)]
 
 #![allow(irrefutable_let_patterns)]
diff --git a/src/test/ui/pattern/irrefutable-let-patterns.rs b/src/test/ui/pattern/irrefutable-let-patterns.rs
new file mode 100644
index 00000000000..d400ef0bbd6
--- /dev/null
+++ b/src/test/ui/pattern/irrefutable-let-patterns.rs
@@ -0,0 +1,11 @@
+// run-pass
+
+#![allow(irrefutable_let_patterns)]
+
+fn main() {
+    if let _ = 5 {}
+
+    while let _ = 5 {
+        break;
+    }
+}
diff --git a/src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2015.rs b/src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2015.rs
index 3814fc02745..d79798d57e8 100644
--- a/src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2015.rs
+++ b/src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2015.rs
@@ -2,7 +2,6 @@
 
 // Enabling `ireffutable_let_patterns` isn't necessary for what this tests, but it makes coming up
 // with examples easier.
-#![feature(irrefutable_let_patterns)]
 
 #[allow(irrefutable_let_patterns)]
 fn main() {
diff --git a/src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2015.stderr b/src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2015.stderr
index 1d518215c2c..2cd59fe56cf 100644
--- a/src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2015.stderr
+++ b/src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2015.stderr
@@ -1,5 +1,5 @@
 error: ambiguous use of `&&`
-  --> $DIR/syntax-ambiguity-2015.rs:11:47
+  --> $DIR/syntax-ambiguity-2015.rs:10:47
    |
 LL |     if let Range { start: _, end: _ } = true..true && false { }
    |                                               ^^^^^^^^^^^^^ help: consider adding parentheses: `(true && false)`
@@ -8,7 +8,7 @@ LL |     if let Range { start: _, end: _ } = true..true && false { }
    = note: see rust-lang/rust#53668 for more information
 
 error: ambiguous use of `||`
-  --> $DIR/syntax-ambiguity-2015.rs:14:47
+  --> $DIR/syntax-ambiguity-2015.rs:13:47
    |
 LL |     if let Range { start: _, end: _ } = true..true || false { }
    |                                               ^^^^^^^^^^^^^ help: consider adding parentheses: `(true || false)`
@@ -17,7 +17,7 @@ LL |     if let Range { start: _, end: _ } = true..true || false { }
    = note: see rust-lang/rust#53668 for more information
 
 error: ambiguous use of `&&`
-  --> $DIR/syntax-ambiguity-2015.rs:17:50
+  --> $DIR/syntax-ambiguity-2015.rs:16:50
    |
 LL |     while let Range { start: _, end: _ } = true..true && false { }
    |                                                  ^^^^^^^^^^^^^ help: consider adding parentheses: `(true && false)`
@@ -26,7 +26,7 @@ LL |     while let Range { start: _, end: _ } = true..true && false { }
    = note: see rust-lang/rust#53668 for more information
 
 error: ambiguous use of `||`
-  --> $DIR/syntax-ambiguity-2015.rs:20:50
+  --> $DIR/syntax-ambiguity-2015.rs:19:50
    |
 LL |     while let Range { start: _, end: _ } = true..true || false { }
    |                                                  ^^^^^^^^^^^^^ help: consider adding parentheses: `(true || false)`
@@ -35,7 +35,7 @@ LL |     while let Range { start: _, end: _ } = true..true || false { }
    = note: see rust-lang/rust#53668 for more information
 
 error: ambiguous use of `&&`
-  --> $DIR/syntax-ambiguity-2015.rs:23:19
+  --> $DIR/syntax-ambiguity-2015.rs:22:19
    |
 LL |     if let true = false && false { }
    |                   ^^^^^^^^^^^^^^ help: consider adding parentheses: `(false && false)`
@@ -44,7 +44,7 @@ LL |     if let true = false && false { }
    = note: see rust-lang/rust#53668 for more information
 
 error: ambiguous use of `&&`
-  --> $DIR/syntax-ambiguity-2015.rs:26:22
+  --> $DIR/syntax-ambiguity-2015.rs:25:22
    |
 LL |     while let true = (1 == 2) && false { }
    |                      ^^^^^^^^^^^^^^^^^ help: consider adding parentheses: `((1 == 2) && false)`
diff --git a/src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2018.rs b/src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2018.rs
index 311953a283e..687bf659416 100644
--- a/src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2018.rs
+++ b/src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2018.rs
@@ -2,7 +2,6 @@
 
 // Enabling `ireffutable_let_patterns` isn't necessary for what this tests, but it makes coming up
 // with examples easier.
-#![feature(irrefutable_let_patterns)]
 
 #[allow(irrefutable_let_patterns)]
 fn main() {
diff --git a/src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2018.stderr b/src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2018.stderr
index b3579973ca2..cbba2d74733 100644
--- a/src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2018.stderr
+++ b/src/test/ui/rfc-2497-if-let-chains/syntax-ambiguity-2018.stderr
@@ -1,5 +1,5 @@
 error: ambiguous use of `&&`
-  --> $DIR/syntax-ambiguity-2018.rs:11:47
+  --> $DIR/syntax-ambiguity-2018.rs:10:47
    |
 LL |     if let Range { start: _, end: _ } = true..true && false { }
    |                                               ^^^^^^^^^^^^^ help: consider adding parentheses: `(true && false)`
@@ -8,7 +8,7 @@ LL |     if let Range { start: _, end: _ } = true..true && false { }
    = note: see rust-lang/rust#53668 for more information
 
 error: ambiguous use of `||`
-  --> $DIR/syntax-ambiguity-2018.rs:14:47
+  --> $DIR/syntax-ambiguity-2018.rs:13:47
    |
 LL |     if let Range { start: _, end: _ } = true..true || false { }
    |                                               ^^^^^^^^^^^^^ help: consider adding parentheses: `(true || false)`
@@ -17,7 +17,7 @@ LL |     if let Range { start: _, end: _ } = true..true || false { }
    = note: see rust-lang/rust#53668 for more information
 
 error: ambiguous use of `&&`
-  --> $DIR/syntax-ambiguity-2018.rs:17:50
+  --> $DIR/syntax-ambiguity-2018.rs:16:50
    |
 LL |     while let Range { start: _, end: _ } = true..true && false { }
    |                                                  ^^^^^^^^^^^^^ help: consider adding parentheses: `(true && false)`
@@ -26,7 +26,7 @@ LL |     while let Range { start: _, end: _ } = true..true && false { }
    = note: see rust-lang/rust#53668 for more information
 
 error: ambiguous use of `||`
-  --> $DIR/syntax-ambiguity-2018.rs:20:50
+  --> $DIR/syntax-ambiguity-2018.rs:19:50
    |
 LL |     while let Range { start: _, end: _ } = true..true || false { }
    |                                                  ^^^^^^^^^^^^^ help: consider adding parentheses: `(true || false)`
@@ -35,7 +35,7 @@ LL |     while let Range { start: _, end: _ } = true..true || false { }
    = note: see rust-lang/rust#53668 for more information
 
 error: ambiguous use of `&&`
-  --> $DIR/syntax-ambiguity-2018.rs:23:19
+  --> $DIR/syntax-ambiguity-2018.rs:22:19
    |
 LL |     if let true = false && false { }
    |                   ^^^^^^^^^^^^^^ help: consider adding parentheses: `(false && false)`
@@ -44,7 +44,7 @@ LL |     if let true = false && false { }
    = note: see rust-lang/rust#53668 for more information
 
 error: ambiguous use of `&&`
-  --> $DIR/syntax-ambiguity-2018.rs:26:22
+  --> $DIR/syntax-ambiguity-2018.rs:25:22
    |
 LL |     while let true = (1 == 2) && false { }
    |                      ^^^^^^^^^^^^^^^^^ help: consider adding parentheses: `((1 == 2) && false)`
diff --git a/src/test/ui/should-fail-no_gate_irrefutable_if_let_pattern.rs b/src/test/ui/should-fail-no_gate_irrefutable_if_let_pattern.rs
deleted file mode 100644
index 2899298a0cb..00000000000
--- a/src/test/ui/should-fail-no_gate_irrefutable_if_let_pattern.rs
+++ /dev/null
@@ -1,5 +0,0 @@
-// should-fail-irrefutable_let_patterns
-fn main() {
-    if let _ = 5 {}
-    //~^ ERROR irrefutable if-let pattern [E0162]
-}
diff --git a/src/test/ui/should-fail-no_gate_irrefutable_if_let_pattern.stderr b/src/test/ui/should-fail-no_gate_irrefutable_if_let_pattern.stderr
deleted file mode 100644
index 9c9ebc6659b..00000000000
--- a/src/test/ui/should-fail-no_gate_irrefutable_if_let_pattern.stderr
+++ /dev/null
@@ -1,9 +0,0 @@
-error[E0162]: irrefutable if-let pattern
-  --> $DIR/should-fail-no_gate_irrefutable_if_let_pattern.rs:3:12
-   |
-LL |     if let _ = 5 {}
-   |            ^ irrefutable pattern
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0162`.
diff --git a/src/test/ui/should-fail-with_gate_irrefutable_pattern_deny.rs b/src/test/ui/should-fail-with_gate_irrefutable_pattern_deny.rs
deleted file mode 100644
index 1b9b3dc1a4c..00000000000
--- a/src/test/ui/should-fail-with_gate_irrefutable_pattern_deny.rs
+++ /dev/null
@@ -1,7 +0,0 @@
-#![feature(irrefutable_let_patterns)]
-
-// should-fail-irrefutable_let_patterns_with_gate
-fn main() {
-    if let _ = 5 {}
-    //~^ ERROR irrefutable if-let pattern [irrefutable_let_patterns]
-}
diff --git a/src/test/ui/should-fail-with_gate_irrefutable_pattern_deny.stderr b/src/test/ui/should-fail-with_gate_irrefutable_pattern_deny.stderr
deleted file mode 100644
index dc670f0e590..00000000000
--- a/src/test/ui/should-fail-with_gate_irrefutable_pattern_deny.stderr
+++ /dev/null
@@ -1,10 +0,0 @@
-error: irrefutable if-let pattern
-  --> $DIR/should-fail-with_gate_irrefutable_pattern_deny.rs:5:5
-   |
-LL |     if let _ = 5 {}
-   |     ^^^^^^^^^^^^^^^
-   |
-   = note: #[deny(irrefutable_let_patterns)] on by default
-
-error: aborting due to previous error
-
diff --git a/src/test/ui/while-let.rs b/src/test/ui/while-let.rs
index 348edc15aca..69f9de94977 100644
--- a/src/test/ui/while-let.rs
+++ b/src/test/ui/while-let.rs
@@ -1,3 +1,5 @@
+// run-pass
+
 fn macros() {
     macro_rules! foo{
         ($p:pat, $e:expr, $b:block) => {{
@@ -10,16 +12,17 @@ fn macros() {
         }}
     }
 
-    foo!(a, 1, { //~ ERROR irrefutable while-let
+    foo!(a, 1, { //~ WARN irrefutable while-let
         println!("irrefutable pattern");
     });
-    bar!(a, 1, { //~ ERROR irrefutable while-let
+    bar!(a, 1, { //~ WARN irrefutable while-let
         println!("irrefutable pattern");
     });
 }
 
 pub fn main() {
-    while let a = 1 { //~ ERROR irrefutable while-let
+    while let a = 1 { //~ WARN irrefutable while-let
         println!("irrefutable pattern");
+        break;
     }
 }
diff --git a/src/test/ui/while-let.stderr b/src/test/ui/while-let.stderr
index 838dd8c14d7..3f584006bc1 100644
--- a/src/test/ui/while-let.stderr
+++ b/src/test/ui/while-let.stderr
@@ -1,21 +1,32 @@
-error[E0165]: irrefutable while-let pattern
-  --> $DIR/while-let.rs:13:10
+warning: irrefutable while-let pattern
+  --> $DIR/while-let.rs:6:13
    |
-LL |     foo!(a, 1, { //~ ERROR irrefutable while-let
-   |          ^ irrefutable pattern
-
-error[E0165]: irrefutable while-let pattern
-  --> $DIR/while-let.rs:16:10
+LL |               while let $p = $e $b
+   |               ^^^^^
+...
+LL | /     foo!(a, 1, { //~ WARN irrefutable while-let
+LL | |         println!("irrefutable pattern");
+LL | |     });
+   | |_______- in this macro invocation
    |
-LL |     bar!(a, 1, { //~ ERROR irrefutable while-let
-   |          ^ irrefutable pattern
+   = note: #[warn(irrefutable_let_patterns)] on by default
 
-error[E0165]: irrefutable while-let pattern
-  --> $DIR/while-let.rs:22:15
+warning: irrefutable while-let pattern
+  --> $DIR/while-let.rs:6:13
    |
-LL |     while let a = 1 { //~ ERROR irrefutable while-let
-   |               ^ irrefutable pattern
+LL |               while let $p = $e $b
+   |               ^^^^^
+...
+LL | /     bar!(a, 1, { //~ WARN irrefutable while-let
+LL | |         println!("irrefutable pattern");
+LL | |     });
+   | |_______- in this macro invocation
 
-error: aborting due to 3 previous errors
+warning: irrefutable while-let pattern
+  --> $DIR/while-let.rs:24:5
+   |
+LL | /     while let a = 1 { //~ WARN irrefutable while-let
+LL | |         println!("irrefutable pattern");
+LL | |     }
+   | |_____^
 
-For more information about this error, try `rustc --explain E0165`.