Commit f1f4626
committed
go/analysis/passes/modernize: reflecttypefor: simplify .Elem()
The reflecttypefor modernizer already detects patterns involving pointers like:
reflect.TypeOf((*io.Reader)(nil)).Elem()
which are used to extract the type of an interface (since passing the interface directly to TypeOf produces a nil result) and simplifies them to remove the pointer and the call to Elem() when transformed to reflect.TypeFor.
This CL also detects patterns using slices which have the same goal of extracting the interface type:
reflect.TypeOf([]io.Reader(nil)).Elem()
both become:
reflect.TypeFor[io.Reader]()
Fixes golang/go#77724
Change-Id: I1d5b4bdbaa812224a9e6f30687cadde01f99ed75
Reviewed-on: https://go-review.googlesource.com/c/tools/+/749500
Reviewed-by: Alan Donovan <adonovan@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>1 parent 0c3890d commit f1f4626
File tree
6 files changed
+51
-31
lines changed- gopls
- doc
- internal/doc
- go/analysis/passes/modernize
- testdata/src/reflecttypefor
6 files changed
+51
-31
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
263 | 263 | | |
264 | 264 | | |
265 | 265 | | |
266 | | - | |
| 266 | + | |
267 | 267 | | |
268 | 268 | | |
269 | 269 | | |
270 | 270 | | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
271 | 275 | | |
272 | 276 | | |
273 | 277 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
66 | | - | |
| 65 | + | |
| 66 | + | |
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
70 | | - | |
| 70 | + | |
71 | 71 | | |
72 | 72 | | |
73 | | - | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
74 | 82 | | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
83 | 89 | | |
84 | 90 | | |
85 | 91 | | |
| |||
Lines changed: 16 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
30 | 33 | | |
31 | 34 | | |
32 | 35 | | |
| |||
Lines changed: 5 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
29 | | - | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
30 | 33 | | |
31 | 34 | | |
32 | 35 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3732 | 3732 | | |
3733 | 3733 | | |
3734 | 3734 | | |
3735 | | - | |
| 3735 | + | |
3736 | 3736 | | |
3737 | 3737 | | |
3738 | 3738 | | |
| 3739 | + | |
| 3740 | + | |
| 3741 | + | |
| 3742 | + | |
3739 | 3743 | | |
3740 | 3744 | | |
3741 | 3745 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1606 | 1606 | | |
1607 | 1607 | | |
1608 | 1608 | | |
1609 | | - | |
| 1609 | + | |
1610 | 1610 | | |
1611 | 1611 | | |
1612 | 1612 | | |
| |||
3535 | 3535 | | |
3536 | 3536 | | |
3537 | 3537 | | |
3538 | | - | |
| 3538 | + | |
3539 | 3539 | | |
3540 | 3540 | | |
3541 | 3541 | | |
| |||
0 commit comments