summary refs log tree commit diff
path: root/src/test/compile-fail/for-loop-refutable-pattern-error-message.rs
diff options
context:
space:
mode:
authorHuon Wilson <dbau.pp+github@gmail.com>2014-05-26 22:01:09 +1000
committerHuon Wilson <dbau.pp+github@gmail.com>2014-05-27 09:24:37 +1000
commitf2a137829e07505aaaa2be4ae97d6ecfb6ef6823 (patch)
treeedf00264307375720e7d501d6f273b5960b5c754 /src/test/compile-fail/for-loop-refutable-pattern-error-message.rs
parent6ddd40d4368b1dbbc6bfa18d73d47beb05a55447 (diff)
downloadrust-f2a137829e07505aaaa2be4ae97d6ecfb6ef6823.tar.gz
rust-f2a137829e07505aaaa2be4ae97d6ecfb6ef6823.zip
syntax: desugar a `for` loop to a let binding to get better error
messages when the pattern is refutable.

This means the compiler points directly to the pattern and said that the
problem is the pattern being refutable (rather than just saying that
some value isn't covered in the `match` as it did previously).

Fixes #14390.
Diffstat (limited to 'src/test/compile-fail/for-loop-refutable-pattern-error-message.rs')
-rw-r--r--src/test/compile-fail/for-loop-refutable-pattern-error-message.rs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/test/compile-fail/for-loop-refutable-pattern-error-message.rs b/src/test/compile-fail/for-loop-refutable-pattern-error-message.rs
new file mode 100644
index 00000000000..8b00b614909
--- /dev/null
+++ b/src/test/compile-fail/for-loop-refutable-pattern-error-message.rs
@@ -0,0 +1,16 @@
+// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
+// file at the top-level directory of this distribution and at
+// http://rust-lang.org/COPYRIGHT.
+//
+// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
+// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
+// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
+// option. This file may not be copied, modified, or distributed
+// except according to those terms.
+
+
+fn main() {
+    for
+        &1 //~ ERROR refutable pattern in `for` loop binding
+        in [1].iter() {}
+}