Skip to content

Commit 395e789

Browse files
committed
[dx] add withTypeCoverageDocblockLevel()fs
1 parent f8c1d78 commit 395e789

File tree

3 files changed

+30
-2
lines changed

3 files changed

+30
-2
lines changed

config/set/type-declaration-docblocks.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,5 +8,5 @@
88
* @experimental * 2025-09, experimental hidden set for type declaration in docblocks
99
*/
1010
return static function (RectorConfig $rectorConfig): void {
11-
$rectorConfig->rules(\Rector\Config\Level\TypeDeclarationDocblockLevel::RULES);
11+
$rectorConfig->rules(\Rector\Config\Level\TypeDeclarationDocblocksLevel::RULES);
1212
};

src/Config/Level/TypeDeclarationDocblockLevel.php renamed to src/Config/Level/TypeDeclarationDocblocksLevel.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
use Rector\TypeDeclarationDocblocks\Rector\ClassMethod\DocblockGetterReturnArrayFromPropertyDocblockVarRector;
2121
use Rector\TypeDeclarationDocblocks\Rector\ClassMethod\DocblockReturnArrayFromDirectArrayInstanceRector;
2222

23-
final class TypeDeclarationDocblockLevel
23+
final class TypeDeclarationDocblocksLevel
2424
{
2525
/**
2626
* @var array<class-string<RectorInterface>>

src/Configuration/RectorConfigBuilder.php

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use Rector\Config\Level\CodeQualityLevel;
1212
use Rector\Config\Level\CodingStyleLevel;
1313
use Rector\Config\Level\DeadCodeLevel;
14+
use Rector\Config\Level\TypeDeclarationDocblocksLevel;
1415
use Rector\Config\Level\TypeDeclarationLevel;
1516
use Rector\Config\RectorConfig;
1617
use Rector\Config\RegisteredService;
@@ -1019,6 +1020,33 @@ public function withTypeCoverageLevel(int $level): self
10191020
return $this;
10201021
}
10211022

1023+
/**
1024+
* Raise your type coverage docblock from the safest type rules
1025+
* to more affecting ones, one level at a time
1026+
*/
1027+
public function withTypeCoverageDocblockLevel(int $level): self
1028+
{
1029+
Assert::natural($level);
1030+
1031+
$levelRules = LevelRulesResolver::resolve($level, TypeDeclarationDocblocksLevel::RULES, __METHOD__);
1032+
1033+
// too high
1034+
$levelRulesCount = count($levelRules);
1035+
if ($levelRulesCount + self::MAX_LEVEL_GAP < $level) {
1036+
$this->levelOverflows[] = new LevelOverflow(
1037+
__METHOD__,
1038+
$level,
1039+
$levelRulesCount,
1040+
'TypeDeclarationDocblocksLevel',
1041+
'TYPE_DECLARATION_DOCBLOCKS'
1042+
);
1043+
}
1044+
1045+
$this->rules = array_merge($this->rules, $levelRules);
1046+
1047+
return $this;
1048+
}
1049+
10221050
/**
10231051
* Raise your dead-code coverage from the safest rules
10241052
* to more affecting ones, one level at a time

0 commit comments

Comments
 (0)