blob: 30adbd2666c555b5ea1b10873d9875ca6cc2e5dd [file]
#![feature(lang_items, no_core)]
#![no_core]
#[lang = "sized"]
pub trait Sized {}
fn main() {
let arr: [i32; 4] = [1, 2, 3, 4];
let mut arr_mut: [i32; 4] = [1, 2, 3, 4];
// 1. &mut T -> &mut U
let _mut_to_mut: &mut [i32] = &mut arr_mut;
// 2. &mut T -> &U
let _mut_to_ref: &[i32] = &mut arr_mut;
// 3. &mut T -> *mut U
let _mut_to_ptr_mut: *mut [i32] = &mut arr_mut;
// 4. &mut T -> *const U
let _mut_to_ptr_const: *const [i32] = &mut arr_mut;
// 5. &T -> &U
let _ref_to_ref: &[i32] = &arr;
// 6. &T -> *const U
let _ref_to_ptr_const: *const [i32] = &arr;
// 7. *mut T -> *mut U
let raw_mut: *mut [i32; 4] = &mut arr_mut;
let _ptr_mut_to_ptr_mut: *mut [i32] = raw_mut;
// 8. *mut T -> *const U
let _ptr_mut_to_ptr_const: *const [i32] = raw_mut;
// 9. *const T -> *const U
let raw_const: *const [i32; 4] = &arr;
let _ptr_const_to_ptr_const: *const [i32] = raw_const;
}