You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix super call in multi-level generic class hierarchy using wrong mangled name (fix#3895)
When calling `base.Method()` in a class that inherits through a chain of generic
classes, the overload hash suffix was computed incorrectly. For example, if
`ProjectSelection` inherits `SelectionAspect<'Container>` which inherits
`AspectBase<'C>`, calling `base.Attach(owner)` from `ProjectSelection.Attach`
would generate `super["...AspectBase.Attach1505"]` but the method was defined as
`"...AspectBase.Attach2B595"`, causing a runtime error.
Root cause: `callAttachedMember` was called with the correct base entity
(`AspectBase<'C>`) but the override member from the intermediate class
(`SelectionAspect<'Container>.Attach`). `getOverloadSuffixFrom` uses the entity's
generic param names (`['C']`) as normalization keys, but the member's parameter
types use the intermediate class's names (`'Container`), causing the lookup to
fail and producing a different hash.
Fix: after finding the base entity with `tryFindBaseEntity`, also find the
corresponding dispatch slot member in that entity so the hash is computed with
matching entity and member generic parameter names.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
0 commit comments