[analysis api] fix ISE: No conversion was found for SYNTAX

^KT-51786 fixed
This commit is contained in:
Ilya Kirillov
2022-05-09 21:50:53 +02:00
parent 6e0eba7e00
commit ecbf9cd4d5
14 changed files with 110 additions and 38 deletions
@@ -15,8 +15,8 @@ import java.nio.file.Path
object DiagnosticClassGenerator {
fun generate(rootPath: Path, diagnosticList: DiagnosticList, packageName: String) {
val path = getGenerationPath(rootPath.toFile(), packageName)
KtDiagnosticClassRenderer.render(path.resolve("KtFirDiagnostics.kt"), diagnosticList, packageName)
KtDiagnosticClassImplementationRenderer.render(path.resolve("KtFirDiagnosticsImpl.kt"), diagnosticList, packageName)
FirDiagnosticToKtDiagnosticConverterRenderer.render(path.resolve("KtFirDataClassConverters.kt"), diagnosticList, packageName)
KtDiagnosticClassRenderer.render(path.resolve("KtFirDiagnostics.kt"), diagnosticList, packageName, emptySet())
KtDiagnosticClassImplementationRenderer.render(path.resolve("KtFirDiagnosticsImpl.kt"), diagnosticList, packageName, emptySet())
FirDiagnosticToKtDiagnosticConverterRenderer.render(path.resolve("KtFirDataClassConverters.kt"), diagnosticList, packageName, emptySet())
}
}
@@ -8,9 +8,12 @@ package org.jetbrains.kotlin.analysis.api.fir.generator
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.DIAGNOSTICS_LIST
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.JVM_DIAGNOSTICS_LIST
import java.nio.file.Paths
import org.jetbrains.kotlin.analysis.api.fir.generator.DiagnosticClassGenerator.generate
import org.jetbrains.kotlin.fir.builder.SYNTAX_DIAGNOSTIC_LIST
fun main() {
val rootPath = Paths.get("analysis/analysis-api-fir/src").toAbsolutePath()
val packageName = "org.jetbrains.kotlin.analysis.api.fir.diagnostics"
DiagnosticClassGenerator.generate(rootPath, DIAGNOSTICS_LIST + JVM_DIAGNOSTICS_LIST, packageName)
val diagnostics = DIAGNOSTICS_LIST + JVM_DIAGNOSTICS_LIST + SYNTAX_DIAGNOSTIC_LIST
generate(rootPath, diagnostics, packageName)
}
@@ -21,7 +21,7 @@ import java.io.File
import kotlin.reflect.KType
abstract class AbstractDiagnosticsDataClassRenderer : DiagnosticListRenderer() {
override fun render(file: File, diagnosticList: DiagnosticList, packageName: String) {
override fun render(file: File, diagnosticList: DiagnosticList, packageName: String, starImportsToAdd: Set<String>) {
val hlDiagnosticsList = HLDiagnosticConverter.convert(diagnosticList)
file.writeToFileUsingSmartPrinterIfFileContentChanged { render(hlDiagnosticsList, packageName) }
}