From 0488aecf955ed6acc89ef756f509bf4e62792614 Mon Sep 17 00:00:00 2001 From: jrfnl Date: Fri, 9 Sep 2022 15:30:48 +0200 Subject: [PATCH] PHP 8.2 | PSR1/SideEffects: allow for readonly classes Includes unit test. Ref: * https://wiki.php.net/rfc/readonly_classes --- src/Standards/PSR1/Sniffs/Files/SideEffectsSniff.php | 4 +++- src/Standards/PSR1/Tests/Files/SideEffectsUnitTest.1.inc | 8 ++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Standards/PSR1/Sniffs/Files/SideEffectsSniff.php b/src/Standards/PSR1/Sniffs/Files/SideEffectsSniff.php index 3f8c5e0d56..7ad52fa708 100644 --- a/src/Standards/PSR1/Sniffs/Files/SideEffectsSniff.php +++ b/src/Standards/PSR1/Sniffs/Files/SideEffectsSniff.php @@ -169,7 +169,9 @@ private function searchForConflict($phpcsFile, $start, $end, $tokens) } // Ignore function/class prefixes. - if (isset(Tokens::$methodPrefixes[$tokens[$i]['code']]) === true) { + if (isset(Tokens::$methodPrefixes[$tokens[$i]['code']]) === true + || $tokens[$i]['code'] === T_READONLY + ) { continue; } diff --git a/src/Standards/PSR1/Tests/Files/SideEffectsUnitTest.1.inc b/src/Standards/PSR1/Tests/Files/SideEffectsUnitTest.1.inc index ca538823c1..b7e1dc9a0a 100644 --- a/src/Standards/PSR1/Tests/Files/SideEffectsUnitTest.1.inc +++ b/src/Standards/PSR1/Tests/Files/SideEffectsUnitTest.1.inc @@ -76,4 +76,12 @@ namespace { defined('APP_BASE_URL') or define('APP_BASE_URL', '/'); +readonly class Foo { + public function __construct( + private string $foo, + private string $bar, + ) { + } +} + ?>