v0.7.3
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.UnwrapPointerrecursive to handle arbitrary pointer depth - Consolidated duplicate
unwrapPointerdefinitions across packages - Added comprehensive SSA double pointer documentation
Changes:
internal/typeutil: MadeUnwrapPointerrecursive and exported itinternal/directive/carrier: Usetypeutil.UnwrapPointer, remove local versioninternal/funcspec: Usetypeutil.UnwrapPointer, remove local version
Closes #18
Full Changelog: v0.7.2...v0.7.3