Skip to content

Commit 8f79978

Browse files
committed
refactor: Simplify value comparator
(cherry picked from commit 4f78808)
1 parent 868c331 commit 8f79978

File tree

1 file changed

+8
-30
lines changed

1 file changed

+8
-30
lines changed

src/main/scala/org/camunda/feel/impl/interpreter/ValComparator.scala

Lines changed: 8 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -49,43 +49,21 @@ class ValComparator(private val valueMapper: ValueMapper) {
4949
}
5050

5151
private def compare(x: List[Val], y: List[Val]): ValBoolean = {
52-
if (x.size != y.size) {
53-
ValBoolean(false)
54-
55-
} else {
56-
val itemsAreEqual = x.zip(y).foldRight(true) { case ((x, y), listIsEqual) =>
57-
listIsEqual && {
58-
compare(x, y) match {
59-
case ValBoolean(itemIsEqual) => itemIsEqual
60-
case _ => false
61-
}
62-
}
63-
}
64-
ValBoolean(itemsAreEqual)
65-
}
52+
ValBoolean(
53+
x.size == y.size && x.zip(y).forall { case (itemX, itemY) => equals(itemX, itemY) }
54+
)
6655
}
6756

6857
private def compare(x: Context, y: Context): ValBoolean = {
6958
val xVars = x.variableProvider.getVariables
7059
val yVars = y.variableProvider.getVariables
7160

72-
if (xVars.keys != yVars.keys) {
73-
ValBoolean(false)
74-
75-
} else {
76-
val itemsAreEqual = xVars.keys.foldRight(true) { case (key, contextIsEqual) =>
77-
contextIsEqual && {
78-
val xVal = valueMapper.toVal(xVars(key))
79-
val yVal = valueMapper.toVal(yVars(key))
61+
ValBoolean(xVars.keys == yVars.keys && xVars.keys.forall { key =>
62+
val xVal = valueMapper.toVal(xVars(key))
63+
val yVal = valueMapper.toVal(yVars(key))
8064

81-
compare(xVal, yVal) match {
82-
case ValBoolean(entryIsEqual) => entryIsEqual
83-
case _ => false
84-
}
85-
}
86-
}
87-
ValBoolean(itemsAreEqual)
88-
}
65+
equals(xVal, yVal)
66+
})
8967
}
9068

9169
}

0 commit comments

Comments
 (0)