\[~ann.campbell.2] regarding title - I think that would be better to narrow it down to "unary prefix operators".
Regarding example - it won't compile, because
{noformat}
---i;
{plus}{plus}+i;
{noformat}
is the same as
{noformat}
--(-i);
{plus}{plus}(+i);
{noformat}
and both ``++-i++`` and ``{plus}i`` are not assignable r-values, thus can't be used for unary ``++--++`` and ``{plus}{plus}``. And seems that description also should be adjusted taking this into account.
\[~ann.campbell.2] I don't think that we should exclude prefix increment and decrement, because so far I don't see good reasons to write ``{plus}{plus}({plus}{plus}i)`` instead of ``++i += 2++``.
\[~ann.campbell.2] and ouch - just noticed that there is parameter to ignore two bangs, which is first of all seems to be relevant only for C-Family and second - I believe that we discussed to go without it and see feedback.
I've moved the parameter to the C-Family subtask. I suppose the comment thread (now deleted) on the bootstrap document was ambiguous. I thought you were okay to give a try with. We can delete it altogether if you like.
\[~ann.campbell.2] I've updated the rule title according to our discussion with [~dinesh.bolkensteyn] and [~freddy.mallet]. I've left the C family exception intact, but we shouldn't implement that for other languages as it raises many question.
* Does this rule recognizes typos? ``{plus}{plus}{plus}{plus}i`` is hardly a typo.
* Why don't we handle ``{plus}\-{plus}\-6`` as well? Why are we restricting the rule to consecutively repeated unary prefix operators? ``+++-+-++`` is also repeated.
* Why don't we handle all useless prefix operators? Such as ``+++6++``.
* Should we handle ``++!(!expression)++`` as well? No we shouldn't, because that is not a typo.