|
1 | 1 | use chalk_ir::cast::{Cast, Caster};
|
2 | 2 | use chalk_ir::interner::ChalkIr;
|
3 | 3 | use chalk_ir::{
|
4 |
| - self, AssocTypeId, BoundVar, ClausePriority, DebruijnIndex, ImplId, OpaqueTyId, |
| 4 | + self, AssocTypeId, Binders, BoundVar, ClausePriority, DebruijnIndex, ImplId, OpaqueTyId, |
5 | 5 | QuantifiedWhereClauses, StructId, Substitution, TraitId,
|
6 | 6 | };
|
7 | 7 | use chalk_parse::ast::*;
|
@@ -390,28 +390,20 @@ impl LowerProgram for Program {
|
390 | 390 | let binders = empty_env.in_binders(parameter_kinds, |env| {
|
391 | 391 | let hidden_ty = opaque_ty.ty.lower(&env)?;
|
392 | 392 |
|
393 |
| - let hidden_ty_bounds: chalk_ir::Binders<Vec<chalk_ir::Binders<_>>> = |
394 |
| - env.in_binders( |
395 |
| - Some(chalk_ir::ParameterKind::Ty(intern(FIXME_SELF))), |
396 |
| - |env1| { |
397 |
| - let interner = env1.interner(); |
398 |
| - Ok(opaque_ty |
399 |
| - .bounds |
400 |
| - .lower(&env1)? |
401 |
| - .iter() |
402 |
| - .flat_map(|qil| { |
403 |
| - qil.into_where_clauses( |
404 |
| - interner, |
405 |
| - chalk_ir::TyData::BoundVar(BoundVar::new( |
406 |
| - DebruijnIndex::INNERMOST, |
407 |
| - todo!(), |
408 |
| - )) |
409 |
| - .intern(interner), |
410 |
| - ) |
411 |
| - }) |
412 |
| - .collect()) |
413 |
| - }, |
414 |
| - )?; |
| 393 | + let hidden_ty_bounds: Binders<Vec<Binders<_>>> = env.in_binders( |
| 394 | + Some(chalk_ir::ParameterKind::Ty(intern(FIXME_SELF))), |
| 395 | + |env1| { |
| 396 | + let interner = env1.interner(); |
| 397 | + Ok(opaque_ty |
| 398 | + .bounds |
| 399 | + .lower(&env1)? |
| 400 | + .iter() |
| 401 | + .flat_map(|qil| { |
| 402 | + qil.into_where_clauses(interner, hidden_ty.clone()) |
| 403 | + }) |
| 404 | + .collect()) |
| 405 | + }, |
| 406 | + )?; |
415 | 407 |
|
416 | 408 | Ok(OpaqueTyBound {
|
417 | 409 | hidden_ty,
|
|
0 commit comments