mtshiba/pylyzer

operator.itemgetterを使うとエラーになる

Opened this issue · 0 comments

以下のファイルで使おうとするとpanicが発生しました。
https://github.com/sei40kr/yonvim/blob/main/packages/yonvim/plugins/plugins.py

以下NeovimのLSPログです:

[ERROR][2023-11-06 03:11:27] .../vim/lsp/rpc.lua:734	"rpc"	"/etc/profiles/per-user/sei40kr/bin/pylyzer"	"stderr"	"thread 'pylyzer' panicked at 'called `Option::unwrap()` on a `None` value', /build/pylyzer-0.0.49-vendor.tar.gz/erg_compiler/lower.rs:1341:38\nnote: run with `RUST_BACKTRACE=1` environment variable to display a backtrace\n"
[ERROR][2023-11-06 03:11:27] .../vim/lsp/rpc.lua:734	"rpc"	"/etc/profiles/per-user/sei40kr/bin/pylyzer"	"stderr"	"Thread panicked: Any { .. }\n"

スクリプトを書き換えながらパースに失敗している部分を検証したところ、どうやら operator.itemgetter の部分がパースに失敗しているようです。
https://github.com/sei40kr/yonvim/blob/main/packages/yonvim/plugins/plugins.py#L203

該当箇所2行を削除すると正常に実行できました。
同じエラーを発生される最小コードはこちらになります。

import operator

foo = {
    "a": 1,
    "b": 2,
}

a, b = operator.itemgetter("a", "b")(foo)