|
MLIR 24.0.0git
|
This class contains all of the information necessary to report a diagnostic to the DiagnosticEngine. More...
#include "mlir/IR/Diagnostics.h"
Public Types | |
| using | note_iterator = llvm::pointee_iterator<NoteVector::iterator> |
| using | const_note_iterator |
Public Member Functions | |
| Diagnostic (Location loc, DiagnosticSeverity severity) | |
| Diagnostic (Diagnostic &&)=default | |
| Diagnostic & | operator= (Diagnostic &&)=default |
| DiagnosticSeverity | getSeverity () const |
| Returns the severity of this diagnostic. | |
| Location | getLocation () const |
| Returns the source location for this diagnostic. | |
| MutableArrayRef< DiagnosticArgument > | getArguments () |
| Returns the current list of diagnostic arguments. | |
| ArrayRef< DiagnosticArgument > | getArguments () const |
| template<typename Arg> | |
| std::enable_if_t<!std::is_convertible< Arg, StringRef >::value &&std::is_constructible< DiagnosticArgument, Arg >::value, Diagnostic & > | operator<< (Arg &&val) |
| Stream operator for inserting new diagnostic arguments. | |
| Diagnostic & | operator<< (StringAttr val) |
| template<size_t n> | |
| Diagnostic & | operator<< (const char(&val)[n]) |
| Stream in a string literal. | |
| Diagnostic & | operator<< (char val) |
| Stream in a Twine argument. | |
| Diagnostic & | operator<< (const Twine &val) |
| Diagnostic & | operator<< (Twine &&val) |
| Diagnostic & | operator<< (OperationName val) |
| Stream in an OperationName. | |
| Diagnostic & | operator<< (Operation &op) |
| Stream in an Operation. | |
| Diagnostic & | operator<< (OpWithFlags op) |
| Diagnostic & | operator<< (Operation *op) |
| Diagnostic & | appendOp (Operation &op, const OpPrintingFlags &flags) |
| Append an operation with the given printing flags. | |
| Diagnostic & | operator<< (Value val) |
| Stream in a Value. | |
| template<typename EnumT> | |
| std::enable_if_t< std::is_enum_v< EnumT > &&std::is_convertible_v< decltype(stringifyEnum(std::declval< EnumT >())), StringRef >, Diagnostic & > | operator<< (EnumT val) |
| Stream in an enum that has a stringifyEnum function. | |
| template<typename T, typename ValueT = llvm::detail::ValueOfRange<T>> | |
| std::enable_if_t<!std::is_constructible< DiagnosticArgument, T >::value, Diagnostic & > | operator<< (T &&range) |
| Stream in a range. | |
| template<typename T> | |
| Diagnostic & | appendRange (const T &c, const char *delim=", ") |
| Append a range to the diagnostic. | |
| template<typename Arg1, typename Arg2, typename... Args> | |
| Diagnostic & | append (Arg1 &&arg1, Arg2 &&arg2, Args &&...args) |
| Append arguments to the diagnostic. | |
| template<typename Arg> | |
| Diagnostic & | append (Arg &&arg) |
| Append one argument to the diagnostic. | |
| void | print (raw_ostream &os, std::optional< int64_t > messagePartIndex=std::nullopt) const |
| Outputs this diagnostic to a stream. | |
| std::string | str () const |
| Converts the diagnostic to a string, concatenating all the parts if there are multiples. | |
| SmallVector< std::string > | strs () const |
| Converts each message part to a separate string. | |
| Diagnostic & | attachNote (std::optional< Location > noteLoc=std::nullopt) |
| Attaches a note to this diagnostic. | |
| iterator_range< note_iterator > | getNotes () |
| Returns the notes held by this diagnostic. | |
| iterator_range< const_note_iterator > | getNotes () const |
| operator LogicalResult () const | |
| Allow a diagnostic to be converted to 'failure'. | |
| operator ParseResult () const | |
| Allow a diagnostic to be converted to 'failure'. | |
| template<typename T> | |
| operator FailureOr< T > () const | |
| Allow a diagnostic to be converted to FailureOr<T>. | |
| SmallVectorImpl< DiagnosticArgument > & | getMetadata () |
| Returns the current list of diagnostic metadata. | |
| void | startNewMessagePart () |
| Starts a new message part. | |
This class contains all of the information necessary to report a diagnostic to the DiagnosticEngine.
It should generally not be constructed directly, and instead used transitively via InFlightDiagnostic.
A diagnostic may contain multiple message parts that share its location, severity, metadata, and attached notes. Empty message parts are ignored.
Definition at line 159 of file Diagnostics.h.
Definition at line 275 of file Diagnostics.h.
| using mlir::Diagnostic::note_iterator = llvm::pointee_iterator<NoteVector::iterator> |
Definition at line 274 of file Diagnostics.h.
|
inline |
Definition at line 163 of file Diagnostics.h.
Referenced by append(), append(), appendOp(), appendRange(), attachNote(), Diagnostic(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), operator<<(), and operator=().
|
default |
References Diagnostic().
|
inline |
Append one argument to the diagnostic.
Definition at line 250 of file Diagnostics.h.
References Diagnostic().
|
inline |
Append arguments to the diagnostic.
Definition at line 244 of file Diagnostics.h.
References append(), and Diagnostic().
Referenced by append(), and mlir::detail::verifySymbolTable().
| Diagnostic & Diagnostic::appendOp | ( | Operation & | op, |
| const OpPrintingFlags & | flags ) |
Append an operation with the given printing flags.
Definition at line 146 of file Diagnostics.cpp.
References adjustPrintingFlags(), Diagnostic(), mlir::Operation::print(), and str().
Referenced by operator<<(), and operator<<().
|
inline |
Append a range to the diagnostic.
The default delimiter between elements is ','.
Definition at line 236 of file Diagnostics.h.
References Diagnostic().
| Diagnostic & Diagnostic::attachNote | ( | std::optional< Location > | noteLoc = std::nullopt | ) |
Attaches a note to this diagnostic.
A new location may be optionally provided, if not, then the location defaults to the one specified for this diagnostic. Notes may not be attached to other notes.
Append and return a new note.
Definition at line 216 of file Diagnostics.cpp.
References Diagnostic(), and mlir::Note.
Referenced by mlir::DiagnosedDefiniteFailure::attachNote().
|
inline |
Returns the current list of diagnostic arguments.
Definition at line 175 of file Diagnostics.h.
Referenced by print().
|
inline |
Definition at line 176 of file Diagnostics.h.
|
inline |
Returns the source location for this diagnostic.
Definition at line 172 of file Diagnostics.h.
|
inline |
Returns the current list of diagnostic metadata.
Definition at line 300 of file Diagnostics.h.
|
inline |
Returns the notes held by this diagnostic.
Definition at line 279 of file Diagnostics.h.
|
inline |
Definition at line 282 of file Diagnostics.h.
|
inline |
Returns the severity of this diagnostic.
Definition at line 169 of file Diagnostics.h.
|
inline |
Allow a diagnostic to be converted to FailureOr<T>.
Always results in 'failure' because this cast cannot possibly return an object of 'T'.
Definition at line 295 of file Diagnostics.h.
| Diagnostic::operator LogicalResult | ( | ) | const |
Allow a diagnostic to be converted to 'failure'.
Definition at line 232 of file Diagnostics.cpp.
|
inline |
Allow a diagnostic to be converted to 'failure'.
Definition at line 290 of file Diagnostics.h.
|
inline |
Stream operator for inserting new diagnostic arguments.
Definition at line 176 of file Diagnostics.h.
| Diagnostic & Diagnostic::operator<< | ( | char | val | ) |
Stream in a Twine argument.
Definition at line 103 of file Diagnostics.cpp.
References Diagnostic().
|
inline |
| Diagnostic & Diagnostic::operator<< | ( | const Twine & | val | ) |
Definition at line 104 of file Diagnostics.cpp.
References Diagnostic(), and twineToStrRef().
|
inline |
Stream in an enum that has a stringifyEnum function.
Definition at line 212 of file Diagnostics.h.
References Diagnostic().
| Diagnostic & Diagnostic::operator<< | ( | Operation & | op | ) |
Stream in an Operation.
Definition at line 138 of file Diagnostics.cpp.
References appendOp(), and Diagnostic().
|
inline |
Definition at line 207 of file Diagnostics.h.
References Diagnostic().
| Diagnostic & Diagnostic::operator<< | ( | OperationName | val | ) |
Stream in an OperationName.
Definition at line 119 of file Diagnostics.cpp.
References Diagnostic(), and mlir::OperationName::getStringRef().
| Diagnostic & Diagnostic::operator<< | ( | OpWithFlags | op | ) |
Definition at line 142 of file Diagnostics.cpp.
References appendOp(), Diagnostic(), mlir::OpWithFlags::flags(), and mlir::OpWithFlags::getOperation().
| Diagnostic & Diagnostic::operator<< | ( | StringAttr | val | ) |
Definition at line 113 of file Diagnostics.cpp.
References Diagnostic().
|
inline |
Stream in a range.
Definition at line 212 of file Diagnostics.h.
| Diagnostic & Diagnostic::operator<< | ( | Twine && | val | ) |
Definition at line 108 of file Diagnostics.cpp.
References Diagnostic(), and twineToStrRef().
| Diagnostic & Diagnostic::operator<< | ( | Value | val | ) |
Stream in a Value.
Definition at line 158 of file Diagnostics.cpp.
References adjustPrintingFlags(), Diagnostic(), mlir::Value::print(), and str().
|
default |
References Diagnostic().
| void Diagnostic::print | ( | raw_ostream & | os, |
| std::optional< int64_t > | messagePartIndex = std::nullopt ) const |
Outputs this diagnostic to a stream.
If messagePartIndex is provided, only that message part is printed; otherwise, all arguments are printed without separators between message parts.
Definition at line 166 of file Diagnostics.cpp.
References getArguments().
Referenced by mlirAffineExprPrint(), mlirAffineMapPrint(), mlirDiagnosticPrint(), mlirIntegerSetPrint(), str(), and strs().
| void Diagnostic::startNewMessagePart | ( | ) |
Starts a new message part.
This has no effect if the current message part is empty.
Definition at line 235 of file Diagnostics.cpp.
| std::string Diagnostic::str | ( | ) | const |
Converts the diagnostic to a string, concatenating all the parts if there are multiples.
Convert the diagnostic to a string.
Definition at line 188 of file Diagnostics.cpp.
References print(), and str().
Referenced by appendOp(), operator<<(), str(), and strs().
| SmallVector< std::string > Diagnostic::strs | ( | ) | const |