Skip to content

Commit d43b9a6

Browse files
committed
EarlyExitSniff: Added missing "yield from" support
1 parent 4876a6c commit d43b9a6

File tree

4 files changed

+19
-2
lines changed

4 files changed

+19
-2
lines changed

SlevomatCodingStandard/Helpers/TokenHelper.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class TokenHelper
4848
T_BREAK,
4949
T_THROW,
5050
T_YIELD,
51+
T_YIELD_FROM,
5152
T_EXIT,
5253
];
5354

tests/Sniffs/ControlStructures/EarlyExitSniffTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ public function testErrors(): void
1616
{
1717
$report = self::checkFile(__DIR__ . '/data/earlyExitErrors.php');
1818

19-
self::assertSame(48, $report->getErrorCount());
19+
self::assertSame(49, $report->getErrorCount());
2020

21-
foreach ([6, 15, 24, 33, 42, 50, 58, 66, 74, 82, 90, 98, 108, 149, 157, 165, 191, 199, 207] as $line) {
21+
foreach ([6, 15, 24, 33, 42, 50, 58, 66, 74, 82, 90, 98, 108, 149, 157, 165, 191, 199, 207, 376] as $line) {
2222
self::assertSniffError($report, $line, EarlyExitSniff::CODE_EARLY_EXIT_NOT_USED, 'Use early exit instead of else.');
2323
}
2424

tests/Sniffs/ControlStructures/data/earlyExitErrors.fixed.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,3 +421,11 @@ function logicalVeryComplicatedCondition() {
421421

422422
doSomething();
423423
}
424+
425+
function yieldFrom() {
426+
if ($number < 0) {
427+
yield from [];
428+
}
429+
430+
// Something
431+
}

tests/Sniffs/ControlStructures/data/earlyExitErrors.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,3 +369,11 @@ function logicalVeryComplicatedCondition() {
369369
doSomething();
370370
}
371371
}
372+
373+
function yieldFrom() {
374+
if ($number >= 0) {
375+
// Something
376+
} else {
377+
yield from [];
378+
}
379+
}

0 commit comments

Comments
 (0)