It appears to happen because of the debug_assert! invocation here:
|
debug_assert!( |
|
entry.comment.is_none() || entry.comment.clone().unwrap() == c |
|
); |
|
entry.comment = Some(c); |
Here's an example of the line I had that produced the panic:
[workspace.lints.clippy]
use_self = "deny" # Sometimes gives false positives; feel free to disable per-crate.
where moving it off the line to e.g. above it on its own line causes the panic to go away, and here's what the extension writes in its output log:
panicked at /Users/JounQin/Workspaces/GitHub/taplo/crates/taplo/src/formatter/mod.rs:684:25:
assertion failed: entry.comment.is_none()
Stack:
Error
at EA.G.wbg.__wbg_new_abda76e883ba8a5f (/home/alex/.vscode/extensions/tamasfe.even-better-toml-0.21.2/dist/server.js:2:4187)
at console_error_panic_hook::Error::new::hd83448d5e1a1b88a (wasm://wasm/065ed00a:wasm-function[40242]:0x1249bc2)
at console_error_panic_hook::hook_impl::h24434d5d3a31a46a (wasm://wasm/065ed00a:wasm-function[10411]:0xcf17fe)
at console_error_panic_hook::hook::hb562c91cafc2c895 (wasm://wasm/065ed00a:wasm-function[59765]:0x12e59c7)
at core::ops::function::Fn::call::h46d6beedf89bee9d (wasm://wasm/065ed00a:wasm-function[42879]:0x1275769)
at std::panicking::rust_panic_with_hook::h8e8556df5e46d2ff (wasm://wasm/065ed00a:wasm-function[20551]:0xfc8712)
at std::panicking::begin_panic_handler::{{closure}}::h142b9f459ded72d9 (wasm://wasm/065ed00a:wasm-function[25954]:0x10c54b9)
at std::sys_common::backtrace::__rust_end_short_backtrace::h1c0d3278570375be (wasm://wasm/065ed00a:wasm-function[61550]:0x12e9f20)
at rust_begin_unwind (wasm://wasm/065ed00a:wasm-function[42801]:0x12744d7)
at core::panicking::panic_fmt::hbea4287e435ed8a3 (wasm://wasm/065ed00a:wasm-function[43645]:0x1280e86)
wasm://wasm/065ed00a:1
RuntimeError: unreachable
at __rust_start_panic (wasm://wasm/065ed00a:wasm-function[63493]:0x12ec0f3)
at rust_panic (wasm://wasm/065ed00a:wasm-function[56261]:0x12dbf09)
at std::panicking::rust_panic_with_hook::h8e8556df5e46d2ff (wasm://wasm/065ed00a:wasm-function[20551]:0xfc8742)
at std::panicking::begin_panic_handler::{{closure}}::h142b9f459ded72d9 (wasm://wasm/065ed00a:wasm-function[25954]:0x10c54b9)
at std::sys_common::backtrace::__rust_end_short_backtrace::h1c0d3278570375be (wasm://wasm/065ed00a:wasm-function[61550]:0x12e9f20)
at rust_begin_unwind (wasm://wasm/065ed00a:wasm-function[42801]:0x12744d7)
at core::panicking::panic_fmt::hbea4287e435ed8a3 (wasm://wasm/065ed00a:wasm-function[43645]:0x1280e86)
at core::panicking::panic::haa9f794b7d1c74c9 (wasm://wasm/065ed00a:wasm-function[41361]:0x125d8f9)
at taplo::formatter::add_entries::hed6838edc1b01c33 (wasm://wasm/065ed00a:wasm-function[437]:0x3e5c50)
at taplo::formatter::format_root::hcac06d9d442d0aa3 (wasm://wasm/065ed00a:wasm-function[256]:0x2eb282)
It appears to happen because of the
debug_assert!invocation here:taplo/crates/taplo/src/formatter/mod.rs
Lines 690 to 693 in b673b44
Here's an example of the line I had that produced the panic:
where moving it off the line to e.g. above it on its own line causes the panic to go away, and here's what the extension writes in its output log: