Templates bad expansions in arguments
### Description

Templates expand to `rvalue=rvalue` (right-hand side literal values) arguments when the template argument and the function argument have the same name. 

Same happens inside a `main()` function.

Alternative can be change identifier names like `body = bodi` in arguments,
but its weird and don't change the fact that the compiler is using literal values as identifier names in expansions.

```nim
func f(a: string) = discard       # Expands to:
template t(a: string) = f(a = a)  # f("BUG" = "BUG")
t(a = "BUG")                      # Should be:
                                  # f(a = "BUG")
```

### Nim Version

2.2.1

### Current Output

```text
temp.nim(3, 7) Error: identifier expected, but found '"BUG"'
```


### Expected Output

Compile Ok, or give some kind of ambiguous identifier error?


### Known Workarounds

Change the name of the arguments, but you have to edit the whole code.

I found this because I have templates that use `body=body` for HTTP code,
and the `expandMacros` shows code like `f( "BUG" = "BUG" )`, but should be like `f( body = "BUG" )`,
then complains `Error: identifier expected, but found '"BUG"'`.

### Additional Information

See Bisect below...