src/share/classes/com/sun/tools/javac/comp/TransTypes.java

changeset 1785
92e420e9807d
parent 1696
c2315af9cc28
child 1792
ec871c3e8337
     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) {

mercurial