1.1 --- a/src/share/classes/com/sun/tools/javac/comp/TransTypes.java Tue May 28 17:39:41 2013 +0100 1.2 +++ b/src/share/classes/com/sun/tools/javac/comp/TransTypes.java Wed May 29 10:56:29 2013 +0100 1.3 @@ -172,10 +172,13 @@ 1.4 JCExpression retype(JCExpression tree, Type erasedType, Type target) { 1.5 // System.err.println("retype " + tree + " to " + erasedType);//DEBUG 1.6 if (!erasedType.isPrimitive()) { 1.7 - if (target != null && target.isPrimitive()) 1.8 + if (target != null && target.isPrimitive()) { 1.9 target = erasure(tree.type); 1.10 + } 1.11 tree.type = erasedType; 1.12 - if (target != null) return coerce(tree, target); 1.13 + if (target != null) { 1.14 + return coerce(tree, target); 1.15 + } 1.16 } 1.17 return tree; 1.18 } 1.19 @@ -686,8 +689,8 @@ 1.20 public void visitAssign(JCAssign tree) { 1.21 tree.lhs = translate(tree.lhs, null); 1.22 tree.rhs = translate(tree.rhs, erasure(tree.lhs.type)); 1.23 - tree.type = erasure(tree.type); 1.24 - result = tree; 1.25 + tree.type = erasure(tree.lhs.type); 1.26 + result = retype(tree, tree.type, pt); 1.27 } 1.28 1.29 public void visitAssignop(JCAssignOp tree) {