1 // Copyright 2018 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
11 #![feature(unsize, dispatch_from_dyn)]
15 marker::{Unsize, PhantomData},
18 struct WrapperWithExtraField<T>(T, i32);
20 impl<T, U> DispatchFromDyn<WrapperWithExtraField<U>> for WrapperWithExtraField<T>
22 T: DispatchFromDyn<U>,
23 {} //~^^^ ERROR [E0378]
26 struct MultiplePointers<T: ?Sized>{
31 impl<T: ?Sized, U: ?Sized> DispatchFromDyn<MultiplePointers<U>> for MultiplePointers<T>
34 {} //~^^^ ERROR [E0378]
37 struct NothingToCoerce<T: ?Sized> {
41 impl<T: ?Sized, U: ?Sized> DispatchFromDyn<NothingToCoerce<T>> for NothingToCoerce<U> {}
45 struct HasReprC<T: ?Sized>(Box<T>);
47 impl<T: ?Sized, U: ?Sized> DispatchFromDyn<HasReprC<U>> for HasReprC<T>
50 {} //~^^^ ERROR [E0378]