Skip to content

Promote Intl warnings to standard ValueError #5669

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 8 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions ext/intl/breakiterator/breakiterator.stub.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ public function current() {}
/** @return int */
public function first() {}

/** @return int|false */
/** @return int */
public function following(int $offset) {}

/** @return int */
Expand All @@ -42,7 +42,7 @@ public function getErrorMessage() {}
/** @return string */
public function getLocale(int $locale_type) {}

/** @return IntlPartsIterator|false */
/** @return IntlPartsIterator */
public function getPartsIterator(string $key_type = IntlPartsIterator::KEY_SEQUENTIAL) {}

/** @return string|null */
Expand All @@ -54,10 +54,10 @@ public function isBoundary(int $offset) {}
/** @return int */
public function last() {}

/** @return int|false */
/** @return int */
public function next(?int $offset = null) {}

/** @return int|false */
/** @return int */
public function preceding(int $offset) {}

/** @return int */
Expand Down
2 changes: 1 addition & 1 deletion ext/intl/breakiterator/breakiterator_arginfo.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
* Stub hash: 7180c7b167edb3aa8580ae4a600627f28636ac38 */
* Stub hash: 5eeedbbb7d07b0063d7bc19842b863a2c6d6898b */

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlBreakIterator_createCharacterInstance, 0, 0, 0)
ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, locale, IS_STRING, 1, "null")
Expand Down
43 changes: 16 additions & 27 deletions ext/intl/breakiterator/breakiterator_methods.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ static void _breakiter_factory(const char *func_name,

biter = func(Locale::createFromName(locale_str), status);
intl_error_set_code(NULL, status);
// Todo check if this can happen?
if (U_FAILURE(status)) {
spprintf(&msg, 0, "%s: error creating BreakIterator",
func_name);
Expand Down Expand Up @@ -170,7 +171,6 @@ U_CFUNC PHP_METHOD(IntlBreakIterator, setText)
}

static void _breakiter_no_args_ret_int32(
const char *func_name,
int32_t (BreakIterator::*func)(),
INTERNAL_FUNCTION_PARAMETERS)
{
Expand All @@ -190,11 +190,9 @@ static void _breakiter_no_args_ret_int32(
}

static void _breakiter_int32_ret_int32(
const char *func_name,
int32_t (BreakIterator::*func)(int32_t),
INTERNAL_FUNCTION_PARAMETERS)
{
char *msg;
zend_long arg;
BREAKITER_METHOD_INIT_VARS;
object = ZEND_THIS;
Expand All @@ -206,11 +204,8 @@ static void _breakiter_int32_ret_int32(
BREAKITER_METHOD_FETCH_OBJECT;

if (arg < INT32_MIN || arg > INT32_MAX) {
spprintf(&msg, 0, "%s: offset argument is outside bounds of "
"a 32-bit wide integer", func_name);
intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR, msg, 1);
efree(msg);
RETURN_FALSE;
zend_argument_value_error(1, "must be between %d and %d", INT32_MIN, INT32_MAX);
RETURN_THROWS();
}

int32_t res = (bio->biter->*func)((int32_t)arg);
Expand All @@ -220,22 +215,19 @@ static void _breakiter_int32_ret_int32(

U_CFUNC PHP_METHOD(IntlBreakIterator, first)
{
_breakiter_no_args_ret_int32("breakiter_first",
&BreakIterator::first,
_breakiter_no_args_ret_int32(&BreakIterator::first,
INTERNAL_FUNCTION_PARAM_PASSTHRU);
}

U_CFUNC PHP_METHOD(IntlBreakIterator, last)
{
_breakiter_no_args_ret_int32("breakiter_last",
&BreakIterator::last,
_breakiter_no_args_ret_int32(&BreakIterator::last,
INTERNAL_FUNCTION_PARAM_PASSTHRU);
}

U_CFUNC PHP_METHOD(IntlBreakIterator, previous)
{
_breakiter_no_args_ret_int32("breakiter_previous",
&BreakIterator::previous,
_breakiter_no_args_ret_int32(&BreakIterator::previous,
INTERNAL_FUNCTION_PARAM_PASSTHRU);
}

Expand All @@ -253,12 +245,10 @@ U_CFUNC PHP_METHOD(IntlBreakIterator, next)
if (arg == NULL) {
ZEND_NUM_ARGS() = 0; /* pretend we don't have any argument */
no_arg_version:
_breakiter_no_args_ret_int32("breakiter_next",
&BreakIterator::next,
_breakiter_no_args_ret_int32(&BreakIterator::next,
INTERNAL_FUNCTION_PARAM_PASSTHRU);
} else {
_breakiter_int32_ret_int32("breakiter_next",
&BreakIterator::next,
_breakiter_int32_ret_int32(&BreakIterator::next,
INTERNAL_FUNCTION_PARAM_PASSTHRU);
}
}
Expand All @@ -281,14 +271,14 @@ U_CFUNC PHP_METHOD(IntlBreakIterator, current)

U_CFUNC PHP_METHOD(IntlBreakIterator, following)
{
_breakiter_int32_ret_int32("breakiter_following",
_breakiter_int32_ret_int32(
&BreakIterator::following,
INTERNAL_FUNCTION_PARAM_PASSTHRU);
}

U_CFUNC PHP_METHOD(IntlBreakIterator, preceding)
{
_breakiter_int32_ret_int32("breakiter_preceding",
_breakiter_int32_ret_int32(
&BreakIterator::preceding,
INTERNAL_FUNCTION_PARAM_PASSTHRU);
}
Expand All @@ -305,10 +295,8 @@ U_CFUNC PHP_METHOD(IntlBreakIterator, isBoundary)
}

if (offset < INT32_MIN || offset > INT32_MAX) {
intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR,
"breakiter_is_boundary: offset argument is outside bounds of "
"a 32-bit wide integer", 0);
RETURN_FALSE;
zend_argument_value_error(1, "must be between %d and %d", INT32_MIN, INT32_MAX);
RETURN_THROWS();
}

BREAKITER_METHOD_FETCH_OBJECT;
Expand All @@ -328,6 +316,7 @@ U_CFUNC PHP_METHOD(IntlBreakIterator, getLocale)
RETURN_THROWS();
}

/* Change to ValueError? */
if (locale_type != ULOC_ACTUAL_LOCALE && locale_type != ULOC_VALID_LOCALE) {
intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR,
"breakiter_get_locale: invalid locale type", 0);
Expand Down Expand Up @@ -357,9 +346,9 @@ U_CFUNC PHP_METHOD(IntlBreakIterator, getPartsIterator)
if (key_type != PARTS_ITERATOR_KEY_SEQUENTIAL
&& key_type != PARTS_ITERATOR_KEY_LEFT
&& key_type != PARTS_ITERATOR_KEY_RIGHT) {
intl_error_set(NULL, U_ILLEGAL_ARGUMENT_ERROR,
"breakiter_get_parts_iterator: bad key type", 0);
RETURN_FALSE;
zend_argument_value_error(1, "must be one of IntlPartsIterator::KEY_SEQUENTIAL, "
"IntlPartsIterator::KEY_LEFT, or IntlPartsIterator::KEY_RIGHT");
RETURN_THROWS();
}

BREAKITER_METHOD_FETCH_OBJECT;
Expand Down
30 changes: 15 additions & 15 deletions ext/intl/calendar/calendar.stub.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ public static function createInstance($timeZone = null, ?string $locale = null)
public function equals(IntlCalendar $calendar) {}

/**
* @return int|false
* @return int
* @alias intlcal_field_difference
*/
public function fieldDifference(float $when, int $field) {}
Expand Down Expand Up @@ -57,19 +57,19 @@ public function clear(?int $field = null) {}
public static function fromDateTime($dateTime, ?string $locale = null) {}

/**
* @return int|false
* @return int
* @alias intlcal_get
*/
public function get(int $field) {}

/**
* @return int|false
* @return int
* @alias intlcal_get_actual_maximum
*/
public function getActualMaximum(int $field) {}

/**
* @return int|false
* @return int
* @alias intlcal_get_actual_minimum
*/
public function getActualMinimum(int $field) {}
Expand All @@ -81,7 +81,7 @@ public function getActualMinimum(int $field) {}
public static function getAvailableLocales() {}

/**
* @return int|false
* @return int
* @alias intlcal_get_day_of_week_type
*/
public function getDayOfWeekType(int $dayOfWeek) {}
Expand All @@ -99,13 +99,13 @@ public function getErrorCode() {}
public function getErrorMessage() {}

/**
* @return int|false
* @return int
* @alias intlcal_get_first_day_of_week
*/
public function getFirstDayOfWeek() {}

/**
* @return int|false
* @return int
* @alias intlcal_get_greatest_minimum
*/
public function getGreatestMinimum(int $field) {}
Expand All @@ -117,25 +117,25 @@ public function getGreatestMinimum(int $field) {}
public static function getKeywordValuesForLocale(string $key, string $locale, bool $commonlyUsed) {}

/**
* @return int|false
* @return int
* @alias intlcal_get_least_maximum
*/
public function getLeastMaximum(int $field) {}

/**
* @return string|false
* @return string
* @alias intlcal_get_locale
*/
public function getLocale(int $localeType) {}

/**
* @return int|false
* @return int
* @alias intlcal_get_maximum
*/
public function getMaximum(int $field) {}

/**
* @return int|false
* @return int
* @alias intlcal_get_minimal_days_in_first_week
*/
public function getMinimalDaysInFirstWeek() {}
Expand All @@ -147,7 +147,7 @@ public function getMinimalDaysInFirstWeek() {}
public function setMinimalDaysInFirstWeek(int $numberOfDays) {}

/**
* @return int|false
* @return int
* @alias intlcal_get_minimum
*/
public function getMinimum(int $field) {}
Expand All @@ -171,7 +171,7 @@ public function getRepeatedWallTimeOption() {}
public function getSkippedWallTimeOption() {}

/**
* @return float|false
* @return float
* @alias intlcal_get_time
*/
public function getTime() {}
Expand All @@ -189,7 +189,7 @@ public function getTimeZone() {}
public function getType() {}

/**
* @return int|false
* @return int
* @alias intlcal_get_weekend_transition
*/
public function getWeekendTransition(int $dayOfWeek) {}
Expand Down Expand Up @@ -292,7 +292,7 @@ public function __construct($timeZoneOrYear = UNKNOWN, $localeOrMonth = UNKNOWN,
public function setGregorianChange(float $change) {}

/**
* @return float|false
* @return float
* @alias intlgregcal_get_gregorian_change
*/
public function getGregorianChange() {}
Expand Down
2 changes: 1 addition & 1 deletion ext/intl/calendar/calendar_arginfo.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* This is a generated file, edit the .stub.php file instead.
* Stub hash: 7261d52837a7ac393453511d2c29ee9106407236 */
* Stub hash: 8b8a98d5035880031ac42fda5e58bde54c1d85fc */

ZEND_BEGIN_ARG_INFO_EX(arginfo_class_IntlCalendar___construct, 0, 0, 0)
ZEND_END_ARG_INFO()
Expand Down
Loading