Details
Description
In the codebase we have defined aliases for UUID and boost::optional<UUID>, but the compiler doesn't ensure at all that they are used properly. For example, there are many places which use boost::optional<UUID> directly as a way to indicate an optional collection UUID.
Because of this I found myself grepping for CollectionUUID and OptionalCollectionUUID with the expectation I will find all the usages referred to by SERVER-31540 until I realised that this is not enough.
Generally aliasing common types is not very useful, unless it is constrained to a very small piece of code (like a class).