auto merge of #14483 : ahmedcharles/rust/patbox, r=alexcrichton

This commit is contained in:
bors 2014-05-29 12:11:40 -07:00
commit 729ee20338
14 changed files with 20 additions and 20 deletions

View File

@ -113,7 +113,7 @@ impl<'a> CFGBuilder<'a> {
self.add_node(pat.id, [pred]) self.add_node(pat.id, [pred])
} }
ast::PatUniq(subpat) | ast::PatBox(subpat) |
ast::PatRegion(subpat) | ast::PatRegion(subpat) |
ast::PatIdent(_, _, Some(subpat)) => { ast::PatIdent(_, _, Some(subpat)) => {
let subpat_exit = self.pat(subpat, pred); let subpat_exit = self.pat(subpat, pred);

View File

@ -383,7 +383,7 @@ fn pat_ctor_id(cx: &MatchCheckCtxt, p: @Pat) -> Option<ctor> {
_ => Some(single) _ => Some(single)
} }
} }
PatUniq(_) | PatTup(_) | PatRegion(..) => { PatBox(_) | PatTup(_) | PatRegion(..) => {
Some(single) Some(single)
} }
PatVec(ref before, slice, ref after) => { PatVec(ref before, slice, ref after) => {
@ -764,7 +764,7 @@ fn specialize(cx: &MatchCheckCtxt,
PatTup(args) => { PatTup(args) => {
Some(args.iter().map(|x| *x).collect::<Vec<_>>().append(r.tail())) Some(args.iter().map(|x| *x).collect::<Vec<_>>().append(r.tail()))
} }
PatUniq(a) | PatRegion(a) => { PatBox(a) | PatRegion(a) => {
Some((vec!(a)).append(r.tail())) Some((vec!(a)).append(r.tail()))
} }
PatLit(expr) => { PatLit(expr) => {
@ -924,7 +924,7 @@ fn find_refutable(cx: &MatchCheckCtxt, pat: &Pat, spans: &mut Vec<Span>) {
} }
match pat.node { match pat.node {
PatUniq(sub) | PatRegion(sub) | PatIdent(_, _, Some(sub)) => { PatBox(sub) | PatRegion(sub) | PatIdent(_, _, Some(sub)) => {
find_refutable(cx, sub, spans) find_refutable(cx, sub, spans)
} }
PatWild | PatWildMulti | PatIdent(_, _, None) => {} PatWild | PatWildMulti | PatIdent(_, _, None) => {}

View File

@ -1064,7 +1064,7 @@ impl<'t,TYPER:Typer> MemCategorizationContext<'t,TYPER> {
} }
} }
ast::PatUniq(subpat) | ast::PatRegion(subpat) => { ast::PatBox(subpat) | ast::PatRegion(subpat) => {
// @p1, ~p1 // @p1, ~p1
let subcmt = self.cat_deref(pat, cmt, 0); let subcmt = self.cat_deref(pat, cmt, 0);
if_ok!(self.cat_pattern(subcmt, subpat, op)); if_ok!(self.cat_pattern(subcmt, subpat, op));

View File

@ -671,7 +671,7 @@ fn resolve_local(visitor: &mut RegionResolutionVisitor,
subpats.iter().any(|&p| is_binding_pat(p)) subpats.iter().any(|&p| is_binding_pat(p))
} }
ast::PatUniq(subpat) => { ast::PatBox(subpat) => {
is_binding_pat(subpat) is_binding_pat(subpat)
} }

View File

@ -838,7 +838,7 @@ fn enter_uniq<'a, 'b>(
let dummy = @ast::Pat {id: 0, node: ast::PatWild, span: DUMMY_SP}; let dummy = @ast::Pat {id: 0, node: ast::PatWild, span: DUMMY_SP};
enter_match(bcx, dm, m, col, val, |p| { enter_match(bcx, dm, m, col, val, |p| {
match p.node { match p.node {
ast::PatUniq(sub) => { ast::PatBox(sub) => {
Some(vec!(sub)) Some(vec!(sub))
} }
_ => { _ => {
@ -1105,7 +1105,7 @@ macro_rules! any_pat (
) )
fn any_uniq_pat(m: &[Match], col: uint) -> bool { fn any_uniq_pat(m: &[Match], col: uint) -> bool {
any_pat!(m, ast::PatUniq(_)) any_pat!(m, ast::PatBox(_))
} }
fn any_region_pat(m: &[Match], col: uint) -> bool { fn any_region_pat(m: &[Match], col: uint) -> bool {
@ -2270,7 +2270,7 @@ fn bind_irrefutable_pat<'a>(
binding_mode, cleanup_scope); binding_mode, cleanup_scope);
} }
} }
ast::PatUniq(inner) => { ast::PatBox(inner) => {
let llbox = Load(bcx, val); let llbox = Load(bcx, val);
bcx = bind_irrefutable_pat(bcx, inner, llbox, binding_mode, cleanup_scope); bcx = bind_irrefutable_pat(bcx, inner, llbox, binding_mode, cleanup_scope);
} }

View File

@ -2632,7 +2632,7 @@ fn populate_scope_map(cx: &CrateContext,
} }
} }
ast::PatUniq(sub_pat) | ast::PatRegion(sub_pat) => { ast::PatBox(sub_pat) | ast::PatRegion(sub_pat) => {
scope_map.insert(pat.id, scope_stack.last().unwrap().scope_metadata); scope_map.insert(pat.id, scope_stack.last().unwrap().scope_metadata);
walk_pattern(cx, sub_pat, scope_stack, scope_map); walk_pattern(cx, sub_pat, scope_stack, scope_map);
} }

View File

@ -626,7 +626,7 @@ pub fn check_pat(pcx: &pat_ctxt, pat: &ast::Pat, expected: ty::t) {
} }
} }
} }
ast::PatUniq(inner) => { ast::PatBox(inner) => {
check_pointer_pat(pcx, Send, inner, pat.id, pat.span, expected); check_pointer_pat(pcx, Send, inner, pat.id, pat.span, expected);
} }
ast::PatRegion(inner) => { ast::PatRegion(inner) => {

View File

@ -1721,7 +1721,7 @@ fn name_from_pat(p: &ast::Pat) -> String {
PatStruct(..) => fail!("tried to get argument name from pat_struct, \ PatStruct(..) => fail!("tried to get argument name from pat_struct, \
which is not allowed in function arguments"), which is not allowed in function arguments"),
PatTup(..) => "(tuple arg NYI)".to_string(), PatTup(..) => "(tuple arg NYI)".to_string(),
PatUniq(p) => name_from_pat(p), PatBox(p) => name_from_pat(p),
PatRegion(p) => name_from_pat(p), PatRegion(p) => name_from_pat(p),
PatLit(..) => { PatLit(..) => {
warn!("tried to get argument name from PatLit, \ warn!("tried to get argument name from PatLit, \

View File

@ -347,7 +347,7 @@ pub enum Pat_ {
* we don't bind the fields to names */ * we don't bind the fields to names */
PatStruct(Path, Vec<FieldPat> , bool), PatStruct(Path, Vec<FieldPat> , bool),
PatTup(Vec<@Pat> ), PatTup(Vec<@Pat> ),
PatUniq(@Pat), PatBox(@Pat),
PatRegion(@Pat), // reference pattern PatRegion(@Pat), // reference pattern
PatLit(@Expr), PatLit(@Expr),
PatRange(@Expr, @Expr), PatRange(@Expr, @Expr),

View File

@ -657,7 +657,7 @@ pub fn walk_pat(pat: &Pat, it: |&Pat| -> bool) -> bool {
PatEnum(_, Some(ref s)) | PatTup(ref s) => { PatEnum(_, Some(ref s)) | PatTup(ref s) => {
s.iter().advance(|&p| walk_pat(p, |p| it(p))) s.iter().advance(|&p| walk_pat(p, |p| it(p)))
} }
PatUniq(s) | PatRegion(s) => { PatBox(s) | PatRegion(s) => {
walk_pat(s, it) walk_pat(s, it)
} }
PatVec(ref before, ref slice, ref after) => { PatVec(ref before, ref slice, ref after) => {

View File

@ -760,7 +760,7 @@ pub fn noop_fold_pat<T: Folder>(p: @Pat, folder: &mut T) -> @Pat {
PatStruct(pth_, fs, etc) PatStruct(pth_, fs, etc)
} }
PatTup(ref elts) => PatTup(elts.iter().map(|x| folder.fold_pat(*x)).collect()), PatTup(ref elts) => PatTup(elts.iter().map(|x| folder.fold_pat(*x)).collect()),
PatUniq(inner) => PatUniq(folder.fold_pat(inner)), PatBox(inner) => PatBox(folder.fold_pat(inner)),
PatRegion(inner) => PatRegion(folder.fold_pat(inner)), PatRegion(inner) => PatRegion(folder.fold_pat(inner)),
PatRange(e1, e2) => { PatRange(e1, e2) => {
PatRange(folder.fold_expr(e1), folder.fold_expr(e2)) PatRange(folder.fold_expr(e1), folder.fold_expr(e2))

View File

@ -39,7 +39,7 @@ use ast::{MutImmutable, MutMutable, Mac_, MacInvocTT, Matcher, MatchNonterminal}
use ast::{MatchSeq, MatchTok, Method, MutTy, BiMul, Mutability}; use ast::{MatchSeq, MatchTok, Method, MutTy, BiMul, Mutability};
use ast::{NamedField, UnNeg, NoReturn, UnNot, P, Pat, PatEnum}; use ast::{NamedField, UnNeg, NoReturn, UnNot, P, Pat, PatEnum};
use ast::{PatIdent, PatLit, PatRange, PatRegion, PatStruct}; use ast::{PatIdent, PatLit, PatRange, PatRegion, PatStruct};
use ast::{PatTup, PatUniq, PatWild, PatWildMulti}; use ast::{PatTup, PatBox, PatWild, PatWildMulti};
use ast::{BiRem, Required}; use ast::{BiRem, Required};
use ast::{RetStyle, Return, BiShl, BiShr, Stmt, StmtDecl}; use ast::{RetStyle, Return, BiShl, BiShr, Stmt, StmtDecl};
use ast::{Sized, DynSize, StaticSize}; use ast::{Sized, DynSize, StaticSize};
@ -2784,7 +2784,7 @@ impl<'a> Parser<'a> {
// parse ~pat // parse ~pat
self.bump(); self.bump();
let sub = self.parse_pat(); let sub = self.parse_pat();
pat = PatUniq(sub); pat = PatBox(sub);
hi = self.last_span.hi; hi = self.last_span.hi;
self.obsolete(self.last_span, ObsoleteOwnedPattern); self.obsolete(self.last_span, ObsoleteOwnedPattern);
return @ast::Pat { return @ast::Pat {
@ -2888,7 +2888,7 @@ impl<'a> Parser<'a> {
// FIXME(#13910): Rename to `PatBox` and extend to full DST // FIXME(#13910): Rename to `PatBox` and extend to full DST
// support. // support.
let sub = self.parse_pat(); let sub = self.parse_pat();
pat = PatUniq(sub); pat = PatBox(sub);
hi = self.last_span.hi; hi = self.last_span.hi;
return @ast::Pat { return @ast::Pat {
id: ast::DUMMY_NODE_ID, id: ast::DUMMY_NODE_ID,

View File

@ -1721,7 +1721,7 @@ impl<'a> State<'a> {
} }
try!(self.pclose()); try!(self.pclose());
} }
ast::PatUniq(inner) => { ast::PatBox(inner) => {
try!(word(&mut self.s, "box ")); try!(word(&mut self.s, "box "));
try!(self.print_pat(inner)); try!(self.print_pat(inner));
} }

View File

@ -429,7 +429,7 @@ pub fn walk_pat<E: Clone, V: Visitor<E>>(visitor: &mut V, pattern: &Pat, env: E)
visitor.visit_pat(*tuple_element, env.clone()) visitor.visit_pat(*tuple_element, env.clone())
} }
} }
PatUniq(subpattern) | PatBox(subpattern) |
PatRegion(subpattern) => { PatRegion(subpattern) => {
visitor.visit_pat(subpattern, env) visitor.visit_pat(subpattern, env)
} }