]> git.lizzy.rs Git - rust.git/commitdiff
auto merge of #7254 : Blei/rust/intrinsic-overhaul, r=cmr
authorbors <bors@rust-lang.org>
Tue, 25 Jun 2013 11:38:06 +0000 (04:38 -0700)
committerbors <bors@rust-lang.org>
Tue, 25 Jun 2013 11:38:06 +0000 (04:38 -0700)
This sets the `get_tydesc()` return type correctly and removes the intrinsic module. See #3730, #3475.

Update: this now also removes the unused shape fields in tydescs.

12 files changed:
1  2 
src/libextra/arena.rs
src/librustc/middle/trans/foreign.rs
src/librustc/middle/trans/glue.rs
src/librustc/middle/trans/reflect.rs
src/librustc/middle/ty.rs
src/librustc/middle/typeck/check/mod.rs
src/librustc/middle/typeck/collect.rs
src/libstd/at_vec.rs
src/libstd/unstable/intrinsics.rs
src/libstd/vec.rs
src/rt/rust_builtin.cpp
src/rt/rustrt.def.in

index 302f1fbeb04aad065eab5a3d13f4c0ddab57775a,cec3a2c1e952c7007502c6d220f0058777a492fb..4d37c244b139f1792d68ded917036da4b44beb09
@@@ -39,11 -39,9 +39,9 @@@ use core::prelude::*
  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;
Simple merge
Simple merge
Simple merge
index bc163f4a72555953470d8c07c6e15889ce145703,9e1a0def2eef08a49c513329361ac7ca7fed59ed..0518e6b7cf79ecc456cfecf236ef8351687560db
@@@ -4469,11 -4446,26 +4466,27 @@@ pub fn get_impl_id(tcx: ctxt, trait_id
      }
  }
  
+ 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()))
  }
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge