Files
codegraph/__tests__
Colby Mchenry 4727a068e4 fix(cpp): a call on an element read by subscript, statuses[i].IsNotFound(), calls the element's method (#2602)
The extractor records a call on a subscripted receiver, like
`statuses[i].IsNotFound()`, `buffers[key].Flush()` or `iters[i]->Valid()`,
by its bare name, which went to whichever class had a method of that name,
and a local an element initializes (`auto& s = statuses[i]`) had no type.

- C++ expression typing reads a subscript: an array's element, what a
  pointer points at, a library map's mapped value, a sequence's element, or
  what a class's `operator[]` returns.
- Declarations record their array dimensions (locals, parameters and data
  members, also through an alias), so a subscript, `*arr`, `arr->` and a
  range-for over an array read the type the array is declared with.
- The bare-name receiver reader takes subscripts after a name or `(*name)`,
  reading the line with its literals blanked.
- Overload arguments use the same subscript typing: a map's `values[key]`
  is its value type, no longer a `std::pair`.

A/B vs main, every changed site triaged: leveldb 12 removed, 14 added,
1 retargeted, 11 metadata-only; fmt 6/4/10/2; redis identical; rocksdb
513/292/843/807; protobuf 58/5/34/66.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-15 23:31:37 +00:00
..