Fix/suppress misc phan errors (#4)
authorKunal Mehta <legoktm@member.fsf.org>
Fri, 22 Mar 2019 03:04:43 +0000 (20:04 -0700)
committerLegoktm <legoktm@member.fsf.org>
Fri, 5 Apr 2019 22:28:31 +0000 (22:28 +0000)
* RevisionStore: phan is confused by the array not being the callable
* ApiContinuationManger: phan false positive
* ChronologyProtector: fix doc block
* MssqlBlob: phan doesn't like __construct returning things
* WikiPage: Remove Revision typehint that doesn't match doc block

Change-Id: I0661d97424d0ad6f7a3357542e79aceb6a4f6c64

.phan/config.php
includes/Revision/RevisionStore.php
includes/api/ApiContinuationManager.php
includes/libs/rdbms/ChronologyProtector.php
includes/libs/rdbms/encasing/MssqlBlob.php
includes/page/WikiPage.php

index 27ba0c9..2c0035e 100644 (file)
@@ -115,38 +115,28 @@ $cfg['suppress_issue_types'] = array_merge( $cfg['suppress_issue_types'], [
        "PhanTypeComparisonFromArray",
        // approximate error count: 2
        "PhanTypeComparisonToArray",
-       // approximate error count: 1
-       "PhanTypeConversionFromArray",
        // approximate error count: 2
        "PhanTypeExpectedObjectOrClassName",
        // approximate error count: 7
        "PhanTypeExpectedObjectPropAccess",
        // approximate error count: 3
        "PhanTypeInstantiateAbstract",
-       // approximate error count: 1
-       "PhanTypeInvalidCallableArraySize",
        // approximate error count: 62
        "PhanTypeInvalidDimOffset",
        // approximate error count: 10
        "PhanTypeInvalidExpressionArrayDestructuring",
-       // approximate error count: 1
-       "PhanTypeInvalidLeftOperand",
        // approximate error count: 7
        "PhanTypeInvalidLeftOperandOfIntegerOp",
        // approximate error count: 2
        "PhanTypeInvalidRightOperand",
        // approximate error count: 2
        "PhanTypeInvalidRightOperandOfIntegerOp",
-       // approximate error count: 1
-       "PhanTypeMagicVoidWithReturn",
        // approximate error count: 152
        "PhanTypeMismatchArgument",
        // approximate error count: 28
        "PhanTypeMismatchArgumentInternal",
        // approximate error count: 1
        "PhanTypeMismatchBitwiseBinaryOperands",
-       // approximate error count: 1
-       "PhanTypeMismatchDeclaredParam",
        // approximate error count: 2
        "PhanTypeMismatchDimEmpty",
        // approximate error count: 29
index 7dd4eea..148ef1f 100644 (file)
@@ -1668,6 +1668,7 @@ class RevisionStore
        ) {
                if ( !$this->hasMcrSchemaFlags( SCHEMA_COMPAT_READ_NEW ) ) {
                        $mainSlot = $this->emulateMainSlot_1_29( $revisionRow, $queryFlags, $title );
+                       // @phan-suppress-next-line PhanTypeInvalidCallableArraySize false positive
                        $slots = new RevisionSlots( [ SlotRecord::MAIN => $mainSlot ] );
                } else {
                        // XXX: do we need the same kind of caching here
index 7da8ed9..e4c52dd 100644 (file)
@@ -217,6 +217,8 @@ class ApiContinuationManager {
                        // Some modules are unfinished: include those params, and copy
                        // the generator params.
                        foreach ( $continuationData as $module => $kvp ) {
+                               // XXX: Not sure why phan is complaining here...
+                               // @phan-suppress-next-line PhanTypeInvalidLeftOperand
                                $data += $kvp;
                        }
                        $generatorParams = [];
index 3e71e36..62a2968 100644 (file)
@@ -72,7 +72,7 @@ class ChronologyProtector implements LoggerAwareInterface {
 
        /**
         * @param BagOStuff $store
-        * @param array[] $client Map of (ip: <IP>, agent: <user-agent> [, clientId: <hash>] )
+        * @param array $client Map of (ip: <IP>, agent: <user-agent> [, clientId: <hash>] )
         * @param int|null $posIndex Write counter index [optional]
         * @since 1.27
         */
index 8e68aba..6ad934a 100644 (file)
@@ -7,6 +7,7 @@ class MssqlBlob extends Blob {
 
        /**
         * @param string $data
+        * @suppress PhanTypeMagicVoidWithReturn
         */
        public function __construct( $data ) {
                if ( $data instanceof MssqlBlob ) {
index 4b0e503..655fa27 100644 (file)
@@ -2997,7 +2997,7 @@ class WikiPage implements Page, IDBAccessObject {
         * @param Content|null $content Page content to be used when determining
         *   the required updates. This may be needed because $this->getContent()
         *   may already return null when the page proper was deleted.
-        * @param RevisionRecord|Revision|null $revision The current page revision at the time of
+        * @param Revision|null $revision The current page revision at the time of
         *   deletion, used when determining the required updates. This may be needed because
         *   $this->getRevision() may already return null when the page proper was deleted.
         * @param User|null $user The user that caused the deletion