aboutsummaryrefslogtreecommitdiff
path: root/src/checker_state.rs
diff options
context:
space:
mode:
authortslil <tslil@posteo.de>2026-05-07 19:25:08 +0100
committertslil <tslil@posteo.de>2026-05-07 19:34:47 +0100
commit77e215d06ac471dbbdbca3aaa2940f0c77580ac8 (patch)
tree0c4f725a0573c35a77cb4eceb325407061964f7a /src/checker_state.rs
parent55ea9c739c8e42df0caf8a3394add7bd7931a189 (diff)
regression in WiP work to improve sets
Diffstat (limited to 'src/checker_state.rs')
-rw-r--r--src/checker_state.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/checker_state.rs b/src/checker_state.rs
index 42f5089..c12a2d7 100644
--- a/src/checker_state.rs
+++ b/src/checker_state.rs
@@ -246,8 +246,9 @@ impl CheckerState {
name: &String,
field_set: &Set,
owner_set: &Set,
+ rebind: bool,
) -> Result<(), CheckerError> {
- if let Some(set_ref) = self.record_fields.get(name) {
+ if !rebind && let Some(set_ref) = self.record_fields.get(name) {
self.assert_correct_owner(name, set_ref, owner_set)?;
};
self.record_fields.insert(
@@ -281,7 +282,7 @@ impl CheckerState {
}
#[instrument(skip(self), level = "debug", fields(%name, %set))]
- pub fn add_set(&mut self, name: String, set: Set) -> Result<(), CheckerError> {
+ pub fn add_set(&mut self, name: String, set: Set, rebind: bool) -> Result<(), CheckerError> {
match &set {
Set::Record(fields) => {
for Field {
@@ -289,7 +290,7 @@ impl CheckerState {
carries: field_set,
} in fields
{
- self.add_record_field(rfn, field_set, &set)?;
+ self.add_record_field(rfn, field_set, &set, rebind)?;
}
}
Set::Variant(fields) => {