Page MenuHomePhabricator

Phan failure on Linter with Call to undeclared method \Wikimedia\Rdbms\IDatabase::fieldExists
Closed, ResolvedPublic

Description

After https://gerrit.wikimedia.org/r/c/mediawiki/core/+/939777 phan does not see a DBConnRef in IndexPager::$mDb and reports in Linter:

includes/LintErrorsPager.php:136 PhanUndeclaredMethod Call to undeclared method \Wikimedia\Rdbms\IDatabase::fieldExists
includes/LintErrorsPager.php:154 PhanUndeclaredMethod Call to undeclared method \Wikimedia\Rdbms\IDatabase::fieldExists

(Global function wfGetDB returns DBConnRef, which implements IMaintainableDatabase::fieldExists, but that method is not in IDatabase)

Event Timeline

The mDb property was already documented as IDatabase before. I think this code in linter should obtain an IMaintainableDatabase separately.

Change 945758 had a related patch set uploaded (by Umherirrender; author: Umherirrender):

[mediawiki/extensions/Linter@master] Use a maintenance database connection to call fieldExists

https://gerrit.wikimedia.org/r/945758

Change 945758 merged by jenkins-bot:

[mediawiki/extensions/Linter@master] Use a maintenance database connection to call fieldExists

https://gerrit.wikimedia.org/r/945758