about summary refs log tree commit diff
path: root/src/test/parse-fail
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2015-04-03 05:56:27 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2015-04-03 05:56:27 +0300
commite1be69b8a97d48d579b5474907aab9199d1b8ab7 (patch)
tree211ed449785d7600bc2916f2faca1ad1211ee7a2 /src/test/parse-fail
parent80def6c2447d23a624e611417f24cf0ab2a5a676 (diff)
downloadrust-e1be69b8a97d48d579b5474907aab9199d1b8ab7.tar.gz
rust-e1be69b8a97d48d579b5474907aab9199d1b8ab7.zip
Add tests for parsing of patterns
Diffstat (limited to 'src/test/parse-fail')
-rw-r--r--src/test/parse-fail/pat-lt-bracket-1.rs17
-rw-r--r--src/test/parse-fail/pat-lt-bracket-2.rs12
-rw-r--r--src/test/parse-fail/pat-lt-bracket-3.rs22
-rw-r--r--src/test/parse-fail/pat-lt-bracket-4.rs21
-rw-r--r--src/test/parse-fail/pat-lt-bracket-5.rs13
-rw-r--r--src/test/parse-fail/pat-lt-bracket-6.rs13
-rw-r--r--src/test/parse-fail/pat-lt-bracket-7.rs13
-rw-r--r--src/test/parse-fail/pat-ranges-1.rs15
-rw-r--r--src/test/parse-fail/pat-ranges-2.rs15
-rw-r--r--src/test/parse-fail/pat-ranges-3.rs15
-rw-r--r--src/test/parse-fail/pat-ranges-4.rs15
11 files changed, 171 insertions, 0 deletions
diff --git a/src/test/parse-fail/pat-lt-bracket-1.rs b/src/test/parse-fail/pat-lt-bracket-1.rs
new file mode 100644
index 00000000000..6d3d1207788
--- /dev/null
+++ b/src/test/parse-fail/pat-lt-bracket-1.rs
@@ -0,0 +1,17 @@
+// 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.
+
+fn main() {
+  match 42 {
+    x < 7 => (),
+   //~^ error: expected one of `=>`, `@`, `if`, or `|`, found `<`
+    _ => ()
+  }
+}
diff --git a/src/test/parse-fail/pat-lt-bracket-2.rs b/src/test/parse-fail/pat-lt-bracket-2.rs
new file mode 100644
index 00000000000..6a0653041d4
--- /dev/null
+++ b/src/test/parse-fail/pat-lt-bracket-2.rs
@@ -0,0 +1,12 @@
+// 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.
+
+fn a(B<) {}
+   //~^ error: expected one of `:` or `@`, found `<`
diff --git a/src/test/parse-fail/pat-lt-bracket-3.rs b/src/test/parse-fail/pat-lt-bracket-3.rs
new file mode 100644
index 00000000000..8ea2bcf900c
--- /dev/null
+++ b/src/test/parse-fail/pat-lt-bracket-3.rs
@@ -0,0 +1,22 @@
+// 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.
+
+struct Foo<T>(T, T);
+
+impl<T> Foo<T> {
+    fn foo(&self) {
+        match *self {
+            Foo<T>(x, y) => {
+            //~^ error: expected one of `=>`, `@`, `if`, or `|`, found `<`
+              println!("Goodbye, World!")
+            }
+        }
+    }
+}
diff --git a/src/test/parse-fail/pat-lt-bracket-4.rs b/src/test/parse-fail/pat-lt-bracket-4.rs
new file mode 100644
index 00000000000..3d9b492307a
--- /dev/null
+++ b/src/test/parse-fail/pat-lt-bracket-4.rs
@@ -0,0 +1,21 @@
+// 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.
+
+enum BtNode {
+    Node(u32,Box<BtNode>,Box<BtNode>),
+    Leaf(u32),
+}
+
+fn main() {
+    let y = match x {
+        Foo<T>::A(value) => value, //~ error: expected one of `=>`, `@`, `if`, or `|`, found `<`
+        Foo<T>::B => 7,
+    };
+}
diff --git a/src/test/parse-fail/pat-lt-bracket-5.rs b/src/test/parse-fail/pat-lt-bracket-5.rs
new file mode 100644
index 00000000000..3345845eee9
--- /dev/null
+++ b/src/test/parse-fail/pat-lt-bracket-5.rs
@@ -0,0 +1,13 @@
+// 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.
+
+fn main() {
+    let v[0] = v[1]; //~ error: expected one of `:`, `;`, `=`, or `@`, found `[`
+}
diff --git a/src/test/parse-fail/pat-lt-bracket-6.rs b/src/test/parse-fail/pat-lt-bracket-6.rs
new file mode 100644
index 00000000000..72fdae82260
--- /dev/null
+++ b/src/test/parse-fail/pat-lt-bracket-6.rs
@@ -0,0 +1,13 @@
+// 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.
+
+fn main() {
+    let Test(&desc[..]) = x; //~ error: expected one of `,` or `@`, found `[`
+}
diff --git a/src/test/parse-fail/pat-lt-bracket-7.rs b/src/test/parse-fail/pat-lt-bracket-7.rs
new file mode 100644
index 00000000000..c7731d156ad
--- /dev/null
+++ b/src/test/parse-fail/pat-lt-bracket-7.rs
@@ -0,0 +1,13 @@
+// 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.
+
+fn main() {
+    for thing(x[]) {} //~ error: expected one of `,` or `@`, found `[`
+}
diff --git a/src/test/parse-fail/pat-ranges-1.rs b/src/test/parse-fail/pat-ranges-1.rs
new file mode 100644
index 00000000000..e1cbb961b1b
--- /dev/null
+++ b/src/test/parse-fail/pat-ranges-1.rs
@@ -0,0 +1,15 @@
+// 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.
+
+// Parsing of range patterns
+
+fn main() {
+    let macropus!() ... 11 = 12; //~ error: expected one of `:`, `;`, or `=`, found `...`
+}
diff --git a/src/test/parse-fail/pat-ranges-2.rs b/src/test/parse-fail/pat-ranges-2.rs
new file mode 100644
index 00000000000..04ad5ff083b
--- /dev/null
+++ b/src/test/parse-fail/pat-ranges-2.rs
@@ -0,0 +1,15 @@
+// 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.
+
+// Parsing of range patterns
+
+fn main() {
+    let 10 ... makropulos!() = 12; //~ error: expected one of `::`, `:`, `;`, or `=`, found `!`
+}
diff --git a/src/test/parse-fail/pat-ranges-3.rs b/src/test/parse-fail/pat-ranges-3.rs
new file mode 100644
index 00000000000..5f7aac71d29
--- /dev/null
+++ b/src/test/parse-fail/pat-ranges-3.rs
@@ -0,0 +1,15 @@
+// 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.
+
+// Parsing of range patterns
+
+fn main() {
+    let 10 ... 10 + 3 = 12; //~ expected one of `:`, `;`, or `=`, found `+`
+}
diff --git a/src/test/parse-fail/pat-ranges-4.rs b/src/test/parse-fail/pat-ranges-4.rs
new file mode 100644
index 00000000000..50dcb899527
--- /dev/null
+++ b/src/test/parse-fail/pat-ranges-4.rs
@@ -0,0 +1,15 @@
+// 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.
+
+// Parsing of range patterns
+
+fn main() {
+    let 10 - 3 ... 10 = 8; //~ error: expected one of `...`, `:`, `;`, or `=`, found `-`
+}