TextStrings::getCompleteTextString(): add BC for incorrectly tokenized double quoted strings #317
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
While creating a sniff for PHPCompatibility to detect the PHP 8.2 deprecation of two of the four syntaxes to embed variables/expressions within text strings, I realized that for select examples of the "type 4" syntax - "Variable variables (
“${expr}”
, equivalent to (string)${expr})
" -, PHPCS did not, and probably never did, tokenize those correctly in PHPCS itself.A fix for this has been pulled to PHPCS in PR squizlabs/PHP_CodeSniffer#3604.
This commit ensures that the
TextStrings::getCompleteTextString()
method handles double quoted strings affected by this tokenizer bug correctly in all supported PHPCS versions.Includes dedicated tests specifically for the handling of embedded variables/expressions in double quoted strings.
Refs:
${
squizlabs/PHP_CodeSniffer#3604