After edition 2021, bare trait objects have been denied (E0782), still treating traits without
dyn as bare trait objects in diagnostics confuses users (#111312).
dyn do not have (although had haved) such semantics anymore after making bare trait objects to be errors. In other words, traits without
dyn should not appear somewhere but not because they were bare trait objects. E.g., the error of
Box<Trait> should be that we use traits at wrong places but not we use bare trait objects, and we can emit a suggestion to add
dyn. We should treat traits without
dyn as traits simply instead of bare trait objects which may lead to confusion. This can make diagnostics for things like
Trait::not_existing_func() more clearer.