You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The ActionClassifier groups Moves into Root Action moves as done with Insert and Actions (The code is almost the same see here )
However, Moves are different from Inserts/Deletes: a move affects to a Tree, whereas Insert/delects affects to a single node.
This means that, for example, if we move a While, we always only one Move action. But, if we add one While we have N actions (Insert of condition, insert of body, insert of statements inside body, etc).
This means that the classifiers wrongly works when we move element X to element Y, and Y is a leaf of another moved tree Z (Z having more than 1 level). In that case, the classifier produces two roots: mov X and Mov Z.
Note that the behaviour is correct if Z is a single node (and is also leaf i.e. Y )
First, I would not group moves. Moved nodes are already grouped, because only the root is marked as moved.
Second, to check in the complete list of parent if there is a moved parent, rather than only in the immediate parent.
The text was updated successfully, but these errors were encountered:
martinezmatias
changed the title
[] Improvement on ActionClassifier
Bug on ActionClassifier and Moves
May 25, 2020
Problematic:
The ActionClassifier groups Moves into Root Action moves as done with Insert and Actions (The code is almost the same see here )
However, Moves are different from Inserts/Deletes: a move affects to a Tree, whereas Insert/delects affects to a single node.
This means that, for example, if we move a While, we always only one Move action. But, if we add one While we have N actions (Insert of condition, insert of body, insert of statements inside body, etc).
This means that the classifiers wrongly works when we move element X to element Y, and Y is a leaf of another moved tree Z (Z having more than 1 level). In that case, the classifier produces two roots: mov X and Mov Z.
Note that the behaviour is correct if Z is a single node (and is also leaf i.e. Y )
For example:
Produce two moves: Mov If(a) and Mov call1()
Solutions:
I propose two solutions.
First, I would not group moves. Moved nodes are already grouped, because only the root is marked as moved.
Second, to check in the complete list of parent if there is a moved parent, rather than only in the immediate parent.
The text was updated successfully, but these errors were encountered: