The method has not actually supported scalar or single-level array
arguments for a while now; according to Michael Große, this ability was
lost in Ibb17bb61ac. No one seems to have noticed (indeed, MediaWiki
code search finds no callers at all [1]), so instead of trying to fix
it, let’s just update the documentation.
We can also remove a cast to array in trySubmit(), because if the value
wasn’t already an array, then converting it to a single-element array
and then trying to spread its only element into $hoistedErrors->fatal()
arguments still fails (“only arrays and Traversables can be unpacked”).
[1]: https://codesearch.wmflabs.org/search/?q=setValidationErrorMessage
Change-Id: I8c292ec62ef4aec89217e86a75d7f2e88111f43f
$valid = true;
$hoistedErrors = Status::newGood();
if ( $this->mValidationErrorMessage ) {
- foreach ( (array)$this->mValidationErrorMessage as $error ) {
+ foreach ( $this->mValidationErrorMessage as $error ) {
$hoistedErrors->fatal( ...$error );
}
} else {
/**
* Set a message to display on a validation error.
*
- * @param string|array $msg String or Array of valid inputs to wfMessage()
- * (so each entry can be either a String or Array)
+ * @param array $msg Array of valid inputs to wfMessage()
+ * (so each entry must itself be an array of arguments)
*
* @return HTMLForm $this for chaining calls (since 1.20)
*/