pub trait SpanDiagnosticExt {
    // Required methods
    fn error<T: Into<String>>(self, message: T) -> Diagnostic;
    fn warning<T: Into<String>>(self, message: T) -> Diagnostic;
    fn note<T: Into<String>>(self, message: T) -> Diagnostic;
    fn help<T: Into<String>>(self, message: T) -> Diagnostic;
}
Expand description

Extension trait for proc_macro2::Span emulating the proc-macro diagnostic API on stable and nightly.

Example

use proc_macro2::Span;
use proc_macro2_diagnostics::SpanDiagnosticExt;

let span = Span::call_site();
let diag = span.error("there's a problem here...");

// emit into an expression context.
let tokens = diag.emit_as_expr_tokens();

// or emit into an item context.
let tokens = diag.emit_as_item_tokens();

Required Methods§

source

fn error<T: Into<String>>(self, message: T) -> Diagnostic

Create a new Diagnostic of the kind of this method’s name with the span self.

source

fn warning<T: Into<String>>(self, message: T) -> Diagnostic

Create a new Diagnostic of the kind of this method’s name with the span self.

source

fn note<T: Into<String>>(self, message: T) -> Diagnostic

Create a new Diagnostic of the kind of this method’s name with the span self.

source

fn help<T: Into<String>>(self, message: T) -> Diagnostic

Create a new Diagnostic of the kind of this method’s name with the span self.

Implementations on Foreign Types§

source§

impl SpanDiagnosticExt for Span

source§

fn error<T: Into<String>>(self, message: T) -> Diagnostic

source§

fn warning<T: Into<String>>(self, message: T) -> Diagnostic

source§

fn note<T: Into<String>>(self, message: T) -> Diagnostic

source§

fn help<T: Into<String>>(self, message: T) -> Diagnostic

Implementors§