Skip to content

Commit e2655a2

Browse files
committed
---
yaml --- r: 131389 b: refs/heads/dist-snap c: 04da31e h: refs/heads/master i: 131387: c52d4ef v: v3
1 parent 32c8601 commit e2655a2

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
@@ -6,7 +6,7 @@ refs/heads/try: 457a3c991d79b971be07fce75f9d0c12848fb37c
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c
9-
refs/heads/dist-snap: 9df25449f287e068042fe2948638bb93a21fba8e
9+
refs/heads/dist-snap: 04da31e64c983ff49234104b79133d4981ea3314
1010
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1111
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1212
refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0

branches/dist-snap/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/dist-snap/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)