process main { var("bad_x") x; var("good_x") y; call("helper_func", {}) helper; call_with_caller_target("func1", {}, "helper") c; val_equal(c.x, "good_x") a; assert(a); exit("0"); } template helper_func { var(_caller.y) x; } template func1 { var(_caller.x) x; }