This class is designed to support a function whose callers may need to know whether the function encountered and reported an error but never need to know the nature of that error. For example, the function has a return type of [Error](classllvm%5F1%5F1Error.html "Lightweight error class with error context and mandatory checking.") and always returns either [ErrorReported](classllvm%5F1%5F1ErrorReported.html "An error that has already been reported.") or [ErrorSuccess](classllvm%5F1%5F1ErrorSuccess.html "Subclass of Error for the sole purpose of identifying the success path in the type system."). That interface is similar to that of a function returning bool to indicate an error except, in the former case, (1) there is no confusion over polarity and (2) the caller must either check the result or explicitly ignore it with a call like consumeError.