Changes to enable validation for objects generated by InputFormatters.

UnitTests + FunctionalTests for the same.
I think it's trying to prevent allocating the iterator here by exiting early on.