|
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. | |
| DiagnosticArgument | getStringArgument (const Twine &val) |
| Returns a string argument that refers to a copy of val owned by this diagnostic, so the argument remains valid for as long as the diagnostic does. | |
| 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 161 of file Diagnostics.h.
Definition at line 277 of file Diagnostics.h.
| using mlir::Diagnostic::note_iterator = llvm::pointee_iterator<NoteVector::iterator> |
Definition at line 276 of file Diagnostics.h.
|
inline |
Definition at line 165 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 252 of file Diagnostics.h.
References Diagnostic().
|
inline |
Append arguments to the diagnostic.
Definition at line 246 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 151 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 238 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 221 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 177 of file Diagnostics.h.
Referenced by print().
|
inline |
Definition at line 178 of file Diagnostics.h.
|
inline |
Returns the source location for this diagnostic.
Definition at line 174 of file Diagnostics.h.
|
inline |
Returns the current list of diagnostic metadata.
Definition at line 302 of file Diagnostics.h.
|
inline |
Returns the notes held by this diagnostic.
Definition at line 281 of file Diagnostics.h.
|
inline |
Definition at line 284 of file Diagnostics.h.
|
inline |
Returns the severity of this diagnostic.
Definition at line 171 of file Diagnostics.h.
| DiagnosticArgument Diagnostic::getStringArgument | ( | const Twine & | val | ) |
Returns a string argument that refers to a copy of val owned by this diagnostic, so the argument remains valid for as long as the diagnostic does.
This is useful for adding a non-constant string to the metadata.
Definition at line 103 of file Diagnostics.cpp.
References twineToStrRef().
Referenced by operator<<(), and operator<<().
|
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 297 of file Diagnostics.h.
| Diagnostic::operator LogicalResult | ( | ) | const |
Allow a diagnostic to be converted to 'failure'.
Definition at line 237 of file Diagnostics.cpp.
|
inline |
Allow a diagnostic to be converted to 'failure'.
Definition at line 292 of file Diagnostics.h.
|
inline |
Stream operator for inserting new diagnostic arguments.
Definition at line 178 of file Diagnostics.h.
| Diagnostic & Diagnostic::operator<< | ( | char | val | ) |
Stream in a Twine argument.
Definition at line 108 of file Diagnostics.cpp.
References Diagnostic().
|
inline |
| Diagnostic & Diagnostic::operator<< | ( | const Twine & | val | ) |
Definition at line 109 of file Diagnostics.cpp.
References Diagnostic(), and getStringArgument().
|
inline |
Stream in an enum that has a stringifyEnum function.
Definition at line 214 of file Diagnostics.h.
References Diagnostic().
| Diagnostic & Diagnostic::operator<< | ( | Operation & | op | ) |
Stream in an Operation.
Definition at line 143 of file Diagnostics.cpp.
References appendOp(), and Diagnostic().
|
inline |
Definition at line 209 of file Diagnostics.h.
References Diagnostic().
| Diagnostic & Diagnostic::operator<< | ( | OperationName | val | ) |
Stream in an OperationName.
Definition at line 124 of file Diagnostics.cpp.
References Diagnostic(), and mlir::OperationName::getStringRef().
| Diagnostic & Diagnostic::operator<< | ( | OpWithFlags | op | ) |
Definition at line 147 of file Diagnostics.cpp.
References appendOp(), Diagnostic(), mlir::OpWithFlags::flags(), and mlir::OpWithFlags::getOperation().
| Diagnostic & Diagnostic::operator<< | ( | StringAttr | val | ) |
Definition at line 118 of file Diagnostics.cpp.
References Diagnostic().
|
inline |
Stream in a range.
Definition at line 214 of file Diagnostics.h.
| Diagnostic & Diagnostic::operator<< | ( | Twine && | val | ) |
Definition at line 113 of file Diagnostics.cpp.
References Diagnostic(), and getStringArgument().
| Diagnostic & Diagnostic::operator<< | ( | Value | val | ) |
Stream in a Value.
Definition at line 163 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 171 of file Diagnostics.cpp.
References getArguments(), and slice().
Referenced by mlirAffineExprDump(), mlirAffineExprPrint(), mlirAffineMapDump(), mlirAffineMapPrint(), mlirDiagnosticPrint(), mlirIntegerSetDump(), 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 240 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 193 of file Diagnostics.cpp.
References print(), and str().
Referenced by appendOp(), operator<<(), str(), and strs().
| SmallVector< std::string > Diagnostic::strs | ( | ) | const |