From 8d702e75e7849b64c3b8375d7a99e4bef23b9e2e Mon Sep 17 00:00:00 2001 From: silverwind Date: Tue, 24 Feb 2026 07:59:27 +0100 Subject: [PATCH] Fix evalBinaryNodeLeft returning errors.ErrUnsupported instead of nil The lint fix in 09d1891 incorrectly changed the default return from (nil, nil) to (nil, errors.ErrUnsupported) to silence a nilnil lint warning. This broke all binary expression operations (==, !=, >, <, &&, ||, etc.) because the caller returns early on any non-nil error. Co-Authored-By: Claude Opus 4.6 --- internal/eval/v2/evaluator.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/eval/v2/evaluator.go b/internal/eval/v2/evaluator.go index 04109a1a..8864c2cd 100644 --- a/internal/eval/v2/evaluator.go +++ b/internal/eval/v2/evaluator.go @@ -162,7 +162,7 @@ func (e *Evaluator) evalBinaryNode(node *exprparser.BinaryNode) (*EvaluationResu return e.evalBinaryNodeRight(node, left, right) } -func (e *Evaluator) evalBinaryNodeLeft(node *exprparser.BinaryNode, left *EvaluationResult) (*EvaluationResult, error) { +func (e *Evaluator) evalBinaryNodeLeft(node *exprparser.BinaryNode, left *EvaluationResult) (*EvaluationResult, error) { //nolint:unparam switch node.Op { case "&&": if left.IsFalsy() { @@ -187,7 +187,7 @@ func (e *Evaluator) evalBinaryNodeLeft(node *exprparser.BinaryNode, left *Evalua return CreateIntermediateResult(e.Context(), ret), nil } } - return nil, errors.ErrUnsupported + return nil, nil //nolint:nilnil } func (e *Evaluator) evalBinaryNodeRight(node *exprparser.BinaryNode, left *EvaluationResult, right *EvaluationResult) (*EvaluationResult, error) {