Skip to content

Trailing comments causes the extension to panic #867

Description

@ilyvion

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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions