@@ -508,7 +508,11 @@ private function getLiteralValue(TreeNode $node, ?array &$onlyLiterals, bool $ap
508
508
$ token = $ node ->getValueToken ();
509
509
$ value = $ node ->getValueValue ();
510
510
511
- if (in_array ($ token , ['literal ' , 'escaped_end_class ' ], true )) {
511
+ if (
512
+ in_array ($ token , ['literal ' , 'escaped_end_class ' ], true )
513
+ // literal "-" in front/back of a character class like '[-a-z]' or '[abc-]', not forming a range
514
+ || $ token === 'range '
515
+ ) {
512
516
if (str_contains ($ patternModifiers , 'x ' ) && trim ($ value ) === '' ) {
513
517
return null ;
514
518
}
@@ -517,7 +521,7 @@ private function getLiteralValue(TreeNode $node, ?array &$onlyLiterals, bool $ap
517
521
return substr ($ value , 1 );
518
522
} elseif (
519
523
$ appendLiterals
520
- && $ token === 'literal '
524
+ && in_array ( $ token, [ 'literal ' , ' range ' ], true )
521
525
&& $ onlyLiterals !== null
522
526
&& !in_array ($ value , ['. ' ], true )
523
527
) {
@@ -533,11 +537,6 @@ private function getLiteralValue(TreeNode $node, ?array &$onlyLiterals, bool $ap
533
537
return $ value ;
534
538
}
535
539
536
- // literal "-" in front/back of a character class like '[-a-z]' or '[abc-]', not forming a range
537
- if ($ token === 'range ' ) {
538
- return $ value ;
539
- }
540
-
541
540
// literal "[" or "]" inside character classes '[[]' or '[]]'
542
541
if (in_array ($ token , ['class_ ' , '_class_literal ' ], true )) {
543
542
return $ value ;
0 commit comments