Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Preserve namespace class declaration identity and distinct exported owners

Chiusa
#1,968 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Una pull request collegata è già stata integrata.

  • #1973 di @nickna — integrata

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
38/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
csharp, node.js, typescript

Direzione di ricerca

Start with docs/plans/namespace-class-identity.md and the retained fixtures under tests/fixtures/NamespaceClassIdentity/, including the four entry points and sibling variants. Compare both engines with Node v25.5.0, then inspect the namespace export/member path from #1776 and the identity-related tests from #1859. Done means all four entry points match Node in both import orders and the affected, Release, quality, and AOT checks pass.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

The #1908 investigation reproduces the historical duplicate property-dispatch diagnostic family, but the original namespace source/deadline was not recovered. This finite implementation transfer is allowed by that child's acceptance; it is not a claimed repair.

New retained controls: tests/fixtures/NamespaceClassIdentity/{siblings.ts,siblings-nongeneric.ts,left.ts,right.ts,main-left.ts,main-right.ts}. The design is docs/plans/namespace-class-identity.md on codex/epic-1866-behavior.

On unchanged 0ad37b57 and a90e3dc7, both sibling entry points interpret as 1 2 9 but compilation fails with Invalid or duplicate class property dispatch declaration, exit 1. TypeScript 7.0.2 accepts them and Node v25.5.0 prints that output. Both module import orders pass IL verification but throw TypeError: Cannot read properties of null (reading 'Box'), empty stdout; interpretation rejects exported namespace declaration naming. TypeScript/Node expect 1 2 in both orders. Those runtime failures are not passes.

Finite implementation:

  • Tie namespace class owners and every constructor/member/property-dispatch reference to checked declaration identity, preserving namespace/module context during later emission phases. Do not suppress duplicate validation or publish last-writer simple-name aliases.
  • Preserve top-level versus sibling/nested/reopened namespace declarations, generic and non-generic classes, observable names, private storage/origins, inherited members and bare class references inside methods.
  • Coordinate the exact two module fixtures with #1776's existing namespace export/member path and preserve distinct exported class values in both import orders. Verify the interpreter export declaration name path. The null class-member failure is related, not yet proven an exact duplicate of #1776's function-member source.
  • Preserve #1859 class-expression owner tests and #1781's separate object/System.Type construction regression. This is behavior repair, not another #1894 metadata ownership migration.

Done when all four entry points match Node in both engines, API module execution and IL-verified standalone output within 30 seconds; affected namespace/class/generic/module/private tests, Release, quality and actual AOT checks pass. Preserve full baseline failures and distinguish hosted coverage. Stop at these identity/lookup/export paths; assignment/deletion/enum semantics remain with existing epic children.

Refs #1908, #1866. The frozen epic is not expanded by this successor.

Lingua principale
C#
Stelle
156
Fork
4
Merge medio
2h 47m
PR unite (30g)
136

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di nickna/SharpTS

Tutte le issue di nickna/SharpTS

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.