Commit fc2060b
Your Name
fix(csharp): Interface registration + polymorphic BFS bridging + this.Property WRITES
Three C# code intelligence fixes:
1. Register Interface nodes in the symbol registry.
The registry filter only accepted Function/Method/Class labels. Interface
nodes were never registered, so resolve_as_class('IExamService') always
returned NULL. INHERITS edges from C# classes to their interfaces were
never created (0 → Interface out of 1588 total INHERITS in the largest
C# repo).
Fix: add 'Interface' to the registration filter in both pass_definitions.c
(sequential path) and pass_parallel.c (parallel path, cbm_build_registry_from_cache).
Additionally, in pass_semantic.c, when the resolved base type is a Class
but the name follows C# interface convention (I + uppercase), search for
an Interface node with the same name and prefer it. This handles cross-
language name collisions (e.g. C++ ILogger class vs C# ILogger interface).
Result: CometExamService → IExamService INHERITS edge now created.
2. BFS interface method bridging in trace_call_path and get_impact.
When tracing callers of a concrete method (e.g. PerformSessionAction),
BFS now also checks if the method's enclosing class INHERITS from an
Interface. If so, it finds the interface's method with the same name
and runs additional BFS from that node. This surfaces callers that use
the interface type (ISimCoordinator.PerformSessionAction) which
previously showed 0 callers.
Applied to both handle_trace_call_path (incoming.calls section) and
handle_get_impact (multi-method BFS merge).
3. Expand WRITES detection for this.Property = value.
handle_readwrites() only accepted bare identifiers as assignment LHS.
C#/Java/TypeScript this.PropertyName = value has LHS as
member_access_expression, which was skipped.
Fix: add branch for member_access_expression / member_expression LHS.
When the receiver is this/base/self, extract the property name and push
as a write. Handles C# this_expression, Java this, TypeScript this,
Python self.
Expected: hundreds of additional WRITES edges from method bodies to
class properties in C# repos.
Requires full reindex of C# repos to rebuild INHERITS edges and WRITES.1 parent 548bb3a commit fc2060b
File tree
5 files changed
+144
-4
lines changed- internal/cbm
- src
- mcp
- pipeline
5 files changed
+144
-4
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
275 | 275 | | |
276 | 276 | | |
277 | 277 | | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
278 | 310 | | |
279 | 311 | | |
280 | 312 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1604 | 1604 | | |
1605 | 1605 | | |
1606 | 1606 | | |
| 1607 | + | |
| 1608 | + | |
| 1609 | + | |
| 1610 | + | |
| 1611 | + | |
| 1612 | + | |
| 1613 | + | |
| 1614 | + | |
| 1615 | + | |
| 1616 | + | |
| 1617 | + | |
| 1618 | + | |
| 1619 | + | |
| 1620 | + | |
| 1621 | + | |
| 1622 | + | |
| 1623 | + | |
| 1624 | + | |
| 1625 | + | |
| 1626 | + | |
| 1627 | + | |
| 1628 | + | |
| 1629 | + | |
| 1630 | + | |
| 1631 | + | |
| 1632 | + | |
| 1633 | + | |
| 1634 | + | |
| 1635 | + | |
| 1636 | + | |
| 1637 | + | |
| 1638 | + | |
| 1639 | + | |
| 1640 | + | |
| 1641 | + | |
| 1642 | + | |
| 1643 | + | |
| 1644 | + | |
| 1645 | + | |
| 1646 | + | |
| 1647 | + | |
| 1648 | + | |
| 1649 | + | |
| 1650 | + | |
| 1651 | + | |
| 1652 | + | |
| 1653 | + | |
| 1654 | + | |
| 1655 | + | |
| 1656 | + | |
| 1657 | + | |
1607 | 1658 | | |
1608 | 1659 | | |
1609 | 1660 | | |
| |||
2420 | 2471 | | |
2421 | 2472 | | |
2422 | 2473 | | |
| 2474 | + | |
| 2475 | + | |
| 2476 | + | |
| 2477 | + | |
| 2478 | + | |
| 2479 | + | |
| 2480 | + | |
| 2481 | + | |
| 2482 | + | |
| 2483 | + | |
| 2484 | + | |
| 2485 | + | |
| 2486 | + | |
| 2487 | + | |
| 2488 | + | |
| 2489 | + | |
| 2490 | + | |
| 2491 | + | |
| 2492 | + | |
| 2493 | + | |
| 2494 | + | |
| 2495 | + | |
| 2496 | + | |
| 2497 | + | |
| 2498 | + | |
| 2499 | + | |
| 2500 | + | |
| 2501 | + | |
| 2502 | + | |
| 2503 | + | |
| 2504 | + | |
2423 | 2505 | | |
2424 | 2506 | | |
2425 | 2507 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
253 | 253 | | |
254 | 254 | | |
255 | 255 | | |
256 | | - | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
257 | 259 | | |
258 | 260 | | |
259 | | - | |
| 261 | + | |
260 | 262 | | |
261 | 263 | | |
262 | 264 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
612 | 612 | | |
613 | 613 | | |
614 | 614 | | |
615 | | - | |
| 615 | + | |
616 | 616 | | |
617 | 617 | | |
618 | 618 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
374 | 374 | | |
375 | 375 | | |
376 | 376 | | |
| 377 | + | |
377 | 378 | | |
378 | | - | |
| 379 | + | |
379 | 380 | | |
380 | 381 | | |
381 | 382 | | |
| |||
386 | 387 | | |
387 | 388 | | |
388 | 389 | | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
389 | 413 | | |
390 | 414 | | |
391 | 415 | | |
| |||
0 commit comments