This commit addresses the root cause identified in issue #1370 by preserving Named interface type information through the interface construction phase. **Root Cause:** Named interfaces were prematurely unwrapped via Underlying() in the interface construction phase (MakeInterface()/unsafeInterface()), causing the subsequent ABI type generation to hit `case *types.Interface:` instead of `case *types.Named:`, resulting in loss of package information. **The Fix:** 1. Modified `unsafeInterface()` to accept a `namedIntf types.Type` parameter 2. Updated all callers to pass the Named type (tinter.raw.Type, assertedTyp.raw.Type, etc.) 3. When namedIntf is available, pass it to `abiType()` to ensure proper routing through the type switch to `abiNamedInterfaceOf()` which has correct package context 4. Reverted the workaround logic in `abiInterfaceOf()` that extracted pkgPath from methods **Impact:** - Fixes segmentation faults when calling interface private methods across packages - Ensures runtime receives correct package path for interface metadata - Allows private method slots in itab to be properly filled 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
11 KiB
11 KiB