Open flyinprogrammer opened 3 years ago
Hey @flyinprogrammer, thanks for reporting this and of course for the magnificent sloth there :-).
I think we should definitely make the code generator smarter here. Seems like the simplest would be to prefix or suffix the local variable names with _
or even __
. These are against Go naming conventions (for normal code, but not generated one) and should make sure, we don't get this hiccup. I think that's not too difficult and would not require people to read through framework caveats.
I'd be very happy to merge that PR, if you decide to contribute.
Thank you, Peter
Context:
So I've stumbled upon needing to use this project while trying to resurrect the wildly out of date / broken slack client in Atlantis: https://github.com/runatlantis/atlantis/tree/master/server/events/webhooks
I'm not sure how much anyone cares about any of these rambles, but this community seems like they might care? So here we are.
So the first discovery I've found is trivial, defining an interface's method with a parameter named
params
makes our generator create broken code:https://github.com/flyinprogrammer/pegomock_examples/blob/issues/params_keyword/slack.go#L8
https://github.com/flyinprogrammer/pegomock_examples/blob/issues/params_keyword/mocks/mock_slack_client.go#L32
The solution is to simply ignore the provided name
params
:https://github.com/slack-go/slack/blob/master/conversation.go#L81
And do something like this:
https://github.com/flyinprogrammer/pegomock_examples/blob/workaround/params_keyword/slack.go#L8
https://github.com/flyinprogrammer/pegomock_examples/blob/workaround/params_keyword/mocks/mock_slack_client.go#L32
And we're off again.
Not sure if we want to document this hiccup, or make our code generator smarter? Happy to contribute, just need some guidance.