It currently operates on the principle that structural conflicts can only occur in places where an arbitrary amount of code elements can be added, and simply adds the conflicting elements in order, so they are all present in the tree. This is not actually possible in all cases, for example a binary operator may give rise to a structural conflict (in either left or right operand), but there's no way to just add two left or right operands.
A more general solution is needed.
It currently operates on the principle that structural conflicts can only occur in places where an arbitrary amount of code elements can be added, and simply adds the conflicting elements in order, so they are all present in the tree. This is not actually possible in all cases, for example a binary operator may give rise to a structural conflict (in either left or right operand), but there's no way to just add two left or right operands.
A more general solution is needed.