Use varargs for MessageLocalizer::msg and similar
[lhc/web/wiklou.git] / includes / context / RequestContext.php
index e6a856c..73b8c5c 100644 (file)
@@ -81,6 +81,12 @@ class RequestContext implements IContextSource, MutableContext {
         */
        private static $instance = null;
 
+       /**
+        * Boolean flag to guard against recursion in getLanguage
+        * @var bool
+        */
+       private $languageRecursion = false;
+
        /**
         * @param Config $config
         */
@@ -318,7 +324,7 @@ class RequestContext implements IContextSource, MutableContext {
         * @since 1.19
         */
        public function getLanguage() {
-               if ( isset( $this->recursion ) ) {
+               if ( $this->languageRecursion === true ) {
                        trigger_error( "Recursion detected in " . __METHOD__, E_USER_WARNING );
                        $e = new Exception;
                        wfDebugLog( 'recursion-guard', "Recursion detected:\n" . $e->getTraceAsString() );
@@ -326,7 +332,7 @@ class RequestContext implements IContextSource, MutableContext {
                        $code = $this->getConfig()->get( 'LanguageCode' ) ?: 'en';
                        $this->lang = Language::factory( $code );
                } elseif ( $this->lang === null ) {
-                       $this->recursion = true;
+                       $this->languageRecursion = true;
 
                        try {
                                $request = $this->getRequest();
@@ -348,7 +354,7 @@ class RequestContext implements IContextSource, MutableContext {
                                        $this->lang = $obj;
                                }
                        } finally {
-                               unset( $this->recursion );
+                               $this->languageRecursion = false;
                        }
                }
 
@@ -410,14 +416,11 @@ class RequestContext implements IContextSource, MutableContext {
         *
         * @param string|string[]|MessageSpecifier $key Message key, or array of keys,
         *   or a MessageSpecifier.
-        * @param mixed $args,...
-        * @suppress PhanCommentParamWithoutRealParam HHVM bug T228695#5450847
+        * @param mixed ...$params
         * @return Message
         */
-       public function msg( $key ) {
-               $args = func_get_args();
-
-               return wfMessage( ...$args )->setContext( $this );
+       public function msg( $key, ...$params ) {
+               return wfMessage( $key, ...$params )->setContext( $this );
        }
 
        /**