@@ -607,38 +607,57 @@ protected function tokenize($string)
607
607
608
608
if ($ tokenIsArray === true
609
609
&& isset (Util \Tokens::$ contextSensitiveKeywords [$ token [0 ]]) === true
610
- && isset ($ this ->tstringContexts [$ finalTokens [$ lastNotEmptyToken ]['code ' ]]) === true
610
+ && (isset ($ this ->tstringContexts [$ finalTokens [$ lastNotEmptyToken ]['code ' ]]) === true
611
+ || $ finalTokens [$ lastNotEmptyToken ]['content ' ] === '& ' )
611
612
) {
612
- $ preserveKeyword = false ;
613
+ if (isset ($ this ->tstringContexts [$ finalTokens [$ lastNotEmptyToken ]['code ' ]]) === true ) {
614
+ $ preserveKeyword = false ;
613
615
614
- // `new class`, and `new static` should be preserved.
615
- if ($ finalTokens [$ lastNotEmptyToken ]['code ' ] === T_NEW
616
- && ($ token [0 ] === T_CLASS
617
- || $ token [0 ] === T_STATIC )
618
- ) {
619
- $ preserveKeyword = true ;
620
- }
616
+ // `new class`, and `new static` should be preserved.
617
+ if ($ finalTokens [$ lastNotEmptyToken ]['code ' ] === T_NEW
618
+ && ($ token [0 ] === T_CLASS
619
+ || $ token [0 ] === T_STATIC )
620
+ ) {
621
+ $ preserveKeyword = true ;
622
+ }
621
623
622
- // `new class extends` `new class implements` should be preserved
623
- if (($ token [0 ] === T_EXTENDS || $ token [0 ] === T_IMPLEMENTS )
624
- && $ finalTokens [$ lastNotEmptyToken ]['code ' ] === T_CLASS
625
- ) {
626
- $ preserveKeyword = true ;
627
- }
624
+ // `new class extends` `new class implements` should be preserved
625
+ if (($ token [0 ] === T_EXTENDS || $ token [0 ] === T_IMPLEMENTS )
626
+ && $ finalTokens [$ lastNotEmptyToken ]['code ' ] === T_CLASS
627
+ ) {
628
+ $ preserveKeyword = true ;
629
+ }
630
+
631
+ // `namespace\` should be preserved
632
+ if ($ token [0 ] === T_NAMESPACE ) {
633
+ for ($ i = ($ stackPtr + 1 ); $ i < $ numTokens ; $ i ++) {
634
+ if (is_array ($ tokens [$ i ]) === false ) {
635
+ break ;
636
+ }
637
+
638
+ if (isset (Util \Tokens::$ emptyTokens [$ tokens [$ i ][0 ]]) === true ) {
639
+ continue ;
640
+ }
641
+
642
+ if ($ tokens [$ i ][0 ] === T_NS_SEPARATOR ) {
643
+ $ preserveKeyword = true ;
644
+ }
628
645
629
- // `namespace\` should be preserved
630
- if ($ token [0 ] === T_NAMESPACE ) {
631
- for ($ i = ($ stackPtr + 1 ); $ i < $ numTokens ; $ i ++) {
632
- if (is_array ($ tokens [$ i ]) === false ) {
633
646
break ;
634
647
}
648
+ }
649
+ }//end if
650
+
651
+ if ($ finalTokens [$ lastNotEmptyToken ]['content ' ] === '& ' ) {
652
+ $ preserveKeyword = true ;
635
653
636
- if (isset (Util \Tokens::$ emptyTokens [$ tokens [$ i ][0 ]]) === true ) {
654
+ for ($ i = ($ lastNotEmptyToken - 1 ); $ i >= 0 ; $ i --) {
655
+ if (isset (Util \Tokens::$ emptyTokens [$ finalTokens [$ i ]['code ' ]]) === true ) {
637
656
continue ;
638
657
}
639
658
640
- if ($ tokens [$ i ][0 ] === T_NS_SEPARATOR ) {
641
- $ preserveKeyword = true ;
659
+ if ($ finalTokens [$ i ][' code ' ] === T_FUNCTION ) {
660
+ $ preserveKeyword = false ;
642
661
}
643
662
644
663
break ;
0 commit comments