Repository navigation
Add generic named type instances - #97
Merged
Merged
Conversation
Parse explicit type applications and multi-segment qualified paths while preserving comparison and shift parsing. Resolve declaration-owned type parameters through one syntax conversion path, cache concrete instances in CompilerContext, and purge owner instances on incremental reset. Preserve nominal enum identity and lower concrete struct and interface instances through existing HIR, MIR, and LLVM paths. Path, substitution, traversal, and cache helpers centralize shared semantic invariants; none are pass-through compatibility wrappers. Validated with full uncached tests, vet, race tests, compiler build, bundled-binary x_test, gofmt, and git diff checks.
Persist collected generic declarations on modules so fresh incremental contexts can reindex them. Canonicalize transparent arguments, permit exact recursive shells, and reject argument-changing recursion without poisoning the instance cache. Unalias centralizes transparent semantic normalization. ContainsInvalid reuses the cycle-safe type graph walker. finishTypeInstance owns provisional publication, invalidation, and waiter wakeup.
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.
Summary
This PR is stacked on #88. It does not add public named-enum declarations, construction, is tests, or match syntax.
Validation
Deferred work
Rules check
No pass-through compatibility wrappers, stale aliases, ignored parameters, duplicate type walkers, or parallel lowering paths were added. New path, substitution, traversal, and cache helpers centralize shared semantic invariants.
Cleanup audit
ed74835; includes forward merge of Add shared tagged variant core #88.