diff --git a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/SymbolTable.kt b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/SymbolTable.kt index f338f229aca..d810d30e13a 100644 --- a/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/SymbolTable.kt +++ b/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/SymbolTable.kt @@ -45,7 +45,6 @@ class SymbolTable { inline fun declare(d: D, createSymbol: () -> S, createOwner: (S) -> B): B { val symbol = getOrCreateSymbol(d, createSymbol) val owner = createOwner(symbol) - symbol.bind(owner) return owner } @@ -128,7 +127,6 @@ class SymbolTable { val scope = currentScope ?: throw AssertionError("No active scope") val symbol = scope.getLocal(d) ?: createSymbol().also { scope[d] = it } val owner = createOwner(symbol) - symbol.bind(owner) return owner } diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrAnonymousInitializerImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrAnonymousInitializerImpl.kt index 8f4d445f6a7..0c349ef3cc7 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrAnonymousInitializerImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrAnonymousInitializerImpl.kt @@ -41,6 +41,10 @@ class IrAnonymousInitializerImpl( this.body = body } + init { + symbol.bind(this) + } + override val descriptor: ClassDescriptor get() = symbol.descriptor override lateinit var body: IrBlockBody diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt index b1501b0575d..76c10f45b3a 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrClassImpl.kt @@ -43,6 +43,10 @@ class IrClassImpl( addAll(members) } + init { + symbol.bind(this) + } + override val descriptor: ClassDescriptor get() = symbol.descriptor override var newInstanceReceiver: IrValueParameter? = null diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt index 125d2f33fbe..46e588fd758 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrConstructorImpl.kt @@ -42,6 +42,10 @@ class IrConstructorImpl( this.body = body } + init { + symbol.bind(this) + } + override val descriptor: ClassConstructorDescriptor get() = symbol.descriptor override fun accept(visitor: IrElementVisitor, data: D): R { diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrEnumEntryImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrEnumEntryImpl.kt index 67e58a1ae6a..7dce0432400 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrEnumEntryImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrEnumEntryImpl.kt @@ -44,6 +44,10 @@ class IrEnumEntryImpl( this.initializerExpression = initializerExpression } + init { + symbol.bind(this) + } + override val descriptor: ClassDescriptor get() = symbol.descriptor override var correspondingClass: IrClass? = null override var initializerExpression: IrExpression? = null diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrExternalPackageFragmentImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrExternalPackageFragmentImpl.kt index 2d14609630e..bcc89714726 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrExternalPackageFragmentImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrExternalPackageFragmentImpl.kt @@ -28,6 +28,10 @@ import org.jetbrains.kotlin.ir.visitors.IrElementVisitor class IrExternalPackageFragmentImpl( override val symbol: IrExternalPackageFragmentSymbol ) : IrExternalPackageFragment, IrElementBase(UNDEFINED_OFFSET, UNDEFINED_OFFSET) { + init { + symbol.bind(this) + } + override val packageFragmentDescriptor: PackageFragmentDescriptor get() = symbol.descriptor override val declarations: MutableList = ArrayList() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt index 777a9567f8c..d419153bb2b 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFieldImpl.kt @@ -42,6 +42,10 @@ class IrFieldImpl( this.initializer = initializer } + init { + symbol.bind(this) + } + override val descriptor: PropertyDescriptor = symbol.descriptor override var initializer: IrExpressionBody? = null diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFileImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFileImpl.kt index b353e4f9b4b..d444745cb67 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFileImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFileImpl.kt @@ -46,6 +46,10 @@ class IrFileImpl( this.declarations.addAll(declarations) } + init { + symbol.bind(this) + } + override val packageFragmentDescriptor: PackageFragmentDescriptor get() = symbol.descriptor override val fileAnnotations: MutableList = SmartList() diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt index 118c2c0fcb2..c1a068ba8cf 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrFunctionImpl.kt @@ -45,6 +45,10 @@ class IrFunctionImpl( this.body = body } + init { + symbol.bind(this) + } + override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitSimpleFunction(this, data) } \ No newline at end of file diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeParameterImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeParameterImpl.kt index 5d9c15d784d..ce08eec8252 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeParameterImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrTypeParameterImpl.kt @@ -35,6 +35,10 @@ class IrTypeParameterImpl( constructor(startOffset: Int, endOffset: Int, origin: IrDeclarationOrigin, descriptor: TypeParameterDescriptor) : this(startOffset, endOffset, origin, IrTypeParameterSymbolImpl(descriptor)) + init { + symbol.bind(this) + } + override fun accept(visitor: IrElementVisitor, data: D): R = visitor.visitTypeParameter(this, data) diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrValueParameterImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrValueParameterImpl.kt index a11ef9f5bb2..fc1fb17163c 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrValueParameterImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrValueParameterImpl.kt @@ -46,6 +46,10 @@ class IrValueParameterImpl( this.defaultValue = defaultValue } + init { + symbol.bind(this) + } + override var defaultValue: IrExpressionBody? = null override fun accept(visitor: IrElementVisitor, data: D): R = diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrVariableImpl.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrVariableImpl.kt index 74aa5bd7cbb..0789e7d6b9e 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrVariableImpl.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/declarations/impl/IrVariableImpl.kt @@ -44,6 +44,10 @@ class IrVariableImpl( this.initializer = initializer } + init { + symbol.bind(this) + } + override val descriptor: VariableDescriptor get() = symbol.descriptor override var initializer: IrExpression? = null diff --git a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTree.kt b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTree.kt index 92a5b5b72a7..cde4191d643 100644 --- a/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTree.kt +++ b/compiler/ir/ir.tree/src/org/jetbrains/kotlin/ir/util/DeepCopyIrTree.kt @@ -66,7 +66,6 @@ class DeepCopyIrTree(private val symbolsRemapper: DeepCopySymbolsRemapper) : IrE IrExternalPackageFragmentImpl( symbolsRemapper.getDeclaredExternalPackageFragment(declaration.symbol) ).apply { - symbol.bind(this) declaration.transformDeclarationsTo(this) } @@ -75,7 +74,6 @@ class DeepCopyIrTree(private val symbolsRemapper: DeepCopySymbolsRemapper) : IrE declaration.fileEntry, symbolsRemapper.getDeclaredFile(declaration.symbol) ).apply { - symbol.bind(this) fileAnnotations.addAll(declaration.fileAnnotations) declaration.transformDeclarationsTo(this) } @@ -89,7 +87,6 @@ class DeepCopyIrTree(private val symbolsRemapper: DeepCopySymbolsRemapper) : IrE mapDeclarationOrigin(declaration.origin), symbolsRemapper.getDeclaredClass(declaration.symbol) ).apply { - symbol.bind(this) newInstanceReceiver = declaration.newInstanceReceiver?.transform() declaration.typeParameters.transformTo(typeParameters) declaration.transformDeclarationsTo(this) @@ -108,7 +105,6 @@ class DeepCopyIrTree(private val symbolsRemapper: DeepCopySymbolsRemapper) : IrE mapDeclarationOrigin(declaration.origin), symbolsRemapper.getDeclaredFunction(declaration.symbol) ).apply { - symbol.bind(this) transformFunctionChildren(declaration) } @@ -118,7 +114,6 @@ class DeepCopyIrTree(private val symbolsRemapper: DeepCopySymbolsRemapper) : IrE mapDeclarationOrigin(declaration.origin), symbolsRemapper.getDeclaredConstructor(declaration.symbol) ).apply { - symbol.bind(this) transformFunctionChildren(declaration) } @@ -148,7 +143,6 @@ class DeepCopyIrTree(private val symbolsRemapper: DeepCopySymbolsRemapper) : IrE mapDeclarationOrigin(declaration.origin), symbolsRemapper.getDeclaredField(declaration.symbol) ).apply { - symbol.bind(this) initializer = declaration.initializer?.transform() } @@ -168,7 +162,6 @@ class DeepCopyIrTree(private val symbolsRemapper: DeepCopySymbolsRemapper) : IrE mapDeclarationOrigin(declaration.origin), symbolsRemapper.getDeclaredEnumEntry(declaration.symbol) ).apply { - symbol.bind(this) correspondingClass = declaration.correspondingClass?.transform() initializerExpression = declaration.initializerExpression?.transform() } @@ -179,7 +172,6 @@ class DeepCopyIrTree(private val symbolsRemapper: DeepCopySymbolsRemapper) : IrE mapDeclarationOrigin(declaration.origin), IrAnonymousInitializerSymbolImpl(declaration.descriptor) ).apply { - symbol.bind(this) body = declaration.body.transform() } @@ -189,7 +181,6 @@ class DeepCopyIrTree(private val symbolsRemapper: DeepCopySymbolsRemapper) : IrE mapDeclarationOrigin(declaration.origin), symbolsRemapper.getDeclaredVariable(declaration.symbol) ).apply { - symbol.bind(this) initializer = declaration.initializer?.transform() } @@ -198,9 +189,7 @@ class DeepCopyIrTree(private val symbolsRemapper: DeepCopySymbolsRemapper) : IrE declaration.startOffset, declaration.endOffset, mapDeclarationOrigin(declaration.origin), symbolsRemapper.getDeclaredTypeParameter(declaration.symbol) - ).apply { - symbol.bind(this) - } + ) override fun visitValueParameter(declaration: IrValueParameter): IrValueParameter = IrValueParameterImpl( @@ -208,7 +197,6 @@ class DeepCopyIrTree(private val symbolsRemapper: DeepCopySymbolsRemapper) : IrE mapDeclarationOrigin(declaration.origin), symbolsRemapper.getDeclaredValueParameter(declaration.symbol) ).apply { - symbol.bind(this) defaultValue = declaration.defaultValue?.transform() }