use equal_types_with_storage in record constraining

This commit is contained in:
Folkert 2022-03-13 22:47:07 +01:00
parent 6baae55980
commit f23945ad94
No known key found for this signature in database
GPG key ID: 1F17F6FFD112B97C

View file

@ -126,25 +126,17 @@ pub fn constrain_expr(
// lifetime parameter on `Type`
Box::new(Type::EmptyRec),
);
let record_con = constraints.equal_types(
let record_con = constraints.equal_types_with_storage(
record_type,
expected.clone(),
Category::Record,
region,
*record_var,
);
rec_constraints.push(record_con);
// variable to store in the AST
let stored_con = constraints.equal_types_var(
*record_var,
expected,
Category::Storage(std::file!(), std::line!()),
region,
);
field_vars.push(*record_var);
rec_constraints.push(stored_con);
let and_constraint = constraints.and_constraint(rec_constraints);
constraints.exists(field_vars, and_constraint)