File tree 1 file changed +8
-6
lines changed
1 file changed +8
-6
lines changed Original file line number Diff line number Diff line change @@ -8,7 +8,7 @@ use crate::program::Program;
8
8
use crate :: program_environment:: ProgramEnvironment ;
9
9
use crate :: tls;
10
10
use crate :: SolverChoice ;
11
- use chalk_ir:: { Substitution , TraitId } ;
11
+ use chalk_ir:: TraitId ;
12
12
use chalk_solve:: clauses:: builder:: ClauseBuilder ;
13
13
use chalk_solve:: clauses:: program_clauses:: ToProgramClauses ;
14
14
use chalk_solve:: coherence:: orphan;
@@ -224,11 +224,13 @@ fn environment(db: &dyn LoweringDatabase) -> Result<Arc<ProgramEnvironment>, Cha
224
224
. iter ( )
225
225
. filter ( |( _, auto_trait) | auto_trait. is_auto_trait ( ) )
226
226
{
227
- for & adt_id in program. adt_data . keys ( ) {
228
- let ty = chalk_ir:: TyKind :: Adt ( adt_id, Substitution :: empty ( builder. interner ( ) ) ) ;
229
- chalk_solve:: clauses:: push_auto_trait_impls ( builder, auto_trait_id, & ty)
230
- . map_err ( |_| ( ) )
231
- . unwrap ( ) ;
227
+ for adt_datum in program. adt_data . values ( ) {
228
+ builder. push_binders ( adt_datum. binders . clone ( ) , |builder, _| {
229
+ let ty = chalk_ir:: TyKind :: Adt ( adt_datum. id , builder. substitution_in_scope ( ) ) ;
230
+ chalk_solve:: clauses:: push_auto_trait_impls ( builder, auto_trait_id, & ty)
231
+ . map_err ( |_| ( ) )
232
+ . unwrap ( ) ;
233
+ } ) ;
232
234
}
233
235
}
234
236
You can’t perform that action at this time.
0 commit comments