New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Reduce the use of spread operator to improve performance #1143
Conversation
Remove spread operator
val factory = MockKGateway.implementation().staticMockFactory | ||
|
||
classes.forEach { | ||
val cancellation = factory.staticMockk(it) | ||
|
||
internalClearStaticMockk(it) | ||
internalClearStaticMockk(arrayOf(it)) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems more efficient to call internalClearStaticMockk
together as follows, but why not?
If there are no problems, I will reflect the changes.
classes.forEach {
val cancellation = factory.constructorMockk(it, recordPrivateCalls, localToThread)
MockKCancellationRegistry
.subRegistry(MockKCancellationRegistry.Type.CONSTRUCTOR)
.cancelPut(it, cancellation)
}
internalClearConstructorMockk(classes)
@@ -26,7 +26,7 @@ object MockKDsl { | |||
inline fun <reified T : Any> internalMockk( | |||
name: String? = null, | |||
relaxed: Boolean = false, | |||
vararg moreInterfaces: KClass<*>, | |||
moreInterfaces: Array<out KClass<*>>, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was not sure whether to use List
or Array
, but I chose Array
for the following reasons.
MockKGateway
usesArray
as an argument in the same situation.- It is more efficient not to convert to
List
. - It is an
internal
API, and it seems acceptable to sacrifice some readability.
Looks good to me as it is. Thanks! |
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [io.mockk:mockk](https://mockk.io) ([source](https://togithub.com/mockk/mockk)) | `1.13.7` -> `1.13.9` | [![age](https://developer.mend.io/api/mc/badges/age/maven/io.mockk:mockk/1.13.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.mockk:mockk/1.13.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.mockk:mockk/1.13.7/1.13.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.mockk:mockk/1.13.7/1.13.9?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>mockk/mockk (io.mockk:mockk)</summary> ### [`v1.13.9`](https://togithub.com/mockk/mockk/releases/tag/1.13.9) [Compare Source](https://togithub.com/mockk/mockk/compare/1.13.8...1.13.9) #### What's Changed - Remove AllOpen plugin from Android libraries by [@​SimonMarquis](https://togithub.com/SimonMarquis) in [mockk/mockk#1164 - Enforce reproducible builds by [@​SimonMarquis](https://togithub.com/SimonMarquis) in [mockk/mockk#1162 - Fix unit tests errors by using `slf4jOrJulLogging()` by [@​SimonMarquis](https://togithub.com/SimonMarquis) in [mockk/mockk#1166 - Remove KAPT from Android libraries by [@​SimonMarquis](https://togithub.com/SimonMarquis) in [mockk/mockk#1163 - JVM 1.8 source compatibility by [@​jeffdgr8](https://togithub.com/jeffdgr8) in [mockk/mockk#1161 - Specify unique `android.namespace` to resolve warnings by [@​kubode](https://togithub.com/kubode) in [mockk/mockk#1181 - Add scoped mock documentation by [@​kshired](https://togithub.com/kshired) in [mockk/mockk#1175 - Upgrade Gradle to 8.4 by [@​geekiyer](https://togithub.com/geekiyer) in [mockk/mockk#1184 - Fixes infinite recursion when stubbing a fun that returns value class by [@​OitoH](https://togithub.com/OitoH) in [mockk/mockk#1176 - Prevent kover setup failure without Android SDK by [@​milgner](https://togithub.com/milgner) in [mockk/mockk#1193 - Support value classes for non-primitive types by [@​milgner](https://togithub.com/milgner) in [mockk/mockk#1192 - Fix StackOverflowError calling method on spy of class with generic base class by [@​flapenna](https://togithub.com/flapenna) in [mockk/mockk#1195 #### New Contributors - [@​jeffdgr8](https://togithub.com/jeffdgr8) made their first contribution in [mockk/mockk#1161 - [@​kshired](https://togithub.com/kshired) made their first contribution in [mockk/mockk#1175 - [@​OitoH](https://togithub.com/OitoH) made their first contribution in [mockk/mockk#1176 - [@​flapenna](https://togithub.com/flapenna) made their first contribution in [mockk/mockk#1195 **Full Changelog**: mockk/mockk@1.13.8...1.13.9 ### [`v1.13.8`](https://togithub.com/mockk/mockk/releases/tag/1.13.8) [Compare Source](https://togithub.com/mockk/mockk/compare/1.13.7...1.13.8) #### What's Changed - Bump googleapis from 20.2.0 to 59.0.0 in /cloud-badge by [@​dependabot](https://togithub.com/dependabot) in [mockk/mockk#482 - Minor performance improvements to MockInjector by [@​k163377](https://togithub.com/k163377) in [mockk/mockk#1134 - Improve log message by [@​marcelstoer](https://togithub.com/marcelstoer) in [mockk/mockk#1117 - Update README.md by [@​iainism](https://togithub.com/iainism) in [mockk/mockk#1140 - Update Android test targets by [@​LeonRa](https://togithub.com/LeonRa) in [mockk/mockk#1146 - Fix `IncompatibleClassChangeError` in Android instrumentation test ([#​1035](https://togithub.com/mockk/mockk/issues/1035)) by [@​LeonRa](https://togithub.com/LeonRa) in [mockk/mockk#1145 - Update Gradle and Android dependencies by [@​SimonMarquis](https://togithub.com/SimonMarquis) in [mockk/mockk#1105 - Update byte-buddy 1.14.6 by [@​SimonMarquis](https://togithub.com/SimonMarquis) in [mockk/mockk#1149 - Remove unused `androidTools` in `Deps.kt` by [@​SimonMarquis](https://togithub.com/SimonMarquis) in [mockk/mockk#1150 - Update Kotlin 1.9.10 by [@​SimonMarquis](https://togithub.com/SimonMarquis) in [mockk/mockk#1148 - Update KotlinX Kover 0.7.3 by [@​SimonMarquis](https://togithub.com/SimonMarquis) in [mockk/mockk#1152 - Remove Kotlin-IR from CI matrix by [@​SimonMarquis](https://togithub.com/SimonMarquis) in [mockk/mockk#1153 - Update Dokka 1.9.0 by [@​SimonMarquis](https://togithub.com/SimonMarquis) in [mockk/mockk#1151 - Fix Kotlin version override in tests by [@​SimonMarquis](https://togithub.com/SimonMarquis) in [mockk/mockk#1154 - Use new Kotlin logo by [@​Goooler](https://togithub.com/Goooler) in [mockk/mockk#1156 - Swap expected/actual in `KotlinVersionOverrideTest.kt` by [@​SimonMarquis](https://togithub.com/SimonMarquis) in [mockk/mockk#1157 - Reduce the use of spread operator to improve performance by [@​k163377](https://togithub.com/k163377) in [mockk/mockk#1143 - update Kotlin and Java Toolchain properties, and setting them in CI by [@​aSemy](https://togithub.com/aSemy) in [mockk/mockk#1056 - Fix `dokkaJavadoc` publishing task by [@​SimonMarquis](https://togithub.com/SimonMarquis) in [mockk/mockk#1160 #### New Contributors - [@​dependabot](https://togithub.com/dependabot) made their first contribution in [mockk/mockk#482 - [@​k163377](https://togithub.com/k163377) made their first contribution in [mockk/mockk#1134 - [@​marcelstoer](https://togithub.com/marcelstoer) made their first contribution in [mockk/mockk#1117 - [@​LeonRa](https://togithub.com/LeonRa) made their first contribution in [mockk/mockk#1146 **Full Changelog**: mockk/mockk@1.13.7...1.13.8 </details> --- ### Configuration 📅 **Schedule**: Branch creation - "before 3am on the first day of the month" (UTC), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/kotest/kotest). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4xNTMuMiIsInVwZGF0ZWRJblZlciI6IjM3LjE1My4yIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIn0=--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Resolves #1139