diff --git a/src/Standards/Squiz/Sniffs/Scope/MemberVarScopeSniff.php b/src/Standards/Squiz/Sniffs/Scope/MemberVarScopeSniff.php index 3d1c83f019..912cbdb222 100644 --- a/src/Standards/Squiz/Sniffs/Scope/MemberVarScopeSniff.php +++ b/src/Standards/Squiz/Sniffs/Scope/MemberVarScopeSniff.php @@ -33,9 +33,15 @@ protected function processMemberVar(File $phpcsFile, $stackPtr) return; } - $error = 'Scope modifier not specified for member variable "%s"'; - $data = [$tokens[$stackPtr]['content']]; - $phpcsFile->addError($error, $stackPtr, 'Missing', $data); + if ($properties['set_scope'] === false) { + $error = 'Scope modifier not specified for member variable "%s"'; + $data = [$tokens[$stackPtr]['content']]; + $phpcsFile->addError($error, $stackPtr, 'Missing', $data); + } else { + $error = 'Read scope modifier not specified for member variable "%s"'; + $data = [$tokens[$stackPtr]['content']]; + $phpcsFile->addError($error, $stackPtr, 'AsymReadMissing', $data); + } }//end processMemberVar() diff --git a/src/Standards/Squiz/Tests/Scope/MemberVarScopeUnitTest.inc b/src/Standards/Squiz/Tests/Scope/MemberVarScopeUnitTest.inc index 0a1554ec89..163b65eec6 100644 --- a/src/Standards/Squiz/Tests/Scope/MemberVarScopeUnitTest.inc +++ b/src/Standards/Squiz/Tests/Scope/MemberVarScopeUnitTest.inc @@ -74,3 +74,14 @@ interface Base { class PHP84FinalProperties { final int $final; } + +class AsymVisibility { + // The read scope is public, but not specified. Error should use different error code. + public(set) $asymPublic = 'hello'; + protected(set) $asymProtected = 'hello'; + private(set) $asymPrivate = 'hello'; + + public public(set) $asymPublicPublic = 'hello'; + protected(set) public $asymPublicProtected = 'hello'; + protected private(set) $asymProtectedPrivate = 'hello'; +} diff --git a/src/Standards/Squiz/Tests/Scope/MemberVarScopeUnitTest.php b/src/Standards/Squiz/Tests/Scope/MemberVarScopeUnitTest.php index 309d029830..1d83126a28 100644 --- a/src/Standards/Squiz/Tests/Scope/MemberVarScopeUnitTest.php +++ b/src/Standards/Squiz/Tests/Scope/MemberVarScopeUnitTest.php @@ -40,6 +40,9 @@ public function getErrorList() 66 => 2, 67 => 1, 75 => 1, + 80 => 1, + 81 => 1, + 82 => 1, ]; }//end getErrorList()