Skip to content

Commit 59db2ce

Browse files
arnetheduck@gmail.comarnetheduck@gmail.com
authored andcommitted
fix missing unboxing on upper bounded generics extending a boxed type
1 parent 3319ad0 commit 59db2ce

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

plugin/src/se/arnetheduck/j2c/transform/ImplWriter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,6 @@ public boolean preVisit2(ASTNode node) {
598598

599599
if (node instanceof Expression) {
600600
Expression expr = (Expression) node;
601-
ITypeBinding tb = expr.resolveTypeBinding();
602601

603602
if ((expr.resolveBoxing() || expr.resolveUnboxing())
604603
&& checkBoxNesting(expr)) {
@@ -610,6 +609,7 @@ && checkBoxNesting(expr)) {
610609

611610
visits.add(new NodeInfo(node, ")"));
612611
} else if (expr.resolveUnboxing()) {
612+
ITypeBinding tb = expr.resolveTypeBinding().getErasure();
613613
if (TransformUtil.reverses.containsKey(tb
614614
.getQualifiedName())) {
615615
hardDep(tb);
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package se.arnetheduck.j2c.test.generics;
2+
3+
public class GenericBoxing {
4+
public interface T<X> {
5+
X value();
6+
}
7+
8+
long m(T<? extends Long> t) {
9+
// Auto-unboxing should happen as X is guaranteed to extend Long
10+
return t.value();
11+
}
12+
}

0 commit comments

Comments
 (0)