@@ -416,13 +416,7 @@ fn match_ty<I: Interner>(
416416) -> Result < ( ) , Floundered > {
417417 let interner = builder. interner ( ) ;
418418 Ok ( match ty. data ( interner) {
419- TyData :: Apply ( ApplicationTy {
420- name : TypeName :: Scalar ( _) ,
421- ..
422- } ) => {
423- builder. push_fact ( WellFormed :: Ty ( ty. clone ( ) ) ) ;
424- }
425- TyData :: Apply ( application_ty) => match_type_name ( builder, application_ty. name ) ,
419+ TyData :: Apply ( application_ty) => match_type_name ( builder, interner, application_ty) ,
426420 TyData :: Placeholder ( _) => {
427421 builder. push_clause ( WellFormed :: Ty ( ty. clone ( ) ) , Some ( FromEnv :: Ty ( ty. clone ( ) ) ) ) ;
428422 }
@@ -448,8 +442,12 @@ fn match_ty<I: Interner>(
448442 } )
449443}
450444
451- fn match_type_name < I : Interner > ( builder : & mut ClauseBuilder < ' _ , I > , name : TypeName < I > ) {
452- match name {
445+ fn match_type_name < I : Interner > (
446+ builder : & mut ClauseBuilder < ' _ , I > ,
447+ interner : & I ,
448+ application : & ApplicationTy < I > ,
449+ ) {
450+ match application. name {
453451 TypeName :: Struct ( struct_id) => match_struct ( builder, struct_id) ,
454452 TypeName :: OpaqueType ( opaque_ty_id) => builder
455453 . db
@@ -460,7 +458,9 @@ fn match_type_name<I: Interner>(builder: &mut ClauseBuilder<'_, I>, name: TypeNa
460458 . db
461459 . associated_ty_data ( type_id)
462460 . to_program_clauses ( builder) ,
463- TypeName :: Scalar ( _) => ( ) ,
461+ TypeName :: Scalar ( _) => {
462+ builder. push_fact ( WellFormed :: Ty ( application. clone ( ) . intern ( interner) ) )
463+ }
464464 TypeName :: Tuple ( _) => ( ) ,
465465 }
466466}
0 commit comments