Skip to content

Commit 8d09a2d

Browse files
committed
Move WellFormed Scalar logic to match_type_name
1 parent 2fd7fb7 commit 8d09a2d

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

chalk-solve/src/clauses.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -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
}

chalk-solve/src/clauses/env_elaborator.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ impl<'me, I: Interner> Visitor<'me, I> for EnvElaborator<'me, I> {
6161
let interner = self.db.interner();
6262
match ty.data(interner) {
6363
TyData::Apply(application_ty) => {
64-
match_type_name(&mut self.builder, application_ty.name)
64+
match_type_name(&mut self.builder, interner, application_ty)
6565
}
6666
TyData::Alias(alias_ty) => match_alias_ty(&mut self.builder, alias_ty),
6767
TyData::Placeholder(_) => {}

0 commit comments

Comments
 (0)