about summary refs log tree commit diff
path: root/src/librustc_codegen_utils/common.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/librustc_codegen_utils/common.rs')
-rw-r--r--src/librustc_codegen_utils/common.rs17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/librustc_codegen_utils/common.rs b/src/librustc_codegen_utils/common.rs
index 5dc138b31ff..c274fa4345a 100644
--- a/src/librustc_codegen_utils/common.rs
+++ b/src/librustc_codegen_utils/common.rs
@@ -7,9 +7,24 @@
 // <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.
-
 #![allow(non_camel_case_types, non_snake_case)]
 
+use rustc::ty::{self, Ty, TyCtxt};
+use syntax_pos::DUMMY_SP;
+
+
+pub fn type_needs_drop<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, ty: Ty<'tcx>) -> bool {
+    ty.needs_drop(tcx, ty::ParamEnv::reveal_all())
+}
+
+pub fn type_is_sized<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, ty: Ty<'tcx>) -> bool {
+    ty.is_sized(tcx.at(DUMMY_SP), ty::ParamEnv::reveal_all())
+}
+
+pub fn type_is_freeze<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, ty: Ty<'tcx>) -> bool {
+    ty.is_freeze(tcx, ty::ParamEnv::reveal_all(), DUMMY_SP)
+}
+
 pub enum IntPredicate {
     IntEQ,
     IntNE,