|
4 | 4 | "description": "Hand-annotated call edges for Elixir resolution benchmark", |
5 | 5 | "edges": [ |
6 | 6 | { |
7 | | - "source": { "name": "validate_user", "file": "validators.ex" }, |
8 | | - "target": { "name": "valid_name?", "file": "validators.ex" }, |
| 7 | + "source": { "name": "Validators.validate_user", "file": "validators.ex" }, |
| 8 | + "target": { "name": "Validators.valid_name?", "file": "validators.ex" }, |
9 | 9 | "kind": "calls", |
10 | 10 | "mode": "same-file", |
11 | | - "notes": "Same-module helper call within Validators" |
| 11 | + "notes": "Same-module helper call within Validators — extractor emits module-qualified names" |
12 | 12 | }, |
13 | 13 | { |
14 | | - "source": { "name": "validate_user", "file": "validators.ex" }, |
15 | | - "target": { "name": "valid_email?", "file": "validators.ex" }, |
| 14 | + "source": { "name": "Validators.validate_user", "file": "validators.ex" }, |
| 15 | + "target": { "name": "Validators.valid_email?", "file": "validators.ex" }, |
16 | 16 | "kind": "calls", |
17 | 17 | "mode": "same-file", |
18 | | - "notes": "Same-module helper call within Validators" |
| 18 | + "notes": "Same-module helper call within Validators — extractor emits module-qualified names" |
19 | 19 | }, |
20 | 20 | { |
21 | | - "source": { "name": "create_user", "file": "service.ex" }, |
22 | | - "target": { "name": "validate_user", "file": "validators.ex" }, |
| 21 | + "source": { "name": "UserService.create_user", "file": "service.ex" }, |
| 22 | + "target": { "name": "Validators.validate_user", "file": "validators.ex" }, |
23 | 23 | "kind": "calls", |
24 | 24 | "mode": "module-function", |
25 | 25 | "notes": "Validators.validate_user() — cross-module qualified call" |
26 | 26 | }, |
27 | 27 | { |
28 | | - "source": { "name": "create_user", "file": "service.ex" }, |
29 | | - "target": { "name": "save", "file": "repository.ex" }, |
| 28 | + "source": { "name": "UserService.create_user", "file": "service.ex" }, |
| 29 | + "target": { "name": "UserRepository.save", "file": "repository.ex" }, |
30 | 30 | "kind": "calls", |
31 | 31 | "mode": "module-function", |
32 | 32 | "notes": "UserRepository.save() — cross-module qualified call" |
33 | 33 | }, |
34 | 34 | { |
35 | | - "source": { "name": "get_user", "file": "service.ex" }, |
36 | | - "target": { "name": "find_by_id", "file": "repository.ex" }, |
| 35 | + "source": { "name": "UserService.get_user", "file": "service.ex" }, |
| 36 | + "target": { "name": "UserRepository.find_by_id", "file": "repository.ex" }, |
37 | 37 | "kind": "calls", |
38 | 38 | "mode": "module-function", |
39 | 39 | "notes": "UserRepository.find_by_id() — cross-module qualified call" |
40 | 40 | }, |
41 | 41 | { |
42 | | - "source": { "name": "remove_user", "file": "service.ex" }, |
43 | | - "target": { "name": "delete", "file": "repository.ex" }, |
| 42 | + "source": { "name": "UserService.remove_user", "file": "service.ex" }, |
| 43 | + "target": { "name": "UserRepository.delete", "file": "repository.ex" }, |
44 | 44 | "kind": "calls", |
45 | 45 | "mode": "module-function", |
46 | 46 | "notes": "UserRepository.delete() — cross-module qualified call" |
47 | 47 | }, |
48 | 48 | { |
49 | | - "source": { "name": "list_users", "file": "service.ex" }, |
50 | | - "target": { "name": "list_all", "file": "repository.ex" }, |
| 49 | + "source": { "name": "UserService.list_users", "file": "service.ex" }, |
| 50 | + "target": { "name": "UserRepository.list_all", "file": "repository.ex" }, |
51 | 51 | "kind": "calls", |
52 | 52 | "mode": "module-function", |
53 | 53 | "notes": "UserRepository.list_all() — cross-module qualified call" |
54 | 54 | }, |
55 | 55 | { |
56 | | - "source": { "name": "display_user", "file": "service.ex" }, |
57 | | - "target": { "name": "get_user", "file": "service.ex" }, |
| 56 | + "source": { "name": "UserService.display_user", "file": "service.ex" }, |
| 57 | + "target": { "name": "UserService.get_user", "file": "service.ex" }, |
58 | 58 | "kind": "calls", |
59 | 59 | "mode": "same-file", |
60 | | - "notes": "Same-module call to get_user within UserService" |
| 60 | + "notes": "Same-module call to get_user within UserService — extractor emits module-qualified names" |
61 | 61 | }, |
62 | 62 | { |
63 | | - "source": { "name": "display_user", "file": "service.ex" }, |
64 | | - "target": { "name": "format_user", "file": "service.ex" }, |
| 63 | + "source": { "name": "UserService.display_user", "file": "service.ex" }, |
| 64 | + "target": { "name": "UserService.format_user", "file": "service.ex" }, |
65 | 65 | "kind": "calls", |
66 | 66 | "mode": "same-file", |
67 | | - "notes": "Same-module call to private helper format_user" |
| 67 | + "notes": "Same-module call to private helper format_user — extractor emits module-qualified names" |
68 | 68 | }, |
69 | 69 | { |
70 | | - "source": { "name": "run", "file": "main.ex" }, |
71 | | - "target": { "name": "new_store", "file": "repository.ex" }, |
| 70 | + "source": { "name": "Main.run", "file": "main.ex" }, |
| 71 | + "target": { "name": "UserRepository.new_store", "file": "repository.ex" }, |
72 | 72 | "kind": "calls", |
73 | 73 | "mode": "module-function", |
74 | 74 | "notes": "UserRepository.new_store() — cross-module qualified call" |
75 | 75 | }, |
76 | 76 | { |
77 | | - "source": { "name": "run", "file": "main.ex" }, |
78 | | - "target": { "name": "create_user", "file": "service.ex" }, |
| 77 | + "source": { "name": "Main.run", "file": "main.ex" }, |
| 78 | + "target": { "name": "UserService.create_user", "file": "service.ex" }, |
79 | 79 | "kind": "calls", |
80 | 80 | "mode": "module-function", |
81 | 81 | "notes": "UserService.create_user() — cross-module qualified call" |
82 | 82 | }, |
83 | 83 | { |
84 | | - "source": { "name": "run", "file": "main.ex" }, |
85 | | - "target": { "name": "get_user", "file": "service.ex" }, |
| 84 | + "source": { "name": "Main.run", "file": "main.ex" }, |
| 85 | + "target": { "name": "UserService.get_user", "file": "service.ex" }, |
86 | 86 | "kind": "calls", |
87 | 87 | "mode": "module-function", |
88 | 88 | "notes": "UserService.get_user() — cross-module qualified call" |
89 | 89 | }, |
90 | 90 | { |
91 | | - "source": { "name": "run", "file": "main.ex" }, |
92 | | - "target": { "name": "list_users", "file": "service.ex" }, |
| 91 | + "source": { "name": "Main.run", "file": "main.ex" }, |
| 92 | + "target": { "name": "UserService.list_users", "file": "service.ex" }, |
93 | 93 | "kind": "calls", |
94 | 94 | "mode": "module-function", |
95 | 95 | "notes": "UserService.list_users() — cross-module qualified call" |
96 | 96 | }, |
97 | 97 | { |
98 | | - "source": { "name": "run", "file": "main.ex" }, |
99 | | - "target": { "name": "display_user", "file": "service.ex" }, |
| 98 | + "source": { "name": "Main.run", "file": "main.ex" }, |
| 99 | + "target": { "name": "UserService.display_user", "file": "service.ex" }, |
100 | 100 | "kind": "calls", |
101 | 101 | "mode": "module-function", |
102 | 102 | "notes": "UserService.display_user() — cross-module qualified call" |
103 | 103 | }, |
104 | 104 | { |
105 | | - "source": { "name": "run", "file": "main.ex" }, |
106 | | - "target": { "name": "remove_user", "file": "service.ex" }, |
| 105 | + "source": { "name": "Main.run", "file": "main.ex" }, |
| 106 | + "target": { "name": "UserService.remove_user", "file": "service.ex" }, |
107 | 107 | "kind": "calls", |
108 | 108 | "mode": "module-function", |
109 | 109 | "notes": "UserService.remove_user() — cross-module qualified call" |
110 | 110 | }, |
111 | 111 | { |
112 | | - "source": { "name": "run", "file": "main.ex" }, |
113 | | - "target": { "name": "fetch", "file": "patterns.ex" }, |
| 112 | + "source": { "name": "Main.run", "file": "main.ex" }, |
| 113 | + "target": { "name": "Patterns.fetch", "file": "patterns.ex" }, |
114 | 114 | "kind": "calls", |
115 | 115 | "mode": "module-function", |
116 | 116 | "notes": "Patterns.fetch() — exercises default-value parameter extraction" |
117 | 117 | }, |
118 | 118 | { |
119 | | - "source": { "name": "run", "file": "main.ex" }, |
120 | | - "target": { "name": "first_of", "file": "patterns.ex" }, |
| 119 | + "source": { "name": "Main.run", "file": "main.ex" }, |
| 120 | + "target": { "name": "Patterns.first_of", "file": "patterns.ex" }, |
121 | 121 | "kind": "calls", |
122 | 122 | "mode": "module-function", |
123 | 123 | "notes": "Patterns.first_of() — exercises tuple-pattern parameter extraction" |
124 | 124 | }, |
125 | 125 | { |
126 | | - "source": { "name": "run", "file": "main.ex" }, |
127 | | - "target": { "name": "name_of", "file": "patterns.ex" }, |
| 126 | + "source": { "name": "Main.run", "file": "main.ex" }, |
| 127 | + "target": { "name": "Patterns.name_of", "file": "patterns.ex" }, |
128 | 128 | "kind": "calls", |
129 | 129 | "mode": "module-function", |
130 | 130 | "notes": "Patterns.name_of() — exercises map-pattern parameter extraction" |
131 | 131 | }, |
132 | 132 | { |
133 | | - "source": { "name": "run", "file": "main.ex" }, |
134 | | - "target": { "name": "id_of", "file": "patterns.ex" }, |
| 133 | + "source": { "name": "Main.run", "file": "main.ex" }, |
| 134 | + "target": { "name": "Patterns.id_of", "file": "patterns.ex" }, |
135 | 135 | "kind": "calls", |
136 | 136 | "mode": "module-function", |
137 | 137 | "notes": "Patterns.id_of() — exercises struct-pattern parameter extraction" |
138 | 138 | }, |
139 | 139 | { |
140 | | - "source": { "name": "run", "file": "main.ex" }, |
141 | | - "target": { "name": "head_of", "file": "patterns.ex" }, |
| 140 | + "source": { "name": "Main.run", "file": "main.ex" }, |
| 141 | + "target": { "name": "Patterns.head_of", "file": "patterns.ex" }, |
142 | 142 | "kind": "calls", |
143 | 143 | "mode": "module-function", |
144 | 144 | "notes": "Patterns.head_of() — exercises list-cons pattern parameter extraction" |
145 | 145 | }, |
146 | 146 | { |
147 | | - "source": { "name": "run", "file": "main.ex" }, |
148 | | - "target": { "name": "all_of", "file": "patterns.ex" }, |
| 147 | + "source": { "name": "Main.run", "file": "main.ex" }, |
| 148 | + "target": { "name": "Patterns.all_of", "file": "patterns.ex" }, |
149 | 149 | "kind": "calls", |
150 | 150 | "mode": "module-function", |
151 | 151 | "notes": "Patterns.all_of() — exercises list pattern parameter extraction" |
|
0 commit comments