diff --git a/easy-coding-standard.neon b/easy-coding-standard.neon index f139c5974b..b4033513a0 100644 --- a/easy-coding-standard.neon +++ b/easy-coding-standard.neon @@ -1,29 +1,16 @@ includes: - - packages/EasyCodingStandard/config/symfony.neon - - packages/EasyCodingStandard/config/php54.neon - - packages/EasyCodingStandard/config/php70.neon + - packages/EasyCodingStandard/config/psr2.neon - packages/EasyCodingStandard/config/php71.neon - # custom + + - packages/EasyCodingStandard/config/clean-code.neon - packages/EasyCodingStandard/config/symplify.neon - packages/EasyCodingStandard/config/common.neon - - packages/EasyCodingStandard/config/spaces.neon checkers: - Symplify\CodingStandard\Sniffs\DependencyInjection\NoClassInstantiationSniff: - extraAllowedClasses: - - Symplify\EasyCodingStandard\Error\Error - - Symplify\CodingStandard\FixerTokenWrapper\Naming\Name - - Symplify\CodingStandard\SniffTokenWrapper\CommentCleaner - - # Slevomat - SlevomatCodingStandard\Sniffs\Namespaces\ReferenceUsedNamesOnlySniff: - allowPartialUses: false - - SlevomatCodingStandard\Sniffs\ControlStructures\AssignmentInConditionSniff - SlevomatCodingStandard\Sniffs\TypeHints\TypeHintDeclarationSniff: - enableEachParameterAndReturnInspection: true - - SlevomatCodingStandard\Sniffs\Exceptions\ReferenceThrowableOnlySniff + # class should be Abstact or Final + - SlamCsFixer\FinalInternalClassFixer - # Complexity limits + # code complexity PHP_CodeSniffer\Standards\Generic\Sniffs\Files\LineLengthSniff: absoluteLineLimit: 120 PHP_CodeSniffer\Standards\Generic\Sniffs\Metrics\CyclomaticComplexitySniff: @@ -31,26 +18,20 @@ checkers: PHP_CodeSniffer\Standards\Generic\Sniffs\Metrics\NestingLevelSniff: absoluteNestingLevel: 4 - # class should be Abstact or Final - - SlamCsFixer\FinalInternalClassFixer + Symplify\CodingStandard\Sniffs\DependencyInjection\NoClassInstantiationSniff: + extraAllowedClasses: + - Symplify\EasyCodingStandard\Error\Error + - Symplify\CodingStandard\FixerTokenWrapper\Naming\Name + - Symplify\CodingStandard\SniffTokenWrapper\CommentCleaner parameters: - exclude_checkers: - # from PHP-CS-Fixer Symfony set - - PhpCsFixer\Fixer\PhpTag\BlankLineAfterOpeningTagFixer - - PhpCsFixer\Fixer\Phpdoc\PhpdocAlignFixer - - PhpCsFixer\Fixer\Operator\UnaryOperatorSpacesFixer - - PhpCsFixer\Fixer\ControlStructure\YodaStyleFixer - - skip_codes: - - SlevomatCodingStandard\Sniffs\TypeHints\TypeHintDeclarationSniff.UselessDocComment - skip: PHP_CodeSniffer\Standards\Generic\Sniffs\Files\LineLengthSniff: # many implemented interfaces - packages/CodingStandard/src/Fixer/ClassNotation/PropertyAndConstantSeparationFixer.php - packages/CodingStandard/src/Fixer/ClassNotation/LastPropertyAndFirstMethodSeparationFixer.php - packages/CodingStandard/src/Fixer/Import/ImportNamespacedNameFixer.php + - packages/CodingStandard/src/Fixer/Strict/BlankLineAfterStrictTypesFixer.php SlevomatCodingStandard\Sniffs\TypeHints\TypeHintDeclarationSniff: - *packages/CodingStandard/src/Sniffs/*/*Sniff.php @@ -58,24 +39,20 @@ parameters: - packages/Statie/packages/FlatWhite/src/Latte/DynamicStringLoader.php - packages/Statie/src/Configuration/Configuration.php - Symplify\CodingStandard\Sniffs\Classes\EqualInterfaceImplementationSniff: - - packages/EasyCodingStandard/packages/SniffRunner/src/Application/SniffFileProcessor.php - - packages/EasyCodingStandard/packages/FixerRunner/src/Application/FixerFileProcessor.php - PhpCsFixer\Fixer\PhpUnit\PhpUnitStrictFixer: - packages/EasyCodingStandard/tests/Indentation/IndentationTest.php Symplify\CodingStandard\Fixer\Php\ClassStringToClassConstantFixer: # name parts, not classes - packages/CodingStandard/src/Sniffs/DependencyInjection/NoClassInstantiationSniff.php - - # optional package, interface might not exist - - packages/CodingStandard/src/Sniffs/Classes/EqualInterfaceImplementationSniff.php # "Exception" is string part of the name - packages/CodingStandard/src/Sniffs/Naming/ExceptionNameSniff.php - packages/CodingStandard/src/Fixer/Naming/ExceptionNameFixer.php # class might not exist - - packages/EasyCodingStandard/packages/Configuration/src/MutualCheckerExcluder.php - - packages/EasyCodingStandard/packages/Configuration/tests/MutualCheckerExcluderTest.php - - packages/EasyCodingStandard/packages/Configuration/src/ConflictingCheckerGuard.php - - packages/EasyCodingStandard/packages/Configuration/tests/ConflictingCheckerGuardTest.php + - *packages/EasyCodingStandard/packages/Configuration/**/MutualCheckerExcluder**.php + - *packages/EasyCodingStandard/packages/Configuration/**/ConflictingCheckerGuard**.php + - packages/CodingStandard/src/Sniffs/Classes/EqualInterfaceImplementationSniff.php + + Symplify\CodingStandard\Sniffs\Classes\EqualInterfaceImplementationSniff: + - packages/EasyCodingStandard/packages/SniffRunner/src/Application/SniffFileProcessor.php + - packages/EasyCodingStandard/packages/FixerRunner/src/Application/FixerFileProcessor.php diff --git a/packages/CodingStandard/README.md b/packages/CodingStandard/README.md index e6a8d3d623..7dee36edfc 100644 --- a/packages/CodingStandard/README.md +++ b/packages/CodingStandard/README.md @@ -378,7 +378,7 @@ checkers: ### Array property should have default value, to prevent undefined array issues -- class: [`Symplify\CodingStandard\Fixer\Property/ArrayPropertyDefaultValueFixer`](/src/Fixer/Property/ArrayPropertyDefaultValueFixer.php) +- class: [`Symplify\CodingStandard\Fixer\Property\ArrayPropertyDefaultValueFixer`](/src/Fixer/Property/ArrayPropertyDefaultValueFixer.php) :x: @@ -415,6 +415,27 @@ class SomeClass ``` +### Strict type declaration has to be followed by empty line + +- class: [`Symplify\CodingStandard\Fixer\Strict\BlankLineAfterStrictTypesFixer`](/src/Fixer/Strict/BlankLineAfterStrictTypesFixer.php) + + +:x: + +``` php +count() - 1; 0 <= $index; --$index) { + for ($index = $tokens->count() - 1; $index > 0; --$index) { $token = $tokens[$index]; if (! $token->isGivenKind(self::INCLUDY_TOKEN_KINDS)) { diff --git a/packages/CodingStandard/src/Fixer/Strict/BlankLineAfterStrictTypesFixer.php b/packages/CodingStandard/src/Fixer/Strict/BlankLineAfterStrictTypesFixer.php new file mode 100644 index 0000000000..0c72a62f2d --- /dev/null +++ b/packages/CodingStandard/src/Fixer/Strict/BlankLineAfterStrictTypesFixer.php @@ -0,0 +1,92 @@ +isAllTokenKindsFound([T_OPEN_TAG, T_WHITESPACE, T_DECLARE, T_STRING, '=', T_LNUMBER, ';']); + } + + public function fix(SplFileInfo $file, Tokens $tokens): void + { + $sequenceLocation = $tokens->findSequence(TokenBuilder::getDeclareStrictTypeSequence(), 1, 15); + if ($sequenceLocation === null) { + return; + } + + end($sequenceLocation); + $semicolonPosition = key($sequenceLocation); + + // empty file + if (! isset($tokens[$semicolonPosition + 2])) { + return; + } + + $lineEnding = $this->whitespacesFixerConfig->getLineEnding(); + + $tokens->ensureWhitespaceAtIndex($semicolonPosition + 1, 0, $lineEnding . $lineEnding); + } + + /** + * Must run after @see \PhpCsFixer\Fixer\Strict\DeclareStrictTypesFixer + */ + public function getPriority(): int + { + return 0; + } + + public function getName(): string + { + return self::class; + } + + public function supports(SplFileInfo $file): bool + { + return true; + } + + public function isRisky(): bool + { + return false; + } + + public function setWhitespacesConfig(WhitespacesFixerConfig $whitespacesFixerConfig): void + { + $this->whitespacesFixerConfig = $whitespacesFixerConfig; + } +} diff --git a/packages/CodingStandard/src/Fixer/TokenBuilder.php b/packages/CodingStandard/src/Fixer/TokenBuilder.php index 10396fc876..e8d13c9518 100644 --- a/packages/CodingStandard/src/Fixer/TokenBuilder.php +++ b/packages/CodingStandard/src/Fixer/TokenBuilder.php @@ -8,7 +8,7 @@ final class TokenBuilder { /** - * Generates token for code like: " = []". + * Generates: " = []". * * @return Token[] */ @@ -22,4 +22,28 @@ public static function createDefaultArrayTokens(): array new Token([CT::T_ARRAY_SQUARE_BRACE_CLOSE, ']']), ]; } + + /** + * Generates: "declare(strict_types=1);" + * + * @return Token[] + */ + public static function getDeclareStrictTypeSequence(): array + { + static $tokens = null; + + if ($tokens === null) { + $tokens = [ + new Token([T_DECLARE, 'declare']), + new Token('('), + new Token([T_STRING, 'strict_types']), + new Token('='), + new Token([T_LNUMBER, '1']), + new Token(')'), + new Token(';'), + ]; + } + + return $tokens; + } } diff --git a/packages/CodingStandard/src/Sniffs/PHPUnit/FinalTestCaseSniff.php b/packages/CodingStandard/src/Sniffs/PHPUnit/FinalTestCaseSniff.php deleted file mode 100644 index 9a125de15c..0000000000 --- a/packages/CodingStandard/src/Sniffs/PHPUnit/FinalTestCaseSniff.php +++ /dev/null @@ -1,105 +0,0 @@ -file = $file; - $this->position = $position; - $this->tokens = $file->getTokens(); - $this->fixer = $file->fixer; - - if ($this->shouldBeSkipped()) { - return; - } - - $fix = $file->addFixableError(self::ERROR_MESSAGE, $position, self::class); - if ($fix) { - $this->addFinalToClass($position); - } - } - - private function shouldBeSkipped(): bool - { - if (! $this->extendsTestCase()) { - return true; - } - - if ($this->isFinalOrAbstractClass()) { - return true; - } - - return false; - } - - private function extendsTestCase(): bool - { - if (! (bool) $this->file->findNext(T_EXTENDS, $this->position)) { - return false; - } - - $parentClassPosition = $this->file->findNext(T_STRING, $this->position + 3); - $parentClassName = $this->tokens[$parentClassPosition]['content']; - - if (! Strings::contains($parentClassName, 'TestCase')) { - return false; - } - - return true; - } - - private function isFinalOrAbstractClass(): bool - { - $classProperties = $this->file->getClassProperties($this->position); - - return $classProperties['is_abstract'] || $classProperties['is_final']; - } - - private function addFinalToClass(int $position): void - { - $this->fixer->addContentBefore($position, 'final '); - } -} diff --git a/packages/CodingStandard/tests/Fixer/Strict/BlankLineAfterStrictTypesFixerTest.php b/packages/CodingStandard/tests/Fixer/Strict/BlankLineAfterStrictTypesFixerTest.php new file mode 100644 index 0000000000..5d3d174a6c --- /dev/null +++ b/packages/CodingStandard/tests/Fixer/Strict/BlankLineAfterStrictTypesFixerTest.php @@ -0,0 +1,62 @@ +doTest($fixedOutput, $input); + } + + /** + * @return string[][] + */ + public function provideFixCases(): array + { + return [ + [ + // wrong + 'setWhitespacesConfig(new WhitespacesFixerConfig(' ', PHP_EOL)); + return $fixer; + } +} diff --git a/packages/CodingStandard/tests/Sniffs/PHPUnit/FinalTestCase/FinalTestCaseSniffTest.php b/packages/CodingStandard/tests/Sniffs/PHPUnit/FinalTestCase/FinalTestCaseSniffTest.php deleted file mode 100644 index 7484d7d465..0000000000 --- a/packages/CodingStandard/tests/Sniffs/PHPUnit/FinalTestCase/FinalTestCaseSniffTest.php +++ /dev/null @@ -1,14 +0,0 @@ -runSniffTestForDirectory(FinalTestCaseSniff::class, __DIR__); - } -} diff --git a/packages/CodingStandard/tests/Sniffs/PHPUnit/FinalTestCase/correct/correct.php.inc b/packages/CodingStandard/tests/Sniffs/PHPUnit/FinalTestCase/correct/correct.php.inc deleted file mode 100644 index 8b1599b68e..0000000000 --- a/packages/CodingStandard/tests/Sniffs/PHPUnit/FinalTestCase/correct/correct.php.inc +++ /dev/null @@ -1,10 +0,0 @@ - ! $value; + - PhpCsFixer\Fixer\Operator\NotOperatorWithSuccessorSpaceFixer + + # namespace ...; + - PhpCsFixer\Fixer\NamespaceNotation\NoLeadingNamespaceWhitespaceFixer + + # $value[ 'key' ]; + - PhpCsFixer\Fixer\Whitespace\NoSpacesAroundOffsetFixer + + # \n \n + - PhpCsFixer\Fixer\Whitespace\NoWhitespaceInBlankLineFixer + + # someMethod() : Type + - PhpCsFixer\Fixer\FunctionNotation\ReturnTypeDeclarationFixer + + # $var = 5; $hello = 'hi'; + - PhpCsFixer\Fixer\Semicolon\SpaceAfterSemicolonFixer + + # '$value ? 'yes' : 'no'; + - PhpCsFixer\Fixer\Operator\TernaryOperatorSpacesFixer + + # someFunction($value,$anotherValue) + - PhpCsFixer\Fixer\FunctionNotation\MethodArgumentSpaceFixer + + - PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\LanguageConstructSpacingSniff diff --git a/packages/EasyCodingStandard/config/common/strict.neon b/packages/EasyCodingStandard/config/common/strict.neon new file mode 100644 index 0000000000..b09e31d227 --- /dev/null +++ b/packages/EasyCodingStandard/config/common/strict.neon @@ -0,0 +1,10 @@ +checkers: + # $value == 5; => $value === 5; + - PhpCsFixer\Fixer\Strict\StrictComparisonFixer + + # is_null($value); => $value === null; + PhpCsFixer\Fixer\LanguageConstruct\IsNullFixer: + use_yoda_style: false + + # $this->assertEquals() => $this->assertSame() + - PhpCsFixer\Fixer\PhpUnit\PhpUnitStrictFixer diff --git a/packages/EasyCodingStandard/config/php54.neon b/packages/EasyCodingStandard/config/php54.neon deleted file mode 100644 index 6139fec66a..0000000000 --- a/packages/EasyCodingStandard/config/php54.neon +++ /dev/null @@ -1,3 +0,0 @@ -checkers: - PhpCsFixer\Fixer\ArrayNotation\ArraySyntaxFixer: - syntax: short diff --git a/packages/EasyCodingStandard/config/php70.neon b/packages/EasyCodingStandard/config/php70.neon index eaa3f9988e..448e70a414 100644 --- a/packages/EasyCodingStandard/config/php70.neon +++ b/packages/EasyCodingStandard/config/php70.neon @@ -1,22 +1,32 @@ checkers: - # PHP-CS-Fixer - - PhpCsFixer\Fixer\Alias\PowToExponentiationFixer - - PhpCsFixer\Fixer\Operator\TernaryToNullCoalescingFixer + # array( ); + PhpCsFixer\Fixer\ArrayNotation\ArraySyntaxFixer: + syntax: short + + # new methods PhpCsFixer\Fixer\Alias\RandomApiMigrationFixer: mt_rand: random_int rand: random_int - # risky + # ?? operator + - PhpCsFixer\Fixer\Operator\TernaryToNullCoalescingFixer + + # strict types - PhpCsFixer\Fixer\Strict\DeclareStrictTypesFixer + - Symplify\CodingStandard\Fixer\Strict\BlankLineAfterStrictTypesFixer + - PhpCsFixer\Fixer\LanguageConstruct\DeclareEqualNormalizeFixer - # Typehints - - PhpCsFixer\Fixer\FunctionNotation\FunctionTypehintSpaceFixer + # typehints - PhpCsFixer\Fixer\FunctionNotation\ReturnTypeDeclarationFixer SlevomatCodingStandard\Sniffs\TypeHints\TypeHintDeclarationSniff: - usefulAnnotations: - - @todo - - @dataProvider enableEachParameterAndReturnInspection: true + enableVoidTypeHint: false + enableNullableTypeHints: false - # Throwable + # throwable - SlevomatCodingStandard\Sniffs\Exceptions\ReferenceThrowableOnlySniff + +parameters: + # disable any annotation removal + skip_codes: + - SlevomatCodingStandard\Sniffs\TypeHints\TypeHintDeclarationSniff.UselessDocComment diff --git a/packages/EasyCodingStandard/config/php71.neon b/packages/EasyCodingStandard/config/php71.neon index 0d8f381bb0..b5e7777a1b 100644 --- a/packages/EasyCodingStandard/config/php71.neon +++ b/packages/EasyCodingStandard/config/php71.neon @@ -1,10 +1,23 @@ +includes: + - php70.neon + checkers: - # PHP-CS-Fixer + # All elements should have visibility PhpCsFixer\Fixer\ClassNotation\VisibilityRequiredFixer: elements: [const, property, method] - - PhpCsFixer\Fixer\FunctionNotation\VoidReturnFixer + + # Turn list() into [] PhpCsFixer\Fixer\ListNotation\ListSyntaxFixer: syntax: short - # Typehints + # Nullable Typehints - SlevomatCodingStandard\Sniffs\TypeHints\NullableTypeForNullDefaultValueSniff + - PhpCsFixer\Fixer\Whitespace\CompactNullableTypehintFixer + + # Void Typehints + - PhpCsFixer\Fixer\FunctionNotation\VoidReturnFixer + + # All Typehints + SlevomatCodingStandard\Sniffs\TypeHints\TypeHintDeclarationSniff: + enableVoidTypeHint: true + enableNullableTypeHints: true diff --git a/packages/EasyCodingStandard/config/spaces.neon b/packages/EasyCodingStandard/config/spaces.neon deleted file mode 100644 index 616f9c315a..0000000000 --- a/packages/EasyCodingStandard/config/spaces.neon +++ /dev/null @@ -1,11 +0,0 @@ -checkers: - # "string" . "another string" - PhpCsFixer\Fixer\Operator\ConcatSpaceFixer: - spacing: one - - # if (! $statement) {... - - PhpCsFixer\Fixer\Operator\NotOperatorWithSuccessorSpaceFixer - - # ... - PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\SuperfluousWhitespaceSniff: - ignoreBlankLines: false diff --git a/packages/EasyCodingStandard/config/symplify.neon b/packages/EasyCodingStandard/config/symplify.neon index afd9867e6d..e38e928831 100644 --- a/packages/EasyCodingStandard/config/symplify.neon +++ b/packages/EasyCodingStandard/config/symplify.neon @@ -1,25 +1,24 @@ checkers: + # PHP 5.5 - Symplify\CodingStandard\Fixer\Php\ClassStringToClassConstantFixer - - Symplify\CodingStandard\Sniffs\PHPUnit\FinalTestCaseSniff - - Symplify\CodingStandard\Sniffs\Debug\DebugFunctionCallSniff - - Symplify\CodingStandard\Sniffs\Property\DynamicPropertySniff # Imports - Symplify\CodingStandard\Fixer\Import\ImportNamespacedNameFixer # Control Structures + - Symplify\CodingStandard\Sniffs\Property\DynamicPropertySniff - Symplify\CodingStandard\Fixer\Property\ArrayPropertyDefaultValueFixer - Symplify\CodingStandard\Fixer\ArrayNotation\StandaloneLineInMultilineArrayFixer - Symplify\CodingStandard\Fixer\ControlStructure\RequireFollowedByAbsolutePathFixer # Spaces + - Symplify\CodingStandard\Fixer\Strict\BlankLineAfterStrictTypesFixer - Symplify\CodingStandard\Fixer\ClassNotation\PropertyAndConstantSeparationFixer - Symplify\CodingStandard\Fixer\ClassNotation\LastPropertyAndFirstMethodSeparationFixer # Comments - Symplify\CodingStandard\Fixer\Commenting\BlockPropertyCommentFixer - Symplify\CodingStandard\Sniffs\Commenting\VarConstantCommentSniff - - Symplify\CodingStandard\Sniffs\Debug\CommentedOutCodeSniff - Symplify\CodingStandard\Fixer\Commenting\AnnotateMagicContainerGetterFixer - Symplify\CodingStandard\Fixer\Commenting\RemoveUselessDocBlockFixer @@ -34,3 +33,7 @@ checkers: - Symplify\CodingStandard\Sniffs\Classes\EqualInterfaceImplementationSniff - Symplify\CodingStandard\Sniffs\Classes\FinalInterfaceSniff - Symplify\CodingStandard\Sniffs\DependencyInjection\NoClassInstantiationSniff + + # Debug + - Symplify\CodingStandard\Sniffs\Debug\DebugFunctionCallSniff + - Symplify\CodingStandard\Sniffs\Debug\CommentedOutCodeSniff diff --git a/packages/EasyCodingStandard/packages/Configuration/src/MutualCheckerExcluder.php b/packages/EasyCodingStandard/packages/Configuration/src/MutualCheckerExcluder.php index 528ff68538..26da10c7bd 100644 --- a/packages/EasyCodingStandard/packages/Configuration/src/MutualCheckerExcluder.php +++ b/packages/EasyCodingStandard/packages/Configuration/src/MutualCheckerExcluder.php @@ -98,6 +98,9 @@ final class MutualCheckerExcluder ], [ 'PhpCsFixer\Fixer\Whitespace\NoExtraConsecutiveBlankLinesFixer', 'PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\SuperfluousWhitespaceSniff', + ], [ + 'PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\LanguageConstructSpacingSniff', + 'PhpCsFixer\Fixer\ControlStructure\IncludeFixer', ], // PSR2 [ @@ -124,6 +127,18 @@ final class MutualCheckerExcluder ], [ 'PhpCsFixer\Fixer\Basic\BracesFixer', 'PHP_CodeSniffer\Standards\Generic\Sniffs\WhiteSpace\ScopeIndentSniff', + ], [ + 'PhpCsFixer\Fixer\Basic\BracesFixer', + 'PHP_CodeSniffer\Standards\Squiz\Sniffs\WhiteSpace\ScopeClosingBraceSniff', + ], [ + 'PhpCsFixer\Fixer\ClassNotation\ClassDefinitionFixer', + 'PHP_CodeSniffer\Standards\PSR2\Sniffs\Classes\ClassDeclarationSniff', + ], [ + 'PhpCsFixer\Fixer\PhpTag\NoClosingTagFixer', + 'PHP_CodeSniffer\Standards\PSR2\Sniffs\Files\ClosingTagSniff', + ], [ + 'PhpCsFixer\Fixer\ClassNotation\SingleClassElementPerStatementFixer', + 'PHP_CodeSniffer\Standards\PSR2\Sniffs\Classes\PropertyDeclarationSniff', ], ]; diff --git a/packages/EasyCodingStandard/packages/FixerRunner/src/Application/FixerFileProcessor.php b/packages/EasyCodingStandard/packages/FixerRunner/src/Application/FixerFileProcessor.php index 670249262a..995050b579 100644 --- a/packages/EasyCodingStandard/packages/FixerRunner/src/Application/FixerFileProcessor.php +++ b/packages/EasyCodingStandard/packages/FixerRunner/src/Application/FixerFileProcessor.php @@ -132,8 +132,6 @@ public function processFile(SplFileInfo $file): void $tokens->clearChanged(); $appliedFixers[] = $fixer->getName(); } - - $this->checkerMetricRecorder->endWithChecker($fixer); } if (! empty($appliedFixers)) { diff --git a/packages/EasyCodingStandard/packages/SniffRunner/src/File/File.php b/packages/EasyCodingStandard/packages/SniffRunner/src/File/File.php index d75f95f23a..277e626d57 100644 --- a/packages/EasyCodingStandard/packages/SniffRunner/src/File/File.php +++ b/packages/EasyCodingStandard/packages/SniffRunner/src/File/File.php @@ -120,9 +120,7 @@ public function getErrors(): void */ public function addFixableError($error, $stackPtr, $code, $data = [], $severity = 0): bool { - $this->addError($error, $stackPtr, $code, $data, $severity, true); - - return $this->isFixer; + return $this->addError($error, $stackPtr, $code, $data, $severity, true) && $this->isFixer; } /** diff --git a/packages/PackageBuilder/README.md b/packages/PackageBuilder/README.md index 98bec4785e..bd193f054f 100644 --- a/packages/PackageBuilder/README.md +++ b/packages/PackageBuilder/README.md @@ -40,7 +40,7 @@ final class CollectorCompilerPass implements CompilerPassInterface ``` -#### 2. Add Service if Found +#### Add Service if Found ```php