golang.org/x/tools@v0.21.0/internal/refactor/inline/testdata/crosspkg.txtar (about) 1 Test of cross-package inlining. 2 The first case creates a new import, 3 the second reuses an existing one. 4 5 -- go.mod -- 6 module testdata 7 go 1.12 8 9 -- a/a.go -- 10 package a 11 12 // This comment does not migrate. 13 14 import ( 15 "fmt" 16 "testdata/b" 17 ) 18 19 // Nor this one. 20 21 func A() { 22 fmt.Println() 23 b.B1() //@ inline(re"B1", b1result) 24 b.B2() //@ inline(re"B2", b2result) 25 b.B3() //@ inline(re"B3", b3result) 26 } 27 28 -- b/b.go -- 29 package b 30 31 import "testdata/c" 32 import "testdata/d" 33 import "fmt" 34 35 func B1() { c.C() } 36 func B2() { fmt.Println() } 37 func B3() { e.E() } // (note that "testdata/d" points to package e) 38 39 -- c/c.go -- 40 package c 41 42 func C() {} 43 44 -- d/d.go -- 45 package e // <- this package name intentionally mismatches the path 46 47 func E() {} 48 49 -- b1result -- 50 package a 51 52 // This comment does not migrate. 53 54 import ( 55 "fmt" 56 "testdata/b" 57 "testdata/c" 58 ) 59 60 // Nor this one. 61 62 func A() { 63 fmt.Println() 64 c.C() //@ inline(re"B1", b1result) 65 b.B2() //@ inline(re"B2", b2result) 66 b.B3() //@ inline(re"B3", b3result) 67 } 68 69 -- b2result -- 70 package a 71 72 // This comment does not migrate. 73 74 import ( 75 "fmt" 76 "testdata/b" 77 ) 78 79 // Nor this one. 80 81 func A() { 82 fmt.Println() 83 b.B1() //@ inline(re"B1", b1result) 84 fmt.Println() //@ inline(re"B2", b2result) 85 b.B3() //@ inline(re"B3", b3result) 86 } 87 -- b3result -- 88 package a 89 90 // This comment does not migrate. 91 92 import ( 93 "fmt" 94 "testdata/b" 95 e "testdata/d" 96 ) 97 98 // Nor this one. 99 100 func A() { 101 fmt.Println() 102 b.B1() //@ inline(re"B1", b1result) 103 b.B2() //@ inline(re"B2", b2result) 104 e.E() //@ inline(re"B3", b3result) 105 }