File tree Expand file tree Collapse file tree 1 file changed +21
-1
lines changed Expand file tree Collapse file tree 1 file changed +21
-1
lines changed Original file line number Diff line number Diff line change @@ -388,6 +388,7 @@ private static function loadSourceClasses(): void
388388 ),
389389 );
390390 $ sourceClasses = [];
391+ $ classesWithDuplicateSpecNames = [];
391392
392393 /** @var \SplFileInfo $file */
393394 foreach ($ iterator as $ file ) {
@@ -410,7 +411,26 @@ private static function loadSourceClasses(): void
410411 $ basename = str_replace ('JsonRpc ' , 'JSONRPC ' , $ basename );
411412 }
412413
413- $ sourceClasses [$ basename ] = $ sourceClass ;
414+ if (! \array_key_exists ($ basename , $ sourceClasses )) {
415+ $ sourceClasses [$ basename ] = $ sourceClass ;
416+ } else {
417+ $ classesWithDuplicateSpecNames [$ basename ] = $ sourceClass ;
418+ }
419+ }
420+
421+ if ([] !== $ classesWithDuplicateSpecNames ) {
422+ self ::fail (\sprintf (
423+ "The following classes have duplicate spec names: \n%s " ,
424+ implode ("\n" , array_map (
425+ static fn (string $ class , string $ sourceClass ): string => \sprintf (
426+ '* %s (%s) ' ,
427+ $ class ,
428+ addslashes ($ sourceClass ),
429+ ),
430+ array_keys ($ classesWithDuplicateSpecNames ),
431+ $ classesWithDuplicateSpecNames ,
432+ )),
433+ ));
414434 }
415435
416436 ksort ($ sourceClasses );
You can’t perform that action at this time.
0 commit comments