[analysis api] fix ISE: No conversion was found for SYNTAX
^KT-51786 fixed
This commit is contained in:
+3
-3
@@ -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())
|
||||
}
|
||||
}
|
||||
|
||||
+4
-1
@@ -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)
|
||||
}
|
||||
|
||||
+1
-1
@@ -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) }
|
||||
}
|
||||
|
||||
+6
@@ -4441,4 +4441,10 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert
|
||||
token,
|
||||
)
|
||||
}
|
||||
add(FirSyntaxErrors.SYNTAX) { firDiagnostic ->
|
||||
SyntaxImpl(
|
||||
firDiagnostic as KtPsiDiagnostic,
|
||||
token,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+4
@@ -3088,4 +3088,8 @@ sealed class KtFirDiagnostic<PSI : PsiElement> : KtDiagnosticWithPsi<PSI> {
|
||||
override val diagnosticClass get() = JavaSamInterfaceConstructorReference::class
|
||||
}
|
||||
|
||||
abstract class Syntax : KtFirDiagnostic<PsiElement>() {
|
||||
override val diagnosticClass get() = Syntax::class
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+5
@@ -3734,3 +3734,8 @@ internal class JavaSamInterfaceConstructorReferenceImpl(
|
||||
override val token: ValidityToken,
|
||||
) : KtFirDiagnostic.JavaSamInterfaceConstructorReference(), KtAbstractFirDiagnostic<PsiElement>
|
||||
|
||||
internal class SyntaxImpl(
|
||||
override val firDiagnostic: KtPsiDiagnostic,
|
||||
override val token: ValidityToken,
|
||||
) : KtFirDiagnostic.Syntax(), KtAbstractFirDiagnostic<PsiElement>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user