Skip to content

v0.7.3

Choose a tag to compare

@mpyw mpyw released this 24 Dec 09:56
· 75 commits to main since this release
1449ce2

Bug Fixes

Fix recursive pointer unwrapping in carrier type matching (#19)

Fixed false positive when carrier type variables are used via field access in closures.

Problem:
When SSA captures a pointer variable (*CarrierType) in a closure, it adds an extra level of indirection, resulting in **CarrierType in FreeVars. The previous single-layer unwrapping only handled one level, causing false positives.

Solution:

  • Made typeutil.UnwrapPointer recursive to handle arbitrary pointer depth
  • Consolidated duplicate unwrapPointer definitions across packages
  • Added comprehensive SSA double pointer documentation

Changes:

  • internal/typeutil: Made UnwrapPointer recursive and exported it
  • internal/directive/carrier: Use typeutil.UnwrapPointer, remove local version
  • internal/funcspec: Use typeutil.UnwrapPointer, remove local version

Closes #18


Full Changelog: v0.7.2...v0.7.3