gotools/internal/refactor/inline/testdata/crosspkg.txtar

Test of cross-package inlining.
The first case creates a new import,
the second reuses an existing one.

-- go.mod --
module testdata
go 1.12

-- a/a.go --
package a

// This comment does not migrate.

import (
	"fmt"
	"testdata/b"
)

// Nor this one.

func A() {
	fmt.Println()
	b.B1() //@ inline(re"B1", b1result)
	b.B2() //@ inline(re"B2", b2result)
	b.B3() //@ inline(re"B3", b3result)
}

-- b/b.go --
package b

import "testdata/c"
import "testdata/d"
import "fmt"

func B1() { c.C() }
func B2() { fmt.Println() }
func B3() { e.E() } // (note that "testdata/d" points to package e)

-- c/c.go --
package c

func C() {}

-- d/d.go --
package e // <- this package name intentionally mismatches the path

func E() {}

-- b1result --
package a

// This comment does not migrate.

import (
	"fmt"
	"testdata/b"
	"testdata/c"
)

// Nor this one.

func A() {
	fmt.Println()
	c.C()  //@ inline(re"B1", b1result)
	b.B2() //@ inline(re"B2", b2result)
	b.B3() //@ inline(re"B3", b3result)
}

-- b2result --
package a

// This comment does not migrate.

import (
	"fmt"
	"testdata/b"
)

// Nor this one.

func A() {
	fmt.Println()
	b.B1()        //@ inline(re"B1", b1result)
	fmt.Println() //@ inline(re"B2", b2result)
	b.B3()        //@ inline(re"B3", b3result)
}
-- b3result --
package a

// This comment does not migrate.

import (
	"fmt"
	"testdata/b"
	e "testdata/d"
)

// Nor this one.

func A() {
	fmt.Println()
	b.B1() //@ inline(re"B1", b1result)
	b.B2() //@ inline(re"B2", b2result)
	e.E()  //@ inline(re"B3", b3result)
}