From cd7ee603fa5072ad998c2265db6553700bd268ee Mon Sep 17 00:00:00 2001 From: Widthdom Date: Mon, 27 Jul 2026 12:03:33 +0900 Subject: [PATCH 1/3] Fix C# parameter modifier type references (#4832) --- DEVELOPER_GUIDE.md | 4 + TESTING_GUIDE.md | 2 + changelog.d/unreleased/4832.fixed.md | 19 ++++ .../ReferenceExtractor.DeclarationTypes.cs | 5 +- tests/CodeIndex.Tests/DbReaderTests.cs | 92 +++++++++++++++++++ .../ReferenceExtractorCSharpTests.cs | 82 +++++++++++++++++ 6 files changed, 203 insertions(+), 1 deletion(-) create mode 100644 changelog.d/unreleased/4832.fixed.md diff --git a/DEVELOPER_GUIDE.md b/DEVELOPER_GUIDE.md index efe043126..1df627fd7 100644 --- a/DEVELOPER_GUIDE.md +++ b/DEVELOPER_GUIDE.md @@ -1435,6 +1435,8 @@ Supported symbol kinds by language: | Zig / PowerShell / CSS-SCSS / Batch / Assembly / HTML | language-specific functions, labels, selectors, stages, Web Components, properties, imports | language-specific references where implemented | mixed | | XML | bounded element/attribute paths plus NuGet.config security-policy values | XAML references where implemented | mixed | +C# parameter and argument-list modifier tokens (`out`, `ref`, `in`, `params`, `this`, and `scoped`) are excluded only when parsed in modifier positions. A following concrete or generic type retains its `type_reference`, while `out var` emits neither the modifier nor the implicit `var` as a type. Do not implement this as a global keyword blacklist because contextual keywords can remain legal identifiers outside modifier positions. + Shell and PowerShell files also expose a synthetic `