Skip to content

Commit c0aebe4

Browse files
committed
[fix] Properly merge implicitness of values #43
1 parent fa13683 commit c0aebe4

File tree

5 files changed

+35
-0
lines changed

5 files changed

+35
-0
lines changed

src/main/java/se/kth/spork/spoon/Spoon3dmMerge.java

+12
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,10 @@ public RoledValues apply(SpoonNode wrapper) {
172172
CtElement elem = wrapper.getElement();
173173
RoledValues rvs = new RoledValues();
174174

175+
// general values
176+
rvs.add(CtRole.IS_IMPLICIT, elem.isImplicit());
177+
178+
// element-specific values
175179
if (elem instanceof CtLiteral) {
176180
CtLiteral<?> lit = (CtLiteral<?>) elem;
177181
rvs.add(CtRole.VALUE, lit.getValue());
@@ -263,6 +267,14 @@ private static void handleContentConflicts(TStar<SpoonNode, RoledValues> delta)
263267
break;
264268
case COMMENT_CONTENT:
265269
merged = mergeComments(baseValOpt.orElse(""), leftVal, rightVal);
270+
break;
271+
case IS_IMPLICIT:
272+
if (baseValOpt.isPresent()) {
273+
merged = Optional.of(!(Boolean) baseValOpt.get());
274+
} else {
275+
// when in doubt, discard implicitness
276+
merged = Optional.of(false);
277+
}
266278
default:
267279
// pass
268280
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
class Cls {
2+
public static void main(String[] args) {
3+
System.out.println(args);
4+
}
5+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
class Cls {
2+
public static void main(String[] args) {
3+
java.lang.String s = args[0];
4+
System.out.println(s);
5+
}
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
class Cls {
2+
public static void main(String[] args) {
3+
String s = args[0];
4+
System.out.println(s);
5+
}
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
class Cls {
2+
public static void main(String[] args) {
3+
java.lang.String s = args[0];
4+
System.out.println(s);
5+
}
6+
}

0 commit comments

Comments
 (0)