Avoid emitting applier debug output
Avoid emitting log information in the applier when the
information is not directed at a log file to avoid emitting
internal diagnostic information when it wasn't requested that
can break warning build check.
Test: ./gredlew :compose:material3:material3:integration-tests:material3-catalog:compileReleaseKotlin
Fixes: b/221067603
Change-Id: I6ce2289df99f030bf049a80999e1bee47228f9f0
diff --git a/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/BuildMetrics.kt b/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/BuildMetrics.kt
index 3fc230a..bae2c51 100644
--- a/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/BuildMetrics.kt
+++ b/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/BuildMetrics.kt
@@ -40,6 +40,7 @@
import java.io.File
interface FunctionMetrics {
+ val isEmpty: Boolean get() = false
val packageName: FqName
val name: String
val composable: Boolean
@@ -82,6 +83,8 @@
}
interface ModuleMetrics {
+ val isEmpty get() = false
+
fun recordFunction(
function: FunctionMetrics,
)
@@ -110,6 +113,7 @@
}
object EmptyModuleMetrics : ModuleMetrics {
+ override val isEmpty: Boolean get() = true
override fun recordFunction(function: FunctionMetrics) {}
override fun recordClass(declaration: IrClass, marked: Boolean, stability: Stability) {}
override fun recordLambda(composable: Boolean, memoized: Boolean, singleton: Boolean) {}
@@ -131,6 +135,7 @@
object EmptyFunctionMetrics : FunctionMetrics {
private fun emptyMetricsAccessed(): Nothing = error("Empty metrics accessed")
+ override val isEmpty: Boolean get() = true
override val packageName: FqName
get() = emptyMetricsAccessed()
override val name: String
diff --git a/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/ComposableTargetAnnotationsTransformer.kt b/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/ComposableTargetAnnotationsTransformer.kt
index 6b88014..ded3692 100644
--- a/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/ComposableTargetAnnotationsTransformer.kt
+++ b/compose/compiler/compiler-hosted/src/main/java/androidx/compose/compiler/plugins/kotlin/lower/ComposableTargetAnnotationsTransformer.kt
@@ -196,7 +196,8 @@
override fun log(node: InferenceNode?, message: String) {
val element = node?.element
- metrics.log("applier inference${lineInfoOf(element)}: $message")
+ if (!metrics.isEmpty)
+ metrics.log("applier inference${lineInfoOf(element)}: $message")
}
}
)