Fix the bug of clearing INS action's subactions.
This commit is contained in:
@@ -236,7 +236,8 @@ public class HunkActionFilter {
|
|||||||
|
|
||||||
private List<Move> getFirstAndLastMoveAction(HierarchicalActionSet gumTreeResult) {
|
private List<Move> getFirstAndLastMoveAction(HierarchicalActionSet gumTreeResult) {
|
||||||
List<Move> firstAndLastMoveActions = new ArrayList<>();
|
List<Move> firstAndLastMoveActions = new ArrayList<>();
|
||||||
List<HierarchicalActionSet> actions = gumTreeResult.getSubActions();
|
List<HierarchicalActionSet> actions = new ArrayList<>();
|
||||||
|
actions.addAll(gumTreeResult.getSubActions());
|
||||||
if (actions.size() == 0) {
|
if (actions.size() == 0) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -368,12 +369,12 @@ public class HunkActionFilter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for (Violation violation : violations) {
|
for (Violation violation : violations) {
|
||||||
int startLine = violation.getStartLineNum();
|
int violationStartLine = violation.getStartLineNum();
|
||||||
int endLine = violation.getEndLineNum();
|
int violationEndLine = violation.getEndLineNum();
|
||||||
int bugStartLine = violation.getBugStartLineNum();
|
int bugHunkStartLine = violation.getBugStartLineNum();
|
||||||
int bugEndLine = violation.getBugEndLineNum();
|
int bugHunkEndLine = violation.getBugEndLineNum();
|
||||||
int fixStartLine = violation.getFixStartLineNum();
|
int fixHunkStartLine = violation.getFixStartLineNum();
|
||||||
int fixEndLine = violation.getFixEndLineNum();
|
int fixHunkEndLine = violation.getFixEndLineNum();
|
||||||
|
|
||||||
for (HierarchicalActionSet actionSet : actionSets) {
|
for (HierarchicalActionSet actionSet : actionSets) {
|
||||||
int actionBugStartLine = actionSet.getBugStartLineNum();
|
int actionBugStartLine = actionSet.getBugStartLineNum();
|
||||||
@@ -386,21 +387,23 @@ public class HunkActionFilter {
|
|||||||
|
|
||||||
String actionStr = actionSet.getActionString();
|
String actionStr = actionSet.getActionString();
|
||||||
if (actionStr.startsWith("INS")) {
|
if (actionStr.startsWith("INS")) {
|
||||||
if (fixStartLine <= actionFixStartLine && actionFixEndLine <= fixEndLine) {
|
if (fixHunkStartLine <= actionFixStartLine && actionFixEndLine <= fixHunkEndLine) {
|
||||||
if (actionBugStartLine != 0) {
|
if (actionBugStartLine != 0) {
|
||||||
if (startLine <= actionBugEndLine && endLine >= actionBugStartLine) {
|
if (violationStartLine <= actionBugEndLine && violationEndLine >= actionBugStartLine) {
|
||||||
violation.getActionSets().add(actionSet);
|
violation.getActionSets().add(actionSet);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (isRanged(actionSet, violation)) violation.getActionSets().add(actionSet);
|
if (isRanged(actionSet, violation)) {
|
||||||
|
violation.getActionSets().add(actionSet);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (bugEndLine < actionBugStartLine) {
|
if (bugHunkEndLine < actionBugStartLine) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (bugStartLine <= actionBugStartLine && actionBugEndLine <= bugEndLine) {
|
if (bugHunkStartLine <= actionBugStartLine && actionBugEndLine <= bugHunkEndLine) {
|
||||||
if (startLine <= actionBugEndLine && endLine >= actionBugStartLine) {
|
if (violationStartLine <= actionBugEndLine && violationEndLine >= actionBugStartLine) {
|
||||||
violation.getActionSets().add(actionSet);
|
violation.getActionSets().add(actionSet);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -582,7 +585,7 @@ public class HunkActionFilter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private int setLineNumbers(HierarchicalActionSet actionSet, CompilationUnit prevUnit, CompilationUnit revUnit) {
|
private int setLineNumbers(HierarchicalActionSet actionSet, CompilationUnit prevUnit, CompilationUnit revUnit) {
|
||||||
int actionBugStartLine = actionSet.getBugStartLineNum();
|
int actionBugStartLine;
|
||||||
int actionBugEndLine;
|
int actionBugEndLine;
|
||||||
int actionFixStartLine;
|
int actionFixStartLine;
|
||||||
int actionFixEndLine;
|
int actionFixEndLine;
|
||||||
|
|||||||
Reference in New Issue
Block a user