Commit 6efe0f4
internal/astutil/cursor: Cursor.Ancestors iterator
This CL adds an iterator for the strict ancestors
(transitive parents) of the current node.
It accepts a type filter.
Also, use it in two places.
This may slow down Cursor.Stack slightly, but see
comments in benchmark for justification. The
basic Cursor traversal is still competitive so
long as Stack or Ancestors are called sparingly.
BenchmarkInspectCalls/Preorder-8 12069 106995 ns/op
BenchmarkInspectCalls/WithStack-8 7447 153992 ns/op
BenchmarkInspectCalls/CursorStack-8 2545 460433 ns/op (was 178907: 2.6x increase)
BenchmarkInspectCalls/Cursor-8 12225 99472 ns/op
BenchmarkInspectCalls/CursorAncestors-8 3249 350503 ns/op (=3x WithStack)
Change-Id: I79941423888028a622b20b7ab63b37f8435dce33
Reviewed-on: https://go-review.googlesource.com/c/tools/+/641435
Auto-Submit: Alan Donovan <[email protected]>
LUCI-TryBot-Result: Go LUCI <[email protected]>
Reviewed-by: Robert Findley <[email protected]>1 parent df3de6a commit 6efe0f4
File tree
4 files changed
+74
-32
lines changed- gopls/internal/analysis
- hostport
- modernize
- internal/astutil/cursor
4 files changed
+74
-32
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
164 | 164 | | |
165 | 165 | | |
166 | 166 | | |
167 | | - | |
168 | | - | |
| 167 | + | |
169 | 168 | | |
170 | 169 | | |
171 | 170 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
| 39 | + | |
| 40 | + | |
40 | 41 | | |
41 | 42 | | |
42 | 43 | | |
43 | | - | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
| |||
162 | 162 | | |
163 | 163 | | |
164 | 164 | | |
165 | | - | |
166 | | - | |
167 | | - | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
172 | | - | |
| 165 | + | |
173 | 166 | | |
174 | | - | |
175 | | - | |
176 | | - | |
177 | | - | |
178 | | - | |
179 | | - | |
180 | | - | |
181 | | - | |
| 167 | + | |
| 168 | + | |
182 | 169 | | |
| 170 | + | |
183 | 171 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
157 | 157 | | |
158 | 158 | | |
159 | 159 | | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | 160 | | |
168 | 161 | | |
169 | 162 | | |
| |||
172 | 165 | | |
173 | 166 | | |
174 | 167 | | |
175 | | - | |
176 | | - | |
177 | | - | |
178 | | - | |
| 168 | + | |
| 169 | + | |
179 | 170 | | |
180 | 171 | | |
181 | 172 | | |
182 | 173 | | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
183 | 199 | | |
184 | 200 | | |
185 | 201 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
18 | 19 | | |
19 | 20 | | |
20 | 21 | | |
| |||
152 | 153 | | |
153 | 154 | | |
154 | 155 | | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
155 | 163 | | |
156 | 164 | | |
157 | 165 | | |
| |||
381 | 389 | | |
382 | 390 | | |
383 | 391 | | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
384 | 401 | | |
385 | 402 | | |
386 | 403 | | |
| |||
392 | 409 | | |
393 | 410 | | |
394 | 411 | | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
395 | 434 | | |
396 | 435 | | |
397 | 436 | | |
| |||
0 commit comments