fix: resolve ModifierCache StackOverflow and enforce modifier equality contract (Closes #81) #123
Reference in New Issue
Block a user
Delete Branch "feature/issue-81-modifiercache-key-equality-fragile"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
StackOverflowErrorcaused by circularhashCode()/equals()chain betweenModifierCache(data class) andAttributes(data class containingModifierCache)ModifierCachefromdata classto regularclassand movedcachefields out of data class constructors inAttributesandDamageMonitorSRModifier/AttributeModifier/TalentModifierrequiring implementations to overrideequals()/hashCode()ModifierCacheEqualityTestverifying cache behavior with recreated modifier instancesCloses #81
Test plan
ModifierSystemTesttests pass (previously all 4 failed with StackOverflowError)ModifierCacheEqualityTesttests pass