Automatic correction of parentheses for State Automaton Guard lead to a logic error
E.g.:
Offset != NoVal && ((Set != NoVal &&$Set + 1 >= Offset) || (Set == NoVal && offset + 1 < Offset))
will be automatically corrected into
Offset != NoVal && (Set != NoVal && Set + 1 >= Offset || Set == NoVal && offset + 1 < Offset)
,
but the logic of the both terms is not the same.
Or:
A disjunctive normal form
(Offset != NoVal && Set != NoVal && Set + 1 >= Offset) || (Offset != NoVal && Set == NoVal && offset + 1 < Offset)
will be automatically transformed into
(Offset != NoVal && Set != NoVal) && Set + 1 >= Offset || (Offset != NoVal && Set == NoVal) && offset + 1 < Offset
,
which is logically completely different!
(from redmine: issue id 1482, created on 2013-07-13, closed on 2018-05-28)