@@ -215,7 +215,7 @@ func (builder *builder) MarkBoolean(v frontend.Variable) {
215
215
return
216
216
}
217
217
// v is a linear expression
218
- l , _ := builder . linearExpression ( v )
218
+ l := v .(expr. LinearExpression )
219
219
sort .Sort (l )
220
220
221
221
key := l .HashCode ()
@@ -232,7 +232,7 @@ func (builder *builder) IsBoolean(v frontend.Variable) bool {
232
232
return (builder .isCstZero (& b ) || builder .isCstOne (& b ))
233
233
}
234
234
// v is a linear expression
235
- l , _ := builder . linearExpression ( v )
235
+ l := v .(expr. LinearExpression )
236
236
sort .Sort (l )
237
237
238
238
key := l .HashCode ()
@@ -285,7 +285,7 @@ func (builder *builder) ConstantValue(v frontend.Variable) (*big.Int, bool) {
285
285
}
286
286
287
287
func (builder * builder ) constantValue (v frontend.Variable ) (constraint.Coeff , bool ) {
288
- if _v , ok := builder . linearExpression ( v ); ok {
288
+ if _v , ok := v .(expr. LinearExpression ); ok {
289
289
assertIsSet (_v )
290
290
291
291
if len (_v ) != 1 {
@@ -361,7 +361,7 @@ func (builder *builder) NewHint(f hint.Function, nbOutputs int, inputs ...fronte
361
361
// TODO @gbotrel hint input pass
362
362
// ensure inputs are set and pack them in a []uint64
363
363
for i , in := range inputs {
364
- if t , ok := builder . linearExpression ( in ); ok {
364
+ if t , ok := in .(expr. LinearExpression ); ok {
365
365
assertIsSet (t )
366
366
hintInputs [i ] = builder .getLinearExpression (t )
367
367
} else {
@@ -449,13 +449,3 @@ func (builder *builder) compress(le expr.LinearExpression) expr.LinearExpression
449
449
builder .cs .AddConstraint (builder .newR1C (le , one , t ))
450
450
return t
451
451
}
452
-
453
- func (builder * builder ) linearExpression (v frontend.Variable ) (expr.LinearExpression , bool ) {
454
- switch t := v .(type ) {
455
- case expr.LinearExpression :
456
- return t , true
457
- case * expr.LinearExpression :
458
- return * t , true
459
- }
460
- return nil , false
461
- }
0 commit comments