void (@NotNull final CommandLineOption o) { super.visitOption(o); if (myUnusedOptions.containsKey(o.getOptionName())) { // Remove from list of available options final Option option = myUnusedOptions.remove(o.getOptionName()); for (final String optionName : option.getAllNames()) { myUnusedOptions.remove(optionName); } final Pair<Integer, Argument> argumentAndQuantity = option.getArgumentAndQuantity(); if (argumentAndQuantity != null) { myCurrentOptionAndArgsLeft = Pair.create(option, argumentAndQuantity.first); } else { myCurrentOptionAndArgsLeft = new Pair<>(option, 0); } } else { myBadValues.add(o); //No such option available } }