-- functionextraction_extract_return_complex_8_2 --
package extract

import "fmt"

func _() (int, string, error) {
	x := 1
	y := "hello"
	z, cond0, ret0, ret1, ret2 := fn0(y, x)
	if cond0 {
		return ret0, ret1, ret2
	} //@mark(exEn3, "}")
	return x, z, nil
	//@extractfunc(exSt3, exEn3)
}

func fn0(y string, x int) (string, bool, int, string, error) {
	z := "bye"
	if y == z {
		return "", true, x, y, fmt.Errorf("same")
	} else {
		z = "hi"
		return "", true, x, z, nil
	}
	return z, false, 0, "", nil
}

