diff --git a/stability-compiler/src/main/kotlin/com/skydoves/compose/stability/compiler/lower/StabilityAnalyzerTransformer.kt b/stability-compiler/src/main/kotlin/com/skydoves/compose/stability/compiler/lower/StabilityAnalyzerTransformer.kt index dfe0944..dfec5a8 100644 --- a/stability-compiler/src/main/kotlin/com/skydoves/compose/stability/compiler/lower/StabilityAnalyzerTransformer.kt +++ b/stability-compiler/src/main/kotlin/com/skydoves/compose/stability/compiler/lower/StabilityAnalyzerTransformer.kt @@ -61,8 +61,29 @@ public class StabilityAnalyzerTransformer( private val analyzingTypes = ThreadLocal.withInitial { mutableSetOf() } override fun visitFunctionNew(declaration: IrFunction): IrStatement { - val functionName = declaration.name.asString() - val fqName = declaration.kotlinFqName.asString() + // Handle property getters - extract actual property name + // Property getters have names like "" + val rawFunctionName = declaration.name.asString() + val rawFqName = declaration.kotlinFqName.asString() + + val nameAndFqn = if (rawFunctionName.startsWith("")) { + // This is a property getter - extract property name + val propertyName = rawFunctionName.substring(5, rawFunctionName.length - 1) + + // Build proper FQN by replacing with property name + val propertyFqName = if (rawFqName.contains("]+)>"), "$1") + } else { + rawFqName + } + + Pair(propertyName, propertyFqName) + } else { + Pair(rawFunctionName, rawFqName) + } + + val functionName = nameAndFqn.first + val fqName = nameAndFqn.second // Check if function has @TraceRecomposition annotation val hasTraceRecomposition = declaration.hasAnnotation(traceRecompositionFqName)