@@ -372,6 +372,31 @@ private function arrayToName(array $parts, $join = '\\')
372
372
return $ result ;
373
373
}
374
374
375
+ /**
376
+ * @return string
377
+ */
378
+ private function getSignature (array $ tokens , $ idx )
379
+ {
380
+ $ token = $ tokens [$ idx ];
381
+ if ($ this ->tname ($ token ) == 'anonymous function ' ) {
382
+ $ signature = 'anonymous function ' ;
383
+ $ i = $ idx + 1 ;
384
+ } else {
385
+ $ signature = '' ;
386
+ $ i = $ idx + 2 ;
387
+ }
388
+
389
+ while (isset ($ tokens [$ i ]) && $ tclass = $ this ->tclass ($ tokens [$ i ]) &&
390
+ $ tclass !== 'PHP_Token_OPEN_CURLY ' &&
391
+ $ tclass !== 'PHP_Token_SEMICOLON ' ) {
392
+ $ signature .= $ tokens [$ i ++];
393
+ }
394
+
395
+ $ signature = trim ($ signature );
396
+
397
+ return $ signature ;
398
+ }
399
+
375
400
public function tokenize () {
376
401
$ sourceCode = file_get_contents ($ this ->filename );
377
402
$ tokens = token_get_all ($ sourceCode );
@@ -446,7 +471,7 @@ public function tokenize() {
446
471
'docblock ' => $ this ->getDocblock ($ tokens , $ i ),
447
472
'keywords ' => $ this ->getKeywords ($ tokens , $ i ),
448
473
'visibility ' => $ this ->getVisibility ($ tokens , $ i ),
449
- 'signature ' => $ token ->getSignature (),
474
+ 'signature ' => $ this ->getSignature ($ tokens , $ i ),
450
475
'startLine ' => $ this ->tline ($ token ),
451
476
'endLine ' => $ this ->getEndLine ($ tokens , $ i ),
452
477
'ccn ' => $ token ->getCCN (),
0 commit comments