diff options
| author | Eduard Burtescu <edy.burt@gmail.com> | 2014-10-01 00:59:56 +0300 |
|---|---|---|
| committer | Eduard Burtescu <edy.burt@gmail.com> | 2014-10-02 16:36:01 +0300 |
| commit | d1a57e479c13804e1cda5658f482e840c3a1cd79 (patch) | |
| tree | e23dd7e5885a6b5dc2426228bddb5511c6d31f18 | |
| parent | a99e626d07b62cfea5711f018b1497f8bdc04e90 (diff) | |
| download | rust-d1a57e479c13804e1cda5658f482e840c3a1cd79.tar.gz rust-d1a57e479c13804e1cda5658f482e840c3a1cd79.zip | |
syntax: ast: remove TyBox and UnBox.
| -rw-r--r-- | src/librustc/lint/builtin.rs | 2 | ||||
| -rw-r--r-- | src/librustc/middle/check_const.rs | 2 | ||||
| -rw-r--r-- | src/librustc/middle/check_static.rs | 4 | ||||
| -rw-r--r-- | src/librustc/middle/trans/consts.rs | 2 | ||||
| -rw-r--r-- | src/librustc/middle/trans/expr.rs | 3 | ||||
| -rw-r--r-- | src/librustc/middle/typeck/astconv.rs | 4 | ||||
| -rw-r--r-- | src/librustc/middle/typeck/check/mod.rs | 9 | ||||
| -rw-r--r-- | src/librustc/middle/typeck/check/regionck.rs | 8 | ||||
| -rw-r--r-- | src/librustc/middle/typeck/infer/error_reporting.rs | 2 | ||||
| -rw-r--r-- | src/librustdoc/clean/mod.rs | 1 | ||||
| -rw-r--r-- | src/libsyntax/ast.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/ast_util.rs | 1 | ||||
| -rw-r--r-- | src/libsyntax/ext/build.rs | 5 | ||||
| -rw-r--r-- | src/libsyntax/feature_gate.rs | 12 | ||||
| -rw-r--r-- | src/libsyntax/fold.rs | 1 | ||||
| -rw-r--r-- | src/libsyntax/parse/parser.rs | 9 | ||||
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 4 | ||||
| -rw-r--r-- | src/libsyntax/visit.rs | 2 |
18 files changed, 10 insertions, 63 deletions
diff --git a/src/librustc/lint/builtin.rs b/src/librustc/lint/builtin.rs index 277ecfc686b..5774a0485cb 100644 --- a/src/librustc/lint/builtin.rs +++ b/src/librustc/lint/builtin.rs @@ -1289,7 +1289,7 @@ impl LintPass for UnnecessaryAllocation { fn check_expr(&mut self, cx: &Context, e: &ast::Expr) { match e.node { - ast::ExprUnary(ast::UnUniq, _) | ast::ExprUnary(ast::UnBox, _) => (), + ast::ExprUnary(ast::UnUniq, _) => (), _ => return } diff --git a/src/librustc/middle/check_const.rs b/src/librustc/middle/check_const.rs index cc3679ec31d..ba721acb231 100644 --- a/src/librustc/middle/check_const.rs +++ b/src/librustc/middle/check_const.rs @@ -100,7 +100,7 @@ fn check_expr(v: &mut CheckCrateVisitor, e: &Expr) { if v.in_const { match e.node { ExprUnary(UnDeref, _) => { } - ExprUnary(UnBox, _) | ExprUnary(UnUniq, _) => { + ExprUnary(UnUniq, _) => { span_err!(v.tcx.sess, e.span, E0010, "cannot do allocations in constant expressions"); return; } diff --git a/src/librustc/middle/check_static.rs b/src/librustc/middle/check_static.rs index 7a11090a8ee..64e4d7ff284 100644 --- a/src/librustc/middle/check_static.rs +++ b/src/librustc/middle/check_static.rs @@ -115,10 +115,6 @@ impl<'a, 'tcx, 'v> Visitor<'v> for CheckStaticVisitor<'a, 'tcx> { span_err!(self.tcx.sess, e.span, E0020, "static items are not allowed to have mutable slices"); }, - ast::ExprUnary(ast::UnBox, _) => { - span_err!(self.tcx.sess, e.span, E0021, - "static items are not allowed to have managed pointers"); - } ast::ExprBox(..) | ast::ExprUnary(ast::UnUniq, _) => { span_err!(self.tcx.sess, e.span, E0022, diff --git a/src/librustc/middle/trans/consts.rs b/src/librustc/middle/trans/consts.rs index c499fcf4bf8..196efd7d2cc 100644 --- a/src/librustc/middle/trans/consts.rs +++ b/src/librustc/middle/trans/consts.rs @@ -421,7 +421,7 @@ fn const_expr_unadjusted(cx: &CrateContext, e: &ast::Expr, let ty = ty::expr_ty(cx.tcx(), &**e); let is_float = ty::type_is_fp(ty); return (match u { - ast::UnBox | ast::UnUniq | ast::UnDeref => { + ast::UnUniq | ast::UnDeref => { let (dv, _dt) = const_deref(cx, te, ty, true); dv } diff --git a/src/librustc/middle/trans/expr.rs b/src/librustc/middle/trans/expr.rs index 37a39ef8e3b..0b47544c562 100644 --- a/src/librustc/middle/trans/expr.rs +++ b/src/librustc/middle/trans/expr.rs @@ -1533,9 +1533,6 @@ fn trans_unary<'blk, 'tcx>(bcx: Block<'blk, 'tcx>, }; immediate_rvalue_bcx(bcx, llneg, un_ty).to_expr_datumblock() } - ast::UnBox => { - trans_managed_expr(bcx, un_ty, sub_expr, expr_ty(bcx, sub_expr)) - } ast::UnUniq => { trans_uniq_expr(bcx, un_ty, sub_expr, expr_ty(bcx, sub_expr)) } diff --git a/src/librustc/middle/typeck/astconv.rs b/src/librustc/middle/typeck/astconv.rs index b73fa172d3f..72c3c1715e0 100644 --- a/src/librustc/middle/typeck/astconv.rs +++ b/src/librustc/middle/typeck/astconv.rs @@ -856,10 +856,6 @@ pub fn ast_ty_to_ty<'tcx, AC: AstConv<'tcx>, RS: RegionScope>( match ast_ty.node { ast::TyNil => ty::mk_nil(), ast::TyBot => ty::mk_bot(), - ast::TyBox(ref ty) => { - mk_pointer(this, rscope, ast::MutImmutable, &**ty, Box, - |ty| ty::mk_box(tcx, ty)) - } ast::TyUniq(ref ty) => { mk_pointer(this, rscope, ast::MutImmutable, &**ty, Uniq, |ty| ty::mk_uniq(tcx, ty)) diff --git a/src/librustc/middle/typeck/check/mod.rs b/src/librustc/middle/typeck/check/mod.rs index 5f7f77ea7da..d8b5185a47a 100644 --- a/src/librustc/middle/typeck/check/mod.rs +++ b/src/librustc/middle/typeck/check/mod.rs @@ -3881,8 +3881,8 @@ fn check_expr_with_unifier(fcx: &FnCtxt, ast::ExprUnary(unop, ref oprnd) => { let expected_inner = expected.map(fcx, |sty| { match unop { - ast::UnBox | ast::UnUniq => match *sty { - ty::ty_box(ty) | ty::ty_uniq(ty) => { + ast::UnUniq => match *sty { + ty::ty_uniq(ty) => { ExpectHasType(ty) } _ => { @@ -3907,11 +3907,6 @@ fn check_expr_with_unifier(fcx: &FnCtxt, if !ty::type_is_error(oprnd_t) { match unop { - ast::UnBox => { - if !ty::type_is_bot(oprnd_t) { - oprnd_t = ty::mk_box(tcx, oprnd_t) - } - } ast::UnUniq => { if !ty::type_is_bot(oprnd_t) { oprnd_t = ty::mk_uniq(tcx, oprnd_t); diff --git a/src/librustc/middle/typeck/check/regionck.rs b/src/librustc/middle/typeck/check/regionck.rs index 9e20028569b..53edcb303f7 100644 --- a/src/librustc/middle/typeck/check/regionck.rs +++ b/src/librustc/middle/typeck/check/regionck.rs @@ -663,14 +663,6 @@ fn visit_expr(rcx: &mut Rcx, expr: &ast::Expr) { visit::walk_expr(rcx, expr); } - ast::ExprUnary(ast::UnBox, ref base) => { - // Managed data must not have borrowed pointers within it: - let base_ty = rcx.resolve_node_type(base.id); - type_must_outlive(rcx, infer::Managed(expr.span), - base_ty, ty::ReStatic); - visit::walk_expr(rcx, expr); - } - ast::ExprUnary(ast::UnDeref, ref base) => { // For *a, the lifetime of a must enclose the deref let method_call = MethodCall::expr(expr.id); diff --git a/src/librustc/middle/typeck/infer/error_reporting.rs b/src/librustc/middle/typeck/infer/error_reporting.rs index 2ad6a1f72e2..0149220fde4 100644 --- a/src/librustc/middle/typeck/infer/error_reporting.rs +++ b/src/librustc/middle/typeck/infer/error_reporting.rs @@ -1285,7 +1285,6 @@ impl<'a, 'tcx> Rebuilder<'a, 'tcx> { ast::TyPtr(ref mut_ty) => { ty_queue.push(&*mut_ty.ty); } - ast::TyBox(ref ty) | ast::TyVec(ref ty) | ast::TyUniq(ref ty) | ast::TyFixedLengthVec(ref ty, _) => { @@ -1323,7 +1322,6 @@ impl<'a, 'tcx> Rebuilder<'a, 'tcx> { ty: build_to(mut_ty.ty, to), }) } - ast::TyBox(ty) => ast::TyBox(build_to(ty, to)), ast::TyVec(ty) => ast::TyVec(build_to(ty, to)), ast::TyUniq(ty) => ast::TyUniq(build_to(ty, to)), ast::TyFixedLengthVec(ty, e) => { diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 0b04536f054..cb5c633bd25 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -1215,7 +1215,6 @@ impl Clean<Type> for ast::Ty { TyRptr(ref l, ref m) => BorrowedRef {lifetime: l.clean(cx), mutability: m.mutbl.clean(cx), type_: box m.ty.clean(cx)}, - TyBox(ref ty) => Managed(box ty.clean(cx)), TyUniq(ref ty) => Unique(box ty.clean(cx)), TyVec(ref ty) => Vector(box ty.clean(cx)), TyFixedLengthVec(ref ty, ref e) => FixedVector(box ty.clean(cx), diff --git a/src/libsyntax/ast.rs b/src/libsyntax/ast.rs index 59c824d0eae..0a87c0a344e 100644 --- a/src/libsyntax/ast.rs +++ b/src/libsyntax/ast.rs @@ -416,7 +416,6 @@ pub enum BinOp { #[deriving(Clone, PartialEq, Eq, Encodable, Decodable, Hash, Show)] pub enum UnOp { - UnBox, UnUniq, UnDeref, UnNot, @@ -953,7 +952,6 @@ pub struct UnboxedFnTy { pub enum Ty_ { TyNil, TyBot, /* bottom type */ - TyBox(P<Ty>), TyUniq(P<Ty>), TyVec(P<Ty>), TyFixedLengthVec(P<Ty>, P<Expr>), diff --git a/src/libsyntax/ast_util.rs b/src/libsyntax/ast_util.rs index 6d61c851476..31860062580 100644 --- a/src/libsyntax/ast_util.rs +++ b/src/libsyntax/ast_util.rs @@ -90,7 +90,6 @@ pub fn is_shift_binop(b: BinOp) -> bool { pub fn unop_to_string(op: UnOp) -> &'static str { match op { - UnBox => "box(GC) ", UnUniq => "box() ", UnDeref => "*", UnNot => "!", diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index f2b806f43cc..1fdb6dd505f 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -112,7 +112,6 @@ pub trait AstBuilder { fn expr_deref(&self, sp: Span, e: P<ast::Expr>) -> P<ast::Expr>; fn expr_unary(&self, sp: Span, op: ast::UnOp, e: P<ast::Expr>) -> P<ast::Expr>; - fn expr_managed(&self, sp: Span, e: P<ast::Expr>) -> P<ast::Expr>; fn expr_addr_of(&self, sp: Span, e: P<ast::Expr>) -> P<ast::Expr>; fn expr_mut_addr_of(&self, sp: Span, e: P<ast::Expr>) -> P<ast::Expr>; fn expr_field_access(&self, span: Span, expr: P<ast::Expr>, ident: ast::Ident) -> P<ast::Expr>; @@ -565,10 +564,6 @@ impl<'a> AstBuilder for ExtCtxt<'a> { self.expr(sp, ast::ExprUnary(op, e)) } - fn expr_managed(&self, sp: Span, e: P<ast::Expr>) -> P<ast::Expr> { - self.expr_unary(sp, ast::UnBox, e) - } - fn expr_field_access(&self, sp: Span, expr: P<ast::Expr>, ident: ast::Ident) -> P<ast::Expr> { let field_name = token::get_ident(ident); let field_span = Span { diff --git a/src/libsyntax/feature_gate.rs b/src/libsyntax/feature_gate.rs index 38de2a9c284..8565bebe269 100644 --- a/src/libsyntax/feature_gate.rs +++ b/src/libsyntax/feature_gate.rs @@ -136,14 +136,6 @@ impl<'a> Context<'a> { } } - fn gate_box(&self, span: Span) { - self.gate_feature("managed_boxes", span, - "The managed box syntax is being replaced by the \ - `std::gc::Gc` and `std::rc::Rc` types. Equivalent \ - functionality to managed trait objects will be \ - implemented but is currently missing."); - } - fn has_feature(&self, feature: &str) -> bool { self.features.iter().any(|n| n.as_slice() == feature) } @@ -331,7 +323,6 @@ impl<'a, 'v> Visitor<'v> for Context<'a> { experimental and likely to be removed"); }, - ast::TyBox(_) => { self.gate_box(t.span); } ast::TyUnboxedFn(..) => { self.gate_feature("unboxed_closure_sugar", t.span, @@ -345,9 +336,6 @@ impl<'a, 'v> Visitor<'v> for Context<'a> { fn visit_expr(&mut self, e: &ast::Expr) { match e.node { - ast::ExprUnary(ast::UnBox, _) => { - self.gate_box(e.span); - } ast::ExprUnboxedFn(..) => { self.gate_feature("unboxed_closures", e.span, diff --git a/src/libsyntax/fold.rs b/src/libsyntax/fold.rs index 31bec58a4da..84de6c3b913 100644 --- a/src/libsyntax/fold.rs +++ b/src/libsyntax/fold.rs @@ -372,7 +372,6 @@ pub fn noop_fold_ty<T: Folder>(t: P<Ty>, fld: &mut T) -> P<Ty> { id: fld.new_id(id), node: match node { TyNil | TyBot | TyInfer => node, - TyBox(ty) => TyBox(fld.fold_ty(ty)), TyUniq(ty) => TyUniq(fld.fold_ty(ty)), TyVec(ty) => TyVec(fld.fold_ty(ty)), TyPtr(mt) => TyPtr(fld.fold_mt(mt)), diff --git a/src/libsyntax/parse/parser.rs b/src/libsyntax/parse/parser.rs index c8f1b7f9a8e..8082fd65f1a 100644 --- a/src/libsyntax/parse/parser.rs +++ b/src/libsyntax/parse/parser.rs @@ -16,8 +16,7 @@ use ast::{RegionTyParamBound, TraitTyParamBound}; use ast::{ProvidedMethod, Public, FnStyle}; use ast::{Mod, BiAdd, Arg, Arm, Attribute, BindByRef, BindByValue}; use ast::{BiBitAnd, BiBitOr, BiBitXor, BiRem, Block}; -use ast::{BlockCheckMode, UnBox}; -use ast::{CaptureByRef, CaptureByValue, CaptureClause}; +use ast::{BlockCheckMode, CaptureByRef, CaptureByValue, CaptureClause}; use ast::{Crate, CrateConfig, Decl, DeclItem}; use ast::{DeclLocal, DefaultBlock, UnDeref, BiDiv, EMPTY_CTXT, EnumDef, ExplicitSelf}; use ast::{Expr, Expr_, ExprAddrOf, ExprMatch, ExprAgain}; @@ -50,7 +49,7 @@ use ast::{StructVariantKind, BiSub}; use ast::StrStyle; use ast::{SelfExplicit, SelfRegion, SelfStatic, SelfValue}; use ast::{TokenTree, TraitItem, TraitRef, TTDelim, TTSeq, TTTok}; -use ast::{TTNonterminal, TupleVariantKind, Ty, Ty_, TyBot, TyBox}; +use ast::{TTNonterminal, TupleVariantKind, Ty, Ty_, TyBot}; use ast::{TypeField, TyFixedLengthVec, TyClosure, TyProc, TyBareFn}; use ast::{TyTypeof, TyInfer, TypeMethod}; use ast::{TyNil, TyParam, TyParamBound, TyParen, TyPath, TyPtr, TyQPath}; @@ -1455,7 +1454,7 @@ impl<'a> Parser<'a> { self.bump(); let span = self.last_span; self.obsolete(span, ObsoleteManagedType); - TyBox(self.parse_ty(plus_allowed)) + TyUniq(self.parse_ty(plus_allowed)) } else if self.token == token::TILDE { // OWNED POINTER self.bump(); @@ -2729,7 +2728,7 @@ impl<'a> Parser<'a> { self.obsolete(span, ObsoleteManagedExpr); let e = self.parse_prefix_expr(); hi = e.span.hi; - ex = self.mk_unary(UnBox, e); + ex = self.mk_unary(UnUniq, e); } token::TILDE => { self.bump(); diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index a8e99b4e85f..8400d9aea3b 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -546,10 +546,6 @@ impl<'a> State<'a> { match ty.node { ast::TyNil => try!(word(&mut self.s, "()")), ast::TyBot => try!(word(&mut self.s, "!")), - ast::TyBox(ref ty) => { - try!(word(&mut self.s, "@")); - try!(self.print_type(&**ty)); - } ast::TyUniq(ref ty) => { try!(word(&mut self.s, "~")); try!(self.print_type(&**ty)); diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index 6fc79e2c42a..249f87d3102 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -326,7 +326,7 @@ pub fn skip_ty<'v, V: Visitor<'v>>(_: &mut V, _: &'v Ty) { pub fn walk_ty<'v, V: Visitor<'v>>(visitor: &mut V, typ: &'v Ty) { match typ.node { - TyUniq(ref ty) | TyVec(ref ty) | TyBox(ref ty) | TyParen(ref ty) => { + TyUniq(ref ty) | TyVec(ref ty) | TyParen(ref ty) => { visitor.visit_ty(&**ty) } TyPtr(ref mutable_type) => { |
