//! Errors emitted by symbol_mangling. use rustc_errors::{DiagnosticArgValue, IntoDiagnosticArg}; use rustc_macros::Diagnostic; use rustc_span::Span; #[derive(Diagnostic)] #[diag(symbol_mangling_test_output)] pub struct TestOutput { #[primary_span] pub span: Span, pub kind: Kind, pub content: String, } pub enum Kind { SymbolName, Demangling, DemanglingAlt, DefPath, } impl IntoDiagnosticArg for Kind { fn into_diagnostic_arg(self) -> DiagnosticArgValue<'static> { let kind = match self { Kind::SymbolName => "symbol-name", Kind::Demangling => "demangling", Kind::DemanglingAlt => "demangling-alt", Kind::DefPath => "def-path", } .into(); DiagnosticArgValue::Str(kind) } }