use list::{MutList, MutCons, MutNil};
use core::at_vec;
-use core::cast::{transmute, transmute_mut_region};
+use core::cast::{transmute, transmute_mut, transmute_mut_region};
use core::cast;
- use core::libc::size_t;
use core::ptr;
- use core::sys::TypeDesc;
use core::sys;
use core::uint;
use core::vec;
}
}
+ pub fn get_tydesc_ty(tcx: ctxt) -> t {
+ let tydesc_lang_item = tcx.lang_items.ty_desc();
+ tcx.intrinsic_defs.find_copy(&tydesc_lang_item)
+ .expect("Failed to resolve TyDesc")
+ }
+
+ pub fn get_opaque_ty(tcx: ctxt) -> t {
+ let opaque_lang_item = tcx.lang_items.opaque();
+ tcx.intrinsic_defs.find_copy(&opaque_lang_item)
+ .expect("Failed to resolve Opaque")
+ }
+
pub fn visitor_object_ty(tcx: ctxt) -> (@TraitRef, t) {
- let ty_visitor_name = special_idents::ty_visitor;
- assert!(tcx.intrinsic_traits.contains_key(&ty_visitor_name));
- let trait_ref = tcx.intrinsic_traits.get_copy(&ty_visitor_name);
+ let substs = substs {
+ self_r: None,
+ self_ty: None,
+ tps: ~[]
+ };
+ let trait_lang_item = tcx.lang_items.ty_visitor();
+ let trait_ref = @TraitRef { def_id: trait_lang_item, substs: substs };
(trait_ref,
- mk_trait(tcx, trait_ref.def_id, copy trait_ref.substs, BoxTraitStore, ast::m_imm))
+ mk_trait(tcx, trait_ref.def_id, copy trait_ref.substs,
+ BoxTraitStore, ast::m_imm, EmptyBuiltinBounds()))
}