Not allowing this situation might be a good idea.
Nevertheless, I suppose you agree with me, that the following code
var template RoI vroi := {1,2,3}
vroi := {-, 20}; // leads to this outcome: vroi == {1, 20}
unfortunately it is not specified inside the standard how '-' is handled together with matching symbols inside a value list notation on the right hand side of an assignment.
If this is intended it should be written down in the standard that using '-' on the right hand side of an assignment to a var template is not allowed.
Maybe we should issue a CR regarding this behaviour.
Still I think having a '-' before a '*' could still be possible
var template RoI vroi := {1,2,3}
vroi := {-, *}; // would then lead to vroi == {1,*}
Sorry if I'm asking it again, but there are still some unclear things I mentioned further down in this email thread which have not been answered yet.
Namely:
RoI var template vroi := {1, *, 2};
vroi[1] := 1; // ok -> {1, 1, 2}
further on
RoI var template vroi := {1, *, 2};
vroi := {10, -, 20 } // -> error, as index 2 crosses the index of '*' of the original value
vroi := {-, 20} // ok -> {1, 20}
vroi := {1, permutation(10, 20), 2}
vroi := {11, -, -, 12} // -> ok as permutation elements remain untouched
vroi := {11, 12, - 12} // -> error: as not the whole permutation gets overwritten
vroi := {11, 12}; // -> from 6.2.3 example 2 I would say it is allowed
//and the result is {11, 12}, nevertheless index 1 is originally part
//of a permutation and thus this should be an error.
What is your opinion about this?
BR.,
Uwe