Elaborate predicates in min_specialization checks

Supertraits of specialization markers could circumvent checks for
min_specialization. Elaborating predicates prevents this.
This commit is contained in:
Matthew Jasper 2021-09-30 21:42:09 +01:00
parent 6dc08b909b
commit c8f86cad2d
4 changed files with 76 additions and 18 deletions

View file

@ -64,7 +64,9 @@ pub use self::specialize::specialization_graph::FutureCompatOverlapErrorKind;
pub use self::specialize::{specialization_graph, translate_substs, OverlapError};
pub use self::structural_match::search_for_structural_match_violation;
pub use self::structural_match::NonStructuralMatchTy;
pub use self::util::{elaborate_predicates, elaborate_trait_ref, elaborate_trait_refs};
pub use self::util::{
elaborate_obligations, elaborate_predicates, elaborate_trait_ref, elaborate_trait_refs,
};
pub use self::util::{expand_trait_aliases, TraitAliasExpander};
pub use self::util::{
get_vtable_index_of_object_method, impl_item_is_final, predicate_for_trait_def, upcast_choices,