From ed0888ca659466db30ccbd9ba16a55264f86df59 Mon Sep 17 00:00:00 2001 From: Thiemo Kreuz Date: Wed, 17 Jun 2020 08:34:55 +0200 Subject: [PATCH] Fix rare undefined offset errors in ConcatenationSpacingSniff This can happen when PHPCS runs on a file that is currently being worked on, but not yet completed. The file might end with a dot. We can not assume there are always 2 more tokens after a dot. --- .../Squiz/Sniffs/Strings/ConcatenationSpacingSniff.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Standards/Squiz/Sniffs/Strings/ConcatenationSpacingSniff.php b/src/Standards/Squiz/Sniffs/Strings/ConcatenationSpacingSniff.php index 4125b63ad0..a5302d269a 100644 --- a/src/Standards/Squiz/Sniffs/Strings/ConcatenationSpacingSniff.php +++ b/src/Standards/Squiz/Sniffs/Strings/ConcatenationSpacingSniff.php @@ -79,10 +79,14 @@ public function process(File $phpcsFile, $stackPtr) $phpcsFile->recordMetric($stackPtr, 'Spacing before string concat', $before); } - if ($tokens[($stackPtr + 1)]['code'] !== T_WHITESPACE) { + if (isset($tokens[($stackPtr + 1)]) === false + || $tokens[($stackPtr + 1)]['code'] !== T_WHITESPACE + ) { $after = 0; } else { - if ($tokens[($stackPtr + 2)]['line'] !== $tokens[$stackPtr]['line']) { + if (isset($tokens[($stackPtr + 2)]) === true + && $tokens[($stackPtr + 2)]['line'] !== $tokens[$stackPtr]['line'] + ) { $after = 'newline'; } else { $after = $tokens[($stackPtr + 1)]['length'];