@@ -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