in rules/common/src/main/kotlin/com/twitter/compose/rules/ComposePreviewPublic.kt [16:33]
override fun visitComposable(function: KtFunction, autoCorrect: Boolean, emitter: Emitter) {
// We only want previews
if (!function.isPreview) return
// We only care about public methods
if (!function.isPublic) return
// If the method is public, none of it's params should be tagged as preview
// This is configurable by the `previewPublicOnlyIfParams` config value
if (function.config().getBoolean("previewPublicOnlyIfParams", true)) {
if (function.valueParameters.none { it.isPreviewParameter }) return
}
// If we got here, it's a public method in a @Preview composable with a @PreviewParameter parameter
emitter.report(function, ComposablesPreviewShouldNotBePublic, true)
if (autoCorrect) {
function.addModifier(KtTokens.PRIVATE_KEYWORD)
}
}