override fun visitComposable()

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