sourcepawn-vscode icon indicating copy to clipboard operation
sourcepawn-vscode copied to clipboard

Request textDocument/hover failed (index out of bounds)

Open MAGNAT2645 opened this issue 8 months ago • 8 comments

Basic informations

  • OS: [Arch Linux]
  • VSCodium version: Latest
  • Extension version: Latest

Further Information

Very often I see Request textDocument/hover failed error when hovering at something. For example:

#define cast(%0,%1) view_as<%0>(%1)
#define _INT(%0)    cast( int, %0 )
#define THIS_INDEX  _INT( this )

#if defined _aon_store_inventory_included
methodmap ISmiteBossPlayer < StorePlayer
#else
methodmap ISmiteBossPlayer
#endif
{
    public void SmiteArea(AbilityData abilityData) // error when hovering at SmiteArea and abilityData
    {
        float aimPosition[3]; // error when hovering at aimPosition
        GetClientAimPosition(THIS_INDEX, aimPosition); // here hovering at aimPosition works fine
        
...

But same code does not throw such errors if you move it to the main file.

Panic context:
> 
version: 0.13.0
request: textDocument/hover HoverParams {
    text_document_position_params: TextDocumentPositionParams {
        text_document: TextDocumentIdentifier {
            uri: Url {
                scheme: "file",
                cannot_be_a_base: false,
                username: "",
                password: None,
                host: None,
                port: None,
                path: "/home/ivan/GitHub/AON/FF2_AbilityPack1/scripting/aon/ff2_aon_pack1/smite.sp",
                query: None,
                fragment: None,
            },
        },
        position: Position {
            line: 8,
            character: 18,
        },
    },
    work_done_progress_params: WorkDoneProgressParams {
        work_done_token: None,
    },
}

thread 'Worker' panicked at crates/hir-def/src/ast_id_map.rs:207:19:
index out of bounds: the len is 291 but the index is 496
stack backtrace:
   0:     0x597075ad6d12 - std::backtrace_rs::backtrace::libunwind::trace::he4ee80166a02c846
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
   1:     0x597075ad6d12 - std::backtrace_rs::backtrace::trace_unsynchronized::h476faccf57e88641
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x597075ad6d12 - std::sys_common::backtrace::_print_fmt::h430c922a77e7a59c
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:68:5
   3:     0x597075ad6d12 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hffecb437d922f988
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x597075b04a7c - core::fmt::rt::Argument::fmt::hf3df69369399bfa9
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/fmt/rt.rs:142:9
   5:     0x597075b04a7c - core::fmt::write::hd9a8d7d029f9ea1a
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/fmt/mod.rs:1153:17
   6:     0x597075ad361f - std::io::Write::write_fmt::h0e1226b2b8d973fe
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/io/mod.rs:1843:15
   7:     0x597075ad6ae4 - std::sys_common::backtrace::_print::hd2df4a083f6e69b8
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:47:5
   8:     0x597075ad6ae4 - std::sys_common::backtrace::print::he907f6ad7eee41cb
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:34:9
   9:     0x597075ad868b - std::panicking::default_hook::{{closure}}::h3926193b61c9ca9b
  10:     0x597075ad83e3 - std::panicking::default_hook::h25ba2457dea68e65
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:292:9
  11:     0x5970758cf4d4 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hb56d6207bc7c5eee
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/boxed.rs:2034:9
  12:     0x5970758cf4d4 - stdx::panic_context::PanicContext::init::{{closure}}::{{closure}}::h583ebea7f0e533b4
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/stdx/src/panic_context.rs:31:17
  13:     0x5970758cf4d4 - stdx::panic_context::with_ctx::{{closure}}::h67057e5f73f92263
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/stdx/src/panic_context.rs:48:20
  14:     0x5970758cf4d4 - std::thread::local::LocalKey<T>::try_with::h6258b3304cf9f68c
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/thread/local.rs:284:16
  15:     0x5970758cf4d4 - std::thread::local::LocalKey<T>::with::h59c2abb143e6b391
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/thread/local.rs:260:9
  16:     0x5970758cf4d4 - stdx::panic_context::with_ctx::hca5841cf8cfab3ef
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/stdx/src/panic_context.rs:48:9
  17:     0x5970758cf4d4 - stdx::panic_context::PanicContext::init::{{closure}}::h3d497e5f9af2d848
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/stdx/src/panic_context.rs:24:13
  18:     0x597075ad8cc0 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h022ca2c0d8c21c9e
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/boxed.rs:2034:9
  19:     0x597075ad8cc0 - std::panicking::rust_panic_with_hook::h0ad14d90dcf5224f
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:783:13
  20:     0x597075ad8a02 - std::panicking::begin_panic_handler::{{closure}}::h4a1838a06f542647
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:657:13
  21:     0x597075ad71e6 - std::sys_common::backtrace::__rust_end_short_backtrace::h77cc4dc3567ca904
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:171:18
  22:     0x597075ad8734 - rust_begin_unwind
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:645:5
  23:     0x59707503f625 - core::panicking::panic_fmt::h940d4fd01a4b4fd1
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/panicking.rs:72:14
  24:     0x59707503f812 - core::panicking::panic_bounds_check::h9bb22f08a42e1ac8
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/panicking.rs:209:5
  25:     0x5970757d235d - <hir_def::MethodmapId as hir_def::child_by_source::ChildBySource>::child_by_source_to::{{closure}}::hfce39000ce197306
  26:     0x5970757d235d - core::iter::traits::iterator::Iterator::for_each::call::{{closure}}::h02c6043e8f46de22
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/iter/traits/iterator.rs:814:29
  27:     0x5970757d235d - core::iter::adapters::map::map_fold::{{closure}}::hc443969d458050ff
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/iter/adapters/map.rs:89:21
  28:     0x5970757d235d - <core::iter::adapters::enumerate::Enumerate<I> as core::iter::traits::iterator::Iterator>::fold::enumerate::{{closure}}::h90c484b47d738f57
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/iter/adapters/enumerate.rs:107:27
  29:     0x5970757d235d - <core::slice::iter::Iter<T> as core::iter::traits::iterator::Iterator>::fold::hf99219caf056cd0d
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/slice/iter/macros.rs:232:27
  30:     0x5970757d235d - <core::iter::adapters::enumerate::Enumerate<I> as core::iter::traits::iterator::Iterator>::fold::h37371acd2be708f7
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/iter/adapters/enumerate.rs:113:9
  31:     0x5970757d235d - <core::iter::adapters::map::Map<I,F> as core::iter::traits::iterator::Iterator>::fold::hd1e82a559a3b956c
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/iter/adapters/map.rs:129:19
  32:     0x5970757d235d - core::iter::traits::iterator::Iterator::for_each::h2b35cf70c7c0d468
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/iter/traits/iterator.rs:817:14
  33:     0x5970757d235d - <hir_def::MethodmapId as hir_def::child_by_source::ChildBySource>::child_by_source_to::h75b6d5c2342ac867
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/hir-def/src/child_by_source.rs:155:27
  34:     0x59707578e6bc - hir_def::child_by_source::ChildBySource::child_by_source::h0081bcaaebb813f2
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/hir-def/src/child_by_source.rs:15:9
  35:     0x59707578e6bc - hir::source_to_def::ChildContainer::child_by_source::h08d6b6781a789914
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/hir/src/source_to_def.rs:223:48
  36:     0x59707578e6bc - hir::source_to_def::SourceToDefCtx::cache_for::{{closure}}::h09ac0b994feb47b3
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/hir/src/source_to_def.rs:101:32
  37:     0x59707578e6bc - std::collections::hash::map::Entry<K,V>::or_insert_with::hca99bc3cb3fb4f3f
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/collections/hash/map.rs:2666:43
  38:     0x59707578e6bc - hir::source_to_def::SourceToDefCtx::cache_for::ha2bd7d6054e796c7
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/hir/src/source_to_def.rs:99:9
  39:     0x59707578e6bc - hir::source_to_def::SourceToDefCtx::dyn_map::h4d2835d42d37b9f0
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/hir/src/source_to_def.rs:94:14
  40:     0x59707578ea54 - hir::source_to_def::SourceToDefCtx::to_def::h4a13553f5f5ae4d7
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/hir/src/source_to_def.rs:89:9
  41:     0x59707578ea54 - hir::source_to_def::SourceToDefCtx::fn_to_def::hfddab534321855c0
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/hir/src/source_to_def.rs:27:9
  42:     0x59707578ea54 - hir::source_to_def::SourceToDefCtx::find_container::hcbaa42e298a0d648
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/hir/src/source_to_def.rs:123:25
  43:     0x59707578e244 - hir::source_to_def::SourceToDefCtx::local_to_def::hd5418c859f8b4055
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/hir/src/source_to_def.rs:73:25
  44:     0x59707578b3fc - hir::semantics::SemanticsImpl::local_to_def::{{closure}}::h1ff635a6402d5f3c
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/hir/src/semantics.rs:777:33
  45:     0x59707578b3fc - hir::semantics::SemanticsImpl::with_ctx::h362d4a6790092f21
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/hir/src/semantics.rs:796:9
  46:     0x59707578b3fc - hir::semantics::SemanticsImpl::local_to_def::h223f68f4f5259196
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/hir/src/semantics.rs:777:13
  47:     0x59707572dd22 - hir::semantics::Semantics<DB>::find_name_def::he99a1b65a024cbca
  48:     0x597075731bfb - hir::semantics::Semantics<DB>::find_def::h45ade3c9def0c60c
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/hir/src/semantics.rs:256:28
  49:     0x597075714381 - ide::hover::hover::h21d3863c19304d5a
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/ide/src/hover.rs:124:15
  50:     0x597075718114 - ide::Analysis::hover::{{closure}}::hbbbc325d790b5f90
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/ide/src/lib.rs:236:27
  51:     0x597075718114 - ide::Analysis::with_db::{{closure}}::h41d561797f3c6d97
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/ide/src/lib.rs:193:29
  52:     0x597075718114 - std::panicking::try::do_call::h7b7f01cd6974488a
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:552:40
  53:     0x597075718114 - std::panicking::try::hd5f59449d1fcfdf0
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:516:19
  54:     0x5970757070da - std::panic::catch_unwind::h52143aa3ff26e7bd
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panic.rs:146:14
  55:     0x5970757070da - salsa::Cancelled::catch::ha26d3f3421da51f9
                               at /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/salsa-0.17.0-pre.2/src/lib.rs:586:15
  56:     0x5970757070da - ide::Analysis::with_db::hf0e49f0e86465b7c
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/ide/src/lib.rs:193:9
  57:     0x5970757070da - ide::Analysis::hover::hdcd6f18e1844c8cd
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/ide/src/lib.rs:236:14
  58:     0x5970755db30a - sourcepawn_lsp::handlers::request::handle_hover::h9c543d67917aa17c
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/sourcepawn_lsp/src/handlers/request.rs:173:22
  59:     0x597075680eef - sourcepawn_lsp::dispatch::RequestDispatcher::on_with_thread_intent::{{closure}}::{{closure}}::he322c728bece43d3
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/sourcepawn_lsp/src/dispatch.rs:102:17
  60:     0x597075680eef - std::panicking::try::do_call::h6f4d90038a7c1a02
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:552:40
  61:     0x597075680eef - std::panicking::try::had30fc3d5734a00a
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:516:19
  62:     0x5970755cdfe4 - std::panic::catch_unwind::ha38a3adcabea96e1
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panic.rs:146:14
  63:     0x5970755cdfe4 - sourcepawn_lsp::dispatch::RequestDispatcher::on_with_thread_intent::{{closure}}::h37486bb285c18d3a
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/sourcepawn_lsp/src/dispatch.rs:100:26
  64:     0x5970755cdfe4 - sourcepawn_lsp::task_pool::TaskPool<T>::spawn::{{closure}}::h318dd4a47535d754
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/sourcepawn_lsp/src/task_pool.rs:27:33
  65:     0x5970755cdfe4 - stdx::thread::pool::Pool::spawn::{{closure}}::h1f1c6b8381878ea8
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/stdx/src/thread/pool.rs:86:13
  66:     0x5970755cdfe4 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h11511db13d3b3d1f
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/ops/function.rs:250:5
  67:     0x5970758d0696 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hab106628e811be0f
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/boxed.rs:2020:9
  68:     0x5970758d0696 - stdx::thread::pool::Pool::new::{{closure}}::hbf0dee2e1a441397
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/stdx/src/thread/pool.rs:61:29
  69:     0x5970758d0696 - stdx::thread::Builder::spawn::{{closure}}::hb8e791cd5b562a07
                               at /home/runner/work/sourcepawn-vscode/sourcepawn-vscode/crates/stdx/src/thread.rs:81:13
  70:     0x5970758d0696 - std::sys_common::backtrace::__rust_begin_short_backtrace::h29b269dddb55ac38
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys_common/backtrace.rs:155:18
  71:     0x5970758d22d0 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::hf0016d1d73fb8769
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/thread/mod.rs:528:17
  72:     0x5970758d22d0 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h5f5de60de76d136b
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/panic/unwind_safe.rs:272:9
  73:     0x5970758d22d0 - std::panicking::try::do_call::h9ceea470b540080a
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:552:40
  74:     0x5970758d22d0 - std::panicking::try::h0f36e86c17c34251
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panicking.rs:516:19
  75:     0x5970758d22d0 - std::panic::catch_unwind::h11cec82157e19d69
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/panic.rs:146:14
  76:     0x5970758d22d0 - std::thread::Builder::spawn_unchecked_::{{closure}}::h756d5d2b483a208f
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/thread/mod.rs:527:30
  77:     0x5970758d22d0 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h21b9e0526fd9494b
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/core/src/ops/function.rs:250:5
  78:     0x597075ade585 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h19b9e642d37e7272
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/boxed.rs:2020:9
  79:     0x597075ade585 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h97265befc434d3ae
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/alloc/src/boxed.rs:2020:9
  80:     0x597075ade585 - std::sys::pal::unix::thread::Thread::new::thread_start::h420dad5cf01a9f35
                               at /rustc/9b00956e56009bab2aa15d7bff10916599e3d6d6/library/std/src/sys/pal/unix/thread.rs:108:17
  81:     0x717f0f542ded - <unknown>
  82:     0x717f0f5c60dc - <unknown>
  83:                0x0 - <unknown>
[Error - 14:05:14] Request textDocument/hover failed.
  Message: request handler panicked: index out of bounds: the len is 291 but the index is 496
  Code: -32603

Same index out of bounds error happens with Request textDocument/completion failed. This seems to happen only with methodmaps. didn't notice same errors for regular functions/callbacks.

Code to reproduce the behaviour

This is enough to reproduce the bug. This code must be moved to separate file for bug to appear.

#if defined _aon_store_inventory_included
methodmap ISmiteBossPlayer < StorePlayer
#else
methodmap ISmiteBossPlayer
#endif
{
    public void SmiteArea(AbilityData abilityData)
    {
        float aimPosition[3];
        GetClientAimPosition(client, aimPosition);
    }
}

Error messages

  ERR request handler panicked: index out of bounds: the len is 44 but the index is 496: Error: request handler panicked: index out of bounds: the len is 44 but the index is 496
    at handleResponse (/home/ivan/.vscode-oss/extensions/sarrus.sourcepawn-vscode-7.2.11/node_modules/vscode-jsonrpc/lib/common/connection.js:565:48)
    at handleMessage (/home/ivan/.vscode-oss/extensions/sarrus.sourcepawn-vscode-7.2.11/node_modules/vscode-jsonrpc/lib/common/connection.js:345:13)
    at processMessageQueue (/home/ivan/.vscode-oss/extensions/sarrus.sourcepawn-vscode-7.2.11/node_modules/vscode-jsonrpc/lib/common/connection.js:362:17)
    at Immediate.<anonymous> (/home/ivan/.vscode-oss/extensions/sarrus.sourcepawn-vscode-7.2.11/node_modules/vscode-jsonrpc/lib/common/connection.js:334:13)
    at processImmediate (node:internal/timers:478:21)

MAGNAT2645 avatar Jun 12 '24 09:06 MAGNAT2645