mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-09-21 00:21:30 +00:00
feat(csharp-scope): parity Unit 5e — namespace-prefix bucket matching
Closes 2 parity failures (12 → 10). `languages/csharp/namespace-siblings.ts`: when matching accessible namespaces against class buckets, also probe every dotted prefix. `using static CrossFile.Models.UserFactory;` parses into the importer's accessible-namespace set as the full type path, but the matching bucket is keyed on the containing namespace (`CrossFile.Models`). Walking back through the dotted segments ensures the static-using importer sees the containing namespace's sibling files' return-type bindings. Legacy 175/175 green; 10 C# parity failures remain.
This commit is contained in:
parent
13086508e5
commit
ac2b667922
1 changed files with 13 additions and 1 deletions
|
|
@ -160,7 +160,19 @@ export function populateCsharpNamespaceSiblings(
|
|||
}
|
||||
}
|
||||
|
||||
for (const nsName of accessibleNamespaces) {
|
||||
// For each accessible namespace, also walk up the dotted path —
|
||||
// `using static X.Y.Z;` targets a type, so the real namespace is
|
||||
// `X.Y`. Both parse into `accessibleNamespaces` as-is; we probe
|
||||
// the bucket map with every prefix.
|
||||
const expandedNamespaces = new Set<string>(accessibleNamespaces);
|
||||
for (const ns of accessibleNamespaces) {
|
||||
const segments = ns.split('.');
|
||||
for (let i = segments.length - 1; i > 0; i--) {
|
||||
expandedNamespaces.add(segments.slice(0, i).join('.'));
|
||||
}
|
||||
}
|
||||
|
||||
for (const nsName of expandedNamespaces) {
|
||||
const bucket = buckets.get(nsName);
|
||||
if (bucket === undefined) continue;
|
||||
for (const scopeInfo of bucket.scopes) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue