2024-02-16 14:02:50 -06:00
|
|
|
//@ build-pass
|
|
|
|
//@ compile-flags: -Copt-level=1 --crate-type=lib
|
2023-04-16 18:07:18 -05:00
|
|
|
|
|
|
|
#![feature(specialization)]
|
|
|
|
//~^ WARN the feature `specialization` is incomplete
|
|
|
|
|
|
|
|
pub unsafe trait Storage {
|
|
|
|
type Handle;
|
|
|
|
}
|
|
|
|
|
|
|
|
pub unsafe trait MultipleStorage: Storage {}
|
|
|
|
|
|
|
|
default unsafe impl<S> Storage for S where S: MultipleStorage {}
|
|
|
|
|
|
|
|
// Make sure that we call is_freeze on `(S::Handle,)` in the param-env of `ice`,
|
|
|
|
// instead of in an empty, reveal-all param-env.
|
|
|
|
pub fn ice<S: Storage>(boxed: (S::Handle,)) -> (S::Handle,) {
|
|
|
|
boxed
|
|
|
|
}
|