Files
codegraph/src/resolution
Colby MchenryandClaude Opus 5.5 5a2b5607ee perf(resolution): read a class's member lines once for member-type inference (#2181)
Member-type inference rescanned the whole class body — method bodies
included — once per distinct receiver name, and rebuilt the calling
method's body text for the shadow check on every ref; the inherited-
class-method walk re-read heads per ref. On Exposed (huge test classes)
methodCall misses cost ~3x the pre-#2171 time.

- a class's member-level lines (brace depth <= 1, comments/strings
  dropped) are collected once and each name only regexes those
- the supertype walk and the shadow check (now over the whole calling
  function) are memoized per (class|function, name)
- declared supertypes and inherited class methods are memoized

Edges unchanged on Newtonsoft/eShop/gson/Exposed/koin/horse/DRF (±2 on
AutoMapper/commons-lang/okio from the whole-body shadow check); Exposed
index 8.5s -> 7.7s, Newtonsoft 3.6s -> 3.3s.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-30 17:26:44 +00:00
..