[IR] Extract IrDiagnosticReporter interface
^KT-62292
This commit is contained in:
committed by
Space Team
parent
faaefbd8e7
commit
41098a2e34
-4
@@ -5,8 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.backend.common.actualizer
|
||||
|
||||
import org.jetbrains.kotlin.KtDiagnosticReporterWithImplicitIrBasedContext
|
||||
import org.jetbrains.kotlin.backend.common.CommonBackendErrors
|
||||
import org.jetbrains.kotlin.descriptors.DescriptorVisibilities
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
@@ -16,7 +14,6 @@ import org.jetbrains.kotlin.ir.symbols.IrPropertySymbol
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||
import org.jetbrains.kotlin.ir.types.IrTypeSystemContext
|
||||
import org.jetbrains.kotlin.ir.types.classifierOrFail
|
||||
import org.jetbrains.kotlin.ir.util.isInterface
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
@@ -35,7 +32,6 @@ import org.jetbrains.kotlin.resolve.OverridingUtil
|
||||
internal class ActualFakeOverridesAdder(
|
||||
private val expectActualMap: Map<IrSymbol, IrSymbol>,
|
||||
private val expectToActualClassMap: Map<ClassId, IrClassSymbol>,
|
||||
private val diagnosticsReporter: KtDiagnosticReporterWithImplicitIrBasedContext,
|
||||
private val typeSystemContext: IrTypeSystemContext
|
||||
) : IrElementVisitorVoid {
|
||||
private val overrideChecker = IrOverrideChecker(typeSystemContext, emptyList())
|
||||
|
||||
+3
-3
@@ -5,7 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.backend.common.actualizer
|
||||
|
||||
import org.jetbrains.kotlin.KtDiagnosticReporterWithImplicitIrBasedContext
|
||||
import org.jetbrains.kotlin.ir.IrDiagnosticReporter
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
@@ -47,7 +47,7 @@ internal class ExpectActualCollector(
|
||||
private val mainFragment: IrModuleFragment,
|
||||
private val dependentFragments: List<IrModuleFragment>,
|
||||
private val typeSystemContext: IrTypeSystemContext,
|
||||
private val diagnosticsReporter: KtDiagnosticReporterWithImplicitIrBasedContext,
|
||||
private val diagnosticsReporter: IrDiagnosticReporter,
|
||||
private val expectActualTracker: ExpectActualTracker?,
|
||||
) {
|
||||
data class Result(val expectToActualMap: MutableMap<IrSymbol, IrSymbol>, val classActualizationInfo: ClassActualizationInfo)
|
||||
@@ -246,7 +246,7 @@ private class ExpectActualLinkCollector : IrElementVisitor<Unit, ExpectActualLin
|
||||
class MatchingContext(
|
||||
typeSystemContext: IrTypeSystemContext,
|
||||
private val destination: MutableMap<IrSymbol, IrSymbol>,
|
||||
private val diagnosticsReporter: KtDiagnosticReporterWithImplicitIrBasedContext,
|
||||
private val diagnosticsReporter: IrDiagnosticReporter,
|
||||
private val expectActualTracker: ExpectActualTracker?,
|
||||
internal val classActualizationInfo: ClassActualizationInfo,
|
||||
private val currentExpectFile: IrFile?,
|
||||
|
||||
+2
-8
@@ -5,11 +5,8 @@
|
||||
|
||||
package org.jetbrains.kotlin.backend.common.actualizer
|
||||
|
||||
import org.jetbrains.kotlin.KtDiagnosticReporterWithImplicitIrBasedContext
|
||||
import org.jetbrains.kotlin.ir.IrDiagnosticReporter
|
||||
import org.jetbrains.kotlin.backend.common.actualizer.checker.IrExpectActualCheckers
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
||||
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.overrides.IrFakeOverrideBuilder
|
||||
@@ -30,15 +27,13 @@ object IrActualizer {
|
||||
fun actualize(
|
||||
mainFragment: IrModuleFragment,
|
||||
dependentFragments: List<IrModuleFragment>,
|
||||
diagnosticReporter: DiagnosticReporter,
|
||||
ktDiagnosticReporter: IrDiagnosticReporter,
|
||||
typeSystemContext: IrTypeSystemContext,
|
||||
languageVersionSettings: LanguageVersionSettings,
|
||||
symbolTable: SymbolTable,
|
||||
fakeOverrideBuilder: IrFakeOverrideBuilder,
|
||||
useIrFakeOverrideBuilder: Boolean,
|
||||
expectActualTracker: ExpectActualTracker?
|
||||
): IrActualizedResult {
|
||||
val ktDiagnosticReporter = KtDiagnosticReporterWithImplicitIrBasedContext(diagnosticReporter, languageVersionSettings)
|
||||
|
||||
// The ir modules processing is performed phase-to-phase:
|
||||
// 1. Collect expect-actual links for classes and their members from dependent fragments
|
||||
@@ -67,7 +62,6 @@ object IrActualizer {
|
||||
ActualFakeOverridesAdder(
|
||||
expectActualMap,
|
||||
actualDeclarations.actualClasses,
|
||||
ktDiagnosticReporter,
|
||||
typeSystemContext
|
||||
).apply { dependentFragments.forEach { visitModuleFragment(it) } }
|
||||
}
|
||||
|
||||
+7
-7
@@ -5,7 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.backend.common.actualizer
|
||||
|
||||
import org.jetbrains.kotlin.KtDiagnosticReporterWithImplicitIrBasedContext
|
||||
import org.jetbrains.kotlin.ir.IrDiagnosticReporter
|
||||
import org.jetbrains.kotlin.backend.common.CommonBackendErrors
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
@@ -94,12 +94,12 @@ private fun recordTypeParametersMapping(
|
||||
}
|
||||
}
|
||||
|
||||
internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportMissingActual(expectSymbol: IrSymbol) {
|
||||
internal fun IrDiagnosticReporter.reportMissingActual(expectSymbol: IrSymbol) {
|
||||
reportMissingActual(expectSymbol.owner as IrDeclaration)
|
||||
}
|
||||
|
||||
@OptIn(ObsoleteDescriptorBasedAPI::class)
|
||||
internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportMissingActual(irDeclaration: IrDeclaration) {
|
||||
internal fun IrDiagnosticReporter.reportMissingActual(irDeclaration: IrDeclaration) {
|
||||
at(irDeclaration).report(
|
||||
CommonBackendErrors.NO_ACTUAL_FOR_EXPECT,
|
||||
(irDeclaration as? IrDeclarationWithName)?.name?.asString().orEmpty(),
|
||||
@@ -107,7 +107,7 @@ internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportMissingActual(
|
||||
)
|
||||
}
|
||||
|
||||
internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportExpectActualIncompatibility(
|
||||
internal fun IrDiagnosticReporter.reportExpectActualIncompatibility(
|
||||
expectSymbol: IrSymbol,
|
||||
actualSymbol: IrSymbol,
|
||||
incompatibility: ExpectActualCheckingCompatibility.Incompatible<*>,
|
||||
@@ -122,7 +122,7 @@ internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportExpectActualIn
|
||||
)
|
||||
}
|
||||
|
||||
internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportExpectActualMismatch(
|
||||
internal fun IrDiagnosticReporter.reportExpectActualMismatch(
|
||||
expectSymbol: IrSymbol,
|
||||
actualSymbol: IrSymbol,
|
||||
incompatibility: ExpectActualMatchingCompatibility.Mismatch,
|
||||
@@ -137,7 +137,7 @@ internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportExpectActualMi
|
||||
)
|
||||
}
|
||||
|
||||
internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportActualAnnotationsNotMatchExpect(
|
||||
internal fun IrDiagnosticReporter.reportActualAnnotationsNotMatchExpect(
|
||||
expectSymbol: IrSymbol,
|
||||
actualSymbol: IrSymbol,
|
||||
incompatibilityType: ExpectActualAnnotationsIncompatibilityType<IrConstructorCall>,
|
||||
@@ -151,7 +151,7 @@ internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportActualAnnotati
|
||||
)
|
||||
}
|
||||
|
||||
internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportActualAnnotationConflictingDefaultArgumentValue(
|
||||
internal fun IrDiagnosticReporter.reportActualAnnotationConflictingDefaultArgumentValue(
|
||||
reportOn: IrElement,
|
||||
file: IrFile,
|
||||
actualParam: IrValueParameter,
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.backend.common.actualizer.checker
|
||||
|
||||
import org.jetbrains.kotlin.KtDiagnosticReporterWithImplicitIrBasedContext
|
||||
import org.jetbrains.kotlin.ir.IrDiagnosticReporter
|
||||
import org.jetbrains.kotlin.backend.common.actualizer.ClassActualizationInfo
|
||||
import org.jetbrains.kotlin.backend.common.actualizer.IrExpectActualMatchingContext
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||
@@ -16,7 +16,7 @@ internal interface IrExpectActualChecker {
|
||||
val matchedExpectToActual: Map<IrSymbol, IrSymbol>
|
||||
val classActualizationInfo: ClassActualizationInfo
|
||||
val typeSystemContext: IrTypeSystemContext
|
||||
val diagnosticsReporter: KtDiagnosticReporterWithImplicitIrBasedContext
|
||||
val diagnosticsReporter: IrDiagnosticReporter
|
||||
val matchingContext: IrExpectActualMatchingContext
|
||||
}
|
||||
|
||||
|
||||
+2
-2
@@ -5,7 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.backend.common.actualizer.checker
|
||||
|
||||
import org.jetbrains.kotlin.KtDiagnosticReporterWithImplicitIrBasedContext
|
||||
import org.jetbrains.kotlin.ir.IrDiagnosticReporter
|
||||
import org.jetbrains.kotlin.backend.common.actualizer.ClassActualizationInfo
|
||||
import org.jetbrains.kotlin.backend.common.actualizer.IrExpectActualMatchingContext
|
||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||
@@ -16,7 +16,7 @@ internal class IrExpectActualCheckers(
|
||||
override val matchedExpectToActual: Map<IrSymbol, IrSymbol>,
|
||||
override val classActualizationInfo: ClassActualizationInfo,
|
||||
override val typeSystemContext: IrTypeSystemContext,
|
||||
override val diagnosticsReporter: KtDiagnosticReporterWithImplicitIrBasedContext,
|
||||
override val diagnosticsReporter: IrDiagnosticReporter,
|
||||
) : IrExpectActualChecker.Context {
|
||||
|
||||
private val checkers: Set<IrExpectActualChecker> = setOf(
|
||||
|
||||
Reference in New Issue
Block a user