Skip to content

Commit 35a8da7

Browse files
committed
Fixed some false posititives for EmptyStatementSniff
1 parent 47a1b1b commit 35a8da7

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

ForwardMedia/Sniffs/CodeAnalysis/EmptyStatementSniff.php

+14
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,20 @@ public function process(File $phpcsFile, $stackPtr) {
3737
}
3838

3939
if ($previousToken && in_array($previousToken['code'], [T_SEMICOLON, T_OPEN_CURLY_BRACKET, T_CLOSE_CURLY_BRACKET, T_OPEN_TAG])) {
40+
if ($previousToken['code'] === T_CLOSE_CURLY_BRACKET) {
41+
if (isset($previousToken['scope_condition']) && $tokens[$previousToken['scope_condition']]['code'] === T_CLOSURE) {
42+
// ignore semicolon after closing bracket of closure
43+
return;
44+
}
45+
46+
$openBracket = $tokens[$previousToken['bracket_opener']];
47+
$beforeOpening = $phpcsFile->findPrevious(Tokens::$emptyTokens, $previousToken['bracket_opener'] - 1, null, true);
48+
if ($beforeOpening && $tokens[$beforeOpening] && $tokens[$beforeOpening]['code'] === T_OBJECT_OPERATOR) {
49+
// code like $this->{$var . "string"};
50+
return;
51+
}
52+
}
53+
4054
// Get token identifier.
4155
$name = strtoupper($token['content']);
4256
$error = 'Useless semicolon detected';

0 commit comments

Comments
 (0)