private bool CanBeReachedByPromotionImpl(IType expectedType, IType actualType)
{
if (IsNullable(expectedType) && actualType.IsNull())
return true;
if (IsIntegerNumber(actualType) && CanBeExplicitlyCastToPrimitiveNumber(expectedType))
return true;
if (IsIntegerNumber(expectedType) && CanBeExplicitlyCastToPrimitiveNumber(actualType))
return true;
return (expectedType.IsValueType && IsNumber(expectedType) && IsNumber(actualType));
}