File tree Expand file tree Collapse file tree 2 files changed +12
-6
lines changed Expand file tree Collapse file tree 2 files changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -145,6 +145,8 @@ fn program_clauses_that_could_match<I: Interner>(
145
145
let interner = db. interner ( ) ;
146
146
let builder = & mut ClauseBuilder :: new ( db, clauses) ;
147
147
148
+ debug_heading ! ( "program_clauses_that_could_match(goal={:?})" , goal) ;
149
+
148
150
match goal {
149
151
DomainGoal :: Holds ( WhereClause :: Implemented ( trait_ref) ) => {
150
152
let trait_id = trait_ref. trait_id ;
@@ -258,12 +260,15 @@ fn program_clauses_that_could_match<I: Interner>(
258
260
} ) ;
259
261
}
260
262
261
- if let TyData :: Apply ( ApplicationTy {
262
- name : TypeName :: OpaqueType ( opaque_ty_id) ,
263
- ..
264
- } ) = self_ty. data ( interner)
265
- {
266
- db. opaque_ty_data ( * opaque_ty_id) . to_program_clauses ( builder) ;
263
+ match self_ty. data ( interner) {
264
+ TyData :: Apply ( ApplicationTy {
265
+ name : TypeName :: OpaqueType ( opaque_ty_id) ,
266
+ ..
267
+ } )
268
+ | TyData :: Alias ( AliasTy :: Opaque ( OpaqueTy { opaque_ty_id, .. } ) ) => {
269
+ db. opaque_ty_data ( * opaque_ty_id) . to_program_clauses ( builder) ;
270
+ }
271
+ _ => { }
267
272
}
268
273
269
274
if let Some ( well_known) = trait_datum. well_known {
Original file line number Diff line number Diff line change @@ -130,6 +130,7 @@ impl<I: Interner> ToProgramClauses<I> for OpaqueTyDatum<I> {
130
130
/// ```
131
131
/// where `!T<..>` is the placeholder for the unnormalized type `T<..>`.
132
132
fn to_program_clauses ( & self , builder : & mut ClauseBuilder < ' _ , I > ) {
133
+ debug_heading ! ( "to_program_clauses({:?})" , self ) ;
133
134
builder. push_binders ( & self . bound , |builder, opaque_ty_bound| {
134
135
let interner = builder. interner ( ) ;
135
136
let substitution = builder. substitution_in_scope ( ) ;
You can’t perform that action at this time.
0 commit comments