GitNexus/gitnexus/bench
Gergő Magyar af5fd9665c
fix(csharp): bind nullable field types for receiver resolution (#3498) (#3664)
* fix(csharp): bind nullable field types for receiver resolution (#3498)

A C# field written `User? repo;` got no type binding. Its type is a
`nullable_type` node, and the field_declaration rules only matched
identifier, generic_name and qualified_name types. Parameters, properties,
method returns and foreach variables already have a nullable_type rule, so
fields were the odd one out: the class scope had no binding for `repo`,
and `this.repo.Save()` was dropped as receiver-unresolved.

Add the missing field rule. interpretCsharpTypeBinding already strips the
`?`, so the field binds `User`, as the property spelling does.

Shape arm: csharp `decoratedFieldType` moves VISIBLE-GAP -> RESOLVES, with
the edge on `User.Save`. No corpus fixture declares a nullable field, so
the count arm and every other cell are unchanged, and the corpus edge
(2838) and drop (192) sets match main exactly. Scope-capture fingerprints
are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(csharp): preserve nullable field ownership

* fix(csharp): refuse unowned nullable types

* test(csharp): guard nullable-member fixture cleanup (#3664)

Address nexus-check review on resolvers/csharp.test.ts:1471: skip the
temp-root removal when mkdtempSync never ran, so a setup failure is not
masked by a secondary rmSync(undefined) TypeError. Matches the guard in
csharp-nullable-field-review.test.ts.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs(bench): scope nullable wrapper claim to what the code does (#3664)

The ownership-controls note said the nullable-field marker preserves
custom generic wrappers. Its only control, Custom.List<User>?, passes
through the qualified-type refusal instead. State that unqualified
wrappers keep the wrapper type (no native control yet) and that
qualified spellings, custom wrappers included, stay unbound.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* chore: preserve C# integration notes

* fix(csharp): preserve generic argument qualifiers

Ignore comments when checking outer nullable-field qualification.

Refs #3664

---------

Co-authored-by: Gergo Magyar <gergomagyar0@gmail.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-22 20:05:33 +00:00
..
callable-value-flow fix(scope-resolution): parse def coordinates after file paths (#2743) 2026-07-30 07:34:32 +01:00
cfg feat(impact): opt-in PDG-backed impact mode - statement + inter-procedural slicing, resolved-callee-id soundness, mutation-oracle validated (#2227) 2026-06-20 12:04:32 +01:00
cpp-qualified-ns perf(cpp): index qualified namespace members once per pipeline run (#2788) (#2794) 2026-08-02 15:52:33 +01:00
cross-repo-trace fix(group)!: stop group sync claiming matching it never did (#3020) 2026-08-27 18:27:32 +01:00
embedding-identities fix(embeddings): reject corrupt identities before mutation (#3614) 2026-10-17 18:45:28 +01:00
embedding-inputs fix(embeddings): budget generated inputs and isolate rejections (#3615) 2026-10-17 19:37:30 +01:00
emit-persistence fix(routes): scope inline Express handlers and report api_impact lower bound (#3643) 2026-10-20 17:44:08 +01:00
finalize-reexport fix(python): resolve calls through __init__.py re-exports (#2864) 2026-08-09 12:21:06 +01:00
go-route-resolution feat(go): index gin/echo routes and report them in impact (#3402) (#3417) 2026-10-01 10:22:45 +01:00
impact-pdg fix(impact-pdg): make the Impact PDG Mutation Report workflow pass (3 latent oracle bugs) (#2258) 2026-06-20 20:40:28 +01:00
import-target refactor(ingestion): colocate import resolution rules (#3670) 2026-10-22 03:49:35 +00:00
incremental-write-integrity test(embeddings): cover CodeEmbedding scans after delete and re-create (#3569, #3474) (#3623) 2026-10-18 11:01:04 +01:00
inline-taint fix(taint): report inline and factory handler flows (#3612) 2026-10-17 20:22:58 +00:00
java-lombok-synthesis feat(jvm): synthesize Lombok and Kotlin JVM accessor methods (#2885) 2026-08-31 17:55:52 +00:00
java-wildcard-route-constants feat(jvm): fold Java static wildcards and Kotlin star imports for route constants (#3110) 2026-08-31 21:58:40 +00:00
kotlin-import-target fix(kotlin): resolve imports from declared packages (#2990) 2026-08-18 20:47:30 -07:00
kotlin-jvm-accessors feat(jvm): synthesize Lombok and Kotlin JVM accessor methods (#2885) 2026-08-31 17:55:52 +00:00
kotlin-star-route-constants feat(jvm): fold Java static wildcards and Kotlin star imports for route constants (#3110) 2026-08-31 21:58:40 +00:00
lexical-binding-provenance fix(scope): preserve lexical bindings in HTTP wrapper detection (#3632) 2026-10-20 11:36:06 +01:00
lib feat(ingestion): add tRPC procedure detection and MCP chain/route surfacing (#3339) 2026-09-21 09:44:42 +01:00
mcp-serialization fix: reduce MCP token overhead and correct cost comparisons (#3645) 2026-10-20 16:04:10 +01:00
mcp-tools-list fix(rename): extend safe refactoring and flow coverage across languages (#3557) 2026-10-13 08:38:17 +03:00
objective-c-resolution feat(indexing): add Objective-C semantic indexing support (#3179) 2026-09-09 09:40:21 +00:00
parse-cache-identity feat(cache): derive parser and PDG cache identities automatically (#3606) 2026-10-17 07:38:45 +03:00
parse-dispatch-rounds feat(cache): derive parser and PDG cache identities automatically (#3606) 2026-10-17 07:38:45 +03:00
python-scope refactor(ingestion): colocate import resolution rules (#3670) 2026-10-22 03:49:35 +00:00
python-workspace-import-scan fix(group): detect function-local Python imports (#3254) 2026-09-11 06:23:52 +00:00
receiver-resolution fix(csharp): bind nullable field types for receiver resolution (#3498) (#3664) 2026-10-22 20:05:33 +00:00
rename fix(rename): apply the exact reviewed edit plan (#3617) 2026-10-17 19:38:01 +01:00
ruby-gem-resolution fix(ruby): guard gem requires with dependency metadata (#3096) 2026-09-10 16:04:11 +01:00
rust-cargo-targets fix(rust): respect Cargo target boundaries in name fallback (#3294) 2026-09-16 11:36:07 +01:00
schema-pairs fix(scope-resolution): link Record graph nodes (#2871) 2026-08-07 18:33:27 +01:00
scope-capture fix(php): type locals from namespaced-function factory calls (#3498) (#3662) 2026-10-22 18:55:04 +00:00
scope-emission fix(scope): resolve local imports by lexical ownership (#3532) 2026-10-10 08:13:55 +03:00
spring-conditionals feat(spring): model profiles, conditions, and auto-configuration (#2678) 2026-07-28 07:05:41 +01:00
spring-config-bindings feat(kotlin): bind Spring config consumers on Kotlin sources (#3126) 2026-09-01 10:32:09 +00:00
staged-publication fix(storage): preserve published graph on rebuild failure (#3613) 2026-10-17 18:45:11 +01:00
swift-package-imports refactor(ingestion): colocate import resolution rules (#3670) 2026-10-22 03:49:35 +00:00
symlink-coverage fix(indexing): converge coverage around directory symlinks (#3616) 2026-10-17 19:37:45 +01:00
tool-accuracy fix(scope): follow namespace factory return types and record untyped drops (#3648) 2026-10-21 10:24:26 +00:00
trpc-route-extractor feat(ingestion): add tRPC procedure detection and MCP chain/route surfacing (#3339) 2026-09-21 09:44:42 +01:00
v8-sidecar perf(store): V8 sidecars plus hardlinked ParsedFile restore (#3099) 2026-08-30 20:50:20 +00:00
value-ref-resolution fix(python): resolve calls through aliased package re-exports (#3504) 2026-10-08 13:51:20 +03:00
zig-cross-file-resolution fix(zig): resolve cross-file static gates (#3185) 2026-09-07 07:19:30 +01:00
analyze-phase-breakdown.md perf(scope-resolution): stop re-scanning the ParsedFile store once per language (#3211) 2026-09-08 13:48:30 +01:00
parse-throughput.md fix(parse): correct worker-pool docs drift + surface worker-side stack on crash (#2068) (#2070) 2026-06-08 07:20:12 +01:00