}
YarrgConfigurationException.unless(factory.handles(f), "Unhandled type: " + f);
if (pos != null) {
Map<Integer, PositionalArgument> positionals =
pos.value() < 0 ? negaPositionals : posiPositionals;
PositionalArgument existent =
positionals.put(pos.value(), new PositionalArgument(f));
if (existent != null) {
throw new YarrgConfigurationException("Attempted to assign '" + f
+ "' to the same position as '" + existent.field + "'");
}
} else {