File tree 1 file changed +6
-2
lines changed
compiler/rustc_trait_selection/src/solve/normalizes_to
1 file changed +6
-2
lines changed Original file line number Diff line number Diff line change @@ -29,12 +29,16 @@ pub(super) fn is_rigid_alias<'tcx>(
29
29
// which is non-trivial. We may be forced to handle this case
30
30
// in the future.
31
31
alias. self_ty ( ) . is_placeholder ( )
32
- && no_blanket_impls ( tcx, alias. trait_def_id ( tcx) )
32
+ && no_applicable_blanket_impls ( tcx, alias. trait_def_id ( tcx) )
33
33
&& !may_normalize_via_env ( param_env, alias)
34
34
}
35
35
36
+ // FIXME: This could check whether the blanket impl has any where-bounds
37
+ // which definitely don't hold. Doing so is quite annoying, both just in
38
+ // general, but we also have to be careful about builtin blanket impls,
39
+ // e.g. `DiscriminantKind`.
36
40
#[ instrument( level = "trace" , skip( tcx) , ret) ]
37
- fn no_blanket_impls < ' tcx > ( tcx : TyCtxt < ' tcx > , trait_def_id : DefId ) -> bool {
41
+ fn no_applicable_blanket_impls < ' tcx > ( tcx : TyCtxt < ' tcx > , trait_def_id : DefId ) -> bool {
38
42
// FIXME(ptr_metadata): There's currently a builtin impl for `Pointee` which
39
43
// applies for all `T` as long as `T: Sized` holds. THis impl should
40
44
// get removed in favor of `Pointee` being a super trait of `Sized`.
You can’t perform that action at this time.
0 commit comments