Generate the TNumber value collections from the type relations#84
Merged
estebanzimanyi merged 1 commit intoJul 23, 2026
Conversation
getValues and the other value-domain collection accessors return a base-typed collection — a tfloat's value range is a floatspanset, an intspanset for a tint. The concrete wrapper is base-dependent, so these returns were held back. Read the base-to-collection type-relation registry the catalog now carries, and resolve each concrete class's base to its value set, span and span set type, then to the layer's wrapper by the value-collection naming convention. valuespans (getValues) and toSpan are base-generic on the abstract TNumber, so they are specialised onto the concrete int and float surfaces where the base resolves the wrapper; valueBins folds the value span array into that wrapper. A base whose wrapper the layer does not provide (bigint) defers rather than dangling, so the resolution stays honest. GeneratedTInt and GeneratedTFloat now return FloatSpanSet/IntSpanSet, their value spans and value span bins. A parity test checks valuespans, toSpan and valueBins against direct GeneratedFunctions calls. The mapping is derived entirely from the catalog, with no per-class hand-coding.
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.
getValues and the other value-domain collection accessors return a base-typed collection: a tfloat's value range is a
floatspanset, anintspansetfor a tint. Their concrete wrapper is base-dependent.This reads the base-to-collection type-relation registry the catalog carries, resolving each concrete class's base to its value set, span and span-set type, then to the layer's wrapper by the value-collection naming convention.
valuespans(getValues) andtoSpanare base-generic on the abstractTNumber, so they are specialised onto the concrete int and float surfaces where the base resolves the wrapper;valueBinsfolds the value-span array into that wrapper. A base whose wrapper the layer does not provide (bigint) defers rather than dangling, so the resolution stays honest.GeneratedTIntandGeneratedTFloatreturnFloatSpanSet/IntSpanSet, their value spans and value-span bins. A parity test checksvaluespans,toSpanandvalueBinsagainst directGeneratedFunctionscalls. The mapping is derived entirely from the catalog, with no per-class hand-coding.