golang.org/x/tools@v0.21.0/internal/refactor/inline/testdata/method.txtar (about) 1 Test of inlining a method call. 2 3 The call to (*T).g0 implicitly takes the address &x, and 4 the call to T.h implictly dereferences the argument *ptr. 5 6 The f1/g1 methods have parameters, exercising the 7 splicing of the receiver into the parameter list. 8 Notice that the unnamed parameters become named. 9 10 -- go.mod -- 11 module testdata 12 go 1.12 13 14 -- a/f0.go -- 15 package a 16 17 type T int 18 19 func (recv T) f0() { println(recv) } 20 21 func _(x T) { 22 x.f0() //@ inline(re"f0", f0) 23 } 24 25 -- f0 -- 26 package a 27 28 type T int 29 30 func (recv T) f0() { println(recv) } 31 32 func _(x T) { 33 println(x) //@ inline(re"f0", f0) 34 } 35 36 -- a/g0.go -- 37 package a 38 39 func (recv *T) g0() { println(recv) } 40 41 func _(x T) { 42 x.g0() //@ inline(re"g0", g0) 43 } 44 45 -- g0 -- 46 package a 47 48 func (recv *T) g0() { println(recv) } 49 50 func _(x T) { 51 println(&x) //@ inline(re"g0", g0) 52 } 53 54 -- a/f1.go -- 55 package a 56 57 func (recv T) f1(int, int) { println(recv) } 58 59 func _(x T) { 60 x.f1(1, 2) //@ inline(re"f1", f1) 61 } 62 63 -- f1 -- 64 package a 65 66 func (recv T) f1(int, int) { println(recv) } 67 68 func _(x T) { 69 println(x) //@ inline(re"f1", f1) 70 } 71 72 -- a/g1.go -- 73 package a 74 75 func (recv *T) g1(int, int) { println(recv) } 76 77 func _(x T) { 78 x.g1(1, 2) //@ inline(re"g1", g1) 79 } 80 81 -- g1 -- 82 package a 83 84 func (recv *T) g1(int, int) { println(recv) } 85 86 func _(x T) { 87 println(&x) //@ inline(re"g1", g1) 88 } 89 90 -- a/h.go -- 91 package a 92 93 func (T) h() int { return 1 } 94 95 func _() { 96 var ptr *T 97 ptr.h() //@ inline(re"h", h) 98 } 99 100 -- h -- 101 package a 102 103 func (T) h() int { return 1 } 104 105 func _() { 106 var ptr *T 107 var _ T = *ptr 108 _ = 1 //@ inline(re"h", h) 109 } 110 111 -- a/i.go -- 112 package a 113 114 func (T) i() int { return 1 } 115 116 func _() { 117 (*T).i(nil) //@ inline(re"i", i) 118 } 119 120 -- i -- 121 package a 122 123 func (T) i() int { return 1 } 124 125 func _() { 126 _ = 1 //@ inline(re"i", i) 127 }