Skip to content

Commit a4a3ba8

Browse files
ENGCOM-5022: #22317: PR#22321 fix. #22444
- Merge Pull Request #22444 from p-bystritsky/magento2:pr-22321-fix - Merged commits: 1. 74739b9
2 parents 8b3fd9d + 74739b9 commit a4a3ba8

File tree

3 files changed

+41
-39
lines changed

3 files changed

+41
-39
lines changed

dev/tests/static/framework/Magento/Sniffs/Annotation/AnnotationFormatValidator.php

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ class AnnotationFormatValidator
2222
* @param int $commentEndPtr
2323
* @return int
2424
*/
25-
private function getShortDescriptionEndPosition(File $phpcsFile, int $shortPtr, $commentEndPtr) : int
25+
private function getShortDescriptionEndPosition(File $phpcsFile, int $shortPtr, $commentEndPtr): int
2626
{
2727
$tokens = $phpcsFile->getTokens();
2828
$shortPtrEnd = $shortPtr;
@@ -49,22 +49,22 @@ private function validateMultiLinesInShortDescription(
4949
File $phpcsFile,
5050
int $shortPtr,
5151
int $commentEndPtr
52-
) : void {
52+
): void {
5353
$tokens = $phpcsFile->getTokens();
5454
$shortPtrEnd = $this->getShortDescriptionEndPosition(
5555
$phpcsFile,
56-
(int) $shortPtr,
56+
(int)$shortPtr,
5757
$commentEndPtr
5858
);
5959
$shortPtrEndContent = $tokens[$shortPtrEnd]['content'];
6060
if (preg_match('/^[a-z]/', $shortPtrEndContent)
6161
&& $shortPtrEnd != $shortPtr
6262
&& !preg_match('/\bSee\b/', $shortPtrEndContent)
63-
&& $tokens[$shortPtr]['line']+1 === $tokens[$shortPtrEnd]['line']
63+
&& $tokens[$shortPtr]['line'] + 1 === $tokens[$shortPtrEnd]['line']
6464
&& $tokens[$shortPtrEnd]['code'] !== T_DOC_COMMENT_TAG
6565
) {
6666
$error = 'Short description should not be in multi lines';
67-
$phpcsFile->addFixableError($error, $shortPtrEnd+1, 'MethodAnnotation');
67+
$phpcsFile->addFixableError($error, $shortPtrEnd + 1, 'MethodAnnotation');
6868
}
6969
}
7070

@@ -81,17 +81,17 @@ private function validateSpacingBetweenShortAndLongDescriptions(
8181
int $shortPtr,
8282
int $commentEndPtr,
8383
array $emptyTypeTokens
84-
) : void {
84+
): void {
8585
$tokens = $phpcsFile->getTokens();
8686
$shortPtrEnd = $this->getShortDescriptionEndPosition(
8787
$phpcsFile,
88-
(int) $shortPtr,
88+
(int)$shortPtr,
8989
$commentEndPtr
9090
);
9191
$shortPtrEndContent = $tokens[$shortPtrEnd]['content'];
9292
if (preg_match('/^[A-Z]/', $shortPtrEndContent)
9393
&& !preg_match('/\bSee\b/', $shortPtrEndContent)
94-
&& $tokens[$shortPtr]['line']+1 === $tokens[$shortPtrEnd]['line']
94+
&& $tokens[$shortPtr]['line'] + 1 === $tokens[$shortPtrEnd]['line']
9595
&& $tokens[$shortPtrEnd]['code'] !== T_DOC_COMMENT_TAG
9696
) {
9797
$error = 'There must be exactly one blank line between lines';
@@ -119,7 +119,7 @@ private function validateShortDescriptionFormat(
119119
int $stackPtr,
120120
int $commentEndPtr,
121121
array $emptyTypeTokens
122-
) : void {
122+
): void {
123123
$tokens = $phpcsFile->getTokens();
124124
if ($tokens[$shortPtr]['line'] !== $tokens[$stackPtr]['line'] + 1) {
125125
$error = 'No blank lines are allowed before short description';
@@ -166,7 +166,7 @@ private function validateLongDescriptionFormat(
166166
int $shortPtrEnd,
167167
int $commentEndPtr,
168168
array $emptyTypeTokens
169-
) : void {
169+
): void {
170170
$tokens = $phpcsFile->getTokens();
171171
$longPtr = $phpcsFile->findNext($emptyTypeTokens, $shortPtrEnd + 1, $commentEndPtr - 1, true);
172172
if (strtolower($tokens[$longPtr]['content']) === '@inheritdoc') {
@@ -192,7 +192,7 @@ private function validateLongDescriptionFormat(
192192
* @param int $commentStartPtr
193193
* @param array $emptyTypeTokens
194194
*/
195-
public function validateTagsSpacingFormat(File $phpcsFile, int $commentStartPtr, array $emptyTypeTokens) : void
195+
public function validateTagsSpacingFormat(File $phpcsFile, int $commentStartPtr, array $emptyTypeTokens): void
196196
{
197197
$tokens = $phpcsFile->getTokens();
198198
if (isset($tokens[$commentStartPtr]['comment_tags'][0])) {
@@ -214,7 +214,7 @@ public function validateTagsSpacingFormat(File $phpcsFile, int $commentStartPtr,
214214
* @param File $phpcsFile
215215
* @param int $commentStartPtr
216216
*/
217-
public function validateTagGroupingFormat(File $phpcsFile, int $commentStartPtr) : void
217+
public function validateTagGroupingFormat(File $phpcsFile, int $commentStartPtr): void
218218
{
219219
$tokens = $phpcsFile->getTokens();
220220
$tagGroups = [];
@@ -256,7 +256,7 @@ public function validateTagGroupingFormat(File $phpcsFile, int $commentStartPtr)
256256
* @param File $phpcsFile
257257
* @param int $commentStartPtr
258258
*/
259-
public function validateTagAligningFormat(File $phpcsFile, int $commentStartPtr) : void
259+
public function validateTagAligningFormat(File $phpcsFile, int $commentStartPtr): void
260260
{
261261
$tokens = $phpcsFile->getTokens();
262262
$noAlignmentPositions = [];
@@ -287,7 +287,7 @@ public function validateTagAligningFormat(File $phpcsFile, int $commentStartPtr)
287287
* @param array $actualPositions
288288
* @return bool
289289
*/
290-
private function allTagsAligned(array $actualPositions)
290+
private function allTagsAligned(array $actualPositions): bool
291291
{
292292
return count(array_unique($actualPositions)) === 1;
293293
}
@@ -299,7 +299,7 @@ private function allTagsAligned(array $actualPositions)
299299
* @param array $noAlignmentPositions
300300
* @return bool
301301
*/
302-
private function noneTagsAligned(array $actualPositions, array $noAlignmentPositions)
302+
private function noneTagsAligned(array $actualPositions, array $noAlignmentPositions): bool
303303
{
304304
return $actualPositions === $noAlignmentPositions;
305305
}
@@ -317,7 +317,7 @@ private function validateNoExtraNewLineBeforeShortDescription(
317317
int $commentStartPtr,
318318
int $commentEndPtr,
319319
array $emptyTypeTokens
320-
) : void {
320+
): void {
321321
$tokens = $phpcsFile->getTokens();
322322
$prevPtr = $phpcsFile->findPrevious($emptyTypeTokens, $commentEndPtr - 1, $commentStartPtr, true);
323323
if ($tokens[$prevPtr]['line'] < ($tokens[$commentEndPtr]['line'] - 1)) {
@@ -341,7 +341,7 @@ public function validateDescriptionFormatStructure(
341341
int $shortPtr,
342342
int $commentEndPtr,
343343
array $emptyTypeTokens
344-
) : void {
344+
): void {
345345
$tokens = $phpcsFile->getTokens();
346346
if (isset($tokens[$commentStartPtr]['comment_tags'][0])
347347
) {
@@ -355,7 +355,7 @@ public function validateDescriptionFormatStructure(
355355
} else {
356356
$this->validateShortDescriptionFormat(
357357
$phpcsFile,
358-
(int) $shortPtr,
358+
(int)$shortPtr,
359359
(int)$commentStartPtr,
360360
(int)$commentEndPtr,
361361
$emptyTypeTokens
@@ -364,7 +364,7 @@ public function validateDescriptionFormatStructure(
364364
} else {
365365
$this->validateShortDescriptionFormat(
366366
$phpcsFile,
367-
(int) $shortPtr,
367+
(int)$shortPtr,
368368
$commentStartPtr,
369369
$commentEndPtr,
370370
$emptyTypeTokens

dev/tests/static/framework/Magento/Sniffs/Annotation/MethodAnnotationStructureSniff.php

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44
* See COPYING.txt for license details.
55
*/
66
declare(strict_types=1);
7+
78
namespace Magento\Sniffs\Annotation;
89

9-
use PHP_CodeSniffer\Sniffs\Sniff;
1010
use PHP_CodeSniffer\Files\File;
11+
use PHP_CodeSniffer\Sniffs\Sniff;
1112

1213
/**
1314
* Sniff to validate structure of public, private, protected method annotations
@@ -46,7 +47,7 @@ public function process(File $phpcsFile, $stackPtr)
4647
$commentStartPtr = $phpcsFile->findPrevious(T_DOC_COMMENT_OPEN_TAG, ($stackPtr), 0);
4748
$commentEndPtr = $phpcsFile->findPrevious(T_DOC_COMMENT_CLOSE_TAG, ($stackPtr), 0);
4849
$commentCloserPtr = $tokens[$commentStartPtr]['comment_closer'];
49-
$functionPtrContent = $tokens[$stackPtr+2]['content'] ;
50+
$functionPtrContent = $tokens[$stackPtr + 2]['content'];
5051
if (preg_match('/(?i)__construct/', $functionPtrContent)) {
5152
return;
5253
}
@@ -62,7 +63,7 @@ public function process(File $phpcsFile, $stackPtr)
6263
$this->annotationFormatValidator->validateDescriptionFormatStructure(
6364
$phpcsFile,
6465
$commentStartPtr,
65-
(int) $shortPtr,
66+
(int)$shortPtr,
6667
$commentEndPtr,
6768
$emptyTypeTokens
6869
);

dev/tests/static/framework/Magento/Sniffs/Annotation/MethodArgumentsSniff.php

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6-
76
declare(strict_types=1);
87

98
namespace Magento\Sniffs\Annotation;
@@ -124,10 +123,9 @@ private function getMethodArguments(File $phpcsFile, int $openParenthesisPtr, in
124123
private function getMethodParameters(array $paramDefinitions): array
125124
{
126125
$paramName = [];
127-
$paramCount = count($paramDefinitions);
128-
for ($i = 0; $i < $paramCount; $i++) {
129-
if (isset($paramDefinitions[$i]['paramName'])) {
130-
$paramName[] = $paramDefinitions[$i]['paramName'];
126+
foreach ($paramDefinitions as $paramDefinition) {
127+
if (isset($paramDefinition['paramName'])) {
128+
$paramName[] = $paramDefinition['paramName'];
131129
}
132130
}
133131
return $paramName;
@@ -372,13 +370,12 @@ private function validateDuplicateAnnotationDoesnotExists(
372370
$parametersCount = count($paramPointers);
373371
if ($argumentsCount <= $parametersCount && $argumentsCount > 0) {
374372
$duplicateParameters = [];
375-
$paramCount = count($paramDefinitions);
376-
for ($i = 0; $i < $paramCount; $i++) {
377-
if (isset($paramDefinitions[$i]['paramName'])) {
378-
$parameterContent = $paramDefinitions[$i]['paramName'];
379-
for ($j = $i + 1; $j < $paramCount; $j++) {
380-
if (isset($paramDefinitions[$j]['paramName'])
381-
&& $parameterContent === $paramDefinitions[$j]['paramName']
373+
foreach ($paramDefinitions as $i => $paramDefinition) {
374+
if (isset($paramDefinition['paramName'])) {
375+
$parameterContent = $paramDefinition['paramName'];
376+
foreach (array_slice($paramDefinitions, $i + 1) as $nextParamDefinition) {
377+
if (isset($nextParamDefinition['paramName'])
378+
&& $parameterContent === $nextParamDefinition['paramName']
382379
) {
383380
$duplicateParameters[] = $parameterContent;
384381
}
@@ -473,6 +470,8 @@ private function validateParameterAnnotationFormatIsCorrect(
473470
* @param array $methodArguments
474471
* @param int $previousCommentOpenPtr
475472
* @param int $previousCommentClosePtr
473+
*
474+
* @SuppressWarnings(PHPMD.UnusedLocalVariable)
476475
*/
477476
private function validateMethodParameterAnnotations(
478477
int $stackPtr,
@@ -519,7 +518,8 @@ private function validateMethodParameterAnnotations(
519518
$paramPointers
520519
);
521520
$tokens = $phpcsFile->getTokens();
522-
for ($ptr = 0; $ptr < $argumentCount; $ptr++) {
521+
522+
foreach ($methodArguments as $ptr => $methodArgument) {
523523
if (isset($paramPointers[$ptr])) {
524524
$this->validateArgumentNameInParameterAnnotationExists(
525525
$stackPtr,
@@ -605,6 +605,8 @@ public function process(File $phpcsFile, $stackPtr)
605605
* @param File $phpcsFile
606606
* @param array $paramPointers
607607
*
608+
* @SuppressWarnings(PHPMD.UnusedLocalVariable)
609+
*
608610
* @see https://devdocs.magento.com/guides/v2.3/coding-standards/docblock-standard-general.html#format-consistency
609611
*/
610612
private function validateFormattingConsistency(
@@ -616,20 +618,19 @@ private function validateFormattingConsistency(
616618
$argumentPositions = [];
617619
$commentPositions = [];
618620
$tokens = $phpcsFile->getTokens();
619-
$argumentCount = count($methodArguments);
620-
for ($ptr = 0; $ptr < $argumentCount; $ptr++) {
621+
foreach ($methodArguments as $ptr => $methodArgument) {
621622
if (isset($paramPointers[$ptr])) {
622623
$paramContent = $tokens[$paramPointers[$ptr] + 2]['content'];
623624
$paramDefinition = $paramDefinitions[$ptr];
624625
$argumentPositions[] = strpos($paramContent, $paramDefinition['paramName']);
625626
$commentPositions[] = $paramDefinition['comment']
626-
? strpos($paramContent, $paramDefinition['comment']) : null;
627+
? strrpos($paramContent, $paramDefinition['comment']) : null;
627628
}
628629
}
629630
if (!$this->allParamsAligned($argumentPositions, $commentPositions)
630631
&& !$this->noneParamsAligned($argumentPositions, $commentPositions, $paramDefinitions)) {
631632
$phpcsFile->addFixableError(
632-
'Visual alignment must be consistent',
633+
'Method arguments visual alignment must be consistent',
633634
$paramPointers[0],
634635
'MethodArguments'
635636
);

0 commit comments

Comments
 (0)