golang.org/x/tools@v0.21.0/internal/refactor/inline/testdata/exprstmt.txtar (about) 1 Inlining an expression into an ExprStmt. 2 Call and receive expressions can be inlined directly 3 (though calls to only some builtins can be reduced). 4 All other expressions are inlined as "_ = expr". 5 6 -- go.mod -- 7 module testdata 8 go 1.12 9 10 -- a/call.go -- 11 package a 12 13 func _() { 14 call() //@ inline(re"call", call) 15 } 16 17 func call() int { return recv() } 18 19 -- call -- 20 package a 21 22 func _() { 23 recv() //@ inline(re"call", call) 24 } 25 26 func call() int { return recv() } 27 28 -- a/recv.go -- 29 package a 30 31 func _() { 32 recv() //@ inline(re"recv", recv) 33 } 34 35 func recv() int { return <-(chan int)(nil) } 36 37 -- recv -- 38 package a 39 40 func _() { 41 <-(chan int)(nil) //@ inline(re"recv", recv) 42 } 43 44 func recv() int { return <-(chan int)(nil) } 45 46 -- a/constant.go -- 47 package a 48 49 func _() { 50 constant() //@ inline(re"constant", constant) 51 } 52 53 func constant() int { return 0 } 54 55 -- constant -- 56 package a 57 58 func _() { 59 _ = 0 //@ inline(re"constant", constant) 60 } 61 62 func constant() int { return 0 } 63 64 -- a/builtin.go -- 65 package a 66 67 func _() { 68 builtin() //@ inline(re"builtin", builtin) 69 } 70 71 func builtin() int { return len("") } 72 73 -- builtin -- 74 package a 75 76 func _() { 77 _ = len("") //@ inline(re"builtin", builtin) 78 } 79 80 func builtin() int { return len("") } 81 82 -- a/copy.go -- 83 package a 84 85 func _() { 86 _copy() //@ inline(re"copy", copy) 87 } 88 89 func _copy() int { return copy([]int(nil), []int(nil)) } 90 91 -- copy -- 92 package a 93 94 func _() { 95 copy([]int(nil), []int(nil)) //@ inline(re"copy", copy) 96 } 97 98 func _copy() int { return copy([]int(nil), []int(nil)) } 99