Skip to content

Cannot match multiline template #2

Description

@DjakaTechnology

Hello, thank you for sharing this tool. I found a problem when trying to match multiline:

given:

    private var otherField: String? = null

    @JvmField
    @Inject
    var fileDownloader: FileDownloader? = null

Matcher:

            .replaceAllWithVariables<KtExpression>(
                matcher =
                template {
                    val a by match<KtExpression>()
                    val b by match<KtExpression>()
                    """
                        @JvmField
                        @Inject
                        var $a: $b? = null
                    """.trimIndent()
                },
                replaceWith = { (result, variables) ->
                    val a by variables
                    val b by variables
                    """
                        @Inject
                        lateinit var $a: $b
                    """.trimIndent()
                }

this tool will throw exception

Exception in thread "main" java.lang.IllegalStateException: Template references variable $a as a matcher of KtProperty, but variable was defined as a matcher of KtExpression

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions