1.1 --- a/src/share/classes/com/sun/tools/javac/comp/TransTypes.java Mon Apr 15 14:16:05 2013 +0100 1.2 +++ b/src/share/classes/com/sun/tools/javac/comp/TransTypes.java Mon Apr 15 14:17:30 2013 +0100 1.3 @@ -710,8 +710,18 @@ 1.4 1.5 public void visitTypeCast(JCTypeCast tree) { 1.6 tree.clazz = translate(tree.clazz, null); 1.7 + Type originalTarget = tree.type; 1.8 tree.type = erasure(tree.type); 1.9 tree.expr = translate(tree.expr, tree.type); 1.10 + if (originalTarget.isCompound()) { 1.11 + Type.IntersectionClassType ict = (Type.IntersectionClassType)originalTarget; 1.12 + for (Type c : ict.getExplicitComponents()) { 1.13 + Type ec = erasure(c); 1.14 + if (!types.isSameType(ec, tree.type)) { 1.15 + tree.expr = coerce(tree.expr, ec); 1.16 + } 1.17 + } 1.18 + } 1.19 result = tree; 1.20 } 1.21