about summary refs log tree commit diff
diff options
context:
space:
mode:
authorLuqman Aden <laden@csclub.uwaterloo.ca>2014-10-15 10:50:36 -0400
committerLuqman Aden <laden@csclub.uwaterloo.ca>2014-10-16 11:15:35 -0400
commit7a4122ac6798d1db84c3dc76047a1136cd7da258 (patch)
tree9e330f07ed10d7f38362861b02e971aadc3a75a0
parentce6226e6c97a11933f09a9730458c6984e883bd7 (diff)
downloadrust-7a4122ac6798d1db84c3dc76047a1136cd7da258.tar.gz
rust-7a4122ac6798d1db84c3dc76047a1136cd7da258.zip
librustc: Remove visit_tydesc intrinsic.
-rw-r--r--src/libcore/intrinsics.rs2
-rw-r--r--src/librustc/middle/trans/intrinsic.rs7
-rw-r--r--src/librustc/middle/typeck/check/mod.rs19
-rw-r--r--src/test/run-pass/reflect-visit-type.rs147
4 files changed, 0 insertions, 175 deletions
diff --git a/src/libcore/intrinsics.rs b/src/libcore/intrinsics.rs
index 3f7dcb36cf6..bcbb7751335 100644
--- a/src/libcore/intrinsics.rs
+++ b/src/libcore/intrinsics.rs
@@ -327,8 +327,6 @@ extern "rust-intrinsic" {
     /// Returns `true` if a type is managed (will be allocated on the local heap)
     pub fn owns_managed<T>() -> bool;
 
-    pub fn visit_tydesc(td: *const TyDesc, tv: &mut TyVisitor);
-
     /// Calculates the offset from a pointer. The offset *must* be in-bounds of
     /// the object, or one-byte-past-the-end. An arithmetic overflow is also
     /// undefined behaviour.
diff --git a/src/librustc/middle/trans/intrinsic.rs b/src/librustc/middle/trans/intrinsic.rs
index f463f258ad5..399c20a5108 100644
--- a/src/librustc/middle/trans/intrinsic.rs
+++ b/src/librustc/middle/trans/intrinsic.rs
@@ -307,13 +307,6 @@ pub fn trans_intrinsic_call<'blk, 'tcx>(mut bcx: Block<'blk, 'tcx>, node: ast::N
             let tp_ty = *substs.types.get(FnSpace, 0);
             C_bool(ccx, ty::type_contents(ccx.tcx(), tp_ty).owns_managed())
         }
-        (_, "visit_tydesc") => {
-            let td = *llargs.get(0);
-            let visitor = *llargs.get(1);
-            let td = PointerCast(bcx, td, ccx.tydesc_type().ptr_to());
-            glue::call_visit_glue(bcx, visitor, td);
-            C_nil(ccx)
-        }
         (_, "offset") => {
             let ptr = *llargs.get(0);
             let offset = *llargs.get(1);
diff --git a/src/librustc/middle/typeck/check/mod.rs b/src/librustc/middle/typeck/check/mod.rs
index c8318825e70..be622bd6855 100644
--- a/src/librustc/middle/typeck/check/mod.rs
+++ b/src/librustc/middle/typeck/check/mod.rs
@@ -5578,25 +5578,6 @@ pub fn check_intrinsic_type(ccx: &CrateCtxt, it: &ast::ForeignItem) {
                     }
                 }
             },
