Skip to content

Commit bd6e5eb

Browse files
Fix Engine: Refactor conflict handling in lower and upper bound methods to improve clarity and consistency
1 parent 80cbd5f commit bd6e5eb

1 file changed

Lines changed: 10 additions & 4 deletions

File tree

src/lib.rs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ impl Engine {
119119
if let Some(reason) = reason {
120120
self.conflict.push(reason);
121121
}
122-
for reason in self.ubs[var].iter().next_back().unwrap().1.iter() {
122+
for reason in self.ubs[var].iter().next().unwrap().1.iter() {
123123
self.conflict.push(*reason);
124124
}
125125
return false; // Inconsistent constraint
@@ -137,7 +137,10 @@ impl Engine {
137137
}
138138
}
139139

140-
self.lbs[var].entry(lb).or_default().insert(reason.unwrap());
140+
let entry = self.lbs[var].entry(lb).or_default();
141+
if let Some(reason) = reason {
142+
entry.insert(reason);
143+
}
141144
if self.value(var) < &lb && !self.is_basic(var) {
142145
self.update(var, lb);
143146
}
@@ -151,7 +154,7 @@ impl Engine {
151154
if let Some(reason) = reason {
152155
self.conflict.push(reason);
153156
}
154-
for reason in self.lbs[var].iter().next().unwrap().1.iter() {
157+
for reason in self.lbs[var].iter().next_back().unwrap().1.iter() {
155158
self.conflict.push(*reason);
156159
}
157160
return false; // Inconsistent constraint
@@ -169,7 +172,10 @@ impl Engine {
169172
}
170173
}
171174

172-
self.ubs[var].entry(ub).or_default().insert(reason.unwrap());
175+
let entry = self.ubs[var].entry(ub).or_default();
176+
if let Some(reason) = reason {
177+
entry.insert(reason);
178+
}
173179
if self.value(var) > &ub && !self.is_basic(var) {
174180
self.update(var, ub);
175181
}

0 commit comments

Comments
 (0)