Skip to content

Commit a0adf0d

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

File tree

3 files changed

+11
-20
lines changed

3 files changed

+11
-20
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: 10 additions & 13 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) {
@@ -103,18 +101,17 @@ protected function allValues(
103101
}
104102
}
105103
} else {
106-
// Non-List `Value` or `CSSString` (CSS identifier)
107-
$result[] = $element;
104+
if ($element instanceof Value) {
105+
$result[] = $element;
106+
}
108107
}
109108
}
110109

111110
/**
112-
* @param array<int, Selector> $result
113-
* @param string|null $specificitySearch
111+
* @param list<Selector> $result
114112
*/
115-
protected function allSelectors(array &$result, $specificitySearch = null): void
113+
protected function allSelectors(array &$result, ?string $specificitySearch = null): void
116114
{
117-
/** @var array<int, DeclarationBlock> $declarationBlocks */
118115
$declarationBlocks = [];
119116
$this->allDeclarationBlocks($declarationBlocks);
120117
foreach ($declarationBlocks as $declarationBlock) {
@@ -149,7 +146,7 @@ protected function allSelectors(array &$result, $specificitySearch = null): void
149146
$comparatorMatched = $selectorSpecificity === $targetSpecificity;
150147
break;
151148
}
152-
if ($comparatorMatched) {
149+
if ($comparatorMatched && $selector instanceof Selector) {
153150
$result[] = $selector;
154151
}
155152
}

0 commit comments

Comments
 (0)