In generic_argument.idl, there are two separate structs defined: GenericArgsAPIV1 and GenericArgsAPIV1Unstable. They're separated this way to allow the IDL compatibility scripts to ensure we don't remove any stable generic arguments. However, having two structs makes using generic arguments cumbersome, since in a lot of cases both structs need to be passed alongside each other. It also requires users to remember which argument is stable and which is unstable every time they interact with them, which isn't true of any of our other arguments. We should combine them into a single GenericArguments struct to eliminate these concerns.
Once we've done that, we can change the marker of stability to be the IDL stability field, rather than the arbitrary name of generic argument list. This will require the compatibility checking script to update its unit tests to use structs for generic arguments rather than generic_argument_lists, so as part of this work we should just remove the concept of generic_argument_lists altogether (they're undocumented and have no use case outside of these unit tests currently).
- is depended on by
-
SERVER-85791 Only parse command request once in command processing path
- Closed