Repository navigation
Write multi-catch type separators without spaces - #92
Merged
Merged
Conversation
Union and intersection types are enforced without spaces around `|` and `&`, but the `|` in a multi-catch is tokenized as a bitwise OR, so PSR12.Operators.OperatorSpacing required `catch (A | B $e)`, the opposite style. New PhpCollective.WhiteSpace.CatchTypeSeparatorSpacing reports spaces around a catch type separator and removes them; a separator next to a newline is reported but not fixed. PSR12.Operators.OperatorSpacing is replaced by PhpCollective.Operators.OperatorSpacing, a subclass that skips catch separators and otherwise behaves the same, including the skip over declare() statements.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #88
PhpCollective.WhiteSpace.CatchTypeSeparatorSpacing: no whitespace around|in a catch type list, the same ruleUniversal.Operators.TypeSeparatorSpacingalready applies to union types. A separator next to a newline is reported but not auto-fixed.PSR12.Operators.OperatorSpacingis excluded and replaced byPhpCollective.Operators.OperatorSpacing, a subclass that skips catch separators and otherwise reports exactly what the PSR12 sniff did.Breaking for projects that silence
PSR12.Operators.OperatorSpacingor one of its codes in their own ruleset: those reports now come underPhpCollective.Operators.OperatorSpacing.*, so the exclusion has to be renamed. Projects that writecatch (A | B $e)get a new, auto-fixable error.On the 11 catch statements changed by cakephp/cakephp#19740 the fixer output matches the PR, and the PR head passes the full ruleset without silencing anything.
ruleset.xmlanddocs/sniffs.mdare also touched by #91, so whichever PR merges second needs a rebase.