@Override protected boolean doCanAssignTo(TType lhs) { switch (lhs.getKind()) { case NULL_TYPE: return false; case VOID_TYPE: return false; case PRIMITIVE_TYPE: return canAssignToPrimitive((PrimitiveType)lhs); case ARRAY_TYPE: return false; case STANDARD_TYPE: return canAssignToStandardType((StandardType)lhs); case GENERIC_TYPE: return false; case PARAMETERIZED_TYPE: return isSubType((HierarchyType)lhs); case RAW_TYPE: return isSubType((HierarchyType)lhs); case UNBOUND_WILDCARD_TYPE: case SUPER_WILDCARD_TYPE: case EXTENDS_WILDCARD_TYPE: return ((WildcardType)lhs).checkAssignmentBound(this); case TYPE_VARIABLE: return false; case CAPTURE_TYPE: return ((CaptureType)lhs).checkLowerBound(this); } return false; }
protected boolean doCanAssignTo(TType lhs) { switch (lhs.getKind()) { case NULL_TYPE: return false; case VOID_TYPE: return false; case PRIMITIVE_TYPE: return canAssignToPrimitive((PrimitiveType)lhs); case ARRAY_TYPE: return false; case STANDARD_TYPE: return canAssignToStandardType((StandardType)lhs); case GENERIC_TYPE: return false; case PARAMETERIZED_TYPE: return isSubType((HierarchyType)lhs); case RAW_TYPE: return isSubType((HierarchyType)lhs); case UNBOUND_WILDCARD_TYPE: case SUPER_WILDCARD_TYPE: case EXTENDS_WILDCARD_TYPE: return ((WildcardType)lhs).checkAssignmentBound(this); case TYPE_VARIABLE: return false; case CAPTURE_TYPE: return ((CaptureType)lhs).checkLowerBound(this); } return false; }
@Override protected boolean doCanAssignTo(TType lhs) { switch (lhs.getKind()) { case NULL_TYPE: return false; case VOID_TYPE: return false; case PRIMITIVE_TYPE: return canAssignToPrimitive((PrimitiveType)lhs); case ARRAY_TYPE: return false; case STANDARD_TYPE: return canAssignToStandardType((StandardType)lhs); case GENERIC_TYPE: return false; case PARAMETERIZED_TYPE: return isSubType((HierarchyType)lhs); case RAW_TYPE: return isSubType((HierarchyType)lhs); case UNBOUND_WILDCARD_TYPE: case SUPER_WILDCARD_TYPE: case EXTENDS_WILDCARD_TYPE: return ((WildcardType)lhs).checkAssignmentBound(this); case TYPE_VARIABLE: return false; case CAPTURE_TYPE: return ((CaptureType)lhs).checkLowerBound(this); } return false; }