scoping – How to define a function in a module via Evaluate

I'm trying to define a function in a module as follows

test1[a_] : = Module[{sol1, g1, y},
  sol1 = Reduce[a + x^2 == y, x];
g1[y_] : = Evaluate @ sol1[[1, -1]];

This gives the exit

Attributes[g1$28580]= {Temporary}

g1$ 28,580[$Y[$Y[y$[y$_]: = - Sqrt[-3+y[-3+y[-3+y[-3+y$ 28580]-Sqrt[-3+$y[-3+$y[-3+y$[-3+y$28588]

As you can see, it does not work. the there in the body of the function is there$ 28,580, but no y $. Is there a way to make this work?