From fcada0a5e32e0fea8c944ff3c9d0e992bb328187 Mon Sep 17 00:00:00 2001 From: Ilya Gorbunov Date: Tue, 21 Jan 2020 07:06:52 +0300 Subject: [PATCH] Make use of contracts of time measurement functions --- .../fir/builder/RawFirBuilderTotalKotlinTestCase.kt | 6 +++--- .../org/jetbrains/kotlin/fir/FirResolveBench.kt | 12 ++++++------ .../util-io/src/org/jetbrains/kotlin/util/Util.kt | 6 +++--- .../org/jetbrains/kotlin/jps/build/KotlinBuilder.kt | 2 +- 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderTotalKotlinTestCase.kt b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderTotalKotlinTestCase.kt index fcfeb1393e4..96d7fbf1aea 100644 --- a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderTotalKotlinTestCase.kt +++ b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderTotalKotlinTestCase.kt @@ -56,13 +56,13 @@ class RawFirBuilderTotalKotlinTestCase : AbstractRawFirBuilderTestCase() { if (file.extension != "kt") continue try { val ktFile = createKtFile(file.toRelativeString(root)) - var firFile: FirFile? = null + val firFile: FirFile time += measureNanoTime { firFile = ktFile.toFirFile(stubMode) } - totalLength += StringBuilder().also { FirRenderer(it).visitFile(firFile!!) }.length + totalLength += StringBuilder().also { FirRenderer(it).visitFile(firFile) }.length counter++ - firFile?.accept(object : FirVisitorVoid() { + firFile.accept(object : FirVisitorVoid() { override fun visitElement(element: FirElement) { element.acceptChildren(this) } diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/fir/FirResolveBench.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/fir/FirResolveBench.kt index a83823f7b45..dba5f4119ff 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/fir/FirResolveBench.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/fir/FirResolveBench.kt @@ -99,15 +99,15 @@ class FirResolveBench(val withProgress: Boolean) { ): List { return ktFiles.map { file -> val before = vmStateSnapshot() - var firFile: FirFile? = null + val firFile: FirFile val time = measureNanoTime { firFile = builder.buildFirFile(file) - (builder.baseSession.firProvider as FirProviderImpl).recordFile(firFile!!) + (builder.baseSession.firProvider as FirProviderImpl).recordFile(firFile) } val after = vmStateSnapshot() val diff = after - before recordTime(builder::class, diff, time) - firFile!! + firFile }.also { totalTime = timePerTransformer.values.sumByLong { it.time } } @@ -119,15 +119,15 @@ class FirResolveBench(val withProgress: Boolean) { ): List { return files.map { file -> val before = vmStateSnapshot() - var firFile: FirFile? = null + val firFile: FirFile val time = measureNanoTime { firFile = builder.buildFirFile(file) - (builder.session.firProvider as FirProviderImpl).recordFile(firFile!!) + (builder.session.firProvider as FirProviderImpl).recordFile(firFile) } val after = vmStateSnapshot() val diff = after - before recordTime(builder::class, diff, time) - firFile!! + firFile }.also { totalTime = timePerTransformer.values.sumByLong { it.time } } diff --git a/compiler/util-io/src/org/jetbrains/kotlin/util/Util.kt b/compiler/util-io/src/org/jetbrains/kotlin/util/Util.kt index b5034c8a8fd..536cae2e13b 100644 --- a/compiler/util-io/src/org/jetbrains/kotlin/util/Util.kt +++ b/compiler/util-io/src/org/jetbrains/kotlin/util/Util.kt @@ -10,12 +10,12 @@ import org.jetbrains.kotlin.konan.file.* import java.lang.StringBuilder fun printMillisec(message: String, body: () -> T): T { - var result: T? = null - val msec = measureTimeMillis{ + val result: T + val msec = measureTimeMillis { result = body() } println("$message: $msec msec") - return result!! + return result } fun profile(message: String, body: () -> Unit) = profileIf( diff --git a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt index b8985d3405a..76d51459808 100644 --- a/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt +++ b/jps-plugin/src/org/jetbrains/kotlin/jps/build/KotlinBuilder.kt @@ -128,7 +128,7 @@ class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR) { } private fun initializeKotlinContext(context: CompileContext): KotlinCompileContext { - lateinit var kotlinContext: KotlinCompileContext + val kotlinContext: KotlinCompileContext val time = measureTimeMillis { kotlinContext = KotlinCompileContext(context)