diff --git a/src/main/java/edu/lu/uni/serval/FixPatternParser/Parser.java b/src/main/java/edu/lu/uni/serval/FixPatternParser/Parser.java index faf01d2..a27bec8 100644 --- a/src/main/java/edu/lu/uni/serval/FixPatternParser/Parser.java +++ b/src/main/java/edu/lu/uni/serval/FixPatternParser/Parser.java @@ -199,7 +199,13 @@ public abstract class Parser implements ParserInterface { int bugS = set.getStartPosition(); int fixS = set.getFixStartLineNum(); - if (bugS > bugEndPosition || fixS > fixEndPosition) continue; + if (set.getActionString().startsWith("INS")) { + if (fixS > fixEndPosition) { + continue; + } + } else if (!set.getActionString().startsWith("MOV") && bugS > bugEndPosition) { + continue; + } subSets.addAll(set.getSubActions()); String actionStr = set.getActionString(); diff --git a/src/main/java/edu/lu/uni/serval/FixPatternParser/violations/FixedViolationHunkParser.java b/src/main/java/edu/lu/uni/serval/FixPatternParser/violations/FixedViolationHunkParser.java index c2b8a2d..42313fc 100644 --- a/src/main/java/edu/lu/uni/serval/FixPatternParser/violations/FixedViolationHunkParser.java +++ b/src/main/java/edu/lu/uni/serval/FixPatternParser/violations/FixedViolationHunkParser.java @@ -227,11 +227,15 @@ public class FixedViolationHunkParser extends FixedViolationParser { for (HierarchicalActionSet subActionSet : actionSet.getSubActions()) { int bugS = subActionSet.getStartPosition(); int fixS = subActionSet.getFixStartLineNum(); - if (bugS > bugEndPosition || fixS > fixEndPosition) { + + if (subActionSet.getActionString().startsWith("INS")) { + if (fixS > fixEndPosition) { + continue; + } + } else if (!subActionSet.getActionString().startsWith("MOV") && bugS > bugEndPosition) { continue; - } else { - editScripts += getActionString(subActionSet, bugEndPosition, fixEndPosition, startStr + "---"); } + editScripts += getActionString(subActionSet, bugEndPosition, fixEndPosition, startStr + "---"); }