Skip to content

Commit dc996b9

Browse files
authored
Squiz/ScopeKeywordSpacing: check spaces after abstract and final keyword (#604)
The correct spacing after the `final` and `abstract` modifier keywords was not checked by this sniff, while these are typical modifier keywords which should be checked. Includes tests.
1 parent f30c85e commit dc996b9

File tree

4 files changed

+61
-2
lines changed

4 files changed

+61
-2
lines changed

src/Standards/Squiz/Sniffs/WhiteSpace/ScopeKeywordSpacingSniff.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@ class ScopeKeywordSpacingSniff implements Sniff
2424
*/
2525
public function register()
2626
{
27-
$register = Tokens::$scopeModifiers;
28-
$register[] = T_STATIC;
27+
$register = Tokens::$methodPrefixes;
2928
$register[] = T_READONLY;
3029
return $register;
3130

src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.1.inc

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,3 +147,30 @@ readonly class ReadonlyClassTest {}
147147
// PHP 8.3 readonly anonymous classes.
148148
$anon = new readonly class {};
149149
$anon = new readonly class {};
150+
151+
class FinalTest {
152+
final public static function create(ContainerInterface $container) {}
153+
}
154+
155+
final class FinalTest2 {
156+
}
157+
158+
final
159+
readonly class FinalTest3 {}
160+
161+
class FinalTest4 {
162+
final const X = "foo";
163+
final public const Y = "bar";
164+
}
165+
166+
abstract class AbstractTest {
167+
abstract public function foo();
168+
}
169+
170+
final class FinalSpacingCorrect {
171+
public final const SPACING_CORRECT = true;
172+
}
173+
174+
abstract class AbstractSpacingCorrect {
175+
public abstract function spacingCorrect() {}
176+
}

src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.1.inc.fixed

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,3 +141,29 @@ readonly class ReadonlyClassTest {}
141141
// PHP 8.3 readonly anonymous classes.
142142
$anon = new readonly class {};
143143
$anon = new readonly class {};
144+
145+
class FinalTest {
146+
final public static function create(ContainerInterface $container) {}
147+
}
148+
149+
final class FinalTest2 {
150+
}
151+
152+
final readonly class FinalTest3 {}
153+
154+
class FinalTest4 {
155+
final const X = "foo";
156+
final public const Y = "bar";
157+
}
158+
159+
abstract class AbstractTest {
160+
abstract public function foo();
161+
}
162+
163+
final class FinalSpacingCorrect {
164+
public final const SPACING_CORRECT = true;
165+
}
166+
167+
abstract class AbstractSpacingCorrect {
168+
public abstract function spacingCorrect() {}
169+
}

src/Standards/Squiz/Tests/WhiteSpace/ScopeKeywordSpacingUnitTest.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,13 @@ public function getErrorList($testFile='')
5858
140 => 3,
5959
145 => 1,
6060
149 => 1,
61+
152 => 1,
62+
155 => 1,
63+
158 => 1,
64+
162 => 1,
65+
163 => 1,
66+
166 => 1,
67+
167 => 1,
6168
];
6269

6370
case 'ScopeKeywordSpacingUnitTest.3.inc':

0 commit comments

Comments
 (0)