Skip to content

Commit 364d1ff

Browse files
committed
---
yaml --- r: 125872 b: refs/heads/try c: b9035c2 h: refs/heads/master v: v3
1 parent b8c43df commit 364d1ff

File tree

3 files changed

+28
-2
lines changed

3 files changed

+28
-2
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: f2fa55903e378368ed9173560f03a0ef16e371c2
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
44
refs/heads/snap-stage3: 9fc8394d3bce22ab483f98842434c84c396212ae
5-
refs/heads/try: caa564bea3d5f5a24d0797c4769184c1ea0abaff
5+
refs/heads/try: b9035c26e2c4368b39c8daa979f669d10d484825
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,9 @@ pub fn check_struct_like_enum_variant_pat(pcx: &pat_ctxt,
391391
check_struct_pat_fields(pcx, span, fields, class_fields,
392392
variant_id, substitutions, etc);
393393
}
394-
Some(&def::DefStruct(..)) | Some(&def::DefVariant(..)) => {
394+
Some(&def::DefStruct(..)) |
395+
Some(&def::DefVariant(..)) |
396+
Some(&def::DefTy(..)) => {
395397
let name = pprust::path_to_string(path);
396398
span_err!(tcx.sess, span, E0028,
397399
"mismatched types: expected `{}` but found `{}`",
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
2+
// file at the top-level directory of this distribution and at
3+
// http://rust-lang.org/COPYRIGHT.
4+
//
5+
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6+
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7+
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8+
// option. This file may not be copied, modified, or distributed
9+
// except according to those terms.
10+
11+
// Regression test for #15896. It used to ICE rustc.
12+
13+
fn main() {
14+
enum R { REB(()) }
15+
struct Tau { t: uint }
16+
enum E { B(R, Tau) }
17+
18+
let e = B(REB(()), Tau { t: 3 });
19+
let u = match e {
20+
B(
21+
Tau{t: x}, //~ ERROR mismatched types
22+
_) => x,
23+
};
24+
}

0 commit comments

Comments
 (0)