langtools/src/jdk.compiler/share/classes/com/sun/tools/javac/code/Types.java
changeset 34756 d31f11c4cc75
parent 34563 6852cec79bf4
child 34757 85ceb9850b1d
equal deleted inserted replaced
34755:135cde5b66cf 34756:d31f11c4cc75
  1434      * (not defined for Method and ForAll types).
  1434      * (not defined for Method and ForAll types).
  1435      */
  1435      */
  1436     public boolean isCastable(Type t, Type s, Warner warn) {
  1436     public boolean isCastable(Type t, Type s, Warner warn) {
  1437         if (t == s)
  1437         if (t == s)
  1438             return true;
  1438             return true;
  1439 
  1439         if (t.isPrimitive() != s.isPrimitive()) {
  1440         if (t.isPrimitive() != s.isPrimitive())
  1440             t = skipTypeVars(t, false);
  1441             return (isConvertible(t, s, warn)
  1441             return (isConvertible(t, s, warn)
  1442                     || (allowObjectToPrimitiveCast &&
  1442                     || (allowObjectToPrimitiveCast &&
  1443                         s.isPrimitive() &&
  1443                         s.isPrimitive() &&
  1444                         isSubtype(boxedClass(s).type, t)));
  1444                         isSubtype(boxedClass(s).type, t)));
       
  1445         }
  1445         if (warn != warnStack.head) {
  1446         if (warn != warnStack.head) {
  1446             try {
  1447             try {
  1447                 warnStack = warnStack.prepend(warn);
  1448                 warnStack = warnStack.prepend(warn);
  1448                 checkUnsafeVarargsConversion(t, s, warn);
  1449                 checkUnsafeVarargsConversion(t, s, warn);
  1449                 return isCastable.visit(t,s);
  1450                 return isCastable.visit(t,s);