Refactor dyn-compatibility error and suggestions
This CL makes a number of small changes to dyn compatibility errors: - "object safety" has been renamed to "dyn-compatibility" throughout - "Convert to enum" suggestions are no longer generated when there exists a type-generic impl of the trait or an impl for `dyn OtherTrait` - Several error messages are reorganized for user readability Additionally, the dyn compatibility error creation code has been split out into functions. cc #132713 cc #133267
This commit is contained in:
parent
b2728d5426
commit
d00d4dfe0d
175 changed files with 1338 additions and 1102 deletions
|
@ -185,7 +185,7 @@ fn check_object_overlap<'tcx>(
|
|||
// check for overlap with the automatic `impl Trait for dyn Trait`
|
||||
if let ty::Dynamic(data, ..) = trait_ref.self_ty().kind() {
|
||||
// This is something like `impl Trait1 for Trait2`. Illegal if
|
||||
// Trait1 is a supertrait of Trait2 or Trait2 is not dyn-compatible.
|
||||
// Trait1 is a supertrait of Trait2 or Trait2 is not dyn compatible.
|
||||
|
||||
let component_def_ids = data.iter().flat_map(|predicate| {
|
||||
match predicate.skip_binder() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue