wip 18 - VERY DIRTY 13
diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/ClassifierExplorationResult.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/ExploredClassifier.kt
similarity index 89%
rename from compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/ClassifierExplorationResult.kt
rename to compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/ExploredClassifier.kt
index eb45460..3ddb1d8 100644
--- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/ClassifierExplorationResult.kt
+++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/ExploredClassifier.kt
@@ -12,11 +12,11 @@
* Describes the reason why a certain classifier is considered as unusable (partially linked or having visibility conflicts).
* For more details see [LinkedClassifierExplorer.exploreSymbol].
*/
-internal sealed interface ClassifierExplorationResult {
- /** Indicated unusable classifier. */
- sealed interface Unusable : ClassifierExplorationResult {
- val symbol: IrClassifierSymbol
+internal sealed interface ExploredClassifier {
+ val symbol: IrClassifierSymbol
+ /** Indicated unusable classifier. */
+ sealed interface Unusable : ExploredClassifier {
sealed interface CanBeRootCause : Unusable
/**
@@ -56,8 +56,7 @@
}
/** Indicates usable type that is fully linked and does not have visibility conflicts. */
- sealed interface Usable : ClassifierExplorationResult {
- val symbol: IrClassifierSymbol
+ sealed interface Usable : ExploredClassifier {
val visibility: ABIVisibility
class AccessibleClassifier(override val symbol: IrClassifierSymbol, override val visibility: ABIVisibility) : Usable
@@ -67,5 +66,7 @@
}
}
- object RecursionAvoidance : ClassifierExplorationResult
+ object RecursionAvoidance : ExploredClassifier {
+ override val symbol get() = error("Not supposed to be called")
+ }
}
diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/LinkedClassifierExplorer.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/LinkedClassifierExplorer.kt
index 5416af6..ae30ab9 100644
--- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/LinkedClassifierExplorer.kt
+++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/LinkedClassifierExplorer.kt
@@ -27,10 +27,10 @@
import org.jetbrains.kotlin.ir.visitors.acceptChildrenVoid
internal class LinkedClassifierExplorer(private val stubGenerator: MissingDeclarationStubGenerator) {
- private val exploredSymbols = THashMap<IrClassifierSymbol, ClassifierExplorationResult>()
+ private val exploredSymbols = THashMap<IrClassifierSymbol, ExploredClassifier>()
fun exploreType(type: IrType): TypeExplorationResult = type.exploreType(visitedSymbols = hashSetOf())
- fun exploreSymbol(symbol: IrClassifierSymbol): ClassifierExplorationResult = symbol.exploreSymbol(visitedSymbols = hashSetOf())
+ fun exploreSymbol(symbol: IrClassifierSymbol): ExploredClassifier = symbol.exploreSymbol(visitedSymbols = hashSetOf())
fun exploreIrElement(element: IrElement) {
element.acceptChildrenVoid(IrElementExplorer { it.exploreType(visitedSymbols = hashSetOf()) })
@@ -49,7 +49,7 @@
}
/** Explore the IR classifier symbol to find the first cause why this symbol should be considered as partially linked. */
- private fun IrClassifierSymbol.exploreSymbol(visitedSymbols: MutableSet<IrClassifierSymbol>): ClassifierExplorationResult {
+ private fun IrClassifierSymbol.exploreSymbol(visitedSymbols: MutableSet<IrClassifierSymbol>): ExploredClassifier {
// TODO: check filters
// if (this.isTrusted()) {
// return Fully.TrustedClassifier
@@ -62,24 +62,24 @@
if (!isBound) {
stubGenerator.getDeclaration(this) // Generate a stub and bind the symbol immediately.
- return registerClassifier(this, ClassifierExplorationResult.Unusable.MissingClassifier(this))
+ return registerClassifier(this, ExploredClassifier.Unusable.MissingClassifier(this))
} else if ((owner as? IrLazyDeclarationBase)?.descriptor is NotFoundClasses.MockClassDescriptor) {
// In case of Lazy IR the declaration is present, but wraps a special descriptor.
- return registerClassifier(this, ClassifierExplorationResult.Unusable.MissingClassifier(this))
+ return registerClassifier(this, ExploredClassifier.Unusable.MissingClassifier(this))
}
if (!visitedSymbols.add(this)) {
- return ClassifierExplorationResult.RecursionAvoidance
+ return ExploredClassifier.RecursionAvoidance
}
val explorationResult = when (val classifier = owner) {
is IrClass -> {
if (classifier.origin == PartiallyLinkedDeclarationOrigin.MISSING_DECLARATION)
- return registerClassifier(this, ClassifierExplorationResult.Unusable.MissingClassifier(this))
+ return registerClassifier(this, ExploredClassifier.Unusable.MissingClassifier(this))
val outerClassSymbol = if (classifier.isInner || classifier.isEnumEntry) {
classifier.parentClassOrNull?.symbol
- ?: return registerClassifier(this, ClassifierExplorationResult.Unusable.MissingEnclosingClass(this as IrClassSymbol))
+ ?: return registerClassifier(this, ExploredClassifier.Unusable.MissingEnclosingClass(this as IrClassSymbol))
} else null
classifierExploration {
@@ -99,19 +99,19 @@
return registerClassifier(this, explorationResult)
}
- private fun <S : ClassifierExplorationResult> registerClassifier(symbol: IrClassifierSymbol, explorationResult: S): S {
+ private fun <S : ExploredClassifier> registerClassifier(symbol: IrClassifierSymbol, explorationResult: S): S {
exploredSymbols[symbol] = explorationResult
return explorationResult
}
}
private abstract class ExplorationResultBuilder<R, UR : R> {
- protected var dependencyWithNarrowerVisibility: ClassifierExplorationResult.Usable.AccessibleClassifier? = null
+ protected var dependencyWithNarrowerVisibility: ExploredClassifier.Usable.AccessibleClassifier? = null
protected var unusableResult: UR? = null
private inline val done get() = unusableResult != null
- fun exploreByClassifier(block: () -> ClassifierExplorationResult) {
+ fun exploreByClassifier(block: () -> ExploredClassifier) {
if (!done) consume(block())
}
@@ -119,7 +119,7 @@
if (!done) consume(block())
}
- fun <T> exploreByClassifiers(collection: Collection<T>, block: (T) -> ClassifierExplorationResult?) {
+ fun <T> exploreByClassifiers(collection: Collection<T>, block: (T) -> ExploredClassifier?) {
if (!done && collection.isNotEmpty()) {
collection.asSequence().mapNotNull(block).forEach { next ->
consume(next)
@@ -145,23 +145,23 @@
}
}
- private fun consume(exploredClassifier: ClassifierExplorationResult) {
+ private fun consume(exploredClassifier: ExploredClassifier) {
when (exploredClassifier) {
- is ClassifierExplorationResult.Unusable -> onPartiallyLinkedClassifier(exploredClassifier)
- is ClassifierExplorationResult.Usable -> onFullyLinkedClassifier(exploredClassifier.accessibleClassifier)
- is ClassifierExplorationResult.RecursionAvoidance -> return // Just skip it.
+ is ExploredClassifier.Unusable -> onPartiallyLinkedClassifier(exploredClassifier)
+ is ExploredClassifier.Usable -> onFullyLinkedClassifier(exploredClassifier.accessibleClassifier)
+ is ExploredClassifier.RecursionAvoidance -> return // Just skip it.
}
}
- private inline val ClassifierExplorationResult.Usable.accessibleClassifier: ClassifierExplorationResult.Usable.AccessibleClassifier
+ private inline val ExploredClassifier.Usable.accessibleClassifier: ExploredClassifier.Usable.AccessibleClassifier
get() = when (this) {
- is ClassifierExplorationResult.Usable.AccessibleClassifier -> this
- is ClassifierExplorationResult.Usable.LesserAccessibleClassifier -> dueTo
+ is ExploredClassifier.Usable.AccessibleClassifier -> this
+ is ExploredClassifier.Usable.LesserAccessibleClassifier -> dueTo
}
protected fun checkDependencyVisibility(
currentVisibility: ABIVisibility,
- nextClassifier: ClassifierExplorationResult.Usable.AccessibleClassifier,
+ nextClassifier: ExploredClassifier.Usable.AccessibleClassifier,
onConflictingVisibilities: (ABIVisibility.Limited) -> UR
) {
val nextVisibility = nextClassifier.visibility
@@ -173,19 +173,19 @@
}
}
- protected abstract fun onPartiallyLinkedClassifier(exploredClassifier: ClassifierExplorationResult.Unusable)
- protected abstract fun onFullyLinkedClassifier(exploredClassifier: ClassifierExplorationResult.Usable.AccessibleClassifier)
+ protected abstract fun onPartiallyLinkedClassifier(exploredClassifier: ExploredClassifier.Unusable)
+ protected abstract fun onFullyLinkedClassifier(exploredClassifier: ExploredClassifier.Usable.AccessibleClassifier)
protected abstract fun onVisibilityConflict(exploredType: TypeExplorationResult.UnusableType.DueToVisibilityConflict)
abstract fun build(): R
}
-private class TypeExplorationResultBuilder : ExplorationResultBuilder<TypeExplorationResult, TypeExplorationResult.UnusableType>() {
- override fun onPartiallyLinkedClassifier(exploredClassifier: ClassifierExplorationResult.Unusable) {
+private class ExploredTypeBuilder : ExplorationResultBuilder<TypeExplorationResult, TypeExplorationResult.UnusableType>() {
+ override fun onPartiallyLinkedClassifier(exploredClassifier: ExploredClassifier.Unusable) {
unusableResult = TypeExplorationResult.UnusableType.DueToClassifier(exploredClassifier)
}
- override fun onFullyLinkedClassifier(exploredClassifier: ClassifierExplorationResult.Usable.AccessibleClassifier) {
+ override fun onFullyLinkedClassifier(exploredClassifier: ExploredClassifier.Usable.AccessibleClassifier) {
when (val dependencyWithNarrowerVisibility = dependencyWithNarrowerVisibility) {
null -> {
// Memoize the dependency if it has non-default public visibility.
@@ -213,56 +213,56 @@
}
}
-private class ClassifierExplorationResultBuilder(
+private class ExploredClassifierBuilder(
private val symbol: IrClassifierSymbol
-) : (ExplorationResultBuilder<ClassifierExplorationResult, ClassifierExplorationResult>)() {
+) : (ExplorationResultBuilder<ExploredClassifier, ExploredClassifier>)() {
private val ownVisibility = ABIVisibility.determineVisibilityFor(symbol.owner as IrDeclaration)
- override fun onPartiallyLinkedClassifier(exploredClassifier: ClassifierExplorationResult.Unusable) {
+ override fun onPartiallyLinkedClassifier(exploredClassifier: ExploredClassifier.Unusable) {
unusableResult = when (exploredClassifier) {
- is ClassifierExplorationResult.Unusable.CanBeRootCause -> ClassifierExplorationResult.Unusable.DueToOtherClassifier(symbol, exploredClassifier)
- is ClassifierExplorationResult.Unusable.DueToOtherClassifier -> ClassifierExplorationResult.Unusable.DueToOtherClassifier(symbol, exploredClassifier.rootCause)
+ is ExploredClassifier.Unusable.CanBeRootCause -> ExploredClassifier.Unusable.DueToOtherClassifier(symbol, exploredClassifier)
+ is ExploredClassifier.Unusable.DueToOtherClassifier -> ExploredClassifier.Unusable.DueToOtherClassifier(symbol, exploredClassifier.rootCause)
}
}
- override fun onFullyLinkedClassifier(exploredClassifier: ClassifierExplorationResult.Usable.AccessibleClassifier) {
+ override fun onFullyLinkedClassifier(exploredClassifier: ExploredClassifier.Usable.AccessibleClassifier) {
when (val dependencyWithNarrowerVisibility = dependencyWithNarrowerVisibility) {
null -> {
// Compare own visibility of the classifier with the visibility of the `next` dependency.
checkDependencyVisibility(ownVisibility, exploredClassifier) { currentVisibility ->
- ClassifierExplorationResult.Unusable.InaccessibleClassifier(symbol, currentVisibility, exploredClassifier)
+ ExploredClassifier.Unusable.InaccessibleClassifier(symbol, currentVisibility, exploredClassifier)
}
}
else -> {
// Compare the visibility of the latest memoized dependency with the visibility of the `next` dependency.
checkDependencyVisibility(dependencyWithNarrowerVisibility.visibility, exploredClassifier) {
- ClassifierExplorationResult.Unusable.InaccessibleClassifierDueToOtherClassifiers(symbol, dependencyWithNarrowerVisibility, exploredClassifier)
+ ExploredClassifier.Unusable.InaccessibleClassifierDueToOtherClassifiers(symbol, dependencyWithNarrowerVisibility, exploredClassifier)
}
}
}
}
override fun onVisibilityConflict(exploredType: TypeExplorationResult.UnusableType.DueToVisibilityConflict) {
- unusableResult = ClassifierExplorationResult.Unusable.InaccessibleClassifierDueToOtherClassifiers(
+ unusableResult = ExploredClassifier.Unusable.InaccessibleClassifierDueToOtherClassifiers(
symbol,
exploredType.classifierWithConflictingVisibility1,
exploredType.classifierWithConflictingVisibility2
)
}
- override fun build(): ClassifierExplorationResult {
+ override fun build(): ExploredClassifier {
return unusableResult
- ?: dependencyWithNarrowerVisibility?.let { ClassifierExplorationResult.Usable.LesserAccessibleClassifier(symbol, it) }
- ?: ClassifierExplorationResult.Usable.AccessibleClassifier(symbol, ownVisibility)
+ ?: dependencyWithNarrowerVisibility?.let { ExploredClassifier.Usable.LesserAccessibleClassifier(symbol, it) }
+ ?: ExploredClassifier.Usable.AccessibleClassifier(symbol, ownVisibility)
}
}
-private inline fun typeExploration(init: TypeExplorationResultBuilder.() -> Unit): TypeExplorationResult =
- TypeExplorationResultBuilder().apply(init).build()
+private inline fun typeExploration(init: ExploredTypeBuilder.() -> Unit): TypeExplorationResult =
+ ExploredTypeBuilder().apply(init).build()
-private inline fun IrClassifierSymbol.classifierExploration(init: ClassifierExplorationResultBuilder.() -> Unit): ClassifierExplorationResult =
- ClassifierExplorationResultBuilder(this).apply(init).build()
+private inline fun IrClassifierSymbol.classifierExploration(init: ExploredClassifierBuilder.() -> Unit): ExploredClassifier =
+ ExploredClassifierBuilder(this).apply(init).build()
private class IrElementExplorer(private val visitType: (IrType) -> Unit) : IrElementVisitorVoid {
override fun visitElement(element: IrElement) {
diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageCase.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageCase.kt
index 7142a61..327926d 100644
--- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageCase.kt
+++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageCase.kt
@@ -43,7 +43,7 @@
*/
class DeclarationUsesPartiallyLinkedClassifier(
val declarationSymbol: IrSymbol,
- val cause: ClassifierExplorationResult.Unusable
+ val cause: ExploredClassifier.Unusable
) : PartialLinkageCase
/**
@@ -72,7 +72,7 @@
*/
class ExpressionUsesPartiallyLinkedClassifier(
val expression: IrExpression,
- val cause: ClassifierExplorationResult.Unusable
+ val cause: ExploredClassifier.Unusable
) : PartialLinkageCase
/**
@@ -83,7 +83,7 @@
class ExpressionUsesDeclarationThatUsesPartiallyLinkedClassifier(
val expression: IrExpression,
val referencedDeclarationSymbol: IrSymbol,
- val cause: ClassifierExplorationResult.Unusable
+ val cause: ExploredClassifier.Unusable
) : PartialLinkageCase
/**
diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageErrorMessages.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageErrorMessages.kt
index 8151d5f..c9bb73b 100644
--- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageErrorMessages.kt
+++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageErrorMessages.kt
@@ -194,14 +194,14 @@
return append(": ")
}
-private fun Appendable.cause(cause: ClassifierExplorationResult.Unusable): Appendable =
+private fun Appendable.cause(cause: ExploredClassifier.Unusable): Appendable =
when (cause) {
- is ClassifierExplorationResult.Unusable.MissingClassifier -> unlinkedSymbol(cause)
- is ClassifierExplorationResult.Unusable.MissingEnclosingClass -> noEnclosingClass(cause)
- is ClassifierExplorationResult.Unusable.DueToOtherClassifier -> {
+ is ExploredClassifier.Unusable.MissingClassifier -> unlinkedSymbol(cause)
+ is ExploredClassifier.Unusable.MissingEnclosingClass -> noEnclosingClass(cause)
+ is ExploredClassifier.Unusable.DueToOtherClassifier -> {
when (val rootCause = cause.rootCause) {
- is ClassifierExplorationResult.Unusable.MissingClassifier -> unlinkedSymbol(rootCause, cause)
- is ClassifierExplorationResult.Unusable.MissingEnclosingClass -> noEnclosingClass(rootCause, cause)
+ is ExploredClassifier.Unusable.MissingClassifier -> unlinkedSymbol(rootCause, cause)
+ is ExploredClassifier.Unusable.MissingEnclosingClass -> noEnclosingClass(rootCause, cause)
}
}
}
@@ -213,8 +213,8 @@
declarationKindName(symbol, capitalized = true).append(" lacks enclosing class")
private fun Appendable.unlinkedSymbol(
- rootCause: ClassifierExplorationResult.Unusable.MissingClassifier,
- cause: ClassifierExplorationResult.Unusable.DueToOtherClassifier? = null
+ rootCause: ExploredClassifier.Unusable.MissingClassifier,
+ cause: ExploredClassifier.Unusable.DueToOtherClassifier? = null
): Appendable {
append("unlinked ").append(rootCause.symbol.declarationKind.displayName).append(" symbol ").signature(rootCause.symbol)
if (cause != null) through(cause)
@@ -222,15 +222,15 @@
}
private fun Appendable.noEnclosingClass(
- rootCause: ClassifierExplorationResult.Unusable.MissingEnclosingClass,
- cause: ClassifierExplorationResult.Unusable.DueToOtherClassifier? = null
+ rootCause: ExploredClassifier.Unusable.MissingEnclosingClass,
+ cause: ExploredClassifier.Unusable.DueToOtherClassifier? = null
): Appendable {
declarationKindName(rootCause.symbol, capitalized = false)
if (cause != null) through(cause)
return append(". ").noEnclosingClass(rootCause.symbol)
}
-private fun Appendable.through(cause: ClassifierExplorationResult.Unusable.DueToOtherClassifier): Appendable =
+private fun Appendable.through(cause: ExploredClassifier.Unusable.DueToOtherClassifier): Appendable =
append(" (through ").declarationKindName(cause.symbol, capitalized = false).append(")")
private fun Appendable.unimplementedAbstractCallable(callable: IrOverridableDeclaration<*>): Appendable =
diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageSupportImpl.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageSupportImpl.kt
index 6c88d12..44c6a2a 100644
--- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageSupportImpl.kt
+++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartialLinkageSupportImpl.kt
@@ -27,7 +27,7 @@
val toExclude = buildSet {
for (clazz in entries.keys) {
- if (classifierExplorer.exploreSymbol(clazz.symbol) is ClassifierExplorationResult.Unusable) {
+ if (classifierExplorer.exploreSymbol(clazz.symbol) is ExploredClassifier.Unusable) {
this += clazz
}
}
diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartiallyLinkedIrTreePatcher.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartiallyLinkedIrTreePatcher.kt
index e75e304..f4cf905 100644
--- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartiallyLinkedIrTreePatcher.kt
+++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartiallyLinkedIrTreePatcher.kt
@@ -131,9 +131,9 @@
if (partialLinkageReason != null) {
// Transform the reason into the most appropriate linkage case.
val partialLinkageCase = when (partialLinkageReason) {
- is ClassifierExplorationResult.Unusable.MissingClassifier -> MissingDeclaration(declaration.symbol)
- is ClassifierExplorationResult.Unusable.MissingEnclosingClass -> MissingEnclosingClass(declaration.symbol)
- is ClassifierExplorationResult.Unusable.DueToOtherClassifier -> DeclarationUsesPartiallyLinkedClassifier(
+ is ExploredClassifier.Unusable.MissingClassifier -> MissingDeclaration(declaration.symbol)
+ is ExploredClassifier.Unusable.MissingEnclosingClass -> MissingEnclosingClass(declaration.symbol)
+ is ExploredClassifier.Unusable.DueToOtherClassifier -> DeclarationUsesPartiallyLinkedClassifier(
declaration.symbol,
partialLinkageReason.rootCause
)
@@ -233,11 +233,11 @@
}
/**
- * Returns the first encountered [ClassifierExplorationResult.Unusable].
+ * Returns the first encountered [ExploredClassifier.Unusable].
*/
- private fun IrFunction.rewriteTypesInFunction(): ClassifierExplorationResult.Unusable? {
+ private fun IrFunction.rewriteTypesInFunction(): ExploredClassifier.Unusable? {
// Remember the first assignment. Ignore all subsequent.
- var result: ClassifierExplorationResult.Unusable? by Delegates.vetoable(null) { _, oldValue, _ -> oldValue == null }
+ var result: ExploredClassifier.Unusable? by Delegates.vetoable(null) { _, oldValue, _ -> oldValue == null }
fun IrValueParameter.fixType() {
val newType = type.toPartiallyLinkedMarkerTypeOrNull() ?: return
@@ -509,10 +509,10 @@
else null
}
- private fun IrType.precalculatedPartialLinkageReason(): ClassifierExplorationResult.Unusable? =
+ private fun IrType.precalculatedPartialLinkageReason(): ExploredClassifier.Unusable? =
(this as? PartiallyLinkedMarkerType)?.partialLinkageReason ?: partialLinkageReason()
- private fun List<IrType>.precalculatedPartialLinkageReason(): ClassifierExplorationResult.Unusable? =
+ private fun List<IrType>.precalculatedPartialLinkageReason(): ExploredClassifier.Unusable? =
firstNotNullOfOrNull { it.precalculatedPartialLinkageReason() }
/**
@@ -529,8 +529,8 @@
}
}
- private fun IrClassifierSymbol.partialLinkageReason(): ClassifierExplorationResult.Unusable? =
- classifierExplorer.exploreSymbol(this) as? ClassifierExplorationResult.Unusable
+ private fun IrClassifierSymbol.partialLinkageReason(): ExploredClassifier.Unusable? =
+ classifierExplorer.exploreSymbol(this) as? ExploredClassifier.Unusable
private fun IrType.partialLinkageReason(): TypeExplorationResult.UnusableType? =
classifierExplorer.exploreType(this) as? TypeExplorationResult.UnusableType
diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartiallyLinkedMarkerType.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartiallyLinkedMarkerType.kt
index 84f3d71..a70ccd0 100644
--- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartiallyLinkedMarkerType.kt
+++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/PartiallyLinkedMarkerType.kt
@@ -12,11 +12,11 @@
/**
* Replacement for IR types that use partially linked classifier symbols.
- * Behaves like [kotlin.Any]?. Preserves [ClassifierExplorationResult.Unusable].
+ * Behaves like [kotlin.Any]?. Preserves [ExploredClassifier.Unusable].
*/
internal class PartiallyLinkedMarkerType(
builtIns: IrBuiltIns,
- val partialLinkageReason: ClassifierExplorationResult.Unusable
+ val partialLinkageReason: ExploredClassifier.Unusable
) : IrSimpleType(null) {
override val annotations get() = emptyList<IrConstructorCall>()
override val classifier = builtIns.anyClass
diff --git a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/TypeExplorationResult.kt b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/TypeExplorationResult.kt
index 653b0b9..d9a9792 100644
--- a/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/TypeExplorationResult.kt
+++ b/compiler/ir/serialization.common/src/org/jetbrains/kotlin/backend/common/serialization/unlinked/TypeExplorationResult.kt
@@ -12,16 +12,16 @@
internal sealed interface TypeExplorationResult {
/** Indicates unusable type. */
sealed interface UnusableType : TypeExplorationResult {
- class DueToClassifier(val classifier: ClassifierExplorationResult.Unusable) : UnusableType
+ class DueToClassifier(val classifier: ExploredClassifier.Unusable) : UnusableType
class DueToVisibilityConflict(
- val classifierWithConflictingVisibility1: ClassifierExplorationResult.Usable.AccessibleClassifier,
- val classifierWithConflictingVisibility2: ClassifierExplorationResult.Usable.AccessibleClassifier
+ val classifierWithConflictingVisibility1: ExploredClassifier.Usable.AccessibleClassifier,
+ val classifierWithConflictingVisibility2: ExploredClassifier.Usable.AccessibleClassifier
) : UnusableType
}
/** Indicates usable type that does not reference any partially linked classifiers and does not have visibility conflicts. */
- class UsableType(val classifierWithNarrowestVisibility: ClassifierExplorationResult.Usable?) : TypeExplorationResult {
+ class UsableType(val classifierWithNarrowestVisibility: ExploredClassifier.Usable?) : TypeExplorationResult {
companion object {
val DEFAULT_PUBLIC = UsableType(null)
}