Skip to content

Commit bbd8f56

Browse files
committed
---
yaml --- r: 152966 b: refs/heads/try2 c: 04da31e h: refs/heads/master v: v3
1 parent 2991e0d commit bbd8f56

File tree

4 files changed

+26
-3
lines changed

4 files changed

+26
-3
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: 9df25449f287e068042fe2948638bb93a21fba8e
8+
refs/heads/try2: 04da31e64c983ff49234104b79133d4981ea3314
99
refs/heads/dist-snap: ba4081a5a8573875fed17545846f6f6902c8ba8d
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503

branches/try2/src/doc/guide.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -285,8 +285,9 @@ At first, your program doesn't have any dependencies, so we'll only be using
285285
the first part of its functionality. Eventually, we'll add more. Since we
286286
started off by using Cargo, it'll be easy to add later.
287287

288-
Let's convert Hello World to Cargo. The first thing we need to do is install
289-
it. To do this, we need to build it from source. There are no binaries yet.
288+
Let's convert Hello World to Cargo. The first thing we need to do to begin using Cargo
289+
is to install Cargo. To do this, we need to build it from source. There are no binaries
290+
yet.
290291

291292
First, let's go back to our projects directory. We don't want Cargo to
292293
live in our project!

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,9 @@ pub fn check_struct_pat_fields(pcx: &pat_ctxt,
318318
for field in fields.iter() {
319319
match field_map.find_mut(&field.ident.name) {
320320
Some(&(_, true)) => {
321+
// Check the pattern anyway, so that attempts to look
322+
// up its type won't fail
323+
check_pat(pcx, &*field.pat, ty::mk_err());
321324
tcx.sess.span_err(span,
322325
format!("field `{}` bound twice in pattern",
323326
token::get_ident(field.ident)).as_slice());
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
// Copyright 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+
struct Foo {
12+
a: uint,
13+
}
14+
15+
fn main(){
16+
let Foo {a: _, a: _} = Foo {a: 29};
17+
//~^ ERROR field `a` bound twice in pattern
18+
}
19+

0 commit comments

Comments
 (0)