fix(core): bump Nino to fix Dictionary serialization in HybridCLR#627
Conversation
…tion in HybridCLR Nino's generated Dictionary serializer used `Unsafe.As<Dictionary, DictionaryView>` to access internal `_entries`, which throws `ArrayTypeMismatchException` under HybridCLR's interpreter due to strict `ldelema` type checking. Fixes #621 Ref: JasonXuDeveloper/Nino#172 Signed-off-by: JasonXuDeveloper <jason@xgamedev.net> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: JasonXuDeveloper - 傑 <jason@xgamedev.net>
There was a problem hiding this comment.
Pull request overview
Updates the Unity project’s Nino package version to pick up an upstream fix for ArrayTypeMismatchException during Dictionary serialization under HybridCLR (Android interpreter path).
Changes:
- Bump
com.jasonxudeveloper.ninofrom4.0.0-preview.143to4.0.0-preview.147in the Unitymanifest.json. - Update
packages-lock.jsonto lock Nino to4.0.0-preview.147.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
Update the JEngine.Core package dependency and its lockfile entry from 4.0.0-preview.137 to 4.0.0-preview.147 to match the project manifest, ensuring downstream consumers get the HybridCLR fix. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: JasonXuDeveloper - 傑 <jason@xgamedev.net>
Unity Test Results✅ EditMode: All tests passed Unity Version: 2022.3.55f1 ✅ All tests passed! The PR is ready for review. View workflow run |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #627 +/- ##
==========================================
+ Coverage 93.08% 94.91% +1.83%
==========================================
Files 68 70 +2
Lines 9480 10431 +951
==========================================
+ Hits 8824 9901 +1077
+ Misses 656 530 -126 Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|

Summary
4.0.0-preview.143to4.0.0-preview.147which fixesArrayTypeMismatchExceptionwhen serializing[NinoType]classes containingDictionaryfields under HybridCLR's interpreterRoot Cause
Nino's generated Dictionary serializer used
Unsafe.As<Dictionary, DictionaryView>to access internal_entries. HybridCLR'sldelemainstruction enforces strict runtime type checking, detectingDictionaryView.Entry≠Dictionary.Entryand throwingArrayTypeMismatchException.Fixes #621
Ref: JasonXuDeveloper/Nino#172
Test plan
[NinoType]class withDictionaryfieldsArrayTypeMismatchException🤖 Generated with Claude Code