Skip to content

Commit f549ab0

Browse files
committed
---
yaml --- r: 83747 b: refs/heads/try c: da7f411 h: refs/heads/master i: 83745: b888180 83743: a82ab96 v: v3
1 parent 9416e21 commit f549ab0

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
refs/heads/master: 0e4d1fc8cae42e15e00f71d9f439b01bb25a86ae
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 6c08cc2db4f98e9f07ae7d50338396c4123c2f0a
5-
refs/heads/try: 822699e57e09d7070e122c6ed3c109ac402bc5dd
5+
refs/heads/try: da7f41104dda48ac3a03cfa039cb3e9570f91a35
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c

branches/try/src/librustc/middle/check_match.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -662,15 +662,14 @@ fn specialize(cx: &MatchCheckCtxt,
662662
_ => None
663663
}
664664
}
665-
PatStruct(_, ref flds, _) => {
665+
PatStruct(_, ref pattern_fields, _) => {
666666
// Is this a struct or an enum variant?
667667
match cx.tcx.def_map.get_copy(&pat_id) {
668668
DefVariant(_, variant_id, _) => {
669669
if variant(variant_id) == *ctor_id {
670-
// FIXME #4731: Is this right? --pcw
671-
let args = flds.map(|ty_field| {
672-
match flds.iter().find(|f|
673-
f.ident == ty_field.ident) {
670+
let struct_fields = ty::lookup_struct_fields(cx.tcx, variant_id);
671+
let args = struct_fields.map(|sf| {
672+
match pattern_fields.iter().find(|f| f.ident.name == sf.name) {
674673
Some(f) => f.pat,
675674
_ => wild()
676675
}
@@ -700,7 +699,7 @@ fn specialize(cx: &MatchCheckCtxt,
700699
}
701700
}
702701
let args = class_fields.iter().map(|class_field| {
703-
match flds.iter().find(|f|
702+
match pattern_fields.iter().find(|f|
704703
f.ident.name == class_field.name) {
705704
Some(f) => f.pat,
706705
_ => wild()

0 commit comments

Comments
 (0)