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")
             }
         }
     )