Releases: NikSativa/DIKit
3.2.4
3.2.3
Fix container key collision for parameterized existentials (any P<X>).
- Add
EntityKeyProvidingprotocol so types can supply an explicit container key. - Derive the default key through a fallback chain:
EntityKeyProviding→ Mirror subjectType →String(reflecting:)→ObjectIdentifierhash. - README: document the parameterized-existential crash and the workaround.
3.2.2
Replace _mangledTypeName with ObjectIdentifier-based key derivation. The former could return nil for parameterized existentials crossing module boundaries, triggering the <<< invalid type >>> fallback and colliding keys. ObjectIdentifier uses the runtime metadata pointer and is unique for every representable metatype.
3.2.1
Fix key collision for parameterized existentials (any P<X>). Previously String(reflecting:) returned <<< invalid type >>> for these types at runtime, causing distinct registrations to collide under the same storage key. Container now uses _mangledTypeName for key derivation.
- Bump Threading to 2.3.1
3.2.0
3.1.4
Full Changelog: 3.1.3...3.1.4
3.1.3
Lazy and Provider as @propertyWrapper
Full Changelog: 3.1.2...3.1.3
3.1.2
IsolatedMainRegistrator
Full Changelog: 3.1.1...3.1.2
3.1.1
upd SwiftFormat rules and github actions and Threading with new AtomicValue
Full Changelog: 3.1.0...3.1.1
3.1.0
ThreadSafe Container
Full Changelog: 3.0.5...3.1.0