// run-pass #![feature(core_intrinsics)] #![feature(const_intrinsic_raw_eq)] pub fn main() { use std::intrinsics::raw_eq; const RAW_EQ_I32_TRUE: bool = unsafe { raw_eq(&42_i32, &42) }; assert!(RAW_EQ_I32_TRUE); const RAW_EQ_I32_FALSE: bool = unsafe { raw_eq(&4_i32, &2) }; assert!(!RAW_EQ_I32_FALSE); const RAW_EQ_CHAR_TRUE: bool = unsafe { raw_eq(&'a', &'a') }; assert!(RAW_EQ_CHAR_TRUE); const RAW_EQ_CHAR_FALSE: bool = unsafe { raw_eq(&'a', &'A') }; assert!(!RAW_EQ_CHAR_FALSE); const RAW_EQ_ARRAY_TRUE: bool = unsafe { raw_eq(&[13_u8, 42], &[13, 42]) }; assert!(RAW_EQ_ARRAY_TRUE); const RAW_EQ_ARRAY_FALSE: bool = unsafe { raw_eq(&[13_u8, 42], &[42, 13]) }; assert!(!RAW_EQ_ARRAY_FALSE); }