panic when formatting `de::Error` (with feature `custom-error-messages`)
t-moe opened this issue · 0 comments
t-moe commented
I'm getting a panic in impl de::Error for Error when the feature custom-error-messages is enabled
Lines 765 to 784 in ca67457
The panic occurs on the line: write!(string, "{:.64}", msg).unwrap()
when it tries to format an error message like
unknown variant
a1, expected one ofb2,b3,b4,b5,b6,b7
The panic occurs because serde uses format_args!
Error::custom(format_args!(
"unknown variant `{}`, expected {}",
variant,
OneOf { names: expected }
))and format_args! cannot be be truncated using specified precision.
See the following simplified reproducer, generates the same panic:
let x = serde_json_core::de::Error::custom(format_args!(
"unknown variant `{}`, expected {}",
"a",
"one of bbbbbbbbbbbbbbbbbbbbbbbbb,ccccccccccccccccccc,ddddddddddddddddddddddddd,eeeeeeeeee"
));
error!("{:?}", x);