// memory leaks by retaining an instance). In any case, there are edge cases where we may create
// the tuple unnecessarily (such as when an explicit string-to-enum coercion is part of the TypeCoercer
// configuration), but on the whole, this is cheap at works.
if (sourceType == String.class && Enum.class.isAssignableFrom(targetType))
tuples = extend(tuples, new CoercionTuple(sourceType, targetType, new StringToEnumCoercion(targetType)));
return tuples;
}