2
2
3
3
declare (strict_types=1 );
4
4
5
+ use Webmozart \Assert \Assert ;
6
+
5
7
require __DIR__ . '/gen_callmap_utils.php ' ;
6
8
7
- foreach (glob (__DIR__ ."/../dictionaries/CallMap*.php " ) as $ file ) {
8
- $ callMap = require $ file ;
9
- $ callMap = normalizeCallMap ($ callMap );
10
- writeCallMap ($ file , $ callMap );
9
+ $ baseMaps = [];
10
+
11
+ foreach (glob (__DIR__ ."/../dictionaries/base/CallMap_*.php " ) as $ file ) {
12
+ Assert::eq (preg_match ('/_(\d+)\.php/ ' , $ file , $ matches ), 1 );
13
+ $ version = $ matches [1 ];
14
+
15
+ $ baseMaps [$ version ] = normalizeCallMap (require $ file );
16
+ }
17
+
18
+ ksort ($ baseMaps );
19
+ $ last = array_key_last ($ baseMaps );
20
+
21
+ $ customMaps = [
22
+ $ last => normalizeCallMap (require __DIR__ ."/../dictionaries/override/CallMap.php " )
23
+ ];
24
+
25
+ $ diffs = [];
26
+ foreach (glob (__DIR__ ."/../dictionaries/override/CallMap_*.php " ) as $ file ) {
27
+ Assert::eq (preg_match ('/_(\d+)_delta\.php/ ' , $ file , $ matches ), 1 );
28
+ $ version = $ matches [1 ];
29
+ $ diffs [$ version ] = normalizeCallMap (require $ file );
11
30
}
31
+ krsort ($ diffs );
32
+
33
+ $ versions = array_reverse (array_keys ($ diffs ));
34
+
35
+ foreach ($ diffs as $ version => $ diff ) {
36
+ $ callMap = $ customMaps [$ version ];
37
+ $ diff = normalizeCallMap (require $ file );
38
+ foreach ($ diff ['removed ' ] as $ func => $ descr ) {
39
+ $ callMap [$ func ] = $ descr ;
40
+ }
41
+ foreach ($ diff ['added ' ] as $ func => $ descr ) {
42
+ unset($ callMap [$ func ]);
43
+ }
44
+ foreach ($ diff ['changed ' ] as $ func => $ sub ) {
45
+ $ callMap [$ func ] = $ sub ['old ' ];
46
+ }
47
+
48
+ $ prevVersion = array_search ($ version , $ versions )-1 ;
49
+ if ($ prevVersion < 0 ) {
50
+ continue ;
51
+ }
52
+ $ customMaps [$ versions [$ prevVersion ]] = $ callMap ;
53
+ }
54
+
55
+ foreach ($ customMaps as $ version => $ data ) {
56
+ foreach ($ data as $ name => $ func ) {
57
+ if (($ baseMaps [$ version ][$ name ] ?? null ) === $ func ) {
58
+ unset($ customMaps [$ version ][$ name ]);
59
+ } else if (($ baseMaps [$ version ][$ name ] ?? null ))
60
+ var_dump ($ name , ($ baseMaps [$ version ][$ name ] ?? null ), $ func );
61
+ }
62
+ }
63
+
64
+ var_dump ($ customMaps );
0 commit comments