// This means we need to keep on reading elements until we get
// an 'EOF' or a DecodingException. In case of a
// DecodingException, the pointer is expected to be moved back
// to the first position.
return (Codec<T>) new DynamicListCodec(codec);
} else if (settings.offset().length() != 0) {
// So the size is known. If the offset attribute has been set,
// it means we can calculate the position of the individual
// elements based on the index of that element.
Expression<Integer, Resolver> size = getSizeExpression(
settings, context);