Currently, using std.getopt will result in a RangeError if parameters
are improperly omitted on the command line. Since this is a reasonable
user-error, it does not seem like something to crash on during release.
The problem is here:
if (!isDelegateWithLessThanTwoParameters && !val &&
// eat the next argument too
val = args[i];
args = args[0 .. i] ~ args[i + 1 .. $];
It just needs a check to see if args.length is high enough for this to
happen. And the documentation should note the exception it throws;
currently it says only a ConvError is thrown.