This repository was archived by the owner on May 28, 2025. It is now read-only.
File tree Expand file tree Collapse file tree 2 files changed +10
-2
lines changed
compiler/rustc_trait_selection/src
tests/ui/traits/next-solver Expand file tree Collapse file tree 2 files changed +10
-2
lines changed Original file line number Diff line number Diff line change @@ -24,12 +24,13 @@ impl<'tcx> InferCtxtRegionExt<'tcx> for InferCtxt<'tcx> {
2424 let ty = self . resolve_vars_if_possible ( ty) ;
2525
2626 if self . next_trait_solver ( ) {
27- crate :: solve:: deeply_normalize (
27+ crate :: solve:: deeply_normalize_with_skipped_universes (
2828 self . at (
2929 & ObligationCause :: dummy_with_span ( origin. span ( ) ) ,
3030 outlives_env. param_env ,
3131 ) ,
3232 ty,
33+ vec ! [ None ; ty. outer_exclusive_binder( ) . as_usize( ) ] ,
3334 )
3435 . map_err ( |_| ty)
3536 } else {
Original file line number Diff line number Diff line change 1- // revisions: normalize_param_env normalize_obligation
1+ // revisions: normalize_param_env normalize_obligation hrtb
22// check-pass
33// compile-flags: -Znext-solver
44
@@ -7,16 +7,23 @@ trait Foo {
77 type Gat < ' a > where <Self as Mirror >:: Assoc : ' a ;
88 #[ cfg( normalize_obligation) ]
99 type Gat < ' a > where Self : ' a ;
10+ #[ cfg( hrtb) ]
11+ type Gat < ' b > where for < ' a > <Self as MirrorRegion < ' a > >:: Assoc : ' b ;
1012}
1113
1214trait Mirror { type Assoc : ?Sized ; }
1315impl < T : ?Sized > Mirror for T { type Assoc = T ; }
1416
17+ trait MirrorRegion < ' a > { type Assoc : ?Sized ; }
18+ impl < ' a , T > MirrorRegion < ' a > for T { type Assoc = T ; }
19+
1520impl < T > Foo for T {
1621 #[ cfg( normalize_param_env) ]
1722 type Gat < ' a > = i32 where T : ' a ;
1823 #[ cfg( normalize_obligation) ]
1924 type Gat < ' a > = i32 where <T as Mirror >:: Assoc : ' a ;
25+ #[ cfg( hrtb) ]
26+ type Gat < ' b > = i32 where Self : ' b ;
2027}
2128
2229fn main ( ) { }
You can’t perform that action at this time.
0 commit comments