From 851786624ca50f43cca664a285947b1353421f2b Mon Sep 17 00:00:00 2001
From: Christian Sciberras <christian@sciberras.me>
Date: Mon, 6 Jan 2025 12:40:35 +0100
Subject: [PATCH 1/2] Aliased types require phpstan annotations

---
 src/WebdriverClassicDriver.php  | 20 ++++++++++----------
 tests/Custom/CapabilityTest.php |  6 +++---
 2 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/WebdriverClassicDriver.php b/src/WebdriverClassicDriver.php
index 1f3e7a8..646cfb4 100644
--- a/src/WebdriverClassicDriver.php
+++ b/src/WebdriverClassicDriver.php
@@ -84,23 +84,25 @@ class WebdriverClassicDriver extends CoreDriver
     private DesiredCapabilities $desiredCapabilities;
 
     /**
-     * @var TTimeouts
+     * @phpstan-var TTimeouts
      */
     private array $timeouts = [];
 
     private string $webDriverHost;
 
     /**
-     * @var TWebDriverInstantiator
+     * @phpstan-var TWebDriverInstantiator
      */
     private $webDriverInstantiator;
 
     private ?string $initialWindowHandle = null;
 
+    // <editor-fold desc="Implementation">
+
     /**
      * @param string $browserName One of 'edge', 'firefox', 'chrome' or any one of {@see WebDriverBrowserType} constants.
-     * @param TCapabilities $desiredCapabilities
-     * @param TWebDriverInstantiator|null $webDriverInstantiator
+     * @phpstan-param TCapabilities $desiredCapabilities
+     * @phpstan-param TWebDriverInstantiator|null $webDriverInstantiator
      */
     public function __construct(
         string $browserName = self::DEFAULT_BROWSER,
@@ -114,8 +116,6 @@ public function __construct(
         $this->webDriverInstantiator = $webDriverInstantiator ?? [self::class, 'instantiateWebDriver'];
     }
 
-    // <editor-fold desc="Implementation">
-
     public function start(): void
     {
         try {
@@ -350,7 +350,7 @@ public function getAttribute(
 
     /**
      * {@inheritdoc}
-     * @return TElementValue
+     * @phpstan-return TElementValue
      */
     public function getValue(
         #[Language('XPath')]
@@ -394,7 +394,7 @@ public function getValue(
 
     /**
      * {@inheritdoc}
-     * @param TElementValue $value
+     * @phpstan-param TElementValue $value
      */
     public function setValue(
         #[Language('XPath')]
@@ -759,7 +759,7 @@ public function getWebDriverSessionId(): ?string
     /**
      * Sets the timeouts to apply to the webdriver session
      *
-     * @param TTimeouts $timeouts The session timeout settings: Array of {script, implicit, page} => time in milliseconds
+     * @phpstan-param TTimeouts $timeouts The session timeout settings: Array of {script, implicit, page} => time in milliseconds
      * @throws DriverException
      * @api
      */
@@ -817,7 +817,7 @@ private function getNormalisedBrowserName(): string
     /**
      * Detect and assign appropriate browser capabilities
      *
-     * @param TCapabilities $desiredCapabilities
+     * @phpstan-param TCapabilities $desiredCapabilities
      *
      * @see https://github.com/SeleniumHQ/selenium/wiki/DesiredCapabilities
      */
diff --git a/tests/Custom/CapabilityTest.php b/tests/Custom/CapabilityTest.php
index ce129d0..36573d7 100644
--- a/tests/Custom/CapabilityTest.php
+++ b/tests/Custom/CapabilityTest.php
@@ -13,8 +13,8 @@ class CapabilityTest extends \PHPUnit\Framework\TestCase
     use WebDriverMockingTrait;
 
     /**
-     * @param TCapabilities $desiredCapabilities
-     * @param TCapabilities $expectedCapabilities
+     * @phpstan-param TCapabilities $desiredCapabilities
+     * @phpstan-param TCapabilities $expectedCapabilities
      *
      * @dataProvider capabilitiesDataProvider
      */
@@ -39,7 +39,7 @@ function ($host, $capabilities) use (&$actualCapabilities, $mockWebDriver) {
     }
 
     /**
-     * @return iterable<string, array{browserName: string, desiredCapabilities: TCapabilities, expectedCapabilities: TCapabilities}>
+     * @phpstan-return iterable<string, array{browserName: string, desiredCapabilities: TCapabilities, expectedCapabilities: TCapabilities}>
      */
     public static function capabilitiesDataProvider(): iterable
     {

From f4db0a925269ebc7d64eb77057d73077f465bda1 Mon Sep 17 00:00:00 2001
From: Christian Sciberras <christian@sciberras.me>
Date: Mon, 6 Jan 2025 13:28:05 +0100
Subject: [PATCH 2/2] Tiny fix

---
 src/WebdriverClassicDriver.php | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/WebdriverClassicDriver.php b/src/WebdriverClassicDriver.php
index 646cfb4..6918157 100644
--- a/src/WebdriverClassicDriver.php
+++ b/src/WebdriverClassicDriver.php
@@ -97,8 +97,6 @@ class WebdriverClassicDriver extends CoreDriver
 
     private ?string $initialWindowHandle = null;
 
-    // <editor-fold desc="Implementation">
-
     /**
      * @param string $browserName One of 'edge', 'firefox', 'chrome' or any one of {@see WebDriverBrowserType} constants.
      * @phpstan-param TCapabilities $desiredCapabilities
@@ -116,6 +114,8 @@ public function __construct(
         $this->webDriverInstantiator = $webDriverInstantiator ?? [self::class, 'instantiateWebDriver'];
     }
 
+    // <editor-fold desc="Implementation">
+
     public function start(): void
     {
         try {