Struct rustc_errors::DiagnosticBuilder[][src]

#[must_use]
pub struct DiagnosticBuilder<'a> { pub handler: &'a Handler, // some fields omitted }

Used for emitting structured error messages and other diagnostic information.

Fields

Methods

impl<'a> DiagnosticBuilder<'a>
[src]

Emit the diagnostic.

Buffers the diagnostic for later emission.

Convenience function for internal use, clients should use one of the span_* methods instead.

Delay emission of this diagnostic as a bug.

This can be useful in contexts where an error indicates a bug but typically this only happens when other compilation errors have already happened. In those cases this can be used to defer emission of this diagnostic as a bug in the compiler only if no other errors have been emitted.

In the meantime, though, callsites are required to deal with the "bug" locally in whichever way makes the most sense.

Add a span/label to be included in the resulting snippet. This is pushed onto the MultiSpan that was created when the diagnostic was first built. If you don't call this function at all, and you just supplied a Span to create the diagnostic, then the snippet will just include that Span, which is called the primary span.

Convenience function for internal use, clients should use one of the struct_* methods on Handler.

Convenience function for internal use, clients should use one of the struct_* methods on Handler.

Creates a new DiagnosticBuilder with an already constructed diagnostic.

Methods from Deref<Target = Diagnostic>

Cancel the diagnostic (a structured diagnostic must either be emitted or canceled or it will panic when dropped).

Add a span/label to be included in the resulting snippet. This is pushed onto the MultiSpan that was created when the diagnostic was first built. If you don't call this function at all, and you just supplied a Span to create the diagnostic, then the snippet will just include that Span, which is called the primary span.

Prints out a message with a suggested edit of the code. If the suggestion is presented inline it will only show the text message and not the text.

See CodeSuggestion for more information.

Prints out a message with a suggested edit of the code.

In case of short messages and a simple suggestion, rustc displays it as a label like

"try adding parentheses: (tup.0).1"

The message

  • should not end in any punctuation (a : is added automatically)
  • should not be a question
  • should not contain any parts like "the following", "as shown"
  • may look like "to do xyz, use" or "to do xyz, use abc"
  • may contain a name of a function, variable or type, but not whole expressions

See CodeSuggestion for more information.

Prints out a message with multiple suggested edits of the code.

This is a suggestion that may contain mistakes or fillers and should be read and understood by a human.

Used by a lint. Copies over all details but the "main message".

Convenience function for internal use, clients should use one of the public methods above.

Trait Implementations

impl<'a> Clone for DiagnosticBuilder<'a>
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl<'a> Deref for DiagnosticBuilder<'a>
[src]

The resulting type after dereferencing.

Dereferences the value.

impl<'a> DerefMut for DiagnosticBuilder<'a>
[src]

Mutably dereferences the value.

impl<'a> Debug for DiagnosticBuilder<'a>
[src]

Formats the value using the given formatter. Read more

impl<'a> Drop for DiagnosticBuilder<'a>
[src]

Destructor bomb - a DiagnosticBuilder must be either emitted or canceled or we emit a bug.

Executes the destructor for this type. Read more

Auto Trait Implementations

impl<'a> !Send for DiagnosticBuilder<'a>

impl<'a> !Sync for DiagnosticBuilder<'a>