Kotlin 类型转换安全检查工具实现与探讨
Kotlin 作为一种现代的编程语言,以其简洁、安全、互操作性强等特点受到了越来越多开发者的喜爱。在 Kotlin 中,类型转换是一个常见的操作,但如果不正确处理,可能会导致运行时错误。为了提高代码的安全性和可维护性,本文将探讨如何实现一个 Kotlin 类型转换安全检查工具,并对其原理和实现进行详细分析。
类型转换安全检查的重要性
在 Kotlin 中,类型转换分为两种:显式转换和隐式转换。隐式转换在编译时自动进行,而显式转换则需要开发者显式指定类型。如果类型转换不正确,可能会导致以下问题:
1. 运行时错误:如 ClassCastException,导致程序崩溃。
2. 逻辑错误:类型转换错误可能导致程序逻辑错误,影响程序的正确性。
3. 代码可读性降低:错误的类型转换会使代码难以理解,降低代码的可读性。
实现一个类型转换安全检查工具对于提高 Kotlin 代码的质量具有重要意义。
类型转换安全检查工具的设计
工具功能
我们的类型转换安全检查工具应具备以下功能:
1. 检查隐式转换是否安全。
2. 检查显式转换是否正确。
3. 提供详细的错误信息,方便开发者定位问题。
工具架构
工具采用以下架构:
1. 解析器:解析 Kotlin 代码,生成抽象语法树(AST)。
2. 分析器:遍历 AST,检查类型转换是否安全。
3. 报告生成器:生成错误报告,展示问题位置和原因。
实现细节
解析器
解析器使用 Kotlin 的解析库 `kotlin-stdlib` 中的 `KotlinParser` 类。通过解析 Kotlin 代码,生成 AST。
```kotlin
import org.jetbrains.kotlin.com.intellij.lang.parser.KotlinParserDefinition
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinition
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionBase
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtil
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import org.jetbrains.kotlin.com.intellij.lang.parser.ParserDefinitionUtilKt
import
Comments NOTHING