In one place we were calling hasError() and in another directly checking for ErrorType; if we had a type containing an ErrorType as a structural component, we would hit an assertion.