diff --git a/src/eval/ops.rs b/src/eval/ops.rs index 94e577182..649b8467e 100644 --- a/src/eval/ops.rs +++ b/src/eval/ops.rs @@ -84,6 +84,9 @@ pub fn add(lhs: Value, rhs: Value) -> StrResult { (Str(a), Str(b)) => Str(a + b), (Array(a), Array(b)) => Array(a + b), (Dict(a), Dict(b)) => Dict(a + b), + + (Node(a), None) => Node(a), + (None, Node(b)) => Node(b), (Node(a), Node(b)) => Node(a + b), (Node(a), Str(b)) => Node(a + super::Node::Text(b)), (Str(a), Node(b)) => Node(super::Node::Text(a) + b),