]> git.lizzy.rs Git - rust.git/blob - crates/hir_def/src/body/diagnostics.rs
Merge #8882
[rust.git] / crates / hir_def / src / body / diagnostics.rs
1 //! Diagnostics emitted during body lowering.
2
3 use hir_expand::diagnostics::DiagnosticSink;
4
5 use crate::diagnostics::{InactiveCode, MacroError, UnresolvedMacroCall, UnresolvedProcMacro};
6
7 #[derive(Debug, Eq, PartialEq)]
8 pub(crate) enum BodyDiagnostic {
9     InactiveCode(InactiveCode),
10     MacroError(MacroError),
11     UnresolvedProcMacro(UnresolvedProcMacro),
12     UnresolvedMacroCall(UnresolvedMacroCall),
13 }
14
15 impl BodyDiagnostic {
16     pub(crate) fn add_to(&self, sink: &mut DiagnosticSink<'_>) {
17         match self {
18             BodyDiagnostic::InactiveCode(diag) => {
19                 sink.push(diag.clone());
20             }
21             BodyDiagnostic::MacroError(diag) => {
22                 sink.push(diag.clone());
23             }
24             BodyDiagnostic::UnresolvedProcMacro(diag) => {
25                 sink.push(diag.clone());
26             }
27             BodyDiagnostic::UnresolvedMacroCall(diag) => {
28                 sink.push(diag.clone());
29             }
30         }
31     }
32 }