Skip to content

Commit 73d5f78

Browse files
Shorten or/and in expressions (#1939)
Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com>
1 parent 0b4c67a commit 73d5f78

File tree

1 file changed

+5
-10
lines changed

1 file changed

+5
-10
lines changed

pkg/exprparser/interpreter.go

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -554,6 +554,10 @@ func (impl *interperterImpl) evaluateLogicalCompare(compareNode *actionlint.Logi
554554

555555
leftValue := reflect.ValueOf(left)
556556

557+
if IsTruthy(left) == (compareNode.Kind == actionlint.LogicalOpNodeKindOr) {
558+
return impl.getSafeValue(leftValue), nil
559+
}
560+
557561
right, err := impl.evaluateNode(compareNode.Right)
558562
if err != nil {
559563
return nil, err
@@ -563,17 +567,8 @@ func (impl *interperterImpl) evaluateLogicalCompare(compareNode *actionlint.Logi
563567

564568
switch compareNode.Kind {
565569
case actionlint.LogicalOpNodeKindAnd:
566-
if IsTruthy(left) {
567-
return impl.getSafeValue(rightValue), nil
568-
}
569-
570-
return impl.getSafeValue(leftValue), nil
571-
570+
return impl.getSafeValue(rightValue), nil
572571
case actionlint.LogicalOpNodeKindOr:
573-
if IsTruthy(left) {
574-
return impl.getSafeValue(leftValue), nil
575-
}
576-
577572
return impl.getSafeValue(rightValue), nil
578573
}
579574

0 commit comments

Comments
 (0)