@@ -442,48 +442,64 @@ public function serializableCallableProvider(): array
442442        $ this  ->assertFileExists ($ filename );
443443        $ callableWithoutNamespaces  = require  $ filename ;
444444
445+         $ prettyClosureNames  = \PHP_VERSION_ID  >= 80400 ;
446+ 
445447        return  [
446448            [
447449                'callable '  => function  (array  $ param1 ) {
448450                    throw  new  \Exception ('Don \'t even think about invoke me ' );
449451                },
450-                 'expected '  => 'Lambda  '  . __NAMESPACE__  . '\\{closure} [array param1] ' ,
452+                 'expected '  => $ prettyClosureNames
453+                     ? 'Lambda {closure: '  . __CLASS__  . ':: '  . __FUNCTION__  . '():%d} [array param1] ' 
454+                     : 'Lambda  '  . __NAMESPACE__  . '\\{closure} [array param1] ' ,
451455            ],
452456            [
453457                'callable '  => function  ($ param1a ) {
454458                    throw  new  \Exception ('Don \'t even think about invoke me ' );
455459                },
456-                 'expected '  => 'Lambda  '  . __NAMESPACE__  . '\\{closure} [mixed|null param1a] ' ,
460+                 'expected '  => $ prettyClosureNames
461+                     ? 'Lambda {closure: '  . __CLASS__  . ':: '  . __FUNCTION__  . '():%d} [mixed|null param1a] ' 
462+                     : 'Lambda  '  . __NAMESPACE__  . '\\{closure} [mixed|null param1a] ' ,
457463            ],
458464            [
459465                'callable '  => function  (callable  $ param1c ) {
460466                    throw  new  \Exception ('Don \'t even think about invoke me ' );
461467                },
462-                 'expected '  => 'Lambda  '  . __NAMESPACE__  . '\\{closure} [callable param1c] ' ,
468+                 'expected '  => $ prettyClosureNames
469+                     ? 'Lambda {closure: '  . __CLASS__  . ':: '  . __FUNCTION__  . '():%d} [callable param1c] ' 
470+                     : 'Lambda  '  . __NAMESPACE__  . '\\{closure} [callable param1c] ' ,
463471            ],
464472            [
465473                'callable '  => function  (\stdClass   $ param1d ) {
466474                    throw  new  \Exception ('Don \'t even think about invoke me ' );
467475                },
468-                 'expected '  => 'Lambda  '  . __NAMESPACE__  . '\\{closure} [stdClass param1d] ' ,
476+                 'expected '  => $ prettyClosureNames
477+                     ? 'Lambda {closure: '  . __CLASS__  . ':: '  . __FUNCTION__  . '():%d} [stdClass param1d] ' 
478+                     : 'Lambda  '  . __NAMESPACE__  . '\\{closure} [stdClass param1d] ' ,
469479            ],
470480            [
471481                'callable '  => function  (?\stdClass   $ param1e  = null ) {
472482                    throw  new  \Exception ('Don \'t even think about invoke me ' );
473483                },
474-                 'expected '  => 'Lambda  '  . __NAMESPACE__  . '\\{closure} [stdClass|null [param1e]] ' ,
484+                 'expected '  => $ prettyClosureNames
485+                     ? 'Lambda {closure: '  . __CLASS__  . ':: '  . __FUNCTION__  . '():%d} [stdClass|null [param1e]] ' 
486+                     : 'Lambda  '  . __NAMESPACE__  . '\\{closure} [stdClass|null [param1e]] ' ,
475487            ],
476488            [
477489                'callable '  => function  (array  &$ param1f ) {
478490                    throw  new  \Exception ('Don \'t even think about invoke me ' );
479491                },
480-                 'expected '  => 'Lambda  '  . __NAMESPACE__  . '\\{closure} [array ¶m1f] ' ,
492+                 'expected '  => $ prettyClosureNames
493+                     ? 'Lambda {closure: '  . __CLASS__  . ':: '  . __FUNCTION__  . '():%d} [array ¶m1f] ' 
494+                     : 'Lambda  '  . __NAMESPACE__  . '\\{closure} [array ¶m1f] ' ,
481495            ],
482496            [
483497                'callable '  => function  (?array  &$ param1g  = null ) {
484498                    throw  new  \Exception ('Don \'t even think about invoke me ' );
485499                },
486-                 'expected '  => 'Lambda  '  . __NAMESPACE__  . '\\{closure} [array|null [¶m1g]] ' ,
500+                 'expected '  => $ prettyClosureNames
501+                     ? 'Lambda {closure: '  . __CLASS__  . ':: '  . __FUNCTION__  . '():%d} [array|null [¶m1g]] ' 
502+                     : 'Lambda  '  . __NAMESPACE__  . '\\{closure} [array|null [¶m1g]] ' ,
487503            ],
488504            [
489505                'callable '  => [$ this  , 'serializableCallableProvider ' ],
@@ -509,35 +525,47 @@ public function serializableCallableProvider(): array
509525                'callable '  => function  (int  $ param1_70a ) {
510526                    throw  new  \Exception ('Don \'t even think about invoke me ' );
511527                },
512-                 'expected '  => 'Lambda  '  . __NAMESPACE__  . '\\{closure} [int param1_70a] ' ,
528+                 'expected '  => $ prettyClosureNames
529+                     ? 'Lambda {closure: '  . __CLASS__  . ':: '  . __FUNCTION__  . '():%d} [int param1_70a] ' 
530+                     : 'Lambda  '  . __NAMESPACE__  . '\\{closure} [int param1_70a] ' ,
513531            ],
514532            [
515533                'callable '  => function  (&$ param ): int  {
516534                    return  (int ) $ param ;
517535                },
518-                 'expected '  => 'Lambda int  '  . __NAMESPACE__  . '\\{closure} [mixed|null ¶m] ' ,
536+                 'expected '  => $ prettyClosureNames
537+                     ? 'Lambda int {closure: '  . __CLASS__  . ':: '  . __FUNCTION__  . '():%d} [mixed|null ¶m] ' 
538+                     : 'Lambda int  '  . __NAMESPACE__  . '\\{closure} [mixed|null ¶m] ' ,
519539            ],
520540            [
521541                'callable '  => function  (int  $ param ): ?int  {
522542                    throw  new  \Exception ('Don \'t even think about invoke me ' );
523543                },
524-                 'expected '  => 'Lambda int  '  . __NAMESPACE__  . '\\{closure} [int param] ' ,
544+                 'expected '  => $ prettyClosureNames
545+                     ? 'Lambda int {closure: '  . __CLASS__  . ':: '  . __FUNCTION__  . '():%d} [int param] ' 
546+                     : 'Lambda int  '  . __NAMESPACE__  . '\\{closure} [int param] ' ,
525547            ],
526548            [
527549                'callable '  => function  (?int  $ param1_70b ) {
528550                    throw  new  \Exception ('Don \'t even think about invoke me ' );
529551                },
530-                 'expected '  => 'Lambda  '  . __NAMESPACE__  . '\\{closure} [int|null param1_70b] ' ,
552+                 'expected '  => $ prettyClosureNames
553+                     ? 'Lambda {closure: '  . __CLASS__  . ':: '  . __FUNCTION__  . '():%d} [int|null param1_70b] ' 
554+                     : 'Lambda  '  . __NAMESPACE__  . '\\{closure} [int|null param1_70b] ' ,
531555            ],
532556            [
533557                'callable '  => function  (?int  $ param1_70c ): void  {
534558                    throw  new  \Exception ('Don \'t even think about invoke me ' );
535559                },
536-                 'expected '  => 'Lambda void  '  . __NAMESPACE__  . '\\{closure} [int|null param1_70c] ' ,
560+                 'expected '  => $ prettyClosureNames
561+                     ? 'Lambda void {closure: '  . __CLASS__  . ':: '  . __FUNCTION__  . '():%d} [int|null param1_70c] ' 
562+                     : 'Lambda void  '  . __NAMESPACE__  . '\\{closure} [int|null param1_70c] ' ,
537563            ],
538564            [
539565                'callable '  => $ callableWithoutNamespaces ,
540-                 'expected '  => 'Lambda void {closure} [int|null param1_70ns] ' ,
566+                 'expected '  => $ prettyClosureNames
567+                     ? 'Lambda void {closure:%s:%d} [int|null param1_70ns] ' 
568+                     : 'Lambda void {closure} [int|null param1_70ns] ' ,
541569            ],
542570            [
543571                // This is (a example of) a PHP provided function that is technically callable but we want to ignore that because it causes more false positives than it helps 
@@ -559,11 +587,11 @@ public function testSerializeCallable($callable, string $expected): void
559587        $ serializer  = $ this  ->createSerializer ();
560588        $ actual  = $ this  ->invokeSerialization ($ serializer , $ callable );
561589
562-         $ this  ->assertSame ($ expected , $ actual );
590+         $ this  ->assertStringMatchesFormat ($ expected , $ actual );
563591
564592        $ actual  = $ this  ->invokeSerialization ($ serializer , [$ callable ]);
565593
566-         $ this  ->assertSame ([ $ expected] , $ actual );
594+         $ this  ->assertStringMatchesFormat ( $ expected , $ actual[ 0 ] );
567595    }
568596
569597    /** 
0 commit comments