Skip to content

Commit 6fe6a6f

Browse files
committed
auto merge of #10657 : sanxiyn/rust/pat, r=cmr
2 parents 679a2c0 + 9028330 commit 6fe6a6f

File tree

14 files changed

+26
-49
lines changed

14 files changed

+26
-49
lines changed

src/librustc/middle/borrowck/check_loans.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ impl<'self> Visitor<()> for CheckLoanCtxt<'self> {
5151
fn visit_block(&mut self, b:&ast::Block, _:()) {
5252
check_loans_in_block(self, b);
5353
}
54-
fn visit_pat(&mut self, p:@ast::Pat, _:()) {
54+
fn visit_pat(&mut self, p:&ast::Pat, _:()) {
5555
check_loans_in_pat(self, p);
5656
}
5757
fn visit_fn(&mut self, fk:&visit::fn_kind, fd:&ast::fn_decl,
@@ -847,7 +847,7 @@ fn check_loans_in_expr<'a>(this: &mut CheckLoanCtxt<'a>,
847847
}
848848

849849
fn check_loans_in_pat<'a>(this: &mut CheckLoanCtxt<'a>,
850-
pat: @ast::Pat)
850+
pat: &ast::Pat)
851851
{
852852
this.check_for_conflicting_loans(pat.id);
853853
this.check_move_out_from_id(pat.id, pat.span);

src/librustc/middle/borrowck/gather_loans/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ impl<'self> visit::Visitor<()> for GatherLoanCtxt<'self> {
8787
fn visit_stmt(&mut self, s:@Stmt, _:()) {
8888
add_stmt_to_map(self, s);
8989
}
90-
fn visit_pat(&mut self, p:@Pat, _:()) {
90+
fn visit_pat(&mut self, p:&Pat, _:()) {
9191
add_pat_to_id_range(self, p);
9292
}
9393
fn visit_local(&mut self, l:@Local, _:()) {
@@ -119,7 +119,7 @@ pub fn gather_loans(bccx: &BorrowckCtxt,
119119
}
120120

121121
fn add_pat_to_id_range(this: &mut GatherLoanCtxt,
122-
p: @ast::Pat) {
122+
p: &ast::Pat) {
123123
// NB: This visitor function just adds the pat ids into the id
124124
// range. We gather loans that occur in patterns using the
125125
// `gather_pat()` method below. Eventually these two should be

src/librustc/middle/check_const.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ impl Visitor<bool> for CheckCrateVisitor {
3333
fn visit_item(&mut self, i:@item, env:bool) {
3434
check_item(self, self.sess, self.ast_map, self.def_map, i, env);
3535
}
36-
fn visit_pat(&mut self, p:@Pat, env:bool) {
36+
fn visit_pat(&mut self, p:&Pat, env:bool) {
3737
check_pat(self, p, env);
3838
}
3939
fn visit_expr(&mut self, ex:@Expr, env:bool) {
@@ -81,7 +81,7 @@ pub fn check_item(v: &mut CheckCrateVisitor,
8181
}
8282
}
8383

84-
pub fn check_pat(v: &mut CheckCrateVisitor, p: @Pat, _is_const: bool) {
84+
pub fn check_pat(v: &mut CheckCrateVisitor, p: &Pat, _is_const: bool) {
8585
fn is_str(e: @Expr) -> bool {
8686
match e.node {
8787
ExprVstore(

src/librustc/middle/lint.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -900,7 +900,7 @@ fn check_unsafe_block(cx: &Context, e: &ast::Expr) {
900900
}
901901
}
902902

903-
fn check_unused_mut_pat(cx: &Context, p: @ast::Pat) {
903+
fn check_unused_mut_pat(cx: &Context, p: &ast::Pat) {
904904
match p.node {
905905
ast::PatIdent(ast::BindByValue(ast::MutMutable),
906906
ref path, _) if pat_util::pat_is_binding(cx.tcx.def_map, p)=> {
@@ -1119,7 +1119,7 @@ impl<'self> Visitor<()> for Context<'self> {
11191119
}
11201120
}
11211121

1122-
fn visit_pat(&mut self, p: @ast::Pat, _: ()) {
1122+
fn visit_pat(&mut self, p: &ast::Pat, _: ()) {
11231123
check_pat_non_uppercase_statics(self, p);
11241124
check_unused_mut_pat(self, p);
11251125

src/librustc/middle/moves.rs

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -459,8 +459,6 @@ impl VisitContext {
459459
}
460460

461461
ExprMatch(discr, ref arms) => {
462-
// We must do this first so that `arms_have_by_move_bindings`
463-
// below knows which bindings are moves.
464462
for arm in arms.iter() {
465463
self.consume_arm(arm);
466464
}
@@ -657,27 +655,6 @@ impl VisitContext {
657655
self.consume_expr(arg_expr)
658656
}
659657

660-
pub fn arms_have_by_move_bindings(&mut self,
661-
moves_map: MovesMap,
662-
arms: &[Arm])
663-
-> Option<@Pat> {
664-
let mut ret = None;
665-
for arm in arms.iter() {
666-
for &pat in arm.pats.iter() {
667-
let cont = do ast_util::walk_pat(pat) |p| {
668-
if moves_map.contains(&p.id) {
669-
ret = Some(p);
670-
false
671-
} else {
672-
true
673-
}
674-
};
675-
if !cont { return ret }
676-
}
677-
}
678-
ret
679-
}
680-
681658
pub fn compute_captures(&mut self, fn_expr_id: NodeId) -> @[CaptureVar] {
682659
debug!("compute_capture_vars(fn_expr_id={:?})", fn_expr_id);
683660
let _indenter = indenter();

src/librustc/middle/pat_util.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ pub type PatIdMap = HashMap<Ident, NodeId>;
2020

2121
// This is used because same-named variables in alternative patterns need to
2222
// use the NodeId of their namesake in the first pattern.
23-
pub fn pat_id_map(dm: resolve::DefMap, pat: @Pat) -> PatIdMap {
23+
pub fn pat_id_map(dm: resolve::DefMap, pat: &Pat) -> PatIdMap {
2424
let mut map = HashMap::new();
2525
do pat_bindings(dm, pat) |_bm, p_id, _s, n| {
2626
map.insert(path_to_ident(n), p_id);
@@ -52,7 +52,7 @@ pub fn pat_is_const(dm: resolve::DefMap, pat: &Pat) -> bool {
5252
}
5353
}
5454

55-
pub fn pat_is_binding(dm: resolve::DefMap, pat: @Pat) -> bool {
55+
pub fn pat_is_binding(dm: resolve::DefMap, pat: &Pat) -> bool {
5656
match pat.node {
5757
PatIdent(*) => {
5858
!pat_is_variant_or_struct(dm, pat) &&
@@ -62,7 +62,7 @@ pub fn pat_is_binding(dm: resolve::DefMap, pat: @Pat) -> bool {
6262
}
6363
}
6464

65-
pub fn pat_is_binding_or_wild(dm: resolve::DefMap, pat: @Pat) -> bool {
65+
pub fn pat_is_binding_or_wild(dm: resolve::DefMap, pat: &Pat) -> bool {
6666
match pat.node {
6767
PatIdent(*) => pat_is_binding(dm, pat),
6868
PatWild | PatWildMulti => true,
@@ -73,7 +73,7 @@ pub fn pat_is_binding_or_wild(dm: resolve::DefMap, pat: @Pat) -> bool {
7373
/// Call `it` on every "binding" in a pattern, e.g., on `a` in
7474
/// `match foo() { Some(a) => (), None => () }`
7575
pub fn pat_bindings(dm: resolve::DefMap,
76-
pat: @Pat,
76+
pat: &Pat,
7777
it: |BindingMode, NodeId, Span, &Path|) {
7878
do walk_pat(pat) |p| {
7979
match p.node {
@@ -86,15 +86,15 @@ pub fn pat_bindings(dm: resolve::DefMap,
8686
};
8787
}
8888

89-
pub fn pat_binding_ids(dm: resolve::DefMap, pat: @Pat) -> ~[NodeId] {
89+
pub fn pat_binding_ids(dm: resolve::DefMap, pat: &Pat) -> ~[NodeId] {
9090
let mut found = ~[];
9191
pat_bindings(dm, pat, |_bm, b_id, _sp, _pt| found.push(b_id) );
9292
return found;
9393
}
9494

9595
/// Checks if the pattern contains any patterns that bind something to
9696
/// an ident, e.g. `foo`, or `Foo(foo)` or `foo @ Bar(*)`.
97-
pub fn pat_contains_bindings(dm: resolve::DefMap, pat: @Pat) -> bool {
97+
pub fn pat_contains_bindings(dm: resolve::DefMap, pat: &Pat) -> bool {
9898
let mut contains_bindings = false;
9999
do walk_pat(pat) |p| {
100100
if pat_is_binding(dm, p) {

src/librustc/middle/privacy.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -739,7 +739,7 @@ impl<'self> Visitor<()> for PrivacyVisitor<'self> {
739739
}
740740
}
741741

742-
fn visit_pat(&mut self, pattern: @ast::Pat, _: ()) {
742+
fn visit_pat(&mut self, pattern: &ast::Pat, _: ()) {
743743
match pattern.node {
744744
ast::PatStruct(_, ref fields, _) => {
745745
match ty::get(ty::pat_ty(self.tcx, pattern)).sty {

src/librustc/middle/region.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ fn resolve_arm(visitor: &mut RegionResolutionVisitor,
340340
}
341341

342342
fn resolve_pat(visitor: &mut RegionResolutionVisitor,
343-
pat: @ast::Pat,
343+
pat: &ast::Pat,
344344
cx: Context) {
345345
assert_eq!(cx.var_parent, cx.parent);
346346
parent_to_expr(visitor, cx, pat.id, pat.span);
@@ -480,7 +480,7 @@ impl Visitor<Context> for RegionResolutionVisitor {
480480
fn visit_arm(&mut self, a:&Arm, cx:Context) {
481481
resolve_arm(self, a, cx);
482482
}
483-
fn visit_pat(&mut self, p:@Pat, cx:Context) {
483+
fn visit_pat(&mut self, p:&Pat, cx:Context) {
484484
resolve_pat(self, p, cx);
485485
}
486486
fn visit_stmt(&mut self, s:@Stmt, cx:Context) {

src/librustc/middle/typeck/check/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@ impl Visitor<()> for GatherLocalsVisitor {
375375

376376
}
377377
// Add pattern bindings.
378-
fn visit_pat(&mut self, p:@ast::Pat, _:()) {
378+
fn visit_pat(&mut self, p:&ast::Pat, _:()) {
379379
match p.node {
380380
ast::PatIdent(_, ref path, _)
381381
if pat_util::pat_is_binding(self.fcx.ccx.tcx.def_map, p) => {

src/librustc/middle/typeck/check/writeback.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -278,7 +278,7 @@ fn visit_block(b: &ast::Block, wbcx: &mut WbCtxt) {
278278
visit::walk_block(wbcx, b, ());
279279
}
280280

281-
fn visit_pat(p: @ast::Pat, wbcx: &mut WbCtxt) {
281+
fn visit_pat(p: &ast::Pat, wbcx: &mut WbCtxt) {
282282
if !wbcx.success {
283283
return;
284284
}
@@ -323,7 +323,7 @@ impl Visitor<()> for WbCtxt {
323323
fn visit_stmt(&mut self, s:@ast::Stmt, _:()) { visit_stmt(s, self); }
324324
fn visit_expr(&mut self, ex:@ast::Expr, _:()) { visit_expr(ex, self); }
325325
fn visit_block(&mut self, b:&ast::Block, _:()) { visit_block(b, self); }
326-
fn visit_pat(&mut self, p:@ast::Pat, _:()) { visit_pat(p, self); }
326+
fn visit_pat(&mut self, p:&ast::Pat, _:()) { visit_pat(p, self); }
327327
fn visit_local(&mut self, l:@ast::Local, _:()) { visit_local(l, self); }
328328
}
329329

src/libsyntax/ast_map.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -242,7 +242,7 @@ impl Ctx {
242242
visit::walk_block(self, b, ());
243243
}
244244

245-
fn map_pat(&mut self, pat: @Pat) {
245+
fn map_pat(&mut self, pat: &Pat) {
246246
match pat.node {
247247
PatIdent(_, ref path, _) => {
248248
// Note: this is at least *potentially* a pattern...
@@ -345,7 +345,7 @@ impl Visitor<()> for Ctx {
345345
self.path.pop();
346346
}
347347

348-
fn visit_pat(&mut self, pat: @Pat, _: ()) {
348+
fn visit_pat(&mut self, pat: &Pat, _: ()) {
349349
self.map_pat(pat);
350350
visit::walk_pat(self, pat, ())
351351
}

src/libsyntax/ast_util.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -497,7 +497,7 @@ impl<'self, O: IdVisitingOperation> Visitor<()> for IdVisitor<'self, O> {
497497
visit::walk_stmt(self, statement, env)
498498
}
499499

500-
fn visit_pat(&mut self, pattern: @Pat, env: ()) {
500+
fn visit_pat(&mut self, pattern: &Pat, env: ()) {
501501
self.operation.visit_id(pattern.id);
502502
visit::walk_pat(self, pattern, env)
503503
}
@@ -636,7 +636,7 @@ pub fn is_item_impl(item: @ast::item) -> bool {
636636
}
637637
}
638638

639-
pub fn walk_pat(pat: @Pat, it: |@Pat| -> bool) -> bool {
639+
pub fn walk_pat(pat: &Pat, it: |&Pat| -> bool) -> bool {
640640
if !it(pat) {
641641
return false;
642642
}

src/libsyntax/ext/expand.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -612,7 +612,7 @@ struct NewNameFinderContext {
612612
}
613613

614614
impl Visitor<()> for NewNameFinderContext {
615-
fn visit_pat(&mut self, pattern: @ast::Pat, _: ()) {
615+
fn visit_pat(&mut self, pattern: &ast::Pat, _: ()) {
616616
match *pattern {
617617
// we found a pat_ident!
618618
ast::Pat {

src/libsyntax/visit.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ pub trait Visitor<E:Clone> {
7878
fn visit_block(&mut self, b:&Block, e:E) { walk_block(self, b, e) }
7979
fn visit_stmt(&mut self, s:@Stmt, e:E) { walk_stmt(self, s, e) }
8080
fn visit_arm(&mut self, a:&Arm, e:E) { walk_arm(self, a, e) }
81-
fn visit_pat(&mut self, p:@Pat, e:E) { walk_pat(self, p, e) }
81+
fn visit_pat(&mut self, p:&Pat, e:E) { walk_pat(self, p, e) }
8282
fn visit_decl(&mut self, d:@Decl, e:E) { walk_decl(self, d, e) }
8383
fn visit_expr(&mut self, ex:@Expr, e:E) { walk_expr(self, ex, e) }
8484
fn visit_expr_post(&mut self, _ex:@Expr, _e:E) { }

0 commit comments

Comments
 (0)