!expressionType.isBoxedPrimitiveType() && checkCastTypesCompatibility(scope, scope.boxing(castType), expressionType, expression)) { ReferenceBinding [] intersectingTypes = castType.getIntersectingTypes(); for (int i = 0, length = intersectingTypes.length; i < length; i++) { if (!checkCastTypesCompatibility(scope, intersectingTypes[i], expressionType, expression)) return false; return checkCastTypesCompatibility(scope, castElementType, exprElementType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, castType, ((TypeVariableBinding)expressionType).upperBound(), expression); if (bound == null) bound = scope.getJavaLangObject(); return checkCastTypesCompatibility(scope, castType, bound, expression); case Binding.INTERSECTION_TYPE18: ReferenceBinding [] intersectingTypes = expressionType.getIntersectingTypes(); for (int i = 0, length = intersectingTypes.length; i < length; i++) { if (checkCastTypesCompatibility(scope, castType, intersectingTypes[i], expression)) return true; return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression);
!expressionType.isBoxedPrimitiveType() && checkCastTypesCompatibility(scope, scope.boxing(castType), expressionType, expression)) { ReferenceBinding [] intersectingTypes = castType.getIntersectingTypes(); for (int i = 0, length = intersectingTypes.length; i < length; i++) { if (!checkCastTypesCompatibility(scope, intersectingTypes[i], expressionType, expression)) return false; return checkCastTypesCompatibility(scope, castElementType, exprElementType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, castType, ((TypeVariableBinding)expressionType).upperBound(), expression); if (bound == null) bound = scope.getJavaLangObject(); return checkCastTypesCompatibility(scope, castType, bound, expression); case Binding.INTERSECTION_CAST_TYPE: ReferenceBinding [] intersectingTypes = expressionType.getIntersectingTypes(); for (int i = 0, length = intersectingTypes.length; i < length; i++) { if (checkCastTypesCompatibility(scope, castType, intersectingTypes[i], expression)) return true; return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression);
!expressionType.isBoxedPrimitiveType() && checkCastTypesCompatibility(scope, scope.boxing(castType), expressionType, expression)) { ReferenceBinding [] intersectingTypes = castType.getIntersectingTypes(); for (int i = 0, length = intersectingTypes.length; i < length; i++) { if (!checkCastTypesCompatibility(scope, intersectingTypes[i], expressionType, expression)) return false; return checkCastTypesCompatibility(scope, castElementType, exprElementType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, castType, ((TypeVariableBinding)expressionType).upperBound(), expression); if (bound == null) bound = scope.getJavaLangObject(); return checkCastTypesCompatibility(scope, castType, bound, expression); case Binding.INTERSECTION_TYPE18: ReferenceBinding [] intersectingTypes = expressionType.getIntersectingTypes(); for (int i = 0, length = intersectingTypes.length; i < length; i++) { if (checkCastTypesCompatibility(scope, castType, intersectingTypes[i], expression)) return true; return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression);
!expressionType.isBoxedPrimitiveType() && checkCastTypesCompatibility(scope, scope.boxing(castType), expressionType, expression)) { ReferenceBinding [] intersectingTypes = castType.getIntersectingTypes(); for (int i = 0, length = intersectingTypes.length; i < length; i++) { if (!checkCastTypesCompatibility(scope, intersectingTypes[i], expressionType, expression)) return false; return checkCastTypesCompatibility(scope, castElementType, exprElementType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, castType, ((TypeVariableBinding)expressionType).upperBound(), expression); if (bound == null) bound = scope.getJavaLangObject(); return checkCastTypesCompatibility(scope, castType, bound, expression); case Binding.INTERSECTION_TYPE18: ReferenceBinding [] intersectingTypes = expressionType.getIntersectingTypes(); for (int i = 0, length = intersectingTypes.length; i < length; i++) { if (checkCastTypesCompatibility(scope, castType, intersectingTypes[i], expression)) return true; return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression);
!expressionType.isBoxedPrimitiveType() && checkCastTypesCompatibility(scope, scope.boxing(castType), expressionType, expression)) { ReferenceBinding [] intersectingTypes = castType.getIntersectingTypes(); for (int i = 0, length = intersectingTypes.length; i < length; i++) { if (!checkCastTypesCompatibility(scope, intersectingTypes[i], expressionType, expression)) return false; return checkCastTypesCompatibility(scope, castElementType, exprElementType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, castType, ((TypeVariableBinding)expressionType).upperBound(), expression); if (bound == null) bound = scope.getJavaLangObject(); return checkCastTypesCompatibility(scope, castType, bound, expression); case Binding.INTERSECTION_CAST_TYPE: ReferenceBinding [] intersectingTypes = expressionType.getIntersectingTypes(); for (int i = 0, length = intersectingTypes.length; i < length; i++) { if (checkCastTypesCompatibility(scope, castType, intersectingTypes[i], expression)) return true; return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression);
!expressionType.isBoxedPrimitiveType() && checkCastTypesCompatibility(scope, scope.boxing(castType), expressionType, expression)) { ReferenceBinding [] intersectingTypes = castType.getIntersectingTypes(); for (int i = 0, length = intersectingTypes.length; i < length; i++) { if (!checkCastTypesCompatibility(scope, intersectingTypes[i], expressionType, expression)) return false; return checkCastTypesCompatibility(scope, castElementType, exprElementType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, castType, ((TypeVariableBinding)expressionType).upperBound(), expression); if (bound == null) bound = scope.getJavaLangObject(); return checkCastTypesCompatibility(scope, castType, bound, expression); case Binding.INTERSECTION_TYPE18: ReferenceBinding [] intersectingTypes = expressionType.getIntersectingTypes(); for (int i = 0, length = intersectingTypes.length; i < length; i++) { if (checkCastTypesCompatibility(scope, castType, intersectingTypes[i], expression)) return true; return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression);
!expressionType.isBoxedPrimitiveType() && checkCastTypesCompatibility(scope, scope.boxing(castType), expressionType, expression)) { ReferenceBinding [] intersectingTypes = castType.getIntersectingTypes(); for (int i = 0, length = intersectingTypes.length; i < length; i++) { if (!checkCastTypesCompatibility(scope, intersectingTypes[i], expressionType, expression)) return false; return checkCastTypesCompatibility(scope, castElementType, exprElementType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, castType, ((TypeVariableBinding)expressionType).upperBound(), expression); if (bound == null) bound = scope.getJavaLangObject(); return checkCastTypesCompatibility(scope, castType, bound, expression); case Binding.INTERSECTION_TYPE18: ReferenceBinding [] intersectingTypes = expressionType.getIntersectingTypes(); for (int i = 0, length = intersectingTypes.length; i < length; i++) { if (checkCastTypesCompatibility(scope, castType, intersectingTypes[i], expression)) return true; return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression);
!expressionType.isBoxedPrimitiveType() && checkCastTypesCompatibility(scope, scope.boxing(castType), expressionType, expression)) { ReferenceBinding [] intersectingTypes = castType.getIntersectingTypes(); for (int i = 0, length = intersectingTypes.length; i < length; i++) { if (!checkCastTypesCompatibility(scope, intersectingTypes[i], expressionType, expression)) return false; return checkCastTypesCompatibility(scope, castElementType, exprElementType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, castType, ((TypeVariableBinding)expressionType).upperBound(), expression); if (bound == null) bound = scope.getJavaLangObject(); return checkCastTypesCompatibility(scope, castType, bound, expression); case Binding.INTERSECTION_CAST_TYPE: ReferenceBinding [] intersectingTypes = expressionType.getIntersectingTypes(); for (int i = 0, length = intersectingTypes.length; i < length; i++) { if (checkCastTypesCompatibility(scope, castType, intersectingTypes[i], expression)) return true; return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression);
return checkCastTypesCompatibility(scope, castElementType, exprElementType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, castType, ((TypeVariableBinding)expressionType).upperBound(), expression); return checkCastTypesCompatibility(scope, castType, ((WildcardBinding)expressionType).bound, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression);
return checkCastTypesCompatibility(scope, castElementType, exprElementType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, castType, ((TypeVariableBinding)expressionType).upperBound(), expression); return checkCastTypesCompatibility(scope, castType, ((WildcardBinding)expressionType).bound, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression);
return checkCastTypesCompatibility(scope, castElementType, exprElementType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, castType, ((TypeVariableBinding)expressionType).upperBound(), expression); return checkCastTypesCompatibility(scope, castType, ((WildcardBinding)expressionType).bound, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression); return checkCastTypesCompatibility(scope, ((TypeVariableBinding)castType).upperBound(), expressionType, expression);