2023-06-16 18:45:01 -05:00
|
|
|
//@ revisions: current next
|
2024-03-10 20:18:41 -05:00
|
|
|
//@ ignore-compare-mode-next-solver (explicit revisions)
|
2023-12-14 06:11:28 -06:00
|
|
|
//@[next] compile-flags: -Znext-solver
|
2023-06-16 18:45:01 -05:00
|
|
|
|
|
|
|
#![feature(rustc_attrs)]
|
|
|
|
|
|
|
|
#[rustc_deny_explicit_impl(implement_via_object = true)]
|
|
|
|
trait YesObject {}
|
|
|
|
|
|
|
|
#[rustc_deny_explicit_impl(implement_via_object = false)]
|
|
|
|
trait NotObject {}
|
|
|
|
|
|
|
|
fn test_yes_object<T: YesObject + ?Sized>() {}
|
|
|
|
|
|
|
|
fn test_not_object<T: NotObject + ?Sized>() {}
|
|
|
|
|
|
|
|
fn main() {
|
|
|
|
test_yes_object::<dyn YesObject>();
|
|
|
|
test_not_object::<dyn NotObject>();
|
|
|
|
//~^ ERROR the trait bound `dyn NotObject: NotObject` is not satisfied
|
|
|
|
}
|