Open mcecode opened 4 days ago
Seems like it also occurs when adding a comment at the end of the file:
print("Hello, World!")
--
Or when adding a comment at the end of the line at the end of the file:
print("Hello, World!") --
Upon testing, it occurs for these languages:
But not in these:
#
, but for some reason entering //
causes the panic)It also doesn't seem to affect HTML and Markdown files, but the comments on those files don't get checked so that might be expected.
I can't check for Python and Bash/Sh at the moment because the VSCode extension has a problem with sending/communicating those to harper-ls
, which is what I was working on when I discovered this bug.
Thanks for the incredibly detailed report. I'm actually unable to replicate the issue in either integration tests, in Neovim or in VSCode. Would you mind making sure you're using the latest version of the VSCode plugin (or perhaps pull and recompile, if that's your m.o.).
If the problem persists, reinstall the binary with debug symbols enabled and give us your backtrace again.
Should be something like:
cargo install --path harper-ls --debug
Hi, yup, I'm using the latest version of the VSCode extension/harper-ls, 0.12.0.
I compiled the latest commit with debug symbols enabled, here's the backtrace:
thread 'main' panicked at harper-core/src/span.rs:58:38:
called `Option::unwrap()` on a `None` value
stack backtrace:
0: 0x572dd83c92fa - std::backtrace_rs::backtrace::libunwind::trace::h99efb0985cae5d78
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/../../backtrace/src/backtrace/libunwind.rs:116:5
1: 0x572dd83c92fa - std::backtrace_rs::backtrace::trace_unsynchronized::he2c1aa63b3f7fad8
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x572dd83c92fa - std::sys::backtrace::_print_fmt::h8a221d40f5e0f88b
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/sys/backtrace.rs:66:9
3: 0x572dd83c92fa - <std::sys::backtrace::BacktraceLock::print::DisplayBacktrace as core::fmt::Display>::fmt::h304520fd6a30aa07
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/sys/backtrace.rs:39:26
4: 0x572dd83f30fb - core::fmt::rt::Argument::fmt::h5da9c218ec984eaf
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/fmt/rt.rs:177:76
5: 0x572dd83f30fb - core::fmt::write::hf5713710ce10ff22
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/fmt/mod.rs:1178:21
6: 0x572dd83c5df3 - std::io::Write::write_fmt::hda708db57927dacf
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/io/mod.rs:1823:15
7: 0x572dd83ca662 - std::sys::backtrace::BacktraceLock::print::hbcdbec4d97c91528
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/sys/backtrace.rs:42:9
8: 0x572dd83ca662 - std::panicking::default_hook::{{closure}}::he1ad87607d0c11c5
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:266:22
9: 0x572dd83ca2ce - std::panicking::default_hook::h81c8cd2e7c59ee33
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:293:9
10: 0x572dd83caeef - std::panicking::rust_panic_with_hook::had2118629c312a4a
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:797:13
11: 0x572dd83caba3 - std::panicking::begin_panic_handler::{{closure}}::h7fa5985d111bafa2
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:664:13
12: 0x572dd83c97d9 - std::sys::backtrace::__rust_end_short_backtrace::h704d151dbefa09c5
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/sys/backtrace.rs:170:18
13: 0x572dd83ca864 - rust_begin_unwind
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:662:5
14: 0x572dd77922d3 - core::panicking::panic_fmt::h3eea515d05f7a35e
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/panicking.rs:74:14
15: 0x572dd779235c - core::panicking::panic::h102d65dbfa674afe
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/panicking.rs:148:5
16: 0x572dd7792239 - core::option::unwrap_failed::hfd32652cc6017653
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/option.rs:2015:5
17: 0x572dd8206334 - core::option::Option<T>::unwrap::h731ee728247f0b7f
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/option.rs:965:21
18: 0x572dd8206334 - harper_core::span::Span::get_content::h9f94cb0f9cc73a6e
at /home/runner/work/harper/harper/harper-core/src/span.rs:58:9
19: 0x572dd82104a4 - harper_core::patterns::sequence_pattern::SequencePattern::then_any_word_in::{{closure}}::hee241d43ad6adc86
at /home/runner/work/harper/harper/harper-core/src/patterns/sequence_pattern.rs:93:33
20: 0x572dd82115d3 - <F as harper_core::patterns::Pattern>::matches::h22cd535334b0b096
at /home/runner/work/harper/harper/harper-core/src/patterns/mod.rs:89:12
21: 0x572dd8210800 - <harper_core::patterns::sequence_pattern::SequencePattern as harper_core::patterns::Pattern>::matches::h589efe4c1051dcd5
at /home/runner/work/harper/harper/harper-core/src/patterns/sequence_pattern.rs:112:32
22: 0x572dd7b9c252 - harper_core::linting::pattern_linter::<impl harper_core::linting::Linter for L>::lint::h6260e3207a1c840a
at /home/runner/work/harper/harper/harper-core/src/linting/pattern_linter.rs:35:33
23: 0x572dd7a6c3dd - <harper_core::linting::lint_group::LintGroup<T> as harper_core::linting::Linter>::lint::h1d4f09e30d0e3a31
at /home/runner/work/harper/harper/harper-core/src/linting/lint_group.rs:95:47
24: 0x572dd7b4c3b1 - harper_ls::backend::Backend::generate_diagnostics::{{closure}}::h3e03e6c3099ce053
at /home/runner/work/harper/harper/harper-ls/src/backend.rs:274:21
25: 0x572dd7b4c98b - harper_ls::backend::Backend::publish_diagnostics::{{closure}}::hfb7b5113e5a0991c
at /home/runner/work/harper/harper/harper-ls/src/backend.rs:285:58
26: 0x572dd7b53210 - <harper_ls::backend::Backend as tower_lsp::LanguageServer>::did_change::{{closure}}::he119fe097c623f5f
at /home/runner/work/harper/harper/harper-ls/src/backend.rs:396:61
27: 0x572dd7ad24f3 - <core::pin::Pin<P> as core::future::future::Future>::poll::h38e931695ed50a4e
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/future/future.rs:123:9
28: 0x572dd7a22059 - tower_lsp::generated::register_lsp_methods::did_change::{{closure}}::h420f55a9956979cf
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-lsp-0.20.0/src/lib.rs:112:1
29: 0x572dd79dd7d4 - tower_lsp::jsonrpc::router::Router<S,E>::method::{{closure}}::{{closure}}::{{closure}}::h2e7f680a564a2dd4
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-lsp-0.20.0/src/jsonrpc/router.rs:58:64
30: 0x572dd7ad24f3 - <core::pin::Pin<P> as core::future::future::Future>::poll::h38e931695ed50a4e
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/future/future.rs:123:9
31: 0x572dd79eefed - <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll::h399ecf949c69d7d8
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/future/future/map.rs:55:37
32: 0x572dd7996a61 - <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll::h424fe2ee8c77b198
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/lib.rs:86:13
33: 0x572dd7ad2ccf - <core::pin::Pin<P> as core::future::future::Future>::poll::hac84917f9a87d30d
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/future/future.rs:123:9
34: 0x572dd7ad2ccf - <core::pin::Pin<P> as core::future::future::Future>::poll::hac84917f9a87d30d
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/future/future.rs:123:9
35: 0x572dd7ad2ccf - <core::pin::Pin<P> as core::future::future::Future>::poll::hac84917f9a87d30d
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/future/future.rs:123:9
36: 0x572dd7918eee - <tower_lsp::service::LspService<S> as tower_service::Service<tower_lsp::jsonrpc::request::Request>>::call::{{closure}}::h0c68c7b55605b30a
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-lsp-0.20.0/src/service.rs:124:32
37: 0x572dd7ad2ccf - <core::pin::Pin<P> as core::future::future::Future>::poll::hac84917f9a87d30d
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/future/future.rs:123:9
38: 0x572dd7ac55ba - <F as futures_core::future::TryFuture>::try_poll::h7e92dc2d7fed79d1
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-core-0.3.31/src/future.rs:92:9
39: 0x572dd7918a61 - <futures_util::future::try_future::into_future::IntoFuture<Fut> as core::future::future::Future>::poll::h839d4067920d9197
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/future/try_future/into_future.rs:34:9
40: 0x572dd79ef5f5 - <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll::h43c4674a40cc35ff
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/future/future/map.rs:55:37
41: 0x572dd79975d1 - <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll::hde72055107df7d64
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/lib.rs:86:13
42: 0x572dd7a35531 - <futures_util::future::try_future::UnwrapOrElse<Fut,F> as core::future::future::Future>::poll::h3a4bcdc5fafb37ad
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/lib.rs:86:13
43: 0x572dd7a36177 - <futures_util::stream::futures_unordered::FuturesUnordered<Fut> as futures_core::stream::Stream>::poll_next::hbc7eade77fdfe85d
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/stream/futures_unordered/mod.rs:528:17
44: 0x572dd7a3ab90 - futures_util::stream::stream::StreamExt::poll_next_unpin::h417bd443957e6fb9
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/stream/stream/mod.rs:1638:9
45: 0x572dd78b2516 - <futures_util::stream::stream::buffer_unordered::BufferUnordered<St> as futures_core::stream::Stream>::poll_next::h08ef8da042c08a79
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/stream/stream/buffer_unordered.rs:75:15
46: 0x572dd797afa0 - <futures_util::stream::stream::filter_map::FilterMap<St,Fut,F> as futures_core::stream::Stream>::poll_next::hea4a7d555c69fc1f
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/stream/stream/filter_map.rs:79:47
47: 0x572dd791750c - <futures_util::stream::stream::map::Map<St,F> as futures_core::stream::Stream>::poll_next::h54f04627e6b97f00
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/stream/stream/map.rs:58:26
48: 0x572dd78d4fd3 - <futures_util::stream::stream::fuse::Fuse<S> as futures_core::stream::Stream>::poll_next::h74a99dbd24e96215
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/stream/stream/fuse.rs:53:27
49: 0x572dd78ecfdb - <futures_util::stream::stream::forward::Forward<St,Si,Item> as core::future::future::Future>::poll::h29f8b3c47d1f03a4
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/stream/stream/forward.rs:59:19
50: 0x572dd7b172b3 - <futures_util::stream::stream::Forward<St,Si> as core::future::future::Future>::poll::h5c769596482711c0
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/lib.rs:86:13
51: 0x572dd79eff23 - <futures_util::future::future::map::Map<Fut,F> as core::future::future::Future>::poll::h44b09a4f68864275
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/future/future/map.rs:55:37
52: 0x572dd7997603 - <futures_util::future::future::Map<Fut,F> as core::future::future::Future>::poll::hde8671f7194c7baf
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/lib.rs:86:13
53: 0x572dd7b5bcdf - <futures_util::future::maybe_done::MaybeDone<Fut> as core::future::future::Future>::poll::hfe730ef9c7c31321
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/future/maybe_done.rs:95:38
54: 0x572dd7b91e8a - tower_lsp::transport::Server<I,O,L>::serve::{{closure}}::{{closure}}::h8b5b75a618eb78ca
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/async_await/join_mod.rs:95:13
55: 0x572dd78d4ab8 - <futures_util::future::poll_fn::PollFn<F> as core::future::future::Future>::poll::h14f6efe0fb308ae4
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/futures-util-0.3.31/src/future/poll_fn.rs:56:9
56: 0x572dd7b8f63c - tower_lsp::transport::Server<I,O,L>::serve::{{closure}}::h93a78c73ef8e2fd0
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tower-lsp-0.20.0/src/transport.rs:163:9
57: 0x572dd7b97106 - harper_ls::main::{{closure}}::h1a26b29b1b4550cd
at /home/runner/work/harper/harper/harper-ls/src/main.rs:53:59
58: 0x572dd798975f - tokio::runtime::park::CachedParkThread::block_on::{{closure}}::h17cb3613975d968f
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/park.rs:281:63
59: 0x572dd79887b7 - tokio::runtime::coop::with_budget::h35602da8d6c6111c
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/coop.rs:107:5
60: 0x572dd79887b7 - tokio::runtime::coop::budget::he73b10686dda15b7
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/coop.rs:73:5
61: 0x572dd79887b7 - tokio::runtime::park::CachedParkThread::block_on::h07f6f4a49ec6b873
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/park.rs:281:31
62: 0x572dd7989a53 - tokio::runtime::context::blocking::BlockingRegionGuard::block_on::h5a3e7f7857227f76
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/context/blocking.rs:66:9
63: 0x572dd7b3b6b8 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::{{closure}}::h5a7dc460f7e76b9d
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/scheduler/multi_thread/mod.rs:87:13
64: 0x572dd7a14b9d - tokio::runtime::context::runtime::enter_runtime::h9c664715c16f9aa3
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/context/runtime.rs:65:16
65: 0x572dd7b3b623 - tokio::runtime::scheduler::multi_thread::MultiThread::block_on::h7c12c5f94f701a89
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/scheduler/multi_thread/mod.rs:86:9
66: 0x572dd7aa59ee - tokio::runtime::runtime::Runtime::block_on_inner::h92e400a641c51ab6
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/runtime.rs:363:45
67: 0x572dd7aa5c66 - tokio::runtime::runtime::Runtime::block_on::h84cf226d2a5e10e9
at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/runtime/runtime.rs:335:13
68: 0x572dd7b969fe - harper_ls::main::hb40c74d32a668a21
at /home/runner/work/harper/harper/harper-ls/src/main.rs:50:5
69: 0x572dd7addc3b - core::ops::function::FnOnce::call_once::h21eed307c804f150
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/ops/function.rs:250:5
70: 0x572dd7a4638e - std::sys::backtrace::__rust_begin_short_backtrace::h09b57d067ad92c1e
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/sys/backtrace.rs:154:18
71: 0x572dd79c5b01 - std::rt::lang_start::{{closure}}::h4f4547187be0f334
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/rt.rs:164:18
72: 0x572dd83bd650 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h08ecba131ab90ec4
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/core/src/ops/function.rs:284:13
73: 0x572dd83bd650 - std::panicking::try::do_call::hf33a59fd8ce953f4
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:554:40
74: 0x572dd83bd650 - std::panicking::try::h5005ce80ce949fd8
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:518:19
75: 0x572dd83bd650 - std::panic::catch_unwind::hfbae19e2e2c5b7ed
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panic.rs:345:14
76: 0x572dd83bd650 - std::rt::lang_start_internal::{{closure}}::ha0331c3690741813
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/rt.rs:143:48
77: 0x572dd83bd650 - std::panicking::try::do_call::hcdcbdb616b4d0295
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:554:40
78: 0x572dd83bd650 - std::panicking::try::h3f2f1725a07d2256
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panicking.rs:518:19
79: 0x572dd83bd650 - std::panic::catch_unwind::h51869e04b56b2dc3
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/panic.rs:345:14
80: 0x572dd83bd650 - std::rt::lang_start_internal::h4d90db0530245041
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/rt.rs:143:20
81: 0x572dd79c5ada - std::rt::lang_start::h14a5c69ffbe68c30
at /rustc/f6e511eec7342f59a25f7c0534f1dbea00d01b14/library/std/src/rt.rs:163:17
82: 0x572dd7b97b4e - main
83: 0x77bf27429d90 - <unknown>
84: 0x77bf27429e40 - __libc_start_main
85: 0x572dd7792e4e - _start
86: 0x0 - <unknown>
Here's a video of me reproducing the issue:
How to reproduce:
file.js
.//
) on the first line.Get something like this on the output logs:
Note, there's a long backtrace because I set
RUST_BACKTRACE
tofull
.I'm not sure if this is a problem with the VSCode integration, so it'd be nice if someone using another editor can chime in to say if they can reproduce.