Only consider object candidates for object-safe dyn types
This commit is contained in:
parent
1b198b3a19
commit
e8ab56fbb4
2 changed files with 7 additions and 0 deletions
|
@ -826,6 +826,11 @@ impl<'tcx> EvalCtxt<'_, 'tcx> {
|
|||
ty::Dynamic(bounds, ..) => bounds,
|
||||
};
|
||||
|
||||
// Do not consider built-in object impls for non-object-safe types.
|
||||
if bounds.principal_def_id().is_some_and(|def_id| !tcx.check_is_object_safe(def_id)) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Consider all of the auto-trait and projection bounds, which don't
|
||||
// need to be recorded as a `BuiltinImplSource::Object` since they don't
|
||||
// really have a vtable base...
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
// Check that we can manually implement an object-unsafe trait for its trait object.
|
||||
|
||||
// revisions: current next
|
||||
//[next] compile-flags: -Ztrait-solver=next
|
||||
// run-pass
|
||||
|
||||
#![feature(object_safe_for_dispatch)]
|
||||
|
|
Loading…
Add table
Reference in a new issue