about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorJorge Aparicio <japaricious@gmail.com>2015-02-27 20:58:26 -0500
committerJorge Aparicio <japaricious@gmail.com>2015-02-27 21:01:22 -0500
commitcc8a5a0db7183fe3c233053bdadc6226f3dbd6e4 (patch)
treef38fbfa00180b7b44a9077af90d0bee010f7faf4 /src
parentbd0d8e47e53f25bbd50418a0f117973c366c1b08 (diff)
downloadrust-cc8a5a0db7183fe3c233053bdadc6226f3dbd6e4.tar.gz
rust-cc8a5a0db7183fe3c233053bdadc6226f3dbd6e4.zip
obsolete `|&:|` syntax
closes #22881
Diffstat (limited to 'src')
-rw-r--r--src/libsyntax/parse/parser.rs1
-rw-r--r--src/test/parse-fail/obsolete-closure-kind.rs18
2 files changed, 18 insertions, 1 deletions
diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs
index f171e8279f4..9de7b0ede78 100644
--- a/src/libsyntax/parse/parser.rs
+++ b/src/libsyntax/parse/parser.rs
@@ -1163,7 +1163,6 @@ impl<'a> Parser<'a> {
         {
             self.bump();
             self.bump();
-            return;
         } else if
             self.eat(&token::Colon)
         {
diff --git a/src/test/parse-fail/obsolete-closure-kind.rs b/src/test/parse-fail/obsolete-closure-kind.rs
new file mode 100644
index 00000000000..89134e806a7
--- /dev/null
+++ b/src/test/parse-fail/obsolete-closure-kind.rs
@@ -0,0 +1,18 @@
+// Copyright 2015 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.
+
+// Test that we generate obsolete syntax errors around usages of closure kinds: `|:|`, `|&:|` and
+// `|&mut:|`.
+
+fn main() {
+    let a = |:| {};  //~ ERROR obsolete syntax: `:`, `&mut:`, or `&:`
+    let a = |&:| {};  //~ ERROR obsolete syntax: `:`, `&mut:`, or `&:`
+    let a = |&mut:| {};  //~ ERROR obsolete syntax: `:`, `&mut:`, or `&:`
+}