| //@ build-pass | |
| #![feature(allocator_api)] | |
| #![allow(unused_must_use)] | |
| use std::alloc::Allocator; | |
| struct BigAllocator([usize; 2]); | |
| unsafe impl Allocator for BigAllocator { | |
| fn allocate( | |
| &self, | |
| _: std::alloc::Layout, | |
| ) -> Result<std::ptr::NonNull<[u8]>, std::alloc::AllocError> { | |
| todo!() | |
| } | |
| unsafe fn deallocate(&self, _: std::ptr::NonNull<u8>, _: std::alloc::Layout) { | |
| todo!() | |
| } | |
| } | |
| fn main() { | |
| Box::new_in((), &std::alloc::Global); | |
| Box::new_in((), BigAllocator([0; 2])); | |
| generic_function(0); | |
| } | |
| fn generic_function<T>(val: T) { | |
| *Box::new_in(val, &std::alloc::Global); | |
| } |