golang.org/x/tools@v0.21.0/internal/refactor/inline/testdata/multistmt-body.txtar (about) 1 Tests of reduction of calls to multi-statement bodies. 2 3 a1: reduced to a block with a parameter binding decl. 4 (Parameter x can't be substituted by z without a shadowing conflict.) 5 6 a2: reduced with parameter substitution (no shadowing). 7 8 a3: literalized, because of the return statement. 9 10 -- go.mod -- 11 module testdata 12 go 1.12 13 14 -- a/a1.go -- 15 package a 16 17 func _() { 18 z := 1 19 f(z, 2) //@ inline(re"f", out1) 20 } 21 22 func f(x, y int) { 23 z := 1 24 print(x + y + z) 25 } 26 27 -- out1 -- 28 package a 29 30 func _() { 31 z := 1 32 { 33 var x int = z 34 z := 1 35 print(x + 2 + z) 36 } //@ inline(re"f", out1) 37 } 38 39 func f(x, y int) { 40 z := 1 41 print(x + y + z) 42 } 43 44 -- a/a2.go -- 45 package a 46 47 func _() { 48 a := 1 49 f(a, 2) //@ inline(re"f", out2) 50 } 51 52 -- out2 -- 53 package a 54 55 func _() { 56 a := 1 57 z := 1 58 print(a + 2 + z) //@ inline(re"f", out2) 59 } 60 61 -- a/a3.go -- 62 package a 63 64 func _() { 65 a := 1 66 g(a, 2) //@ inline(re"g", out3) 67 } 68 69 func g(x, y int) int { 70 z := 1 71 return x + y + z 72 } 73 74 -- out3 -- 75 package a 76 77 func _() { 78 a := 1 79 func() int { z := 1; return a + 2 + z }() //@ inline(re"g", out3) 80 } 81 82 func g(x, y int) int { 83 z := 1 84 return x + y + z 85 }