[Bug]: C#: calls through a cast, an interface-typed property, `?.`, or a partial class's other file are dropped without being listed as unresolved
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 50/100
調査の方向性
Start with the four-file C# reproduction in Store.cs, Window.cs, Editor.cs, and EditorTarget.cs, focusing on the Run entry point and the dropped calls. Trace the C# call-resolution path for cast, interface-typed property, conditional-access, and partial-class receivers. Done means the expected calls edges are emitted, or each unresolved call appears in unresolved_calls.
索引モデルが issue の本文から書いたものです。
説明
What happened?
When the caller and callee live in different files, several common receiver shapes produce no
calls edge at all, and the call is also missing from the caller's unresolved_calls metadata,
so the gap is invisible. The same shapes do resolve when everything is in one file.
Steps to reproduce
Repro — four files:
`Store.cs`
namespace Demo
{
public interface IStore { void Save(); }
public class Store : IStore
{
public void Save() { }
}
}
`Window.cs`
namespace Demo
{
public class Window
{
public void Refresh() { }
public void SetTarget(object o) { }
}
}
`Editor.cs`
namespace Demo
{
public partial class Editor
{
object _obj;
Window _window;
IStore Store => (IStore)_obj;
public void Run()
{
((IStore)_obj).Save(); // cast receiver
Store.Save(); // interface-typed property receiver
_window?.Refresh(); // conditional access on a typed field
SetTarget(_obj); // implicit this; defined in the other partial file
}
}
}
`EditorTarget.cs`
namespace Demo
{
public partial class Editor
{
void SetTarget(object o) { }
}
}
Error output or graph output
Actual: `editor_demo_editor_run` has **no** outgoing `calls` edges and no `unresolved_calls`
entries. (The `IStore.Save --dispatches_to--> Store.Save` edge from #3003 is present, but nothing
reaches `IStore.Save`, so a walk from `Run` never gets there.)
Expected: `Run --calls--> IStore.Save()` (twice collapsing to one), `Run --calls-->
Window.Refresh()`, `Run --calls--> Editor.SetTarget()`; or, at minimum, each dropped call listed
in `unresolved_calls` like other unresolved calls are.
Why it matters: in a codebase whose editor assembly reaches the runtime only through interfaces
(`((IFoo)x).M()` and `Ed.M()` through an `IFoo Ed => (IFoo)_x;` property are the idiom), the main
cross-assembly interface had zero incoming calls. A local post-pass that types these receivers
recovered about 600 call edges on ~120 files, and about 4,000 of the call sites it resolved
matched edges graphify already had.
Graphify version
No response
Environment
graphify 0.9.67 (pip graphifyy), Python 3.13.1, Windows 10 (10.0.19045)
Additional context
No response
- 主要言語
- Python
- スター
- 124k
- フォーク
- 11.9k
- PR マージ指標
- 30日以内にマージされた PR はありません
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Graphify-Labs/graphify のほかの issue
-
hooks: last-resort `python3` probe launches the Microsoft Store redirector on Windows (visible console flash, exit 9009)対応中かも @Deepjyoti-Sarmah が 7 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
Graphify-Labs/graphify#4563 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
GRAPHIFY_DISABLE_THINKING is ignored by the claude backend, so thinking eats max_tokens and extraction truncates対応中かも @bercedev が 8 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 69/100
Graphify-Labs/graphify#4546 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
--update runbook: graph.json backup instruction comes after the diff that needs it, so the graph diff never runs対応中かも @sunildivakar96-cpu が 8 日前に担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
Graphify-Labs/graphify#4539 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
[Bug] Pi skill uses unsupported general-purpose subagent instead of delegate再び着手できるかも @bercedev が 10 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
Graphify-Labs/graphify#4494 · コメント 7 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
Graphify-Labs/graphify#3763 ·
メンテナーはふだん 1 日以内に返信
Graphify-Labs/graphify の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
scikit-learn-contrib/category_encoders#553 ·
メンテナーはふだん 1 日以内に返信
-
tests/strategies_test.py:174 goes uncovered on about 1 run in 100, failing the coverage ratchetオープンflaky-watch
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
btclib-org/btclib#2839 ·
メンテナーはふだん 1 日以内に返信
-
BarrelList constructor drops false-valued iterable contents対応中かも @Gambit-Checkmate が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 19 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
vllm-project/vllm#63863 ·
メンテナーはふだん 1 日以内に返信