The documentation already claimed it returned array,
this is now actually true. Follows-up
037c06e886c63.
There are two ways it could be null:
* The setTags() method was never called, and the class member
was implicitly null by default.
* The setTags() method was called with $tags = null.
This happens WikiPage::doUpdateRestrictions() among other places.
That could probably be fixed, but is out of scope for this change.
The getTags() method of this clss appears to have no outside
callers in MediaWiki core, nor in any other project indexed
by Codesearch.
Change-Id: Ib89c79ef90870506187c3c3b61464c2aa788c594
/** @var int A rev id associated to the log entry */
protected $revId = 0;
/** @var int A rev id associated to the log entry */
protected $revId = 0;
- /** @var array Change tags add to the log entry */
- protected $tags = null;
+ /** @var string[] Change tags add to the log entry */
+ protected $tags = [];
/** @var int Deletion state of the log entry */
protected $deleted;
/** @var int Deletion state of the log entry */
protected $deleted;
/**
* Set change tags for the log entry.
*
/**
* Set change tags for the log entry.
*
+ * Passing `null` means the same as empty array,
+ * for compatibility with WikiPage::doUpdateRestrictions().
+ *
- * @param string|string[] $tags
+ * @param string|string[]|null $tags
*/
public function setTags( $tags ) {
*/
public function setTags( $tags ) {
- if ( is_string( $tags ) ) {
+ if ( $tags === null ) {
+ $tags = [];
+ } elseif ( is_string( $tags ) ) {
$tags = [ $tags ];
}
$this->tags = $tags;
$tags = [ $tags ];
}
$this->tags = $tags;
if ( $to === 'rc' || $to === 'rcandudp' ) {
// save RC, passing tags so they are applied there
if ( $to === 'rc' || $to === 'rcandudp' ) {
// save RC, passing tags so they are applied there
- $rc->addTags( $this->getTags() ?? [] );
+ $rc->addTags( $this->getTags() );
$rc->save( $rc::SEND_NONE );
}
$rc->save( $rc::SEND_NONE );
}
*/
public function getTags() {
return $this->tags;
*/
public function getTags() {
return $this->tags;