-            "visit_tydesc" => {
-              let tydesc_ty = match ty::get_tydesc_ty(ccx.tcx) {
-                  Ok(t) => t,
-                  Err(s) => { tcx.sess.span_fatal(it.span, s.as_slice()); }
-              };
-              let region0 = ty::ReLateBound(it.id, ty::BrAnon(0));
-              let region1 = ty::ReLateBound(it.id, ty::BrAnon(1));
-              let visitor_object_ty =
-                    match ty::visitor_object_ty(tcx, region0, region1) {
-                        Ok((_, vot)) => vot,
-                        Err(s) => { tcx.sess.span_fatal(it.span, s.as_slice()); }
-                    };
-
-              let td_ptr = ty::mk_ptr(ccx.tcx, ty::mt {
-                  ty: tydesc_ty,
-                  mutbl: ast::MutImmutable
-              });
-              (0, vec!( td_ptr, visitor_object_ty ), ty::mk_nil())
-            }
             "offset" => {
               (1,
                vec!(
diff --git a/src/test/run-pass/reflect-visit-type.rs b/src/test/run-pass/reflect-visit-type.rs
deleted file mode 100644
index 5de34dc2df5..00000000000
--- a/src/test/run-pass/reflect-visit-type.rs
+++ /dev/null
@@ -1,147 +0,0 @@
-// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
-// file at the top-level directory of this distribution and at
-// http://rust-lang.org/COPYRIGHT.
-//
-// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
-// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
-// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
-// option. This file may not be copied, modified, or distributed
-// except according to those terms.
-
-
-use std::intrinsics::{TyDesc, get_tydesc, visit_tydesc, TyVisitor, Disr, Opaque};
-
-struct MyVisitor {
-    types: Vec<String> ,
-}
-
-impl TyVisitor for MyVisitor {
-    fn visit_bot(&mut self) -> bool {
-        self.types.push("bot".to_string());
-        println!("visited bot type");
-        true
-    }
-    fn visit_nil(&mut self) -> bool {
-        self.types.push("nil".to_string());
-        println!("visited nil type");
-        true
-    }
-    fn visit_bool(&mut self) -> bool {
-        self.types.push("bool".to_string());
-        println!("visited bool type");
-        true
-    }
-    fn visit_int(&mut self) -> bool {
-        self.types.push("int".to_string());
-        println!("visited int type");
-        true
-    }
-    fn visit_i8(&mut self) -> bool {
-        self.types.push("i8".to_string());
-        println!("visited i8 type");
-        true
-    }
-    fn visit_i16(&mut self) -> bool {
-        self.types.push("i16".to_string());
-        println!("visited i16 type");
-        true
-    }
-    fn visit_i32(&mut self) -> bool { true }
-    fn visit_i64(&mut self) -> bool { true }
-
-    fn visit_uint(&mut self) -> bool { true }
-    fn visit_u8(&mut self) -> bool { true }
-    fn visit_u16(&mut self) -> bool { true }
-    fn visit_u32(&mut self) -> bool { true }
-    fn visit_u64(&mut self) -> bool { true }
-
-    fn visit_f32(&mut self) -> bool { true }
-    fn visit_f64(&mut self) -> bool { true }
-
-    fn visit_char(&mut self) -> bool { true }
-
-    fn visit_estr_slice(&mut self) -> bool { true }
-
-    fn visit_box(&mut self, _mtbl: uint, _inner: *const TyDesc) -> bool { true }
-    fn visit_uniq(&mut self, _mtbl: uint, _inner: *const TyDesc) -> bool { true }
-    fn visit_ptr(&mut self, _mtbl: uint, _inner: *const TyDesc) -> bool { true }
-    fn visit_rptr(&mut self, _mtbl: uint, _inner: *const TyDesc) -> bool { true }
-
-    fn visit_evec_slice(&mut self, _mtbl: uint, _inner: *const TyDesc) -> bool { true }
-    fn visit_evec_fixed(&mut self, _n: uint, _sz: uint, _align: uint,
-                        _inner: *const TyDesc) -> bool { true }
-
-    fn visit_enter_rec(&mut self, _n_fields: uint,
-                       _sz: uint, _align: uint) -> bool { true }
-    fn visit_rec_field(&mut self, _i: uint, _name: &str,
-                       _mtbl: uint, _inner: *const TyDesc) -> bool { true }
-    fn visit_leave_rec(&mut self, _n_fields: uint,
-                       _sz: uint, _align: uint) -> bool { true }
-
-    fn visit_enter_class(&mut self, _name: &str, _named_fields: bool, _n_fields: uint,
-                         _sz: uint, _align: uint) -> bool { true }
-    fn visit_class_field(&mut self, _i: uint, _name: &str, _named: bool,
-                         _mtbl: uint, _inner: *const TyDesc) -> bool { true }
-    fn visit_leave_class(&mut self, _name: &str, _named_fields: bool, _n_fields: uint,
-                         _sz: uint, _align: uint) -> bool { true }
-
-    fn visit_enter_tup(&mut self, _n_fields: uint,
-                       _sz: uint, _align: uint) -> bool { true }
-    fn visit_tup_field(&mut self, _i: uint, _inner: *const TyDesc) -> bool { true }
-    fn visit_leave_tup(&mut self, _n_fields: uint,
-                       _sz: uint, _align: uint) -> bool { true }
-
-    fn visit_enter_enum(&mut self, _n_variants: uint,
-                        _get_disr: unsafe extern fn(ptr: *const Opaque) -> Disr,
-                        _sz: uint, _align: uint) -> bool { true }
-    fn visit_enter_enum_variant(&mut self,
-                                _variant: uint,
-                                _disr_val: Disr,
-                                _n_fields: uint,
-                                _name: &str) -> bool { true }
-    fn visit_enum_variant_field(&mut self, _i: uint, _offset: uint, _inner: *const TyDesc)
-        -> bool { true }
-    fn visit_leave_enum_variant(&mut self,
-                                _variant: uint,
-                                _disr_val: Disr,
-                                _n_fields: uint,
-                                _name: &str) -> bool { true }
-    fn visit_leave_enum(&mut self,
-                        _n_variants: uint,
-                        _get_disr: unsafe extern fn(ptr: *const Opaque) -> Disr,
-                        _sz: uint, _align: uint) -> bool { true }
-
-    fn visit_enter_fn(&mut self, _purity: uint, _proto: uint,
-                      _n_inputs: uint, _retstyle: uint) -> bool { true }
-    fn visit_fn_input(&mut self, _i: uint, _mode: uint, _inner: *const TyDesc) -> bool { true }
-    fn visit_fn_output(&mut self, _retstyle: uint, _variadic: bool, _inner: *const TyDesc)
-        -> bool { true }
-    fn visit_leave_fn(&mut self, _purity: uint, _proto: uint,
-                      _n_inputs: uint, _retstyle: uint) -> bool { true }
-
-
-    fn visit_trait(&mut self, _name: &str) -> bool { true }
-    fn visit_param(&mut self, _i: uint) -> bool { true }
-    fn visit_self(&mut self) -> bool { true }
-}
-
-fn visit_ty<T>(v: &mut MyVisitor) {
-    unsafe { visit_tydesc(get_tydesc::<T>(), v as &mut TyVisitor) }
-}
-
-pub fn main() {
-    let mut v = MyVisitor {types: Vec::new()};
-
-    visit_ty::<bool>(&mut v);
-    visit_ty::<int>(&mut v);
-    visit_ty::<i8>(&mut v);
-    visit_ty::<i16>(&mut v);
-
-    for s in v.types.iter() {
-        println!("type: {}", (*s).clone());
-    }
-
-    let vec_types: Vec<String> = v.types.clone().into_iter().collect();
-    assert_eq!(vec_types, vec!("bool".to_string(), "int".to_string(),
-                               "i8".to_string(), "i16".to_string()));
-}