FIR: rename Diagnostic to DiagnosticData in checkers generators to avoid conflict with existing Diagnostic class
This commit is contained in:
+3
-3
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.checkers.generator.diagnostics
|
|||||||
import org.jetbrains.kotlin.diagnostics.Severity
|
import org.jetbrains.kotlin.diagnostics.Severity
|
||||||
import kotlin.reflect.KType
|
import kotlin.reflect.KType
|
||||||
|
|
||||||
data class Diagnostic(
|
data class DiagnosticData(
|
||||||
val severity: Severity,
|
val severity: Severity,
|
||||||
val name: String,
|
val name: String,
|
||||||
val sourceElementType: KType,
|
val sourceElementType: KType,
|
||||||
@@ -108,9 +108,9 @@ enum class PositioningStrategy(val expressionToCreate: String, val import: Strin
|
|||||||
private const val positioningStrategiesImport = "org.jetbrains.kotlin.fir.analysis.diagnostics.SourceElementPositioningStrategies"
|
private const val positioningStrategiesImport = "org.jetbrains.kotlin.fir.analysis.diagnostics.SourceElementPositioningStrategies"
|
||||||
|
|
||||||
|
|
||||||
fun Diagnostic.hasDefaultPositioningStrategy(): Boolean =
|
fun DiagnosticData.hasDefaultPositioningStrategy(): Boolean =
|
||||||
positioningStrategy == PositioningStrategy.DEFAULT
|
positioningStrategy == PositioningStrategy.DEFAULT
|
||||||
|
|
||||||
data class DiagnosticList(
|
data class DiagnosticList(
|
||||||
val diagnostics: List<Diagnostic>,
|
val diagnostics: List<DiagnosticData>,
|
||||||
)
|
)
|
||||||
+2
-2
@@ -17,7 +17,7 @@ import kotlin.reflect.typeOf
|
|||||||
|
|
||||||
class DiagnosticListBuilder private constructor() {
|
class DiagnosticListBuilder private constructor() {
|
||||||
@PrivateForInline
|
@PrivateForInline
|
||||||
val diagnostics = mutableListOf<Diagnostic>()
|
val diagnostics = mutableListOf<DiagnosticData>()
|
||||||
|
|
||||||
@PrivateForInline
|
@PrivateForInline
|
||||||
var currentGroupName: String? = null
|
var currentGroupName: String? = null
|
||||||
@@ -100,7 +100,7 @@ class DiagnosticBuilder(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(PrivateForInline::class)
|
@OptIn(PrivateForInline::class)
|
||||||
fun build() = Diagnostic(
|
fun build() = DiagnosticData(
|
||||||
severity,
|
severity,
|
||||||
name,
|
name,
|
||||||
sourceElementType,
|
sourceElementType,
|
||||||
|
|||||||
+5
-5
@@ -43,7 +43,7 @@ object ErrorListDiagnosticListRenderer : DiagnosticListRenderer() {
|
|||||||
|
|
||||||
private fun SmartPrinter.printDiagnosticGroup(
|
private fun SmartPrinter.printDiagnosticGroup(
|
||||||
group: String?,
|
group: String?,
|
||||||
diagnostics: List<Diagnostic>
|
diagnostics: List<DiagnosticData>
|
||||||
) {
|
) {
|
||||||
println("// ${group ?: "NO GROUP"}")
|
println("// ${group ?: "NO GROUP"}")
|
||||||
for (it in diagnostics) {
|
for (it in diagnostics) {
|
||||||
@@ -51,14 +51,14 @@ object ErrorListDiagnosticListRenderer : DiagnosticListRenderer() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun SmartPrinter.printDiagnostic(diagnostic: Diagnostic) {
|
private fun SmartPrinter.printDiagnostic(diagnostic: DiagnosticData) {
|
||||||
print("val ${diagnostic.name} by ${diagnostic.getFactoryFunction()}")
|
print("val ${diagnostic.name} by ${diagnostic.getFactoryFunction()}")
|
||||||
printTypeArguments(diagnostic.getAllTypeArguments())
|
printTypeArguments(diagnostic.getAllTypeArguments())
|
||||||
printPositioningStrategy(diagnostic)
|
printPositioningStrategy(diagnostic)
|
||||||
println()
|
println()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun SmartPrinter.printPositioningStrategy(diagnostic: Diagnostic) {
|
private fun SmartPrinter.printPositioningStrategy(diagnostic: DiagnosticData) {
|
||||||
print("(")
|
print("(")
|
||||||
if (!diagnostic.hasDefaultPositioningStrategy()) {
|
if (!diagnostic.hasDefaultPositioningStrategy()) {
|
||||||
print(diagnostic.positioningStrategy.expressionToCreate)
|
print(diagnostic.positioningStrategy.expressionToCreate)
|
||||||
@@ -68,7 +68,7 @@ object ErrorListDiagnosticListRenderer : DiagnosticListRenderer() {
|
|||||||
|
|
||||||
|
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
private fun Diagnostic.getAllTypeArguments(): List<KType> = buildList {
|
private fun DiagnosticData.getAllTypeArguments(): List<KType> = buildList {
|
||||||
add(sourceElementType)
|
add(sourceElementType)
|
||||||
add(psiType)
|
add(psiType)
|
||||||
parameters.mapTo(this) { it.type }
|
parameters.mapTo(this) { it.type }
|
||||||
@@ -124,7 +124,7 @@ object ErrorListDiagnosticListRenderer : DiagnosticListRenderer() {
|
|||||||
private val KType.kClass: KClass<*>
|
private val KType.kClass: KClass<*>
|
||||||
get() = classifier as KClass<*>
|
get() = classifier as KClass<*>
|
||||||
|
|
||||||
private fun Diagnostic.getFactoryFunction(): String =
|
private fun DiagnosticData.getFactoryFunction(): String =
|
||||||
severity.name.toLowerCase() + parameters.size
|
severity.name.toLowerCase() + parameters.size
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -5,12 +5,12 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.frontend.api.fir.generator
|
package org.jetbrains.kotlin.idea.frontend.api.fir.generator
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.Diagnostic
|
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.DiagnosticData
|
||||||
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.DiagnosticParameter
|
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.DiagnosticParameter
|
||||||
import kotlin.reflect.KType
|
import kotlin.reflect.KType
|
||||||
|
|
||||||
data class HLDiagnostic(
|
data class HLDiagnostic(
|
||||||
val original: Diagnostic,
|
val original: DiagnosticData,
|
||||||
val className: String,
|
val className: String,
|
||||||
val implClassName: String,
|
val implClassName: String,
|
||||||
val parameters: List<HLDiagnosticParameter>,
|
val parameters: List<HLDiagnosticParameter>,
|
||||||
|
|||||||
+4
-4
@@ -9,7 +9,7 @@ import com.intellij.psi.PsiElement
|
|||||||
import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange
|
import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange
|
||||||
import org.jetbrains.kotlin.descriptors.Visibility
|
import org.jetbrains.kotlin.descriptors.Visibility
|
||||||
import org.jetbrains.kotlin.fir.FirEffectiveVisibility
|
import org.jetbrains.kotlin.fir.FirEffectiveVisibility
|
||||||
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.Diagnostic
|
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.DiagnosticData
|
||||||
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.DiagnosticList
|
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.DiagnosticList
|
||||||
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.DiagnosticParameter
|
import org.jetbrains.kotlin.fir.checkers.generator.diagnostics.DiagnosticParameter
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
@@ -35,7 +35,7 @@ object HLDiagnosticConverter {
|
|||||||
fun convert(diagnosticList: DiagnosticList): HLDiagnosticList =
|
fun convert(diagnosticList: DiagnosticList): HLDiagnosticList =
|
||||||
HLDiagnosticList(diagnosticList.diagnostics.map(::convertDiagnostic))
|
HLDiagnosticList(diagnosticList.diagnostics.map(::convertDiagnostic))
|
||||||
|
|
||||||
private fun convertDiagnostic(diagnostic: Diagnostic): HLDiagnostic =
|
private fun convertDiagnostic(diagnostic: DiagnosticData): HLDiagnostic =
|
||||||
HLDiagnostic(
|
HLDiagnostic(
|
||||||
original = diagnostic,
|
original = diagnostic,
|
||||||
className = diagnostic.getHLDiagnosticClassName(),
|
className = diagnostic.getHLDiagnosticClassName(),
|
||||||
@@ -56,14 +56,14 @@ object HLDiagnosticConverter {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Diagnostic.getHLDiagnosticClassName() =
|
private fun DiagnosticData.getHLDiagnosticClassName() =
|
||||||
name.toLowerCase()
|
name.toLowerCase()
|
||||||
.split('_')
|
.split('_')
|
||||||
.joinToString(separator = "") {
|
.joinToString(separator = "") {
|
||||||
it.capitalize()
|
it.capitalize()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun Diagnostic.getHLDiagnosticImplClassName() =
|
private fun DiagnosticData.getHLDiagnosticImplClassName() =
|
||||||
"${getHLDiagnosticClassName()}Impl"
|
"${getHLDiagnosticClassName()}Impl"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user