This function says it can be called on non-array elements. However, it does not say what the result is.
If called when "." is not itself an array element there
are only two possible behaviors consistent with the fact that it is
explicitly allowed on non-array elements.
The result has to be either
(a) 1
(b) the occursIndex of the nearest enclosing array parent, or 1 if there is no enclosing array parent.
I
claim (a) is fairly pointless. You will just end up having to create
newVariableInstances to carry the array current index downward into
expressions.
I cannot think of a use case where one
would want to call occursIndex() polymorphically, i.e., where you want a
number in the case of an array, but 1 otherwise.
So (b) is the preferable behavior.