@@ -637,12 +637,6 @@ private static function _getCalleeInfo($trace)
637
637
# spaces
638
638
\x07*
639
639
640
- # check if output is assigned to a variable (group 2) todo: does not detect concat
641
- (
642
- \\$[a-z0-9_]+ # variable
643
- \x07* \\.?= \x07* # assignment
644
- )?
645
-
646
640
# possibly a namespace symbol
647
641
\\\\?
648
642
@@ -665,20 +659,15 @@ private static function _getCalleeInfo($trace)
665
659
);
666
660
667
661
$ modifiers = end ($ matches [1 ]);
668
- $ assignment = end ($ matches [2 ]);
669
- $ callToSage = end ($ matches [3 ]);
670
- $ bracket = end ($ matches [4 ]);
662
+ $ callToSage = end ($ matches [2 ]);
663
+ $ bracket = end ($ matches [3 ]);
671
664
672
665
if (empty ($ callToSage )) {
673
666
// if a wrapper is misconfigured, don't display the whole file as variable name
674
667
return array (array (), $ modifiers , $ callee , $ previousCaller , $ miniTrace );
675
668
}
676
669
677
- $ modifiers = $ modifiers [0 ];
678
- if ($ assignment [1 ] !== -1 ) {
679
- $ modifiers .= '@ ' ;
680
- }
681
-
670
+ $ modifiers = $ modifiers [0 ];
682
671
$ paramsString = preg_replace ("[ \x07+] " , ' ' , substr ($ source , $ bracket [1 ] + 1 ));
683
672
// we now have a string like this:
684
673
// <parameters passed>); <the rest of the last read line>
@@ -690,22 +679,25 @@ private static function _getCalleeInfo($trace)
690
679
$ i = 0 ;
691
680
$ inBrackets = 0 ;
692
681
$ openedBrackets = array ();
682
+ $ bracketPairs = array ('( ' => ') ' , '[ ' => '] ' , '{ ' => '} ' );
693
683
694
684
while ($ i < $ c ) {
695
685
$ letter = $ paramsString [$ i ];
696
686
697
687
if (! $ inString ) {
698
688
if ($ letter === '\'' || $ letter === '" ' ) {
699
689
$ inString = $ letter ;
700
- } elseif ($ letter === '( ' || $ letter === '[ ' ) {
690
+ } elseif ($ letter === '( ' || $ letter === '[ ' || $ letter === ' { ' ) {
701
691
$ inBrackets ++;
702
692
$ openedBrackets [] = $ openedBracket = $ letter ;
703
- $ closingBracket = $ openedBracket === ' ( ' ? ' ) ' : ' ] ' ;
693
+ $ closingBracket = $ bracketPairs [ $ letter ] ;
704
694
} elseif ($ inBrackets && $ letter === $ closingBracket ) {
705
695
$ inBrackets --;
706
696
array_pop ($ openedBrackets );
707
- $ openedBracket = end ($ openedBrackets );
708
- $ closingBracket = $ openedBracket === '( ' ? ') ' : '] ' ;
697
+ $ openedBracket = end ($ openedBrackets );
698
+ if ($ openedBracket ) {
699
+ $ closingBracket = $ bracketPairs [$ openedBracket ];
700
+ }
709
701
} elseif (! $ inBrackets && $ letter === ') ' ) {
710
702
$ paramsString = substr ($ paramsString , 0 , $ i );
711
703
break ;
0 commit comments