diff options
| author | tslil <tslil@posteo.de> | 2026-05-07 19:25:08 +0100 |
|---|---|---|
| committer | tslil <tslil@posteo.de> | 2026-05-07 19:34:47 +0100 |
| commit | 77e215d06ac471dbbdbca3aaa2940f0c77580ac8 (patch) | |
| tree | 0c4f725a0573c35a77cb4eceb325407061964f7a /src/checker_state.rs | |
| parent | 55ea9c739c8e42df0caf8a3394add7bd7931a189 (diff) | |
regression in WiP work to improve sets
Diffstat (limited to 'src/checker_state.rs')
| -rw-r--r-- | src/checker_state.rs | 7 |
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) => { |
