fbsamples / fbsamples/kotlin_ast_tools

Cannot match multiline template

未关闭
#2 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
Kotlin
星标
212
派生
10
PR 合并指标
30 天内没有已合并 PR

描述

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(
matcher =
template {
val a by match()
val b by match()
"""
@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
```

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。