diff options
| author | Valentin Popov <valentin@popov.link> | 2026-06-23 21:32:50 +0300 |
|---|---|---|
| committer | Valentin Popov <valentin@popov.link> | 2026-06-23 21:32:50 +0300 |
| commit | 9cc24e715db81edbe21c0d04aadd00f11dddecb8 (patch) | |
| tree | 08a1262dea86bcd7ec58c6494cedd001c45a78fe /crates/fparkan-diagnostics | |
| parent | f8e447ffee746cfe6580cc0e78a8a225aa39b546 (diff) | |
| download | fparkan-9cc24e715db81edbe21c0d04aadd00f11dddecb8.tar.xz fparkan-9cc24e715db81edbe21c0d04aadd00f11dddecb8.zip | |
fix: close stage 0-2 synthetic gates
Diffstat (limited to 'crates/fparkan-diagnostics')
| -rw-r--r-- | crates/fparkan-diagnostics/src/lib.rs | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/crates/fparkan-diagnostics/src/lib.rs b/crates/fparkan-diagnostics/src/lib.rs index 2131336..f0228ec 100644 --- a/crates/fparkan-diagnostics/src/lib.rs +++ b/crates/fparkan-diagnostics/src/lib.rs @@ -1,4 +1,23 @@ #![forbid(unsafe_code)] +#![cfg_attr( + test, + allow( + clippy::cast_possible_truncation, + clippy::cast_possible_wrap, + clippy::cast_precision_loss, + clippy::expect_used, + clippy::float_cmp, + clippy::identity_op, + clippy::too_many_lines, + clippy::uninlined_format_args, + clippy::map_unwrap_or, + clippy::needless_raw_string_hashes, + clippy::semicolon_if_nothing_returned, + clippy::type_complexity, + clippy::panic, + clippy::unwrap_used + ) +)] //! Structured diagnostics shared by `FParkan` crates. use serde::Serialize; @@ -76,14 +95,19 @@ pub struct DiagnosticCode(pub &'static str); #[derive(Clone, Debug, Default, Eq, PartialEq, Serialize)] pub struct DiagnosticContext { /// Phase. + #[serde(skip_serializing_if = "Option::is_none")] pub phase: Option<Phase>, /// Redacted or logical path. + #[serde(skip_serializing_if = "Option::is_none")] pub path: Option<String>, /// Archive entry name. + #[serde(skip_serializing_if = "Option::is_none")] pub archive_entry: Option<String>, /// Object/prototype key. + #[serde(skip_serializing_if = "Option::is_none")] pub object_key: Option<String>, /// Input span. + #[serde(skip_serializing_if = "Option::is_none")] pub span: Option<SourceSpan>, } @@ -218,7 +242,7 @@ mod tests { let value = diagnostic(DiagnosticCode("S1-H01"), "quote\"\u{0000}tab\tline\r\n"); let json = render_json(&value); assert!(json.contains("\\u0000")); - assert!(json.contains("\\u0009")); + assert!(json.contains("\\t")); assert!(!json.contains('\t')); assert!(!json.contains('\r')); } |
