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

Print this page




 733         tree.type = erasure(tree.type);
 734         result = tree;
 735     }
 736 
 737     public void visitUnary(JCUnary tree) {
 738         tree.arg = translate(tree.arg, tree.operator.type.getParameterTypes().head);
 739         result = tree;
 740     }
 741 
 742     public void visitBinary(JCBinary tree) {
 743         tree.lhs = translate(tree.lhs, tree.operator.type.getParameterTypes().head);
 744         tree.rhs = translate(tree.rhs, tree.operator.type.getParameterTypes().tail.head);
 745         result = tree;
 746     }
 747 
 748     public void visitTypeCast(JCTypeCast tree) {
 749         tree.clazz = translate(tree.clazz, null);
 750         Type originalTarget = tree.type;
 751         tree.type = erasure(tree.type);
 752         tree.expr = translate(tree.expr, tree.type);
 753         if (originalTarget.isCompound()) {
 754             Type.IntersectionClassType ict = (Type.IntersectionClassType)originalTarget;
 755             for (Type c : ict.getExplicitComponents()) {
 756                 Type ec = erasure(c);
 757                 if (!types.isSameType(ec, tree.type)) {
 758                     tree.expr = coerce(tree.expr, ec);
 759                 }
 760             }
 761         }
 762         result = tree;
 763     }
 764 
 765     public void visitTypeTest(JCInstanceOf tree) {
 766         tree.expr = translate(tree.expr, null);
 767         tree.clazz = translate(tree.clazz, null);
 768         result = tree;
 769     }
 770 
 771     public void visitIndexed(JCArrayAccess tree) {
 772         tree.indexed = translate(tree.indexed, erasure(tree.indexed.type));
 773         tree.index = translate(tree.index, syms.intType);




 733         tree.type = erasure(tree.type);
 734         result = tree;
 735     }
 736 
 737     public void visitUnary(JCUnary tree) {
 738         tree.arg = translate(tree.arg, tree.operator.type.getParameterTypes().head);
 739         result = tree;
 740     }
 741 
 742     public void visitBinary(JCBinary tree) {
 743         tree.lhs = translate(tree.lhs, tree.operator.type.getParameterTypes().head);
 744         tree.rhs = translate(tree.rhs, tree.operator.type.getParameterTypes().tail.head);
 745         result = tree;
 746     }
 747 
 748     public void visitTypeCast(JCTypeCast tree) {
 749         tree.clazz = translate(tree.clazz, null);
 750         Type originalTarget = tree.type;
 751         tree.type = erasure(tree.type);
 752         tree.expr = translate(tree.expr, tree.type);
 753         if (originalTarget.isIntersection()) {
 754             Type.IntersectionClassType ict = (Type.IntersectionClassType)originalTarget;
 755             for (Type c : ict.getExplicitComponents()) {
 756                 Type ec = erasure(c);
 757                 if (!types.isSameType(ec, tree.type)) {
 758                     tree.expr = coerce(tree.expr, ec);
 759                 }
 760             }
 761         }
 762         result = tree;
 763     }
 764 
 765     public void visitTypeTest(JCInstanceOf tree) {
 766         tree.expr = translate(tree.expr, null);
 767         tree.clazz = translate(tree.clazz, null);
 768         result = tree;
 769     }
 770 
 771     public void visitIndexed(JCArrayAccess tree) {
 772         tree.indexed = translate(tree.indexed, erasure(tree.indexed.type));
 773         tree.index = translate(tree.index, syms.intType);