Repository navigation
Conversation
Move using directives onto @import.path and the CSharp normaliser, retaining targets, sites, order, flags and existing alias behaviour. Remove the redundant extractor; leave bindings to slice 2b. Pin the shared-capture depth disclosure/cacheability exception, add real-input mutation controls, and advance parser identity to 186 with its quality mirror. No shared binding API changes.
|
Thank you, @LaimaWu, this is a careful slice. What stood out when we ran it: the one-line What is left is small and mechanical, so we'll do it ourselves as a maintainer commit on your branch (you enabled maintainer edits), keeping your commits and credit:
Two optional nits we can fold in at the same time unless you'd rather: the If you'd prefer to do the merge yourself, just say so and we'll wait. Thanks again for taking slice 1a for C#. The shared import path keeps getting simpler with each language you move onto it. |
Mechanical resolution of the five conflicts: kParserVer 214 (rich 215), above main 206 and the train-32a numbers 212/213; quality.h mirror with it; qschemetrip.hash re-derived with UPDATE_GOLDEN=1 (RE-PIN LOG entry on top); CHANGELOG entry kept under [Unreleased] above 0.6.8 and credited to @LaimaWu. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…ments, B16 alignment Optional nits from review: keep the NodeField::Type early return in normaliseCSharpImport with a one-line note (never taken on the pinned grammar); captureTagsFacts, captureIncludes-history and ingest_relations header comments now name C# as moved to the shared capture; align the B16 line in childwalkscalecheck.sh; fill the hash in the qschemetripcheck RE-PIN LOG line. No behaviour change. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
C# using directives currently use a separate AST walk. This moves them onto the shared import.path capture with a minimal CSharp normaliser, and removes csharpUsingTarget and its directiveTargetOf branch.
Existing behaviour is preserved for written targets, directive sites and ordering, duplicate directives, static/global forms, dependency edges, and bindings. The existing using X = … alias gap remains pinned by a known-gap test; alias migration stays in slice 2b after the maintainer-owned shared binds channel. No shared binding API is added here.
One disclosure/cache behaviour change matches the precedent from Python #382: at container depths 257/258, import-free deep containers (including a top-level using followed by a deep empty container) no longer mark the file extract-partial and may reuse the whole-file cache. A real using beyond the bound is still cut, disclosed as partial, and not captured. Dependency output remains byte-identical across the boundary fixtures.
Parser identity moves from 196 to 198 (rich 199); cache record format 36 and quality scheme 22 are unchanged.
Validation against main 939dbb6, head 193d69b:
Part of Shared import-capture vocabulary instead of ~21 per-language import extractors #358 — C# slice 1a.
Summary by CodeRabbit
usingdirectives are now recognized as imports, improving dependency reporting while preserving directive locations and ordering.using X = Foo.Barare not yet reported under the alias name.