ConfigVersionAndTerm class is added by SERVER-45082(repl_set_config.h). It has two member variables called _version and _term. Both of them are long long type.
long long _version; long long _term;
However, the version field is defined as int type in constructor. This is contradictory to definition.
ConfigVersionAndTerm(int version, long long term) : _version(version), _term(term) {}
Also, in repl_set_config.idl, the version is defined as
color: Color value is invalid
color: Color value is invalid
std::int64_t in
ReplSetConfigBase structure. But the max value is defined as 2147483647 which is the 32 bits number's max value.
I think the version definition of these places needs to be at least consistent. Or it will lead to ambiguity.