Summary
test-files/test_gap_renamed_class_export_namespace.ts (the #1758/#1812 regression guard) fails on current main — pre-existing, reproduced on pristine main locally and surfacing as conformance-smoke (4) failures on every open PR (e.g. #6545 / #6547), since the smoke suite only runs on PR merges.
expected (node): got (perry main):
(1) M.Number.ast._tag: NumberKeyword (1) M.Number.ast._tag: DirectKeyword
(2) M.Widget.ast._tag: WidgetKeyword (2) M.Widget.ast._tag: DirectKeyword
Every renamed class export (export { Number$ as Number }, export { Widget$ as Widget }) read via import * as M now resolves to the same class — the direct (non-renamed) export's inherited static ast (DirectKeyword) — instead of each alias's own origin class. The direct-export case (3) still works.
This is the effect-Schema-blocking shape from #1785 (S.Number = class Number$ extends make(...) re-exported as Number; decodeUnknownSync(S.Number) reads S.Number.ast), so the regression likely re-breaks effect Schema decode.
Also failing on pristine main in the same shard: test_gap_zlib_3285_params (zlib params error-code mismatch) — possibly a separate regression from the same merge window.
Suspect window
Both tests passed before the recent merges; candidates are the class-machinery changes in the #6537 (capture-class family) / #6529 window — the per-alias origin-name fallback (class_ids origin recording in compile.rs + namespace-member resolution in property_get.rs, per the test header) may now be preempted by a newer name-keyed path that resolves all aliases to one class.
Verified: fails identically on pristine main (137cfefca-era and 520894f27) with a clean object cache; unrelated to the open class PRs (#6545/#6547) — fails without them.
Summary
test-files/test_gap_renamed_class_export_namespace.ts(the #1758/#1812 regression guard) fails on current main — pre-existing, reproduced on pristine main locally and surfacing asconformance-smoke (4)failures on every open PR (e.g. #6545 / #6547), since the smoke suite only runs on PR merges.Every renamed class export (
export { Number$ as Number },export { Widget$ as Widget }) read viaimport * as Mnow resolves to the same class — the direct (non-renamed) export's inherited staticast(DirectKeyword) — instead of each alias's own origin class. The direct-export case (3) still works.This is the effect-Schema-blocking shape from #1785 (
S.Number = class Number$ extends make(...)re-exported asNumber;decodeUnknownSync(S.Number)readsS.Number.ast), so the regression likely re-breaks effect Schema decode.Also failing on pristine main in the same shard:
test_gap_zlib_3285_params(zlib params error-code mismatch) — possibly a separate regression from the same merge window.Suspect window
Both tests passed before the recent merges; candidates are the class-machinery changes in the #6537 (capture-class family) / #6529 window — the per-alias origin-name fallback (
class_idsorigin recording in compile.rs + namespace-member resolution in property_get.rs, per the test header) may now be preempted by a newer name-keyed path that resolves all aliases to one class.Verified: fails identically on pristine main (
137cfefca-era and520894f27) with a clean object cache; unrelated to the open class PRs (#6545/#6547) — fails without them.