Improve type hints in parser related classes
authorUmherirrender <umherirrender_de.wp@web.de>
Mon, 3 Jun 2019 16:08:04 +0000 (18:08 +0200)
committerUmherirrender <umherirrender_de.wp@web.de>
Fri, 5 Jul 2019 21:29:32 +0000 (21:29 +0000)
Change-Id: Ia07a2eb32894f96b195fa3189fb5f617e68f2581

includes/parser/PPDStack.php
includes/parser/PPFrame_DOM.php
includes/parser/PPNode.php
includes/parser/PPNode_DOM.php
includes/parser/PPNode_Hash_Tree.php
includes/parser/Parser.php
includes/parser/Preprocessor_DOM.php
includes/parser/Preprocessor_Hash.php

index 4108bd7..adc0bc0 100644 (file)
@@ -27,7 +27,7 @@ class PPDStack {
        public $stack, $rootAccum;
 
        /**
-        * @var PPDStack
+        * @var PPDStack|false
         */
        public $top;
        public $out;
index 03ee6d9..452bab1 100644 (file)
@@ -141,7 +141,7 @@ class PPFrame_DOM implements PPFrame {
        /**
         * @throws MWException
         * @param string|int $key
-        * @param string|PPNode_DOM|DOMDocument $root
+        * @param string|PPNode_DOM|DOMNode|DOMNodeList $root
         * @param int $flags
         * @return string
         */
@@ -152,7 +152,7 @@ class PPFrame_DOM implements PPFrame {
 
        /**
         * @throws MWException
-        * @param string|PPNode_DOM|DOMDocument $root
+        * @param string|PPNode_DOM|DOMNode $root
         * @param int $flags
         * @return string
         */
@@ -396,7 +396,7 @@ class PPFrame_DOM implements PPFrame {
        /**
         * @param string $sep
         * @param int $flags
-        * @param string|PPNode_DOM|DOMDocument ...$args
+        * @param string|PPNode_DOM|DOMNode ...$args
         * @return string
         */
        public function implodeWithFlags( $sep, $flags, ...$args ) {
@@ -426,7 +426,7 @@ class PPFrame_DOM implements PPFrame {
         * This previously called implodeWithFlags but has now been inlined to reduce stack depth
         *
         * @param string $sep
-        * @param string|PPNode_DOM|DOMDocument ...$args
+        * @param string|PPNode_DOM|DOMNode ...$args
         * @return string
         */
        public function implode( $sep, ...$args ) {
@@ -456,7 +456,7 @@ class PPFrame_DOM implements PPFrame {
         * with implode()
         *
         * @param string $sep
-        * @param string|PPNode_DOM|DOMDocument ...$args
+        * @param string|PPNode_DOM|DOMNode ...$args
         * @return array
         */
        public function virtualImplode( $sep, ...$args ) {
@@ -487,7 +487,7 @@ class PPFrame_DOM implements PPFrame {
         * @param string $start
         * @param string $sep
         * @param string $end
-        * @param string|PPNode_DOM|DOMDocument ...$args
+        * @param string|PPNode_DOM|DOMNode ...$args
         * @return array
         */
        public function virtualBracketedImplode( $start, $sep, $end, ...$args ) {
index 2b6cf7c..4561657 100644 (file)
@@ -36,20 +36,20 @@ interface PPNode {
        /**
         * Get an array-type node containing the children of this node.
         * Returns false if this is not a tree node.
-        * @return PPNode
+        * @return false|PPNode
         */
        public function getChildren();
 
        /**
         * Get the first child of a tree node. False if there isn't one.
         *
-        * @return PPNode
+        * @return false|PPNode
         */
        public function getFirstChild();
 
        /**
         * Get the next sibling of any node. False if there isn't one
-        * @return PPNode
+        * @return false|PPNode
         */
        public function getNextSibling();
 
@@ -57,7 +57,7 @@ interface PPNode {
         * Get all children of this tree node which have a given name.
         * Returns an array-type node, or false if this is not a tree node.
         * @param string $type
-        * @return bool|PPNode
+        * @return false|PPNode
         */
        public function getChildrenOfType( $type );
 
index 26a4791..53b1761 100644 (file)
@@ -27,7 +27,7 @@
 class PPNode_DOM implements PPNode {
 
        /**
-        * @var DOMElement
+        * @var DOMElement|DOMNodeList
         */
        public $node;
        public $xpath;
@@ -59,21 +59,21 @@ class PPNode_DOM implements PPNode {
        }
 
        /**
-        * @return bool|PPNode_DOM
+        * @return false|PPNode_DOM
         */
        public function getChildren() {
                return $this->node->childNodes ? new self( $this->node->childNodes ) : false;
        }
 
        /**
-        * @return bool|PPNode_DOM
+        * @return false|PPNode_DOM
         */
        public function getFirstChild() {
                return $this->node->firstChild ? new self( $this->node->firstChild ) : false;
        }
 
        /**
-        * @return bool|PPNode_DOM
+        * @return false|PPNode_DOM
         */
        public function getNextSibling() {
                return $this->node->nextSibling ? new self( $this->node->nextSibling ) : false;
@@ -82,7 +82,7 @@ class PPNode_DOM implements PPNode {
        /**
         * @param string $type
         *
-        * @return bool|PPNode_DOM
+        * @return false|PPNode_DOM
         */
        public function getChildrenOfType( $type ) {
                return new self( $this->getXPath()->query( $type, $this->node ) );
index e6cabf8..7782894 100644 (file)
@@ -135,7 +135,7 @@ class PPNode_Hash_Tree implements PPNode {
         * return a temporary proxy object: different instances will be returned
         * if this is called more than once on the same node.
         *
-        * @return PPNode_Hash_Tree|PPNode_Hash_Attr|PPNode_Hash_Text|bool
+        * @return PPNode_Hash_Tree|PPNode_Hash_Attr|PPNode_Hash_Text|false
         */
        public function getFirstChild() {
                if ( !isset( $this->rawChildren[0] ) ) {
@@ -150,7 +150,7 @@ class PPNode_Hash_Tree implements PPNode {
         * return a temporary proxy object: different instances will be returned
         * if this is called more than once on the same node.
         *
-        * @return PPNode_Hash_Tree|PPNode_Hash_Attr|PPNode_Hash_Text|bool
+        * @return PPNode_Hash_Tree|PPNode_Hash_Attr|PPNode_Hash_Text|false
         */
        public function getNextSibling() {
                return self::factory( $this->store, $this->index + 1 );
index c61de38..e70d175 100644 (file)
@@ -205,9 +205,11 @@ class Parser {
        public $mLinkID;
        public $mIncludeSizes, $mPPNodeCount, $mGeneratedPPNodeCount, $mHighestExpansionDepth;
        public $mDefaultSort;
-       public $mTplRedirCache, $mTplDomCache, $mHeadings, $mDoubleUnderscores;
+       public $mTplRedirCache, $mHeadings, $mDoubleUnderscores;
        public $mExpensiveFunctionCount; # number of expensive parser function calls
        public $mShowToc, $mForceTocPosition;
+       /** @var array */
+       public $mTplDomCache;
 
        /**
         * @var User
@@ -3084,7 +3086,7 @@ class Parser {
         *  self::OT_HTML: all templates and extension tags
         *
         * @param string $text The text to transform
-        * @param bool|PPFrame $frame Object describing the arguments passed to the
+        * @param false|PPFrame|array $frame Object describing the arguments passed to the
         *   template. Arguments may also be provided as an associative array, as
         *   was the usual case before MW1.12. Providing arguments this way may be
         *   useful for extensions wishing to perform variable replacement
@@ -3190,7 +3192,7 @@ class Parser {
         *   $piece['lineStart']: whether the brace was at the start of a line
         * @param PPFrame $frame The current frame, contains template arguments
         * @throws Exception
-        * @return string The text of the template
+        * @return string|array The text of the template
         */
        public function braceSubstitution( $piece, $frame ) {
                // Flags
index 9e510d2..fb8a1dc 100644 (file)
@@ -37,6 +37,9 @@ class Preprocessor_DOM extends Preprocessor {
 
        const CACHE_PREFIX = 'preprocess-xml';
 
+       /**
+        * @param Parser $parser
+        */
        public function __construct( $parser ) {
                wfDeprecated( __METHOD__, '1.34' ); // T204945
                $this->parser = $parser;
index 66f081f..f7f37ac 100644 (file)
@@ -50,6 +50,9 @@ class Preprocessor_Hash extends Preprocessor {
        const CACHE_PREFIX = 'preprocess-hash';
        const CACHE_VERSION = 2;
 
+       /**
+        * @param Parser $parser
+        */
        public function __construct( $parser ) {
                $this->parser = $parser;
        }