Description
Create a ClassResolverCache to cache valid constructor lookup results used by ClassResolver. This should reduce repeated reflection and constructor-selection work when the same classes are resolved multiple times.
Scope and constraints
- Preserve constructor declaration order and first-success behavior.
- Preserve fallback from failed constructors to later constructors.
- Do not cache generated constructor arguments or instantiated objects.
- Account for requested generic types, default-value strategy, property factories, and constructor failures when determining cache validity.
- Preserve existing circular-reference and instantiation-exception behavior.
References
Scope
Add ClassResolverCache, integrate it with ClassResolver, and add tests verifying constructor-cache reuse and behavior preservation.
Out of scope: changing constructor ordering, constructor argument-generation rules, resolver precedence, or the public Resolver API.
Acceptance criteria
Description
Create a
ClassResolverCacheto cache valid constructor lookup results used byClassResolver. This should reduce repeated reflection and constructor-selection work when the same classes are resolved multiple times.Scope and constraints
References
core/src/main/kotlin/dev/appoutlet/some/resolver/ClassResolver.ktcore/src/test/kotlin/dev/appoutlet/some/resolver/ClassResolverTest.ktScope
Add
ClassResolverCache, integrate it withClassResolver, and add tests verifying constructor-cache reuse and behavior preservation.Out of scope: changing constructor ordering, constructor argument-generation rules, resolver precedence, or the public
ResolverAPI.Acceptance criteria
ClassResolverCachestores and returns valid constructor lookup results for supported classes.SomeInstantiationExceptionremains unchanged.