~
diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/IrType.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/IrType.kt
index d949005..4d67742 100644
--- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/IrType.kt
+++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/IrType.kt
@@ -30,8 +30,9 @@
abstract override fun hashCode(): Int
}
-abstract class IrErrorType(kotlinType: KotlinType?) : IrTypeBase(kotlinType) {
- val symbol: IrClassSymbol = IrErrorClassImpl.symbol
+abstract class IrErrorType(kotlinType: KotlinType?, private val errorClassStubSymbol: IrClassSymbol? = null) : IrTypeBase(kotlinType) {
+ val symbol: IrClassSymbol
+ get() = errorClassStubSymbol ?: error("123")
}
abstract class IrDynamicType(kotlinType: KotlinType?) : IrTypeBase(kotlinType), DynamicTypeMarker
diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/impl/IrTypeBase.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/impl/IrTypeBase.kt
index 2ddf365..641740e 100644
--- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/impl/IrTypeBase.kt
+++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/types/impl/IrTypeBase.kt
@@ -15,6 +15,7 @@
import org.jetbrains.kotlin.ir.declarations.impl.IrClassImpl
import org.jetbrains.kotlin.ir.declarations.lazy.IrLazyClass
import org.jetbrains.kotlin.ir.expressions.IrConstructorCall
+import org.jetbrains.kotlin.ir.symbols.IrClassSymbol
import org.jetbrains.kotlin.ir.symbols.IrClassifierSymbol
import org.jetbrains.kotlin.ir.symbols.impl.IrClassSymbolImpl
import org.jetbrains.kotlin.ir.types.*
@@ -34,13 +35,14 @@
kotlinType: KotlinType?,
override val annotations: List<IrConstructorCall>,
override val variance: Variance,
-) : IrErrorType(kotlinType) {
+ private val errorClassStubSymbol: IrClassSymbol? = null
+) : IrErrorType(kotlinType, errorClassStubSymbol) {
override fun equals(other: Any?): Boolean = other is IrErrorTypeImpl
override fun hashCode(): Int = IrErrorTypeImpl::class.java.hashCode()
}
-object IrErrorClassImpl : IrClassImpl(
+class IrErrorClassImpl(parent: Parent) : IrClassImpl(
UNDEFINED_OFFSET, UNDEFINED_OFFSET, IrDeclarationOrigin.DEFAULT_PROPERTY_ACCESSOR, IrClassSymbolImpl(),
Name.special("<error>"), ClassKind.CLASS, DescriptorVisibilities.DEFAULT_VISIBILITY, Modality.FINAL
)