diff --git a/Magento2/Sniffs/Performance/ForeachArrayMergeSniff.php b/Magento2/Sniffs/Performance/ForeachArrayMergeSniff.php index eae75006..e478638d 100644 --- a/Magento2/Sniffs/Performance/ForeachArrayMergeSniff.php +++ b/Magento2/Sniffs/Performance/ForeachArrayMergeSniff.php @@ -47,6 +47,10 @@ public function process(File $phpcsFile, $stackPtr) { $tokens = $phpcsFile->getTokens(); + // If it's inline control structure we do nothing. PSR2 issue will be raised. + if (!array_key_exists('scope_opener', $tokens[$stackPtr])) { + return; + } $scopeOpener = $tokens[$stackPtr]['scope_opener']; $scopeCloser = $tokens[$stackPtr]['scope_closer']; diff --git a/Magento2/Tests/Performance/ForeachArrayMergeUnitTest.inc b/Magento2/Tests/Performance/ForeachArrayMergeUnitTest.inc index 02aa5093..b55690b5 100644 --- a/Magento2/Tests/Performance/ForeachArrayMergeUnitTest.inc +++ b/Magento2/Tests/Performance/ForeachArrayMergeUnitTest.inc @@ -41,3 +41,11 @@ foreach ([] as $collection) { $selectBuilder->setColumns(array_merge($selectBuilder->getColumns(), $source)); } } + +foreach ([] as $item) + // inline foreach + $a = array_merge([], []); + +foreach ([] as $item) +// array_merge after inline foreach +$a = array_merge([], []);