Skip to content

Commit 09f6c44

Browse files
committed
---
yaml --- r: 153455 b: refs/heads/try2 c: 741bb1a h: refs/heads/master i: 153453: 87edf3b 153451: da66a4c 153447: 8abe7d0 153439: b5374d8 v: v3
1 parent 8d3a9a4 commit 09f6c44

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ refs/heads/snap-stage3: 78a7676898d9f80ab540c6df5d4c9ce35bb50463
55
refs/heads/try: 519addf6277dbafccbb4159db4b710c37eaa2ec5
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
8-
refs/heads/try2: bdf5b6c3daa2797c704f1f1b335b1280b8d8fbdb
8+
refs/heads/try2: 741bb1a57e42c3a5e23ef9b01d4fc806b3fc56af
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/src/librustc/middle/typeck/check/_match.rs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -507,14 +507,20 @@ pub fn check_pat(pcx: &pat_ctxt, pat: &ast::Pat, expected: ty::t) {
507507
ty::ty_struct(cid, ref substs) => {
508508
// Verify that the pattern named the right structure.
509509
let item_did = tcx.def_map.borrow().get(&pat.id).def_id();
510-
let struct_did =
511-
ty::ty_to_def_id(
512-
ty::lookup_item_type(tcx, item_did).ty).unwrap();
513-
if struct_did != cid {
514-
span_err!(tcx.sess, pat.span, E0032,
515-
"`{}` does not name the structure `{}`",
516-
pprust::path_to_string(path),
517-
fcx.infcx().ty_to_string(expected));
510+
match ty::ty_to_def_id(ty::lookup_item_type(tcx, item_did).ty) {
511+
Some(struct_did) if struct_did != cid => {
512+
span_err!(tcx.sess, path.span, E0032,
513+
"`{}` does not name the structure `{}`",
514+
pprust::path_to_string(path),
515+
fcx.infcx().ty_to_string(expected));
516+
},
517+
Some(_) => {},
518+
None => {
519+
tcx.sess.span_bug(
520+
path.span,
521+
format!("This shouldn't happen: failed to lookup structure. \
522+
item_did = {}", item_did).as_slice())
523+
},
518524
}
519525

520526
check_struct_pat(pcx, pat.id, pat.span, expected, path,

0 commit comments

Comments
 (0)