Skip to content

Commit a583a2e

Browse files
authored
[TASK] Add native type declarations for CSSBlockList (#1183)
Also add some more type checks to ensure that the corresponding types are actually returned. Part of #811
1 parent 1226a2f commit a583a2e

File tree

3 files changed

+8
-19
lines changed

3 files changed

+8
-19
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Please also have a look at our
3434
- Use more native type declarations and strict mode
3535
(#641, #772, #774, #778, #804, #841, #873, #875, #891, #922, #923, #933, #958,
3636
#964, #967, #1000, #1044, #1134, #1136, #1137, #1139, #1140, #1141, #1145,
37-
#1162, #1163, #1166, #1172, #1174, #1178, #1179, #1181, #1184)
37+
#1162, #1163, #1166, #1172, #1174, #1178, #1179, #1181, #1183, #1184)
3838
- Add visibility to all class/interface constants (#469)
3939

4040
### Deprecated

config/phpstan-baseline.neon

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,6 @@ parameters:
66
count: 1
77
path: ../src/CSSList/AtRuleBlockList.php
88

9-
-
10-
message: '#^Parameter &\$result by\-ref type of method Sabberworm\\CSS\\CSSList\\CSSBlockList\:\:allValues\(\) expects array\<int, Sabberworm\\CSS\\Value\\Value\>, array\<int, Sabberworm\\CSS\\CSSList\\CSSList\|Sabberworm\\CSS\\Value\\Value\> given\.$#'
11-
identifier: parameterByRef.type
12-
count: 1
13-
path: ../src/CSSList/CSSBlockList.php
14-
159
-
1610
message: '#^Loose comparison via "\!\=" is not allowed\.$#'
1711
identifier: notEqual.notAllowed

src/CSSList/CSSBlockList.php

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public function getAllDeclarationBlocks(): array
4141
}
4242

4343
/**
44-
* @param array<int, DeclarationBlock> $result
44+
* @param list<DeclarationBlock> $result
4545
*/
4646
protected function allDeclarationBlocks(array &$result): void
4747
{
@@ -76,15 +76,13 @@ public function getAllRuleSets(): array
7676

7777
/**
7878
* @param CSSList|Rule|RuleSet|Value $element
79-
* @param array<int, Value> $result
80-
* @param string|null $searchString
81-
* @param bool $searchInFunctionArguments
79+
* @param list<Value> $result
8280
*/
8381
protected function allValues(
8482
$element,
8583
array &$result,
86-
$searchString = null,
87-
$searchInFunctionArguments = false
84+
?string $searchString = null,
85+
bool $searchInFunctionArguments = false
8886
): void {
8987
if ($element instanceof CSSBlockList) {
9088
foreach ($element->getContents() as $content) {
@@ -102,19 +100,16 @@ protected function allValues(
102100
$this->allValues($component, $result, $searchString, $searchInFunctionArguments);
103101
}
104102
}
105-
} else {
106-
// Non-List `Value` or `CSSString` (CSS identifier)
103+
} elseif ($element instanceof Value) {
107104
$result[] = $element;
108105
}
109106
}
110107

111108
/**
112-
* @param array<int, Selector> $result
113-
* @param string|null $specificitySearch
109+
* @param list<Selector> $result
114110
*/
115-
protected function allSelectors(array &$result, $specificitySearch = null): void
111+
protected function allSelectors(array &$result, ?string $specificitySearch = null): void
116112
{
117-
/** @var array<int, DeclarationBlock> $declarationBlocks */
118113
$declarationBlocks = [];
119114
$this->allDeclarationBlocks($declarationBlocks);
120115
foreach ($declarationBlocks as $declarationBlock) {

0 commit comments

Comments
 (0)