--- ../tests/unit/DocBlock/DescriptionFactoryTest.php	2026-07-05 16:56:16.128761275 +0300
+++ ../tests/unit/DocBlock/DescriptionFactoryTest.php	2026-07-05 16:57:31.587907285 +0300
@@ -18,6 +18,7 @@
 use phpDocumentor\Reflection\DocBlock\Tags\Link as LinkTag;
 use phpDocumentor\Reflection\Types\Context;
 use PHPUnit\Framework\TestCase;
+use PHPUnit\Framework\Attributes\DataProvider;
 
 use function str_replace;
 
@@ -42,8 +43,8 @@
      *
      * @covers ::__construct
      * @covers ::create
-     * @dataProvider provideSimpleExampleDescriptions
      */
+    #[DataProvider('provideSimpleExampleDescriptions')]
     public function testDescriptionCanParseASimpleString(string $contents): void
     {
         $tagFactory = m::mock(TagFactory::class);
@@ -60,8 +61,8 @@
      *
      * @covers ::__construct
      * @covers ::create
-     * @dataProvider provideEscapeSequences
      */
+    #[DataProvider('provideEscapeSequences')]
     public function testEscapeSequences(string $contents, string $expected): void
     {
         $tagFactory = m::mock(TagFactory::class);
@@ -228,7 +229,7 @@
      *
      * @return string[][]
      */
-    public function provideSimpleExampleDescriptions(): array
+    public static function provideSimpleExampleDescriptions(): array
     {
         return [
             ['This is text for a description.'],
@@ -241,7 +242,7 @@
     /**
      * @return string[][]
      */
-    public function provideEscapeSequences(): array
+    public static function provideEscapeSequences(): array
     {
         return [
             ['This is text for a description with a {@}.', 'This is text for a description with a @.'],
