From 579d39cac3163bdf05ce1b50a7e470acd452735b Mon Sep 17 00:00:00 2001 From: Greg Sherwood Date: Mon, 20 Jan 2014 13:42:25 +1100 Subject: [PATCH] Lines without assignments were causing problems when in the middle of assignment blocks --- .../MultipleStatementAlignmentSniff.php | 19 +++++++++++++++++-- .../MultipleStatementAlignmentUnitTest.inc | 5 +++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/CodeSniffer/Standards/Generic/Sniffs/Formatting/MultipleStatementAlignmentSniff.php b/CodeSniffer/Standards/Generic/Sniffs/Formatting/MultipleStatementAlignmentSniff.php index 82837fcc6f..1e5d76b769 100644 --- a/CodeSniffer/Standards/Generic/Sniffs/Formatting/MultipleStatementAlignmentSniff.php +++ b/CodeSniffer/Standards/Generic/Sniffs/Formatting/MultipleStatementAlignmentSniff.php @@ -118,6 +118,7 @@ public function checkAlignment(PHP_CodeSniffer_File $phpcsFile, $stackPtr) $maxPadding = null; $stopped = null; $lastCode = $stackPtr; + $lastSemi = null; $find = array_diff(PHP_CodeSniffer_Tokens::$assignmentTokens, array(T_DOUBLE_ARROW)); for ($assign = $stackPtr; $assign < $phpcsFile->numTokens; $assign++) { @@ -129,10 +130,24 @@ public function checkAlignment(PHP_CodeSniffer_File $phpcsFile, $stackPtr) } $lastCode = $assign; - } + + if ($tokens[$assign]['code'] === T_SEMICOLON) { + if ($tokens[$assign]['conditions'] === $tokens[$stackPtr]['conditions']) { + if ($lastSemi !== null && $prevAssign !== null && $lastSemi > $prevAssign) { + // This statement did not have an assignment operator in it. + break; + } else { + $lastSemi = $assign; + } + } else { + // Statement is in a different context, so the block is over. + break; + } + } + }//end if continue; - } + }//end if if ($assign !== $stackPtr) { // Has to be nested inside the same conditions as the first assignment. diff --git a/CodeSniffer/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.inc b/CodeSniffer/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.inc index 4ff8b0ff93..9c02f960e9 100644 --- a/CodeSniffer/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.inc +++ b/CodeSniffer/Standards/Generic/Tests/Formatting/MultipleStatementAlignmentUnitTest.inc @@ -216,3 +216,8 @@ $varonetwothree = 'three'; $varonetwothreefour = 'four'; // @codingStandardsChangeSetting Generic.Formatting.MultipleStatementAlignment maxPadding 1000 + +$filterQuery = SquizRoadmap::getSearchQueryFilter($searchParams); +Channels::addToBasket('itemid', $filterQuery); +$query = DAL::getDALQuery('SquizRoadmapItem', 'getItemIds'); +$results = DAL::getAssoc($query, 0);