Fixed KAI.AnnotatedParameter.hasRequiredMarker and KNAI.findKotlinParameterName to refer to ReflectionCache #543
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
KAI.AnnotatedParameter.hasRequiredMarker
andKNAI.findKotlinParameterName
get thekotlinFunction
directly without referring to theReflectionCache
.On the other hand, the
Java Constructor
/Java Method
referenced by these functions is the same as the one referenced byKVI
, so I have improved it by referencing theReflectionCache
.TODO: Add benchmark result.
Also, to resolve #199 and #413, we need to fix the process of getting a
KFunction
from aJava Constructor
.This fix is easier if the calls to
Constructor<Any>.kotlinFunction
are centralized in aReflectionCache
.The above is accomplished with this PR.
What did not fix in this PR.
KAI.Method.getRequiredMarkerFromAccessorLikeMethod
also callskotlinFunction
, but it is not modified to referenceReflectionCache
.I did not modify it because I was concerned that this change would slow down deserialization.
The
ReflectionCache.kotlinFromJava(Constructor or Method)
is specifically referenced during deserialization.If it is also referenced during serialization, the cache hit rate during deserialization may decrease, and as a result, the speed of deserialization may decrease.
I have not yet verified whether this concern actually occurs, so I would like to ask whether it should be included in this PR.