Repository navigation
v1.6.9: shared and deep type graph fixes
Fixes
- Traverse shared type graphs once during placeholder classification and return-type scanning, avoiding repeated work on the same subgraphs (#75).
- Use iterative traversals for deeply nested type graphs, preventing Go stack exhaustion while preserving cycle handling, visitation order, and predicate pruning (#76).
This patch backports both fixes onto the v1.6.8 stable release. Public type APIs and serialization remain unchanged.
Verification
- Full Go test suite on the stable release candidate:
go test -timeout 25m ./.... - Focused race tests:
go test ./types/typ ./compiler/check/returns -race -count=1. - Regression coverage includes shared graphs, cycles, traversal order, and 20,000-level graphs under a reduced stack budget.
- golangci-lint v2.8.0 with the repository CI checks enabled.