Calling ability with non-specialized type is an error

This commit is contained in:
Ayaz Hafiz 2022-04-13 11:49:33 -04:00
parent de9d97c5d1
commit 0792ccbbe8
No known key found for this signature in database
GPG key ID: 0E2A37416A25EF58
6 changed files with 113 additions and 6 deletions

View file

@ -108,9 +108,15 @@ pub fn constrain_module(
let mut constraint = crate::expr::constrain_decls(constraints, home, declarations);
for (member_name, member_data) in abilities_store.root_ability_members().iter() {
let vars = &member_data.variables;
let rigids = (vars.rigid_vars.iter())
// For our purposes, in the let constraint, able vars are treated like rigids.
.chain(vars.able_vars.iter())
.copied();
let flex = vars.flex_vars.iter().copied();
constraint = constraints.let_constraint(
[],
[],
rigids,
flex,
[(*member_name, Loc::at_zero(member_data.signature.clone()))],
Constraint::True,
constraint,