Idl.declare: check for duplicate argument names #174
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We've recently had a bug where an RPC got declared with duplicate names due to a confusion on how [Param.mk] works: the string argument taken by [Param.mk ~name] is NOT a type name, but an argument name.
Which then resulted in the RPC silently reversing the order of the arguments to the RPC because they all had the same name (and there is probably one too many or too few List.rev in the RPC handling code such that order of arguments is not preserved).
Prevent this mistake at startup time and reject any RPC with duplicate parameter names declared: it is a programming error.
Draft PR, will need a bit more wider testing (it does catch the original bug at 'dune runtest' time in XAPI)