-- functionextraction_extract_return_func_lit_7_3 --
package extract

import "go/ast"

func _() {
	ast.Inspect(ast.NewIdent("a"), func(n ast.Node) bool {
		//@mark(exSt4, "if")
		shouldReturn, returnValue := newFunction(n)
		if shouldReturn {
			return returnValue
		} //@mark(exEn4, "}")
		return false
	})
	//@extractfunc(exSt4, exEn4)
}

func newFunction(n ast.Node) (bool, bool) {
	if n == nil {
		return true, true
	}
	return false, false
}

