Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Properly bind nested pattern bindings when there's more than one
Fixes #15488.
- Loading branch information
Jakub Wieczorek
committed
Jul 6, 2014
1 parent
e05ec9a
commit 9f460e7
Showing
3 changed files
with
56 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
// 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() { | ||
let value = Some(1i); | ||
assert_eq!(match value { | ||
ref a @ Some(_) => a, | ||
ref b @ None => b | ||
}, &Some(1i)); | ||
assert_eq!(match value { | ||
ref a @ ref _c @ Some(_) => a, | ||
ref b @ None => b | ||
}, &Some(1i)); | ||
assert_eq!(match value { | ||
_a @ ref c @ Some(_) => c, | ||
ref b @ None => b | ||
}, &Some(1i)); | ||
assert_eq!(match "foobarbaz" { | ||
_a @ b @ _ => b | ||
}, "foobarbaz"); | ||
|
||
let a @ b @ c = "foobarbaz"; | ||
assert_eq!(a, "foobarbaz"); | ||
assert_eq!(b, "foobarbaz"); | ||
assert_eq!(c, "foobarbaz"); | ||
let value = Some(true); | ||
let ref a @ b @ ref c = value; | ||
assert_eq!(a, &Some(true)); | ||
assert_eq!(b, Some(true)); | ||
assert_eq!(c, &Some(true)); | ||
} |
9f460e7
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
saw approval from pcwalton
at https://github.com/jakub-/rust/commit/9f460e7af88ca6efc1a58ebe781b47447acdb21b
9f460e7
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
merging jakub-/rust/issue-15488 = 9f460e7 into auto
9f460e7
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
jakub-/rust/issue-15488 = 9f460e7 merged ok, testing candidate = f78d2f5
9f460e7
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all tests pass:
success: http://buildbot.rust-lang.org/builders/auto-mac-32-opt/builds/215
success: http://buildbot.rust-lang.org/builders/auto-mac-64-opt/builds/216
success: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt-c/builds/215
success: http://buildbot.rust-lang.org/builders/auto-mac-64-nopt-t/builds/216
success: http://buildbot.rust-lang.org/builders/auto-linux-32-opt/builds/218
success: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-c/builds/219
success: http://buildbot.rust-lang.org/builders/auto-linux-32-nopt-t/builds/218
success: http://buildbot.rust-lang.org/builders/auto-linux-64-opt/builds/224
success: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt-c/builds/219
success: http://buildbot.rust-lang.org/builders/auto-linux-64-nopt-t/builds/218
success: http://buildbot.rust-lang.org/builders/auto-linux-64-x-android-t/builds/221
success: http://buildbot.rust-lang.org/builders/auto-win-32-opt/builds/219
success: http://buildbot.rust-lang.org/builders/auto-win-32-nopt-t/builds/218
9f460e7
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fast-forwarding master to auto = f78d2f5