Skip to content

Commit 7be8f0a

Browse files
committed
auto merge of #16306 : pnkfelix/rust/fsk-ast-refactor-PatWild, r=alexcrichton
AST refactoring: merge PatWild and PatWildMulti into one variant with a flag
2 parents 8fe73f1 + d320235 commit 7be8f0a

File tree

20 files changed

+42
-36
lines changed

20 files changed

+42
-36
lines changed

src/libregex_macros/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -594,7 +594,7 @@ fn exec<'t>(which: ::regex::native::MatchKind, input: &'t str,
594594
pats: vec!(box(GC) ast::Pat{
595595
id: ast::DUMMY_NODE_ID,
596596
span: self.sp,
597-
node: ast::PatWild,
597+
node: ast::PatWild(ast::PatWildSingle),
598598
}),
599599
guard: None,
600600
body: body,

src/librustc/middle/cfg/construct.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ impl<'a> CFGBuilder<'a> {
112112
ast::PatEnum(_, None) |
113113
ast::PatLit(..) |
114114
ast::PatRange(..) |
115-
ast::PatWild | ast::PatWildMulti => {
115+
ast::PatWild(_) => {
116116
self.add_node(pat.id, [pred])
117117
}
118118

src/librustc/middle/check_match.rs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ fn construct_witness(cx: &MatchCheckCtxt, ctor: &Constructor,
344344
let fields = ty::lookup_struct_fields(cx.tcx, vid);
345345
let field_pats: Vec<FieldPat> = fields.move_iter()
346346
.zip(pats.iter())
347-
.filter(|&(_, pat)| pat.node != PatWild)
347+
.filter(|&(_, pat)| pat.node != PatWild(PatWildSingle))
348348
.map(|(field, pat)| FieldPat {
349349
ident: Ident::new(field.name),
350350
pat: pat.clone()
@@ -372,7 +372,7 @@ fn construct_witness(cx: &MatchCheckCtxt, ctor: &Constructor,
372372
},
373373
_ => unreachable!()
374374
},
375-
ty::ty_str => PatWild,
375+
ty::ty_str => PatWild(PatWildSingle),
376376

377377
_ => {
378378
assert_eq!(pats.len(), 1);
@@ -394,7 +394,7 @@ fn construct_witness(cx: &MatchCheckCtxt, ctor: &Constructor,
394394
_ => {
395395
match *ctor {
396396
ConstantValue(ref v) => PatLit(const_val_to_expr(v)),
397-
_ => PatWild
397+
_ => PatWild(PatWildSingle),
398398
}
399399
}
400400
};
@@ -599,7 +599,7 @@ fn pat_constructors(cx: &MatchCheckCtxt, p: Gc<Pat>,
599599
},
600600
PatBox(_) | PatTup(_) | PatRegion(..) =>
601601
vec!(Single),
602-
PatWild | PatWildMulti =>
602+
PatWild(_) =>
603603
vec!(),
604604
PatMac(_) =>
605605
cx.tcx.sess.bug("unexpanded macro")
@@ -666,10 +666,7 @@ pub fn specialize(cx: &MatchCheckCtxt, r: &[Gc<Pat>],
666666
id: pat_id, node: ref node, span: pat_span
667667
} = &(*raw_pat(r[col]));
668668
let head: Option<Vec<Gc<Pat>>> = match node {
669-
&PatWild =>
670-
Some(Vec::from_elem(arity, wild())),
671-
672-
&PatWildMulti =>
669+
&PatWild(_) =>
673670
Some(Vec::from_elem(arity, wild())),
674671

675672
&PatIdent(_, _, _) => {

src/librustc/middle/kind.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -706,7 +706,7 @@ fn check_sized(tcx: &ty::ctxt, ty: ty::t, name: String, sp: Span) {
706706
// Check that any variables in a pattern have types with statically known size.
707707
fn check_pat(cx: &mut Context, pat: &Pat) {
708708
let var_name = match pat.node {
709-
PatWild => Some("_".to_string()),
709+
PatWild(PatWildSingle) => Some("_".to_string()),
710710
PatIdent(_, ref path1, _) => Some(ident_to_string(&path1.node).to_string()),
711711
_ => None
712712
};

src/librustc/middle/mem_categorization.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1026,7 +1026,7 @@ impl<'t,TYPER:Typer> MemCategorizationContext<'t,TYPER> {
10261026
op(self, cmt.clone(), pat);
10271027

10281028
match pat.node {
1029-
ast::PatWild | ast::PatWildMulti => {
1029+
ast::PatWild(_) => {
10301030
// _
10311031
}
10321032

src/librustc/middle/pat_util.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ pub fn pat_is_binding(dm: &resolve::DefMap, pat: &Pat) -> bool {
6868
pub fn pat_is_binding_or_wild(dm: &resolve::DefMap, pat: &Pat) -> bool {
6969
match pat.node {
7070
PatIdent(..) => pat_is_binding(dm, pat),
71-
PatWild | PatWildMulti => true,
71+
PatWild(_) => true,
7272
_ => false
7373
}
7474
}
@@ -116,7 +116,7 @@ pub fn simple_identifier<'a>(pat: &'a Pat) -> Option<&'a Ident> {
116116
}
117117

118118
pub fn wild() -> Gc<Pat> {
119-
box (GC) Pat { id: 0, node: PatWild, span: DUMMY_SP }
119+
box (GC) Pat { id: 0, node: PatWild(PatWildSingle), span: DUMMY_SP }
120120
}
121121

122122
pub fn def_to_path(tcx: &ty::ctxt, id: DefId) -> Path {

src/librustc/middle/trans/_match.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1392,7 +1392,7 @@ fn trans_match_inner<'a>(scope_cx: &'a Block<'a>,
13921392
// to the default arm.
13931393
let has_default = arms.last().map_or(false, |arm| {
13941394
arm.pats.len() == 1
1395-
&& arm.pats.last().unwrap().node == ast::PatWild
1395+
&& arm.pats.last().unwrap().node == ast::PatWild(ast::PatWildSingle)
13961396
});
13971397

13981398
compile_submatch(bcx, matches.as_slice(), [discr_datum.val], &chk, has_default);
@@ -1762,7 +1762,7 @@ fn bind_irrefutable_pat<'a>(
17621762
ast::PatMac(..) => {
17631763
bcx.sess().span_bug(pat.span, "unexpanded macro");
17641764
}
1765-
ast::PatWild | ast::PatWildMulti | ast::PatLit(_) | ast::PatRange(_, _) => ()
1765+
ast::PatWild(_) | ast::PatLit(_) | ast::PatRange(_, _) => ()
17661766
}
17671767
return bcx;
17681768
}

src/librustc/middle/trans/base.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1032,7 +1032,7 @@ pub fn store_ty(cx: &Block, v: ValueRef, dst: ValueRef, t: ty::t) {
10321032

10331033
pub fn ignore_lhs(_bcx: &Block, local: &ast::Local) -> bool {
10341034
match local.pat.node {
1035-
ast::PatWild => true, _ => false
1035+
ast::PatWild(ast::PatWildSingle) => true, _ => false
10361036
}
10371037
}
10381038

src/librustc/middle/trans/debuginfo.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3429,7 +3429,7 @@ fn populate_scope_map(cx: &CrateContext,
34293429
}
34303430
}
34313431

3432-
ast::PatWild | ast::PatWildMulti => {
3432+
ast::PatWild(_) => {
34333433
scope_map.insert(pat.id, scope_stack.last().unwrap().scope_metadata);
34343434
}
34353435

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -412,7 +412,7 @@ pub fn check_pat(pcx: &pat_ctxt, pat: &ast::Pat, expected: ty::t) {
412412
let tcx = pcx.fcx.ccx.tcx;
413413

414414
match pat.node {
415-
ast::PatWild | ast::PatWildMulti => {
415+
ast::PatWild(_) => {
416416
fcx.write_ty(pat.id, expected);
417417
}
418418
ast::PatLit(ref lt) => {

0 commit comments

Comments
 (0)