Skip to content

v1.6.9: shared and deep type graph fixes

Choose a tag to compare

@wolfy-j wolfy-j released this 19 Oct 15:30

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.