This test checks the splice assignment substrategy.

-- go.mod --
module testdata

go 1.20

-- a.go --
package a

func a() (int32, string) {
	return b()
}

func b() (int32, string) {
	return 0, "a"
}

func c() (int, chan<- int) {
	return 0, make(chan int) // nontrivial conversion
}

-- a1.go --
package a

func _() {
	x, y := a() //@ inline(re"a", a1)
}
-- a1 --
package a

func _() {
	x, y := b() //@ inline(re"a", a1)
}
-- a2.go --
package a

func _() {
	var x, y any
	x, y = a() //@ inline(re"a", a2)
}
-- a2 --
package a

func _() {
	var x, y any
	x, y = b() //@ inline(re"a", a2)
}
-- a3.go --
package a

func _() {
	var y chan<- int
	x, y := c() //@ inline(re"c", a3)
}
-- a3 --
package a

func _() {
	var y chan<- int
	x, y := 0, make(chan int) //@ inline(re"c", a3)
}
