Skip to content

Commit beea798

Browse files
committed
[TASK] Drop greedy calculation of selector specificity
This constructor parameter is not used, and having the specificity calculation always done lazily is not a problem.
1 parent 9192d95 commit beea798

File tree

3 files changed

+17
-18
lines changed

3 files changed

+17
-18
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ Please also have a look at our
3838

3939
### Removed
4040

41+
- Drop greedy calculation of selector specificity (#1021)
4142
- Remove `OutputFormat::level()` (#874)
4243
- Remove expansion of shorthand properties (#838)
4344
- Remove `Parser::setCharset/getCharset` (#808)

src/Property/Selector.php

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,10 @@ public static function isValid($selector)
8686

8787
/**
8888
* @param string $selector
89-
* @param bool $calculateSpecificity @deprecated since V8.8.0, will be removed in V9.0.0
9089
*/
91-
public function __construct($selector, $calculateSpecificity = false)
90+
public function __construct($selector)
9291
{
9392
$this->setSelector($selector);
94-
if ($calculateSpecificity) {
95-
$this->getSpecificity();
96-
}
9793
}
9894

9995
/**

tests/ParserTest.php

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -270,26 +270,28 @@ public function specificity(): void
270270
self::fail('specificity: untested selector ' . $selector->getSelector());
271271
}
272272
}
273-
self::assertEquals([new Selector('#test .help', true)], $document->getSelectorsBySpecificity('> 100'));
273+
$matchingSelectors1 = $document->getSelectorsBySpecificity('> 100');
274+
self::assertCount(1, $matchingSelectors1);
275+
self::assertSame('#test .help', $matchingSelectors1[0]->getSelector());
274276
self::assertEquals(
275-
[new Selector('#test .help', true), new Selector('#file', true)],
277+
[new Selector('#test .help'), new Selector('#file')],
276278
$document->getSelectorsBySpecificity('>= 100')
277279
);
278-
self::assertEquals([new Selector('#file', true)], $document->getSelectorsBySpecificity('=== 100'));
279-
self::assertEquals([new Selector('#file', true)], $document->getSelectorsBySpecificity('== 100'));
280+
self::assertEquals([new Selector('#file')], $document->getSelectorsBySpecificity('=== 100'));
281+
self::assertEquals([new Selector('#file')], $document->getSelectorsBySpecificity('== 100'));
280282
self::assertEquals([
281-
new Selector('#file', true),
282-
new Selector('.help:hover', true),
283-
new Selector('li.green', true),
284-
new Selector('ol li::before', true),
283+
new Selector('#file'),
284+
new Selector('.help:hover'),
285+
new Selector('li.green'),
286+
new Selector('ol li::before'),
285287
], $document->getSelectorsBySpecificity('<= 100'));
286288
self::assertEquals([
287-
new Selector('.help:hover', true),
288-
new Selector('li.green', true),
289-
new Selector('ol li::before', true),
289+
new Selector('.help:hover'),
290+
new Selector('li.green'),
291+
new Selector('ol li::before'),
290292
], $document->getSelectorsBySpecificity('< 100'));
291-
self::assertEquals([new Selector('li.green', true)], $document->getSelectorsBySpecificity('11'));
292-
self::assertEquals([new Selector('ol li::before', true)], $document->getSelectorsBySpecificity('3'));
293+
self::assertEquals([new Selector('li.green')], $document->getSelectorsBySpecificity('11'));
294+
self::assertEquals([new Selector('ol li::before')], $document->getSelectorsBySpecificity('3'));
293295
}
294296

295297
/**

0 commit comments

Comments
 (0)