I had a short look into this; The problem appears to be that in ExecutableMetaData$Builder#findParameterMetaData() we process the executables to be merged in no deterministic order (we're iterating over a hash set).
Thanks for checking. Makes sense what you are saying.
Any specific name over the default ones (e.g. prefer foo over arg0)
What's really specific in this case?
The names from super-type methods over the names from sub-type methods (e.g. prefer Service#sayHello() over ServiceImpl#sayHello()
I think that is the rule we should apply. Also, remember that constraints (at least for parameters) have to be placed on the super type anyways. IMO it makes sense to take the names of the super type regardless.
|