diff options
| author | Corey Richardson <corey@octayn.net> | 2013-12-31 19:07:41 -0500 |
|---|---|---|
| committer | Corey Richardson <corey@octayn.net> | 2014-01-05 21:36:53 -0500 |
| commit | ccaf0b4654a3c71b58b92bdc86da03126d494a20 (patch) | |
| tree | 3fc3eb1b3e116b4b9e5f0b5affe006c88f4d052e | |
| parent | 1535a29f01107d50174354b845d36aeba87747ca (diff) | |
| download | rust-ccaf0b4654a3c71b58b92bdc86da03126d494a20.tar.gz rust-ccaf0b4654a3c71b58b92bdc86da03126d494a20.zip | |
Remove a fixme
pcwalton says this is right, and it looks right to me too. Closes #4731
| -rw-r--r-- | src/librustc/middle/check_match.rs | 1 | ||||
| -rw-r--r-- | src/test/compile-fail/struct-pattern-match-useless.rs | 23 | ||||
| -rw-r--r-- | src/test/run-pass/struct-pattern-matching.rs | 6 |
3 files changed, 28 insertions, 2 deletions
diff --git a/src/librustc/middle/check_match.rs b/src/librustc/middle/check_match.rs index 079c2750268..5739225a5ea 100644 --- a/src/librustc/middle/check_match.rs +++ b/src/librustc/middle/check_match.rs @@ -673,7 +673,6 @@ fn specialize(cx: &MatchCheckCtxt, DefFn(..) | DefStruct(..) => { - // FIXME #4731: Is this right? --pcw let new_args; match args { Some(args) => new_args = args, diff --git a/src/test/compile-fail/struct-pattern-match-useless.rs b/src/test/compile-fail/struct-pattern-match-useless.rs new file mode 100644 index 00000000000..b9c0be9276d --- /dev/null +++ b/src/test/compile-fail/struct-pattern-match-useless.rs @@ -0,0 +1,23 @@ +// 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. + +struct Foo { + x: int, + y: int, +} + +pub fn main() { + let a = Foo { x: 1, y: 2 }; + match a { + Foo { x: x, y: y } => (), + Foo { .. } => () //~ ERROR unreachable pattern + } + +} diff --git a/src/test/run-pass/struct-pattern-matching.rs b/src/test/run-pass/struct-pattern-matching.rs index d2b038fab0e..6033554d0cb 100644 --- a/src/test/run-pass/struct-pattern-matching.rs +++ b/src/test/run-pass/struct-pattern-matching.rs @@ -1,4 +1,4 @@ -// Copyright 2012 The Rust Project Developers. See the COPYRIGHT +// 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. // @@ -18,4 +18,8 @@ pub fn main() { match a { Foo { x: x, y: y } => println!("yes, {}, {}", x, y) } + + match a { + Foo { .. } => () + } } |
