[IR] Extract IrDiagnosticReporter interface
^KT-62292
This commit is contained in:
committed by
Space Team
parent
faaefbd8e7
commit
41098a2e34
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.pipeline
|
package org.jetbrains.kotlin.fir.pipeline
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.KtDiagnosticReporterWithImplicitIrBasedContext
|
||||||
import org.jetbrains.kotlin.backend.common.actualizer.IrActualizedResult
|
import org.jetbrains.kotlin.backend.common.actualizer.IrActualizedResult
|
||||||
import org.jetbrains.kotlin.backend.common.actualizer.IrActualizer
|
import org.jetbrains.kotlin.backend.common.actualizer.IrActualizer
|
||||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||||
@@ -143,9 +144,11 @@ fun FirResult.convertToIrAndActualize(
|
|||||||
actualizationResult = IrActualizer.actualize(
|
actualizationResult = IrActualizer.actualize(
|
||||||
fir2IrResult.irModuleFragment,
|
fir2IrResult.irModuleFragment,
|
||||||
commonIrOutputs.map { it.irModuleFragment },
|
commonIrOutputs.map { it.irModuleFragment },
|
||||||
fir2IrConfiguration.diagnosticReporter,
|
KtDiagnosticReporterWithImplicitIrBasedContext(
|
||||||
|
fir2IrConfiguration.diagnosticReporter,
|
||||||
|
fir2IrConfiguration.languageVersionSettings
|
||||||
|
),
|
||||||
actualizerTypeContextProvider(fir2IrResult.irModuleFragment.irBuiltins),
|
actualizerTypeContextProvider(fir2IrResult.irModuleFragment.irBuiltins),
|
||||||
fir2IrConfiguration.languageVersionSettings,
|
|
||||||
commonMemberStorage.symbolTable,
|
commonMemberStorage.symbolTable,
|
||||||
fir2IrResult.components.fakeOverrideBuilder,
|
fir2IrResult.components.fakeOverrideBuilder,
|
||||||
fir2IrConfiguration.useIrFakeOverrideBuilder,
|
fir2IrConfiguration.useIrFakeOverrideBuilder,
|
||||||
|
|||||||
+5
-4
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.diagnostics.DiagnosticReporter
|
|||||||
import org.jetbrains.kotlin.diagnostics.KtDiagnostic
|
import org.jetbrains.kotlin.diagnostics.KtDiagnostic
|
||||||
import org.jetbrains.kotlin.diagnostics.KtDiagnosticReporterWithContext
|
import org.jetbrains.kotlin.diagnostics.KtDiagnosticReporterWithContext
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
|
import org.jetbrains.kotlin.ir.IrDiagnosticReporter
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrAnnotationContainer
|
import org.jetbrains.kotlin.ir.declarations.IrAnnotationContainer
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
|
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
|
||||||
import org.jetbrains.kotlin.ir.declarations.IrFile
|
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||||
@@ -28,7 +29,7 @@ import java.util.*
|
|||||||
class KtDiagnosticReporterWithImplicitIrBasedContext(
|
class KtDiagnosticReporterWithImplicitIrBasedContext(
|
||||||
diagnosticReporter: DiagnosticReporter,
|
diagnosticReporter: DiagnosticReporter,
|
||||||
languageVersionSettings: LanguageVersionSettings
|
languageVersionSettings: LanguageVersionSettings
|
||||||
) : KtDiagnosticReporterWithContext(diagnosticReporter, languageVersionSettings) {
|
) : KtDiagnosticReporterWithContext(diagnosticReporter, languageVersionSettings), IrDiagnosticReporter {
|
||||||
|
|
||||||
private val suppressCache = IrBasedSuppressCache()
|
private val suppressCache = IrBasedSuppressCache()
|
||||||
|
|
||||||
@@ -36,13 +37,13 @@ class KtDiagnosticReporterWithImplicitIrBasedContext(
|
|||||||
(PsiSourceManager.findPsiElement(this, containingIrFile)?.let(::KtRealPsiSourceElement)
|
(PsiSourceManager.findPsiElement(this, containingIrFile)?.let(::KtRealPsiSourceElement)
|
||||||
?: sourceElement())
|
?: sourceElement())
|
||||||
|
|
||||||
fun at(irElement: IrElement, containingIrDeclaration: IrDeclaration): DiagnosticContextImpl =
|
override fun at(irElement: IrElement, containingIrDeclaration: IrDeclaration): DiagnosticContextImpl =
|
||||||
at(irElement, containingIrDeclaration.file)
|
at(irElement, containingIrDeclaration.file)
|
||||||
|
|
||||||
fun at(irDeclaration: IrDeclaration): DiagnosticContextImpl =
|
override fun at(irDeclaration: IrDeclaration): DiagnosticContextImpl =
|
||||||
at(irDeclaration, irDeclaration.file)
|
at(irDeclaration, irDeclaration.file)
|
||||||
|
|
||||||
fun at(irElement: IrElement, containingIrFile: IrFile): DiagnosticContextImpl =
|
override fun at(irElement: IrElement, containingIrFile: IrFile): DiagnosticContextImpl =
|
||||||
at(irElement.toSourceElement(containingIrFile), irElement, containingIrFile)
|
at(irElement.toSourceElement(containingIrFile), irElement, containingIrFile)
|
||||||
|
|
||||||
fun at(
|
fun at(
|
||||||
|
|||||||
-4
@@ -5,8 +5,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.backend.common.actualizer
|
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.descriptors.DescriptorVisibilities
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
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.symbols.IrSymbol
|
||||||
import org.jetbrains.kotlin.ir.types.IrTypeSystemContext
|
import org.jetbrains.kotlin.ir.types.IrTypeSystemContext
|
||||||
import org.jetbrains.kotlin.ir.types.classifierOrFail
|
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.IrElementVisitorVoid
|
||||||
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
|
||||||
import org.jetbrains.kotlin.name.ClassId
|
import org.jetbrains.kotlin.name.ClassId
|
||||||
@@ -35,7 +32,6 @@ import org.jetbrains.kotlin.resolve.OverridingUtil
|
|||||||
internal class ActualFakeOverridesAdder(
|
internal class ActualFakeOverridesAdder(
|
||||||
private val expectActualMap: Map<IrSymbol, IrSymbol>,
|
private val expectActualMap: Map<IrSymbol, IrSymbol>,
|
||||||
private val expectToActualClassMap: Map<ClassId, IrClassSymbol>,
|
private val expectToActualClassMap: Map<ClassId, IrClassSymbol>,
|
||||||
private val diagnosticsReporter: KtDiagnosticReporterWithImplicitIrBasedContext,
|
|
||||||
private val typeSystemContext: IrTypeSystemContext
|
private val typeSystemContext: IrTypeSystemContext
|
||||||
) : IrElementVisitorVoid {
|
) : IrElementVisitorVoid {
|
||||||
private val overrideChecker = IrOverrideChecker(typeSystemContext, emptyList())
|
private val overrideChecker = IrOverrideChecker(typeSystemContext, emptyList())
|
||||||
|
|||||||
+3
-3
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.backend.common.actualizer
|
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.config.LanguageVersionSettings
|
||||||
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
import org.jetbrains.kotlin.incremental.components.ExpectActualTracker
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
@@ -47,7 +47,7 @@ internal class ExpectActualCollector(
|
|||||||
private val mainFragment: IrModuleFragment,
|
private val mainFragment: IrModuleFragment,
|
||||||
private val dependentFragments: List<IrModuleFragment>,
|
private val dependentFragments: List<IrModuleFragment>,
|
||||||
private val typeSystemContext: IrTypeSystemContext,
|
private val typeSystemContext: IrTypeSystemContext,
|
||||||
private val diagnosticsReporter: KtDiagnosticReporterWithImplicitIrBasedContext,
|
private val diagnosticsReporter: IrDiagnosticReporter,
|
||||||
private val expectActualTracker: ExpectActualTracker?,
|
private val expectActualTracker: ExpectActualTracker?,
|
||||||
) {
|
) {
|
||||||
data class Result(val expectToActualMap: MutableMap<IrSymbol, IrSymbol>, val classActualizationInfo: ClassActualizationInfo)
|
data class Result(val expectToActualMap: MutableMap<IrSymbol, IrSymbol>, val classActualizationInfo: ClassActualizationInfo)
|
||||||
@@ -246,7 +246,7 @@ private class ExpectActualLinkCollector : IrElementVisitor<Unit, ExpectActualLin
|
|||||||
class MatchingContext(
|
class MatchingContext(
|
||||||
typeSystemContext: IrTypeSystemContext,
|
typeSystemContext: IrTypeSystemContext,
|
||||||
private val destination: MutableMap<IrSymbol, IrSymbol>,
|
private val destination: MutableMap<IrSymbol, IrSymbol>,
|
||||||
private val diagnosticsReporter: KtDiagnosticReporterWithImplicitIrBasedContext,
|
private val diagnosticsReporter: IrDiagnosticReporter,
|
||||||
private val expectActualTracker: ExpectActualTracker?,
|
private val expectActualTracker: ExpectActualTracker?,
|
||||||
internal val classActualizationInfo: ClassActualizationInfo,
|
internal val classActualizationInfo: ClassActualizationInfo,
|
||||||
private val currentExpectFile: IrFile?,
|
private val currentExpectFile: IrFile?,
|
||||||
|
|||||||
+2
-8
@@ -5,11 +5,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.backend.common.actualizer
|
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.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.incremental.components.ExpectActualTracker
|
||||||
import org.jetbrains.kotlin.ir.declarations.*
|
import org.jetbrains.kotlin.ir.declarations.*
|
||||||
import org.jetbrains.kotlin.ir.overrides.IrFakeOverrideBuilder
|
import org.jetbrains.kotlin.ir.overrides.IrFakeOverrideBuilder
|
||||||
@@ -30,15 +27,13 @@ object IrActualizer {
|
|||||||
fun actualize(
|
fun actualize(
|
||||||
mainFragment: IrModuleFragment,
|
mainFragment: IrModuleFragment,
|
||||||
dependentFragments: List<IrModuleFragment>,
|
dependentFragments: List<IrModuleFragment>,
|
||||||
diagnosticReporter: DiagnosticReporter,
|
ktDiagnosticReporter: IrDiagnosticReporter,
|
||||||
typeSystemContext: IrTypeSystemContext,
|
typeSystemContext: IrTypeSystemContext,
|
||||||
languageVersionSettings: LanguageVersionSettings,
|
|
||||||
symbolTable: SymbolTable,
|
symbolTable: SymbolTable,
|
||||||
fakeOverrideBuilder: IrFakeOverrideBuilder,
|
fakeOverrideBuilder: IrFakeOverrideBuilder,
|
||||||
useIrFakeOverrideBuilder: Boolean,
|
useIrFakeOverrideBuilder: Boolean,
|
||||||
expectActualTracker: ExpectActualTracker?
|
expectActualTracker: ExpectActualTracker?
|
||||||
): IrActualizedResult {
|
): IrActualizedResult {
|
||||||
val ktDiagnosticReporter = KtDiagnosticReporterWithImplicitIrBasedContext(diagnosticReporter, languageVersionSettings)
|
|
||||||
|
|
||||||
// The ir modules processing is performed phase-to-phase:
|
// The ir modules processing is performed phase-to-phase:
|
||||||
// 1. Collect expect-actual links for classes and their members from dependent fragments
|
// 1. Collect expect-actual links for classes and their members from dependent fragments
|
||||||
@@ -67,7 +62,6 @@ object IrActualizer {
|
|||||||
ActualFakeOverridesAdder(
|
ActualFakeOverridesAdder(
|
||||||
expectActualMap,
|
expectActualMap,
|
||||||
actualDeclarations.actualClasses,
|
actualDeclarations.actualClasses,
|
||||||
ktDiagnosticReporter,
|
|
||||||
typeSystemContext
|
typeSystemContext
|
||||||
).apply { dependentFragments.forEach { visitModuleFragment(it) } }
|
).apply { dependentFragments.forEach { visitModuleFragment(it) } }
|
||||||
}
|
}
|
||||||
|
|||||||
+7
-7
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.backend.common.actualizer
|
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.backend.common.CommonBackendErrors
|
||||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||||
import org.jetbrains.kotlin.ir.IrElement
|
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)
|
reportMissingActual(expectSymbol.owner as IrDeclaration)
|
||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(ObsoleteDescriptorBasedAPI::class)
|
@OptIn(ObsoleteDescriptorBasedAPI::class)
|
||||||
internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportMissingActual(irDeclaration: IrDeclaration) {
|
internal fun IrDiagnosticReporter.reportMissingActual(irDeclaration: IrDeclaration) {
|
||||||
at(irDeclaration).report(
|
at(irDeclaration).report(
|
||||||
CommonBackendErrors.NO_ACTUAL_FOR_EXPECT,
|
CommonBackendErrors.NO_ACTUAL_FOR_EXPECT,
|
||||||
(irDeclaration as? IrDeclarationWithName)?.name?.asString().orEmpty(),
|
(irDeclaration as? IrDeclarationWithName)?.name?.asString().orEmpty(),
|
||||||
@@ -107,7 +107,7 @@ internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportMissingActual(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportExpectActualIncompatibility(
|
internal fun IrDiagnosticReporter.reportExpectActualIncompatibility(
|
||||||
expectSymbol: IrSymbol,
|
expectSymbol: IrSymbol,
|
||||||
actualSymbol: IrSymbol,
|
actualSymbol: IrSymbol,
|
||||||
incompatibility: ExpectActualCheckingCompatibility.Incompatible<*>,
|
incompatibility: ExpectActualCheckingCompatibility.Incompatible<*>,
|
||||||
@@ -122,7 +122,7 @@ internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportExpectActualIn
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportExpectActualMismatch(
|
internal fun IrDiagnosticReporter.reportExpectActualMismatch(
|
||||||
expectSymbol: IrSymbol,
|
expectSymbol: IrSymbol,
|
||||||
actualSymbol: IrSymbol,
|
actualSymbol: IrSymbol,
|
||||||
incompatibility: ExpectActualMatchingCompatibility.Mismatch,
|
incompatibility: ExpectActualMatchingCompatibility.Mismatch,
|
||||||
@@ -137,7 +137,7 @@ internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportExpectActualMi
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportActualAnnotationsNotMatchExpect(
|
internal fun IrDiagnosticReporter.reportActualAnnotationsNotMatchExpect(
|
||||||
expectSymbol: IrSymbol,
|
expectSymbol: IrSymbol,
|
||||||
actualSymbol: IrSymbol,
|
actualSymbol: IrSymbol,
|
||||||
incompatibilityType: ExpectActualAnnotationsIncompatibilityType<IrConstructorCall>,
|
incompatibilityType: ExpectActualAnnotationsIncompatibilityType<IrConstructorCall>,
|
||||||
@@ -151,7 +151,7 @@ internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportActualAnnotati
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun KtDiagnosticReporterWithImplicitIrBasedContext.reportActualAnnotationConflictingDefaultArgumentValue(
|
internal fun IrDiagnosticReporter.reportActualAnnotationConflictingDefaultArgumentValue(
|
||||||
reportOn: IrElement,
|
reportOn: IrElement,
|
||||||
file: IrFile,
|
file: IrFile,
|
||||||
actualParam: IrValueParameter,
|
actualParam: IrValueParameter,
|
||||||
|
|||||||
+2
-2
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.backend.common.actualizer.checker
|
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.ClassActualizationInfo
|
||||||
import org.jetbrains.kotlin.backend.common.actualizer.IrExpectActualMatchingContext
|
import org.jetbrains.kotlin.backend.common.actualizer.IrExpectActualMatchingContext
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||||
@@ -16,7 +16,7 @@ internal interface IrExpectActualChecker {
|
|||||||
val matchedExpectToActual: Map<IrSymbol, IrSymbol>
|
val matchedExpectToActual: Map<IrSymbol, IrSymbol>
|
||||||
val classActualizationInfo: ClassActualizationInfo
|
val classActualizationInfo: ClassActualizationInfo
|
||||||
val typeSystemContext: IrTypeSystemContext
|
val typeSystemContext: IrTypeSystemContext
|
||||||
val diagnosticsReporter: KtDiagnosticReporterWithImplicitIrBasedContext
|
val diagnosticsReporter: IrDiagnosticReporter
|
||||||
val matchingContext: IrExpectActualMatchingContext
|
val matchingContext: IrExpectActualMatchingContext
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.backend.common.actualizer.checker
|
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.ClassActualizationInfo
|
||||||
import org.jetbrains.kotlin.backend.common.actualizer.IrExpectActualMatchingContext
|
import org.jetbrains.kotlin.backend.common.actualizer.IrExpectActualMatchingContext
|
||||||
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
|
||||||
@@ -16,7 +16,7 @@ internal class IrExpectActualCheckers(
|
|||||||
override val matchedExpectToActual: Map<IrSymbol, IrSymbol>,
|
override val matchedExpectToActual: Map<IrSymbol, IrSymbol>,
|
||||||
override val classActualizationInfo: ClassActualizationInfo,
|
override val classActualizationInfo: ClassActualizationInfo,
|
||||||
override val typeSystemContext: IrTypeSystemContext,
|
override val typeSystemContext: IrTypeSystemContext,
|
||||||
override val diagnosticsReporter: KtDiagnosticReporterWithImplicitIrBasedContext,
|
override val diagnosticsReporter: IrDiagnosticReporter,
|
||||||
) : IrExpectActualChecker.Context {
|
) : IrExpectActualChecker.Context {
|
||||||
|
|
||||||
private val checkers: Set<IrExpectActualChecker> = setOf(
|
private val checkers: Set<IrExpectActualChecker> = setOf(
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.ir
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||||
|
import org.jetbrains.kotlin.diagnostics.KtDiagnosticReporterWithContext.DiagnosticContextImpl
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrDeclaration
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||||
|
|
||||||
|
interface IrDiagnosticReporter {
|
||||||
|
val languageVersionSettings: LanguageVersionSettings
|
||||||
|
fun at(irDeclaration: IrDeclaration): DiagnosticContextImpl
|
||||||
|
fun at(irElement: IrElement, containingIrFile: IrFile): DiagnosticContextImpl
|
||||||
|
fun at(irElement: IrElement, containingIrDeclaration: IrDeclaration): DiagnosticContextImpl
|
||||||
|
}
|
||||||
+5
-2
@@ -5,6 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.test.backend.ir
|
package org.jetbrains.kotlin.test.backend.ir
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.KtDiagnosticReporterWithImplicitIrBasedContext
|
||||||
import org.jetbrains.kotlin.backend.common.actualizer.IrActualizer
|
import org.jetbrains.kotlin.backend.common.actualizer.IrActualizer
|
||||||
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
|
||||||
import org.jetbrains.kotlin.backend.jvm.JvmIrTypeSystemContext
|
import org.jetbrains.kotlin.backend.jvm.JvmIrTypeSystemContext
|
||||||
@@ -32,9 +33,11 @@ class IrActualizerAndPluginsFacade(
|
|||||||
val result = IrActualizer.actualize(
|
val result = IrActualizer.actualize(
|
||||||
inputArtifact.irModuleFragment,
|
inputArtifact.irModuleFragment,
|
||||||
inputArtifact.dependentIrModuleFragments,
|
inputArtifact.dependentIrModuleFragments,
|
||||||
inputArtifact.diagnosticReporter,
|
KtDiagnosticReporterWithImplicitIrBasedContext(
|
||||||
|
inputArtifact.diagnosticReporter,
|
||||||
|
testServices.compilerConfigurationProvider.getCompilerConfiguration(module).languageVersionSettings,
|
||||||
|
),
|
||||||
typeSystemContext,
|
typeSystemContext,
|
||||||
testServices.compilerConfigurationProvider.getCompilerConfiguration(module).languageVersionSettings,
|
|
||||||
inputArtifact.fir2IrComponents!!.symbolTable,
|
inputArtifact.fir2IrComponents!!.symbolTable,
|
||||||
inputArtifact.fir2IrComponents!!.fakeOverrideBuilder,
|
inputArtifact.fir2IrComponents!!.fakeOverrideBuilder,
|
||||||
useIrFakeOverrideBuilder = CodegenTestDirectives.ENABLE_IR_FAKE_OVERRIDE_GENERATION in module.directives,
|
useIrFakeOverrideBuilder = CodegenTestDirectives.ENABLE_IR_FAKE_OVERRIDE_GENERATION in module.directives,
|
||||||
|
|||||||
Reference in New Issue
Block a user