Repository navigation
[PBT] Admit pure computed class keys and static cache initialization - #599
Open
CaelmBleidd wants to merge 1 commit into
Open
CaelmBleidd wants to merge 1 commit into
CaelmBleidd wants to merge 1 commit into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The checked source-closure gate rejected every computed class member and every static field initializer. This blocked unchanged SegmentTree/Matrix classes at
[Symbol.iterator]and PGOrbit at its empty static cache before the class coverage guard could report its actual limitation.Reuse the existing initializer purity check for primitive computed names and ordinary named static fields. Also admit unshadowed
Symbol.iteratorunder the checked closure's standard-runtime-global contract; the source-only TypeScript program has no default library, so any source binding namedSymbolkeeps the case unsupported. Dynamic keys, reference-to-key coercion, mutable/shadowed bindings, other Symbol properties, effects, decorators, static blocks, constructor built-in property writes, and static member collisions remain rejected. Inspection does not execute source.Validation: all 233 Node adapter tests pass; the 74 closure tests include pure literal/numeric/constant keys, intrinsic iterator keys, empty static caches, aliases, and negative effect/shadow/accessor controls. Replacing only this helper with its parent version makes all six new positive cases fail; the source was restored and the full suite rerun successfully.
git diff --checkpasses.Preparation was repeated on the seven unchanged previously blocked real scenarios. All six module-initialization blockers now reach the existing
CLASS_UNIVERSE_UNSUPPORTEDguard: SegmentTree/Matrix still report computed-member coverage, PGOrbit still reports static initialization outside constructor coverage, and Doc retains its nested-closure boundary. Sources and their frozen hashes remain unchanged. No callable-universe guard, instrumentation, symbolic frontend, corpus selection, or comparative experiment was changed; this PR does not claim additional fully supported real scenarios.Depends on #597.