Drops a trailing optional argument so the call uses its default value.
Not-found defaults — implicit nil
These lookups use nil when the optional fallback is removed:
Map.get/3→Map.get/2Keyword.get/3→Keyword.get/2Access.get/3→Access.get/2Access.key/2→Access.key/1Map.pop/3→Map.pop/2Keyword.pop/3→Keyword.pop/2Keyword.pop_first/3→Keyword.pop_first/2Enum.at/3→Enum.at/2List.pop_at/3→List.pop_at/2List.keyfind/4→List.keyfind/3List.flatten/2→List.flatten/1List.first/2→List.first/1List.last/2→List.last/1Map.get_lazy/3→Map.get/2Keyword.get_lazy/3→Keyword.get/2Map.pop_lazy/3→Map.pop/2Keyword.pop_lazy/3→Keyword.pop/2
The _lazy forms also change to their non-lazy counterpart.
Refinement defaults — a precision, base, separator, or fill
These calls revert to their standard precision, base, separator, fill, or trimming behavior:
Float.round/2,Float.ceil/2,Float.floor/2→/1— drop the precision (implicit0)Integer.to_string/2,Integer.to_charlist/2,Integer.parse/2,Integer.digits/2,Integer.undigits/2→/1— drop the base (implicit10)Enum.join/2→Enum.join/1— drop the separator (implicit"")String.pad_leading/3,String.pad_trailing/3→/2— drop the fill (implicit" ")String.trim/2,String.trim_leading/2,String.trim_trailing/2→/1— drop the to-trim string, reverting to whitespace trimming
A call is skipped when its trailing literal already equals the implicit default: nil for the lookups, 0 for the rounding precision, 10 for the integer base, "" for Enum.join, " " for the pads — Map.get(m, k, nil), Float.round(x, 0), Integer.to_string(n, 10), Enum.join(xs, ""), String.pad_leading(s, n, " ") are all unchanged. List.flatten(xs, []) is also skipped because [] is the implicit tail. Non-default literals, variables, and expressions are eligible.
Lazy fallbacks are always eligible. The string argument to String.trim/2 and its directional variants is also always eligible because no string value reproduces the default whitespace behavior.
Default comparison uses the decoded value of a string literal.
This mutator is enabled by default and matches aliased and imported calls. It may produce a separate mutant alongside: Mutare.Mutators.CallRemoval removes String.trim/pad_leading/pad_trailing outright, while this family retains the call with default behavior; Mutare.Mutators.Numeric changes Float.ceil to Float.floor or vice versa while retaining the precision.