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.
| File | Description |
|---|---|
| UnityProject/Packages/manifest.json | Pins Nino to 4.0.0-preview.147 so the project consumes the HybridCLR serialization fix. |
| UnityProject/Packages/packages-lock.json | Locks the resolved Nino version to 4.0.0-preview.147 for deterministic restores. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
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 |
Uh oh!
There was an error while loading. Please reload this page.
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