From a8a6b58def30d5995e0a075b8648f68e8ecb2e84 Mon Sep 17 00:00:00 2001
From: Alexander Schnitzler <git@alexanderschnitzler.de>
Date: Sat, 26 Sep 2020 19:33:12 +0200
Subject: [PATCH] [TASK] Fix phpstan checkFunctionArgumentTypes errors in
 ext:filelist

This patch fixes incompatible type usage in function arguments
and is preparatory work for introducing native type hints and
strict mode in all core files.

Resolves: #92166
Releases: master, 10.4
Change-Id: I64fed9c30a37855cce3e34295860b47ea79be698
Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/65912
Tested-by: Daniel Goerz <daniel.goerz@posteo.de>
Tested-by: TYPO3com <noreply@typo3.com>
Tested-by: Oliver Bartsch <bo@cedev.de>
Tested-by: Sascha Egerer <sascha@sascha-egerer.de>
Tested-by: Andreas Fernandez <a.fernandez@scripting-base.de>
Reviewed-by: Daniel Goerz <daniel.goerz@posteo.de>
Reviewed-by: Oliver Bartsch <bo@cedev.de>
Reviewed-by: Sascha Egerer <sascha@sascha-egerer.de>
Reviewed-by: Andreas Fernandez <a.fernandez@scripting-base.de>
---
 .../Classes/ContextMenu/ItemProviders/FileProvider.php        | 4 ++--
 .../sysext/filelist/Classes/Controller/FileListController.php | 2 +-
 typo3/sysext/filelist/Classes/FileFacade.php                  | 2 +-
 typo3/sysext/filelist/Classes/FileList.php                    | 4 ++--
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/typo3/sysext/filelist/Classes/ContextMenu/ItemProviders/FileProvider.php b/typo3/sysext/filelist/Classes/ContextMenu/ItemProviders/FileProvider.php
index a17aec7c7868..36a6699d638a 100644
--- a/typo3/sysext/filelist/Classes/ContextMenu/ItemProviders/FileProvider.php
+++ b/typo3/sysext/filelist/Classes/ContextMenu/ItemProviders/FileProvider.php
@@ -261,7 +261,7 @@ class FileProvider extends AbstractProvider
      * Checks if folder and record are in the same filemount
      * Cannot copy folders between filemounts
      *
-     * @param File|Folder $fileOrFolderInClipBoard
+     * @param File|Folder|null $fileOrFolderInClipBoard
      * @return bool
      */
     protected function isFoldersAreInTheSameRoot($fileOrFolderInClipBoard): bool
@@ -344,7 +344,7 @@ class FileProvider extends AbstractProvider
             } else {
                 $confirmMessage .= BackendUtility::referenceCount(
                     'sys_file',
-                    $this->record->getUid(),
+                    (string)$this->record->getUid(),
                     ' ' . $this->languageService->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.referencesToFile')
                 );
             }
diff --git a/typo3/sysext/filelist/Classes/Controller/FileListController.php b/typo3/sysext/filelist/Classes/Controller/FileListController.php
index 278267dfd37b..5191b6a69562 100644
--- a/typo3/sysext/filelist/Classes/Controller/FileListController.php
+++ b/typo3/sysext/filelist/Classes/Controller/FileListController.php
@@ -531,7 +531,7 @@ class FileListController extends ActionController implements LoggerAwareInterfac
         if (count($files) === 0) {
             $this->controllerContext->getFlashMessageQueue('core.template.flashMessages')->addMessage(
                 new FlashMessage(
-                    LocalizationUtility::translate('flashmessage.no_results', 'filelist'),
+                    LocalizationUtility::translate('flashmessage.no_results', 'filelist') ?? '',
                     '',
                     FlashMessage::INFO
                 )
diff --git a/typo3/sysext/filelist/Classes/FileFacade.php b/typo3/sysext/filelist/Classes/FileFacade.php
index caed5bbe0bc8..8bd9886a50e6 100644
--- a/typo3/sysext/filelist/Classes/FileFacade.php
+++ b/typo3/sysext/filelist/Classes/FileFacade.php
@@ -338,7 +338,7 @@ class FileFacade
     public function __call($method, $arguments)
     {
         if (is_callable([$this->resource, $method])) {
-            return call_user_func_array([$this->resource, $method], $arguments);
+            $this->resource->$method(...$arguments);
         }
 
         return null;
diff --git a/typo3/sysext/filelist/Classes/FileList.php b/typo3/sysext/filelist/Classes/FileList.php
index 080c9172ea64..bba7522617d4 100644
--- a/typo3/sysext/filelist/Classes/FileList.php
+++ b/typo3/sysext/filelist/Classes/FileList.php
@@ -720,7 +720,7 @@ class FileList
             foreach ($this->fieldArray as $field) {
                 switch ($field) {
                     case 'size':
-                        $theData[$field] = GeneralUtility::formatSize($fileObject->getSize(), htmlspecialchars($this->getLanguageService()->getLL('byteSizeUnits')));
+                        $theData[$field] = GeneralUtility::formatSize((int)$fileObject->getSize(), htmlspecialchars($this->getLanguageService()->getLL('byteSizeUnits')));
                         break;
                     case 'rw':
                         $theData[$field] = '' . (!$fileObject->checkActionPermission('read') ? ' ' : '<strong class="text-danger">' . htmlspecialchars($this->getLanguageService()->getLL('read')) . '</strong>') . (!$fileObject->checkActionPermission('write') ? '' : '<strong class="text-danger">' . htmlspecialchars($this->getLanguageService()->getLL('write')) . '</strong>');
@@ -1089,7 +1089,7 @@ class FileList
                 $referenceCountText = BackendUtility::referenceCount('_FILE', $identifier, ' ' . $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.referencesToFolder'));
                 $deleteType = 'delete_folder';
             } else {
-                $referenceCountText = BackendUtility::referenceCount('sys_file', $fileOrFolderObject->getUid(), ' ' . $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.referencesToFile'));
+                $referenceCountText = BackendUtility::referenceCount('sys_file', (string)$fileOrFolderObject->getUid(), ' ' . $this->getLanguageService()->sL('LLL:EXT:core/Resources/Private/Language/locallang_core.xlf:labels.referencesToFile'));
                 $deleteType = 'delete_file';
             }
 
-- 
GitLab