From 03eab2ec6cdeb0503525d706b987b49fa4de1f47 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Tue, 3 Mar 2020 12:59:36 +0300 Subject: [PATCH] FIR2IR: get rid of setParentAndContent + fixes around anonymous objects --- .../fir/backend/Fir2IrDeclarationStorage.kt | 315 ++++++++++-------- .../backend/Fir2IrFakeOverrideGenerator.kt | 6 +- .../kotlin/fir/backend/Fir2IrVisitor.kt | 17 +- .../testData/ir/irText/classes/enum.fir.txt | 22 +- .../irText/classes/enumClassModality.fir.txt | 10 +- .../classes/enumWithMultipleCtors.fir.txt | 6 +- .../classes/enumWithSecondaryCtor.fir.txt | 10 +- .../classes/objectLiteralExpressions.fir.txt | 24 +- .../enumEntriesWithAnnotations.fir.txt | 4 +- .../expressions/enumEntryAsReceiver.fir.txt | 4 +- ...umEntryReferenceFromEnumEntryClass.fir.txt | 26 +- .../funInterface/partialSam.fir.txt | 20 +- .../multipleThisReferences.fir.txt | 6 +- .../expressions/objectReference.fir.txt | 8 +- .../temporaryInEnumEntryInitializer.fir.txt | 2 +- .../thisOfGenericOuterClass.fir.txt | 6 +- .../thisReferenceBeforeClassDeclared.fir.txt | 4 +- .../ir/irText/singletons/enumEntry.fir.txt | 4 +- 18 files changed, 270 insertions(+), 224 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index 8897f84a266..b3ad3325a1c 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -19,6 +19,7 @@ import org.jetbrains.kotlin.fir.psi import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.scopes.impl.FirClassSubstitutionScope +import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeRef @@ -37,6 +38,7 @@ import org.jetbrains.kotlin.ir.types.IrType import org.jetbrains.kotlin.ir.types.impl.IrSimpleTypeImpl import org.jetbrains.kotlin.ir.util.SymbolTable import org.jetbrains.kotlin.ir.util.constructors +import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.psi.KtFunctionLiteral @@ -179,123 +181,117 @@ class Fir2IrDeclarationStorage( return this } - fun getIrClass(klass: FirClass<*>, setParentAndContent: Boolean = true): IrClass { - val regularClass = klass as? FirRegularClass - - fun create(): IrClass { - val descriptor = WrappedClassDescriptor() - val origin = IrDeclarationOrigin.DEFINED - val modality = regularClass?.modality ?: Modality.FINAL - val visibility = regularClass?.visibility ?: Visibilities.PUBLIC - return klass.convertWithOffsets { startOffset, endOffset -> - irSymbolTable.declareClass(startOffset, endOffset, origin, descriptor, modality, visibility) { symbol -> - IrClassImpl( - startOffset, - endOffset, - origin, - symbol, - regularClass?.name ?: Name.special(""), - klass.classKind, - regularClass?.visibility ?: Visibilities.LOCAL, - modality, - isCompanion = regularClass?.isCompanion == true, - isInner = regularClass?.isInner == true, - isData = regularClass?.isData == true, - isExternal = regularClass?.isExternal == true, - isInline = regularClass?.isInline == true, - isExpect = regularClass?.isExpect == true, - isFun = false // TODO FirRegularClass.isFun - ).apply { - descriptor.bind(this) - if (setParentAndContent && regularClass != null) { - val classId = regularClass.classId - val parentId = classId.outerClassId - if (parentId != null) { - val parentFirSymbol = firSymbolProvider.getClassLikeSymbolByFqName(parentId) - if (parentFirSymbol is FirClassSymbol) { - val parentIrSymbol = getIrClassSymbol(parentFirSymbol) - parent = parentIrSymbol.owner - } - } else { - val packageFqName = classId.packageFqName - parent = getIrExternalPackageFragment(packageFqName) - } + private fun addDeclarationsToExternalClass(regularClass: FirRegularClass, irClass: IrClass) { + if (regularClass.symbol.classId.packageFqName.startsWith(Name.identifier("kotlin"))) { + // Note: yet this is necessary only for *Range / *Progression classes + // due to BE optimizations (for lowering) that use their first / last / step members + // TODO: think how to refactor this piece of code and/or merge it with similar Fir2IrVisitor fragment + val processedNames = mutableSetOf() + for (declaration in regularClass.declarations) { + irClass.declarations += when (declaration) { + is FirSimpleFunction -> { + processedNames += declaration.name + getIrFunction(declaration, irClass) + } + is FirProperty -> { + processedNames += declaration.name + getIrProperty(declaration, irClass) + } + is FirConstructor -> getIrConstructor(declaration, irClass) + is FirRegularClass -> getIrClass(declaration) + else -> continue + } + } + val allNames = regularClass.collectCallableNamesFromSupertypes(session) + val scope = regularClass.buildUseSiteMemberScope(session, ScopeSession()) + if (scope != null) { + for (name in allNames) { + if (name in processedNames) continue + processedNames += name + scope.processFunctionsByName(name) { functionSymbol -> + if (functionSymbol is FirNamedFunctionSymbol) { + val fakeOverrideSymbol = + FirClassSubstitutionScope.createFakeOverrideFunction(session, functionSymbol.fir, functionSymbol) + irClass.declarations += getIrFunction(fakeOverrideSymbol.fir, irClass) + } + } + scope.processPropertiesByName(name) { propertySymbol -> + if (propertySymbol is FirPropertySymbol) { + val fakeOverrideSymbol = + FirClassSubstitutionScope.createFakeOverrideProperty(session, propertySymbol.fir, propertySymbol) + irClass.declarations += getIrProperty(fakeOverrideSymbol.fir, irClass) } } } } - } - - if (regularClass?.visibility == Visibilities.LOCAL || klass is FirAnonymousObject) { - val cached = localStorage.getLocalClass(klass) - if (cached != null) return cached - val created = create() - localStorage.putLocalClass(klass, created) - created.declareSupertypesAndTypeParameters(klass) - created.setThisReceiver() - return created - } - // NB: klass can be either FirRegularClass or FirAnonymousObject - return classCache.getOrPut(klass as FirRegularClass, { create() }) { irClass -> - irClass.declareSupertypesAndTypeParameters(klass) - irClass.setThisReceiver() - if (setParentAndContent && regularClass != null && - regularClass.symbol.classId.packageFqName.startsWith(Name.identifier("kotlin")) - ) { - // Note: yet this is necessary only for *Range / *Progression classes - // due to BE optimizations (for lowering) that use their first / last / step members - // TODO: think how to refactor this piece of code and/or merge it with similar Fir2IrVisitor fragment - val processedNames = mutableSetOf() - for (declaration in regularClass.declarations) { - irClass.declarations += when (declaration) { - is FirSimpleFunction -> { - processedNames += declaration.name - getIrFunction(declaration, irClass, shouldLeaveScope = true) - } - is FirProperty -> { - processedNames += declaration.name - getIrProperty(declaration, irClass) - } - is FirConstructor -> getIrConstructor(declaration, irClass, shouldLeaveScope = true) - is FirRegularClass -> getIrClass(declaration) - else -> continue - } - } - val allNames = regularClass.collectCallableNamesFromSupertypes(session) - val scope = regularClass.buildUseSiteMemberScope(session, ScopeSession()) - if (scope != null) { - for (name in allNames) { - if (name in processedNames) continue - processedNames += name - scope.processFunctionsByName(name) { functionSymbol -> - if (functionSymbol is FirNamedFunctionSymbol) { - val fakeOverrideSymbol = - FirClassSubstitutionScope.createFakeOverrideFunction(session, functionSymbol.fir, functionSymbol) - irClass.declarations += getIrFunction(fakeOverrideSymbol.fir, irClass, shouldLeaveScope = true) - } - } - scope.processPropertiesByName(name) { propertySymbol -> - if (propertySymbol is FirPropertySymbol) { - val fakeOverrideSymbol = - FirClassSubstitutionScope.createFakeOverrideProperty(session, propertySymbol.fir, propertySymbol) - irClass.declarations += getIrProperty(fakeOverrideSymbol.fir, irClass) - } - } - } - } - for (irDeclaration in irClass.declarations) { - irDeclaration.parent = irClass - } + for (irDeclaration in irClass.declarations) { + irDeclaration.parent = irClass } } } - fun getIrAnonymousObject(anonymousObject: FirAnonymousObject): IrClass { + private fun getCachedIrClass(klass: FirClass<*>): IrClass? { + return if (klass is FirAnonymousObject || klass is FirRegularClass && klass.visibility == Visibilities.LOCAL) { + localStorage.getLocalClass(klass) + } else { + classCache[klass] + } + } + + private fun createIrClass(klass: FirClass<*>): IrClass { + // NB: klass can be either FirRegularClass or FirAnonymousObject + if (klass is FirAnonymousObject) { + return createIrAnonymousObject(klass) + } + val regularClass = klass as FirRegularClass + + val descriptor = WrappedClassDescriptor() + val origin = IrDeclarationOrigin.DEFINED + val modality = regularClass.modality ?: Modality.FINAL + val visibility = regularClass.visibility + val irClass = klass.convertWithOffsets { startOffset, endOffset -> + irSymbolTable.declareClass(startOffset, endOffset, origin, descriptor, modality, visibility) { symbol -> + IrClassImpl( + startOffset, + endOffset, + origin, + symbol, + regularClass.name, + klass.classKind, + regularClass.visibility, + modality, + isCompanion = regularClass.isCompanion, + isInner = regularClass.isInner, + isData = regularClass.isData, + isExternal = regularClass.isExternal, + isInline = regularClass.isInline, + isExpect = regularClass.isExpect, + isFun = false // TODO FirRegularClass.isFun + ).apply { + descriptor.bind(this) + } + } + } + if (regularClass.visibility == Visibilities.LOCAL) { + localStorage.putLocalClass(klass, irClass) + } else { + classCache[klass] = irClass + } + irClass.declareSupertypesAndTypeParameters(klass) + irClass.setThisReceiver() + return irClass + } + + fun getIrClass(klass: FirClass<*>): IrClass { + return getCachedIrClass(klass) ?: createIrClass(klass) + } + + private fun createIrAnonymousObject(anonymousObject: FirAnonymousObject): IrClass { val descriptor = WrappedClassDescriptor() val origin = IrDeclarationOrigin.DEFINED val modality = Modality.FINAL val visibility = Visibilities.LOCAL - return anonymousObject.convertWithOffsets { startOffset, endOffset -> + val result = anonymousObject.convertWithOffsets { startOffset, endOffset -> irSymbolTable.declareClass(startOffset, endOffset, origin, descriptor, modality, visibility) { symbol -> IrClassImpl( startOffset, endOffset, origin, symbol, @@ -309,6 +305,13 @@ class Fir2IrDeclarationStorage( } } }.declareSupertypesAndTypeParameters(anonymousObject) + localStorage.putLocalClass(anonymousObject, result) + return result + } + + fun getIrAnonymousObject(anonymousObject: FirAnonymousObject): IrClass { + localStorage.getLocalClass(anonymousObject)?.let { return it } + return createIrAnonymousObject(anonymousObject) } private fun getIrEnumEntryClass(enumEntry: FirEnumEntry, anonymousObject: FirAnonymousObject, irParent: IrClass?): IrClass { @@ -389,10 +392,7 @@ class Fir2IrDeclarationStorage( } } - internal fun findIrParent(callableDeclaration: FirCallableDeclaration<*>): IrDeclarationParent? { - val firBasedSymbol = callableDeclaration.symbol - val callableId = firBasedSymbol.callableId - val parentClassId = callableId.classId + private fun findIrParent(packageFqName: FqName, parentClassId: ClassId?, firBasedSymbol: FirBasedSymbol<*>): IrDeclarationParent? { return if (parentClassId != null) { // TODO: this will never work for local classes val parentFirSymbol = firSymbolProvider.getClassLikeSymbolByFqName(parentClassId) @@ -403,16 +403,26 @@ class Fir2IrDeclarationStorage( null } } else { - val containerFile = firProvider.getFirCallableContainerFile(firBasedSymbol) + val containerFile = when (firBasedSymbol) { + is FirCallableSymbol -> firProvider.getFirCallableContainerFile(firBasedSymbol) + is FirClassLikeSymbol -> firProvider.getFirClassifierContainerFileIfAny(firBasedSymbol) + else -> throw AssertionError("Unexpected: $firBasedSymbol") + } + if (containerFile != null) { fileCache[containerFile] } else { - val packageFqName = callableId.packageName getIrExternalPackageFragment(packageFqName) } } } + internal fun findIrParent(callableDeclaration: FirCallableDeclaration<*>): IrDeclarationParent? { + val firBasedSymbol = callableDeclaration.symbol + val callableId = firBasedSymbol.callableId + return findIrParent(callableId.packageName, callableId.classId, firBasedSymbol) + } + private fun IrDeclaration.setAndModifyParent(irParent: IrDeclarationParent?) { if (irParent != null) { parent = irParent @@ -504,18 +514,13 @@ class Fir2IrDeclarationStorage( descriptor: WrappedCallableDescriptor, irParent: IrDeclarationParent?, isStatic: Boolean, - shouldLeaveScope: Boolean, parentPropertyReceiverType: FirTypeRef? = null ): T { if (irParent != null) { parent = irParent } descriptor.bind(this) - enterScope(descriptor) declareParameters(function, irParent as? IrClass, isStatic, parentPropertyReceiverType) - if (shouldLeaveScope) { - leaveScope(descriptor) - } return this } @@ -531,7 +536,7 @@ class Fir2IrDeclarationStorage( fun getIrFunction( function: FirSimpleFunction, irParent: IrDeclarationParent?, - shouldLeaveScope: Boolean = false, + shouldLeaveScope: Boolean = true, origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED ): IrSimpleFunction { fun create(): IrSimpleFunction { @@ -555,9 +560,8 @@ class Fir2IrDeclarationStorage( isOperator = function.isOperator ) } - leaveScope(descriptor) result - }.bindAndDeclareParameters(function, descriptor, irParent, isStatic = function.isStatic, shouldLeaveScope = shouldLeaveScope) + }.bindAndDeclareParameters(function, descriptor, irParent, isStatic = function.isStatic) } if (function.visibility == Visibilities.LOCAL) { @@ -566,6 +570,9 @@ class Fir2IrDeclarationStorage( return if (shouldLeaveScope) cached else cached.enterLocalScope(function) } val created = create() + if (shouldLeaveScope) { + leaveScope(created.descriptor) + } localStorage.putLocalFunction(function, created) return created } @@ -574,6 +581,9 @@ class Fir2IrDeclarationStorage( return if (shouldLeaveScope) cached else cached.enterLocalScope(function) } val created = create() + if (shouldLeaveScope) { + leaveScope(created.descriptor) + } if (function.symbol.callableId.isKFunctionInvoke()) { (function.symbol.overriddenSymbol as? FirNamedFunctionSymbol)?.let { created.overriddenSymbols += getIrFunctionSymbol(it) as IrSimpleFunctionSymbol @@ -586,7 +596,7 @@ class Fir2IrDeclarationStorage( fun getIrLocalFunction( function: FirAnonymousFunction, irParent: IrDeclarationParent? = null, - shouldLeaveScope: Boolean = false + shouldLeaveScope: Boolean = true ): IrSimpleFunction { val descriptor = WrappedSimpleFunctionDescriptor() val isLambda = function.psi is KtFunctionLiteral @@ -604,17 +614,23 @@ class Fir2IrDeclarationStorage( isExpect = false, isFakeOverride = false, isOperator = false - ) + ).apply { + enterScope(descriptor) + } }.bindAndDeclareParameters( - function, descriptor, irParent = irParent, isStatic = false, shouldLeaveScope = shouldLeaveScope - ) + function, descriptor, irParent = irParent, isStatic = false + ).apply { + if (shouldLeaveScope) { + leaveScope(descriptor) + } + } } } fun getIrConstructor( constructor: FirConstructor, irParent: IrDeclarationParent? = null, - shouldLeaveScope: Boolean = false + shouldLeaveScope: Boolean = true ): IrConstructor { val cached = constructorCache[constructor] if (cached != null) { @@ -635,7 +651,13 @@ class Fir2IrDeclarationStorage( Name.special(""), visibility, constructor.returnTypeRef.toIrType(), isInline = false, isExternal = false, isPrimary = isPrimary, isExpect = false - ).bindAndDeclareParameters(constructor, descriptor, irParent, isStatic = true, shouldLeaveScope = shouldLeaveScope) + ).apply { + enterScope(descriptor) + }.bindAndDeclareParameters(constructor, descriptor, irParent, isStatic = true).apply { + if (shouldLeaveScope) { + leaveScope(descriptor) + } + } } } constructorCache[constructor] = created @@ -685,10 +707,12 @@ class Fir2IrDeclarationStorage( property.returnTypeRef.toIrType(ConversionTypeContext.DEFAULT.inSetter()) ) } + enterScope(descriptor) }.bindAndDeclareParameters( - propertyAccessor, descriptor, irParent, isStatic = irParent !is IrClass, shouldLeaveScope = true, + propertyAccessor, descriptor, irParent, isStatic = irParent !is IrClass, parentPropertyReceiverType = property.receiverTypeRef ).apply { + leaveScope(descriptor) if (irParent != null) { parent = irParent } @@ -738,8 +762,16 @@ class Fir2IrDeclarationStorage( fun getIrProperty( property: FirProperty, irParent: IrDeclarationParent?, - origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED + origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED, + shouldLeaveScope: Boolean = true ): IrProperty { + val cached = propertyCache[property] + if (cached != null) { + if (!shouldLeaveScope) { + enterScope(cached.descriptor) + } + return cached + } return propertyCache.getOrPut(property) { val containerSource = property.containerSource val descriptor = containerSource?.let { WrappedPropertyDescriptorWithContainerSource(it) } ?: WrappedPropertyDescriptor() @@ -789,7 +821,9 @@ class Fir2IrDeclarationStorage( } } } - leaveScope(descriptor) + if (shouldLeaveScope) { + leaveScope(descriptor) + } result } } @@ -913,7 +947,22 @@ class Fir2IrDeclarationStorage( } fun getIrClassSymbol(firClassSymbol: FirClassSymbol<*>): IrClassSymbol { - val irClass = getIrClass(firClassSymbol.fir) + val firClass = firClassSymbol.fir + getCachedIrClass(firClass)?.let { return irSymbolTable.referenceClass(it.descriptor) } + val irClass = createIrClass(firClass) + if (firClass is FirAnonymousObject || firClass is FirRegularClass && firClass.visibility == Visibilities.LOCAL) { + return irSymbolTable.referenceClass(irClass.descriptor) + } + val classId = firClassSymbol.classId + val parentId = classId.outerClassId + val irParent = findIrParent(classId.packageFqName, parentId, firClassSymbol) + if (irParent != null) { + irClass.parent = irParent + } + if (irParent is IrExternalPackageFragment) { + addDeclarationsToExternalClass(firClass as FirRegularClass, irClass) + } + return irSymbolTable.referenceClass(irClass.descriptor) } @@ -930,19 +979,19 @@ class Fir2IrDeclarationStorage( val irParent = (firDeclaration as? FirCallableDeclaration<*>)?.let { findIrParent(it) } return when (firDeclaration) { is FirSimpleFunction -> { - val irDeclaration = getIrFunction(firDeclaration, irParent, shouldLeaveScope = true).apply { + val irDeclaration = getIrFunction(firDeclaration, irParent).apply { setAndModifyParent(irParent) } irSymbolTable.referenceSimpleFunction(irDeclaration.descriptor) } is FirAnonymousFunction -> { - val irDeclaration = getIrLocalFunction(firDeclaration, irParent, shouldLeaveScope = true).apply { + val irDeclaration = getIrLocalFunction(firDeclaration, irParent).apply { setAndModifyParent(irParent) } irSymbolTable.referenceSimpleFunction(irDeclaration.descriptor) } is FirConstructor -> { - val irDeclaration = getIrConstructor(firDeclaration, irParent, shouldLeaveScope = true).apply { + val irDeclaration = getIrConstructor(firDeclaration, irParent).apply { setAndModifyParent(irParent) } irSymbolTable.referenceConstructor(irDeclaration.descriptor) @@ -996,7 +1045,7 @@ class Fir2IrDeclarationStorage( is FirEnumEntry -> { val containingFile = firProvider.getFirCallableContainerFile(firVariableSymbol) val parentClassSymbol = firVariableSymbol.callableId.classId?.let { firSymbolProvider.getClassLikeSymbolByFqName(it) } - val irParentClass = (parentClassSymbol?.fir as? FirClass<*>)?.let { getIrClass(it, setParentAndContent = false) } + val irParentClass = (parentClassSymbol?.fir as? FirClass<*>)?.let { getIrClass(it) } val irEnumEntry = getIrEnumEntry( firDeclaration, irParent = irParentClass, diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrFakeOverrideGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrFakeOverrideGenerator.kt index 2e5ce60b245..eea0cc65783 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrFakeOverrideGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrFakeOverrideGenerator.kt @@ -73,8 +73,7 @@ class Fir2IrFakeOverrideGenerator( val baseSymbol = functionSymbol.deepestOverriddenSymbol() as FirNamedFunctionSymbol val irFunction = declarationStorage.getIrFunction( // TODO: parents for functions and properties should be consistent - originalFunction, declarationStorage.findIrParent(baseSymbol.fir), - origin = origin, shouldLeaveScope = true + originalFunction, declarationStorage.findIrParent(baseSymbol.fir), origin = origin ) // In fake overrides, parent logic is a bit specific, because // parent of *original* function (base class) is used for dispatch receiver, @@ -91,8 +90,7 @@ class Fir2IrFakeOverrideGenerator( val fakeOverrideFunction = fakeOverrideSymbol.fir val irFunction = declarationStorage.getIrFunction( - fakeOverrideFunction, declarationStorage.findIrParent(originalFunction), - origin = origin, shouldLeaveScope = true + fakeOverrideFunction, declarationStorage.findIrParent(originalFunction), origin = origin ) val overriddenSymbol = declarationStorage.getIrFunctionSymbol(functionSymbol) as IrSimpleFunctionSymbol declarations += irFunction.withFunction { diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt index 63db8eac192..00b2827c0a4 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt @@ -157,7 +157,7 @@ class Fir2IrVisitor( override fun visitRegularClass(regularClass: FirRegularClass, data: Any?): IrElement { return conversionScope.withParent( - applyParentFromStackTo(declarationStorage.getIrClass(regularClass, setParentAndContent = false)) + applyParentFromStackTo(declarationStorage.getIrClass(regularClass)) ) { setClassContent(regularClass) } @@ -228,7 +228,7 @@ class Fir2IrVisitor( override fun visitConstructor(constructor: FirConstructor, data: Any?): IrElement { val irConstructor = declarationStorage.getIrConstructor( - constructor, irParent = conversionScope.lastClass() + constructor, irParent = conversionScope.lastClass(), shouldLeaveScope = false ) return conversionScope.withFunction(irConstructor) { setFunctionContent(irConstructor.descriptor, constructor) @@ -285,7 +285,7 @@ class Fir2IrVisitor( override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: Any?): IrElement { val irFunction = declarationStorage.getIrFunction( - simpleFunction, irParent = conversionScope.parent() + simpleFunction, irParent = conversionScope.parent(), shouldLeaveScope = false ) return conversionScope.withFunction(irFunction) { setFunctionContent(irFunction.descriptor, simpleFunction) @@ -294,7 +294,7 @@ class Fir2IrVisitor( override fun visitAnonymousFunction(anonymousFunction: FirAnonymousFunction, data: Any?): IrElement { return anonymousFunction.convertWithOffsets { startOffset, endOffset -> - val irFunction = declarationStorage.getIrLocalFunction(anonymousFunction, conversionScope.parent()) + val irFunction = declarationStorage.getIrLocalFunction(anonymousFunction, conversionScope.parent(), shouldLeaveScope = false) conversionScope.withFunction(irFunction) { setFunctionContent(irFunction.descriptor, anonymousFunction) } @@ -360,7 +360,6 @@ class Fir2IrVisitor( } private fun IrProperty.setPropertyContent(descriptor: PropertyDescriptor, property: FirProperty): IrProperty { - declarationStorage.enterScope(descriptor) val initializer = property.initializer val delegate = property.delegate val irParent = this.parent @@ -399,7 +398,7 @@ class Fir2IrVisitor( override fun visitProperty(property: FirProperty, data: Any?): IrElement { if (property.isLocal) return visitLocalVariable(property) - val irProperty = declarationStorage.getIrProperty(property, irParent = conversionScope.parent()) + val irProperty = declarationStorage.getIrProperty(property, irParent = conversionScope.parent(), shouldLeaveScope = false) return conversionScope.withProperty(irProperty) { setPropertyContent(irProperty.descriptor, property) } } @@ -556,7 +555,7 @@ class Fir2IrVisitor( val irClass = symbol.owner val fir = firSymbol?.fir as? FirClass<*> val irConstructor = fir?.getPrimaryConstructorIfAny()?.let { firConstructor -> - declarationStorage.getIrConstructor(firConstructor, irParent = irClass, shouldLeaveScope = true) + declarationStorage.getIrConstructor(firConstructor, irParent = irClass) }?.apply { this.parent = irClass } @@ -646,7 +645,7 @@ class Fir2IrVisitor( it is FirAnonymousObject || it is FirRegularClass && it.classKind == ClassKind.OBJECT } firClass?.convertWithOffsets { startOffset, endOffset -> - val irClass = declarationStorage.getIrClass(firClass, setParentAndContent = false) + val irClass = declarationStorage.getIrClass(firClass) IrGetObjectValueImpl(startOffset, endOffset, irClass.defaultType, irClass.symbol) } } @@ -714,7 +713,7 @@ class Fir2IrVisitor( it is FirAnonymousObject || it is FirRegularClass && it.classKind == ClassKind.OBJECT } if (firObject != null) { - val irObject = declarationStorage.getIrClass(firObject, setParentAndContent = false) + val irObject = declarationStorage.getIrClass(firObject) if (irObject != conversionScope.lastClass()) { return thisReceiverExpression.convertWithOffsets { startOffset, endOffset -> IrGetObjectValueImpl(startOffset, endOffset, irObject.defaultType, irObject.symbol) diff --git a/compiler/testData/ir/irText/classes/enum.fir.txt b/compiler/testData/ir/irText/classes/enum.fir.txt index ce23f80143d..083c09d00b1 100644 --- a/compiler/testData/ir/irText/classes/enum.fir.txt +++ b/compiler/testData/ir/irText/classes/enum.fir.txt @@ -75,7 +75,7 @@ FILE fqName: fileName:/enum.kt ENUM_ENTRY name:TEST1 class: CLASS ENUM_ENTRY name:TEST1 modality:FINAL visibility:private superTypes:[.TestEnum2] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum2.TEST1 - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum2' x: CONST Int type=kotlin.Int value=1 @@ -83,7 +83,7 @@ FILE fqName: fileName:/enum.kt ENUM_ENTRY name:TEST2 class: CLASS ENUM_ENTRY name:TEST2 modality:FINAL visibility:private superTypes:[.TestEnum2] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum2.TEST2 - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum2' x: CONST Int type=kotlin.Int value=2 @@ -91,7 +91,7 @@ FILE fqName: fileName:/enum.kt ENUM_ENTRY name:TEST3 class: CLASS ENUM_ENTRY name:TEST3 modality:FINAL visibility:private superTypes:[.TestEnum2] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum2.TEST3 - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum2' x: CONST Int type=kotlin.Int value=3 @@ -147,7 +147,7 @@ FILE fqName: fileName:/enum.kt ENUM_ENTRY name:TEST class: CLASS ENUM_ENTRY name:TEST modality:FINAL visibility:private superTypes:[.TestEnum3] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum3.TEST - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum3' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:TEST modality:FINAL visibility:private superTypes:[.TestEnum3]' @@ -221,7 +221,7 @@ FILE fqName: fileName:/enum.kt ENUM_ENTRY name:TEST1 class: CLASS ENUM_ENTRY name:TEST1 modality:FINAL visibility:private superTypes:[.TestEnum4] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum4.TEST1 - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum4' x: CONST Int type=kotlin.Int value=1 @@ -234,7 +234,7 @@ FILE fqName: fileName:/enum.kt ENUM_ENTRY name:TEST2 class: CLASS ENUM_ENTRY name:TEST2 modality:FINAL visibility:private superTypes:[.TestEnum4] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum4.TEST2 - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum4' x: CONST Int type=kotlin.Int value=2 @@ -251,7 +251,7 @@ FILE fqName: fileName:/enum.kt ANONYMOUS_INITIALIZER isStatic=false BLOCK_BODY SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:z type:kotlin.Int visibility:private [final]' type=kotlin.Unit origin=null - receiver: GET_VAR ': . declared in .' type=. origin=null + receiver: GET_VAR ': . declared in .' type=. origin=null value: GET_VAR 'x: kotlin.Int declared in .TestEnum4.' type=kotlin.Int origin=null FUN name:foo visibility:public modality:FINAL <> ($this:.TestEnum4.TEST2) returnType:kotlin.Unit $this: VALUE_PARAMETER name: type:.TestEnum4.TEST2 @@ -325,21 +325,21 @@ FILE fqName: fileName:/enum.kt ENUM_ENTRY name:TEST1 class: CLASS ENUM_ENTRY name:TEST1 modality:FINAL visibility:private superTypes:[.TestEnum5] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum5.TEST1 - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum5' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:TEST1 modality:FINAL visibility:private superTypes:[.TestEnum5]' ENUM_ENTRY name:TEST2 class: CLASS ENUM_ENTRY name:TEST2 modality:FINAL visibility:private superTypes:[.TestEnum5] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum5.TEST2 - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum5' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:TEST2 modality:FINAL visibility:private superTypes:[.TestEnum5]' ENUM_ENTRY name:TEST3 class: CLASS ENUM_ENTRY name:TEST3 modality:FINAL visibility:private superTypes:[.TestEnum5] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum5.TEST3 - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestEnum5' x: CONST Int type=kotlin.Int value=0 @@ -423,7 +423,7 @@ FILE fqName: fileName:/enum.kt ENUM_ENTRY name:TEST class: CLASS ENUM_ENTRY name:TEST modality:FINAL visibility:private superTypes:[.TestEnum6] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum6.TEST - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int, y: kotlin.Int) [primary] declared in .TestEnum6' x: CALL 'public final fun f (): kotlin.Int declared in ' type=kotlin.Int origin=null diff --git a/compiler/testData/ir/irText/classes/enumClassModality.fir.txt b/compiler/testData/ir/irText/classes/enumClassModality.fir.txt index 0693f9161fe..dced75f2f73 100644 --- a/compiler/testData/ir/irText/classes/enumClassModality.fir.txt +++ b/compiler/testData/ir/irText/classes/enumClassModality.fir.txt @@ -72,7 +72,7 @@ FILE fqName: fileName:/enumClassModality.kt ENUM_ENTRY name:X1 class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[.TestFinalEnum2] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestFinalEnum2.X1 - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .TestFinalEnum2' x: CONST Int type=kotlin.Int value=1 @@ -182,7 +182,7 @@ FILE fqName: fileName:/enumClassModality.kt ENUM_ENTRY name:X1 class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[.TestOpenEnum1] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestOpenEnum1.X1 - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestOpenEnum1' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[.TestOpenEnum1]' @@ -242,7 +242,7 @@ FILE fqName: fileName:/enumClassModality.kt ENUM_ENTRY name:X1 class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[.TestOpenEnum2] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestOpenEnum2.X1 - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestOpenEnum2' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[.TestOpenEnum2]' @@ -303,7 +303,7 @@ FILE fqName: fileName:/enumClassModality.kt ENUM_ENTRY name:X1 class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[.TestAbstractEnum1] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestAbstractEnum1.X1 - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestAbstractEnum1' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[.TestAbstractEnum1]' @@ -380,7 +380,7 @@ FILE fqName: fileName:/enumClassModality.kt ENUM_ENTRY name:X1 class: CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[.TestAbstractEnum2] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestAbstractEnum2.X1 - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestAbstractEnum2' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:X1 modality:FINAL visibility:private superTypes:[.TestAbstractEnum2]' diff --git a/compiler/testData/ir/irText/classes/enumWithMultipleCtors.fir.txt b/compiler/testData/ir/irText/classes/enumWithMultipleCtors.fir.txt index d3d86f96519..7c07ea71272 100644 --- a/compiler/testData/ir/irText/classes/enumWithMultipleCtors.fir.txt +++ b/compiler/testData/ir/irText/classes/enumWithMultipleCtors.fir.txt @@ -4,7 +4,7 @@ FILE fqName: fileName:/enumWithMultipleCtors.kt ENUM_ENTRY name:X class: CLASS ENUM_ENTRY name:X modality:FINAL visibility:private superTypes:[.A] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.A.X - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (arg: kotlin.String) declared in .A' arg: CONST String type=kotlin.String value="asd" @@ -12,7 +12,7 @@ FILE fqName: fileName:/enumWithMultipleCtors.kt ENUM_ENTRY name:Y class: CLASS ENUM_ENTRY name:Y modality:FINAL visibility:private superTypes:[.A] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.A.Y - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () declared in .A' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:Y modality:FINAL visibility:private superTypes:[.A]' @@ -27,7 +27,7 @@ FILE fqName: fileName:/enumWithMultipleCtors.kt ENUM_ENTRY name:Z class: CLASS ENUM_ENTRY name:Z modality:FINAL visibility:private superTypes:[.A] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.A.Z - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) declared in .A' x: CONST Int type=kotlin.Int value=5 diff --git a/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.fir.txt b/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.fir.txt index 66df5a2dc04..d79e2c7401f 100644 --- a/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.fir.txt +++ b/compiler/testData/ir/irText/classes/enumWithSecondaryCtor.fir.txt @@ -21,7 +21,7 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt ENUM_ENTRY name:ZERO class: CLASS ENUM_ENTRY name:ZERO modality:FINAL visibility:private superTypes:[.Test0] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Test0.ZERO - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () declared in .Test0' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:ZERO modality:FINAL visibility:private superTypes:[.Test0]' @@ -92,14 +92,14 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt ENUM_ENTRY name:ZERO class: CLASS ENUM_ENTRY name:ZERO modality:FINAL visibility:private superTypes:[.Test1] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Test1.ZERO - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () declared in .Test1' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:ZERO modality:FINAL visibility:private superTypes:[.Test1]' ENUM_ENTRY name:ONE class: CLASS ENUM_ENTRY name:ONE modality:FINAL visibility:private superTypes:[.Test1] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Test1.ONE - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .Test1' x: CONST Int type=kotlin.Int value=1 @@ -171,7 +171,7 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt ENUM_ENTRY name:ZERO class: CLASS ENUM_ENTRY name:ZERO modality:FINAL visibility:private superTypes:[.Test2] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Test2.ZERO - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () declared in .Test2' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:ZERO modality:FINAL visibility:private superTypes:[.Test2]' @@ -183,7 +183,7 @@ FILE fqName: fileName:/enumWithSecondaryCtor.kt ENUM_ENTRY name:ONE class: CLASS ENUM_ENTRY name:ONE modality:FINAL visibility:private superTypes:[.Test2] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Test2.ONE - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.Int) [primary] declared in .Test2' x: CONST Int type=kotlin.Int value=1 diff --git a/compiler/testData/ir/irText/classes/objectLiteralExpressions.fir.txt b/compiler/testData/ir/irText/classes/objectLiteralExpressions.fir.txt index 7aa42f9518a..4f342747c4b 100644 --- a/compiler/testData/ir/irText/classes/objectLiteralExpressions.fir.txt +++ b/compiler/testData/ir/irText/classes/objectLiteralExpressions.fir.txt @@ -17,7 +17,7 @@ FILE fqName: fileName:/objectLiteralExpressions.kt public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any PROPERTY name:test1 visibility:public modality:FINAL [val] - FIELD PROPERTY_BACKING_FIELD name:test1 type:. visibility:private [final,static] + FIELD PROPERTY_BACKING_FIELD name:test1 type:.test1. visibility:private [final,static] EXPRESSION_BODY BLOCK type=.test1. origin=OBJECT_LITERAL CLASS OBJECT name: modality:FINAL visibility:local superTypes:[kotlin.Any] @@ -27,13 +27,13 @@ FILE fqName: fileName:/objectLiteralExpressions.kt DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name: modality:FINAL visibility:local superTypes:[kotlin.Any]' CONSTRUCTOR_CALL 'private constructor () [primary] declared in .test1.' type=.test1. origin=null - FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:. + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:.test1. correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [val] BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun (): . declared in ' - GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test1 type:. visibility:private [final,static]' type=. origin=null + RETURN type=kotlin.Nothing from='public final fun (): .test1. declared in ' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test1 type:.test1. visibility:private [final,static]' type=.test1. origin=null PROPERTY name:test2 visibility:public modality:FINAL [val] - FIELD PROPERTY_BACKING_FIELD name:test2 type:. visibility:private [final,static] + FIELD PROPERTY_BACKING_FIELD name:test2 type:.test2. visibility:private [final,static] EXPRESSION_BODY BLOCK type=.test2. origin=OBJECT_LITERAL CLASS OBJECT name: modality:FINAL visibility:local superTypes:[.IFoo] @@ -48,11 +48,11 @@ FILE fqName: fileName:/objectLiteralExpressions.kt CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit [inline] declared in kotlin.io' type=kotlin.Unit origin=null message: CONST String type=kotlin.String value="foo" CONSTRUCTOR_CALL 'private constructor () [primary] declared in .test2.' type=.test2. origin=null - FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:. + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:.test2. correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val] BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun (): . declared in ' - GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test2 type:. visibility:private [final,static]' type=. origin=null + RETURN type=kotlin.Nothing from='public final fun (): .test2. declared in ' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test2 type:.test2. visibility:private [final,static]' type=.test2. origin=null CLASS CLASS name:Outer modality:FINAL visibility:public superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Outer CONSTRUCTOR visibility:public <> () returnType:.Outer [primary] @@ -82,10 +82,10 @@ FILE fqName: fileName:/objectLiteralExpressions.kt overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any - FUN name:test3 visibility:public modality:FINAL <> ($this:.Outer) returnType:. + FUN name:test3 visibility:public modality:FINAL <> ($this:.Outer) returnType:.Outer.test3. $this: VALUE_PARAMETER name: type:.Outer BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun test3 (): . declared in .Outer' + RETURN type=kotlin.Nothing from='public final fun test3 (): .Outer.test3. declared in .Outer' BLOCK type=.Outer.test3. origin=OBJECT_LITERAL CLASS OBJECT name: modality:FINAL visibility:local superTypes:[.Outer.Inner] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Outer.test3. @@ -112,10 +112,10 @@ FILE fqName: fileName:/objectLiteralExpressions.kt overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any - FUN name:test4 visibility:public modality:FINAL <> ($receiver:.Outer) returnType:. + FUN name:test4 visibility:public modality:FINAL <> ($receiver:.Outer) returnType:.test4. $receiver: VALUE_PARAMETER name: type:.Outer BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun test4 (): . declared in ' + RETURN type=kotlin.Nothing from='public final fun test4 (): .test4. declared in ' BLOCK type=.test4. origin=OBJECT_LITERAL CLASS OBJECT name: modality:FINAL visibility:local superTypes:[.Outer.Inner] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.test4. diff --git a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt index 4617ca2ca18..916b26fbe21 100644 --- a/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt +++ b/compiler/testData/ir/irText/declarations/annotations/enumEntriesWithAnnotations.fir.txt @@ -39,7 +39,7 @@ FILE fqName: fileName:/enumEntriesWithAnnotations.kt annotations: TestAnn(x = 'ENTRY1') $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum.ENTRY1 - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:ENTRY1 modality:FINAL visibility:private superTypes:[.TestEnum]' @@ -48,7 +48,7 @@ FILE fqName: fileName:/enumEntriesWithAnnotations.kt annotations: TestAnn(x = 'ENTRY2') $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.TestEnum.ENTRY2 - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .TestEnum' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:ENTRY2 modality:FINAL visibility:private superTypes:[.TestEnum]' diff --git a/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.fir.txt b/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.fir.txt index 9e089217c12..844e014763a 100644 --- a/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.fir.txt +++ b/compiler/testData/ir/irText/expressions/enumEntryAsReceiver.fir.txt @@ -9,7 +9,7 @@ FILE fqName: fileName:/enumEntryAsReceiver.kt ENUM_ENTRY name:B class: CLASS ENUM_ENTRY name:B modality:FINAL visibility:private superTypes:[.X] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.X.B - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .X' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:B modality:FINAL visibility:private superTypes:[.X]' @@ -32,7 +32,7 @@ FILE fqName: fileName:/enumEntryAsReceiver.kt BLOCK_BODY RETURN type=kotlin.Nothing from='local final fun (): kotlin.String declared in .X.B.value' CALL 'public final fun (): kotlin.String declared in .X.B' type=kotlin.String origin=GET_PROPERTY - $this: GET_VAR ': . declared in .' type=. origin=null + $this: GET_VAR ': . declared in .' type=. origin=null FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.X.B) returnType:kotlin.Function0 correspondingProperty: PROPERTY name:value visibility:public modality:FINAL [val] $this: VALUE_PARAMETER name: type:.X.B diff --git a/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.txt b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.txt index 7792edd9ada..55c19bce1d3 100644 --- a/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.txt +++ b/compiler/testData/ir/irText/expressions/enumEntryReferenceFromEnumEntryClass.fir.txt @@ -9,7 +9,7 @@ FILE fqName: fileName:/enumEntryReferenceFromEnumEntryClass.kt ENUM_ENTRY name:Z class: CLASS ENUM_ENTRY name:Z modality:FINAL visibility:private superTypes:[.MyEnum] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.MyEnum.Z - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .MyEnum' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:Z modality:FINAL visibility:private superTypes:[.MyEnum]' @@ -39,10 +39,10 @@ FILE fqName: fileName:/enumEntryReferenceFromEnumEntryClass.kt $this: VALUE_PARAMETER name: type:.MyEnum.Z BLOCK_BODY SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:private' type=kotlin.Unit origin=null - receiver: GET_VAR ': . declared in .' type=. origin=null + receiver: GET_VAR ': . declared in .' type=. origin=null value: CONST Int type=kotlin.Int value=1 CALL 'public final fun foo (): kotlin.Unit declared in .MyEnum.Z' type=kotlin.Unit origin=null - $this: GET_VAR ': . declared in .' type=. origin=null + $this: GET_VAR ': . declared in .' type=. origin=null PROPERTY name:aLambda visibility:public modality:FINAL [val] FIELD PROPERTY_BACKING_FIELD name:aLambda type:kotlin.Function0 visibility:private [final] EXPRESSION_BODY @@ -50,10 +50,10 @@ FILE fqName: fileName:/enumEntryReferenceFromEnumEntryClass.kt FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> () returnType:kotlin.Unit BLOCK_BODY SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:private' type=kotlin.Unit origin=null - receiver: GET_VAR ': . declared in .' type=. origin=null + receiver: GET_VAR ': . declared in .' type=. origin=null value: CONST Int type=kotlin.Int value=1 CALL 'public final fun foo (): kotlin.Unit declared in .MyEnum.Z' type=kotlin.Unit origin=null - $this: GET_VAR ': . declared in .' type=. origin=null + $this: GET_VAR ': . declared in .' type=. origin=null FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.MyEnum.Z) returnType:kotlin.Function0 correspondingProperty: PROPERTY name:aLambda visibility:public modality:FINAL [val] $this: VALUE_PARAMETER name: type:.MyEnum.Z @@ -62,7 +62,7 @@ FILE fqName: fileName:/enumEntryReferenceFromEnumEntryClass.kt GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:aLambda type:kotlin.Function0 visibility:private [final]' type=kotlin.Function0 origin=null receiver: GET_VAR ': .MyEnum.Z declared in .MyEnum.Z.' type=.MyEnum.Z origin=null PROPERTY name:anObject visibility:public modality:FINAL [val] - FIELD PROPERTY_BACKING_FIELD name:anObject type:. visibility:private [final] + FIELD PROPERTY_BACKING_FIELD name:anObject type:.MyEnum.Z.anObject. visibility:private [final] EXPRESSION_BODY BLOCK type=.MyEnum.Z.anObject. origin=OBJECT_LITERAL CLASS OBJECT name: modality:FINAL visibility:local superTypes:[kotlin.Any] @@ -74,25 +74,25 @@ FILE fqName: fileName:/enumEntryReferenceFromEnumEntryClass.kt ANONYMOUS_INITIALIZER isStatic=false BLOCK_BODY SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:private' type=kotlin.Unit origin=null - receiver: GET_VAR ': . declared in .' type=. origin=null + receiver: GET_VAR ': . declared in .' type=. origin=null value: CONST Int type=kotlin.Int value=1 CALL 'public final fun foo (): kotlin.Unit declared in .MyEnum.Z' type=kotlin.Unit origin=null - $this: GET_VAR ': . declared in .' type=. origin=null + $this: GET_VAR ': . declared in .' type=. origin=null FUN name:test visibility:public modality:FINAL <> ($this:.MyEnum.Z.anObject.) returnType:kotlin.Unit $this: VALUE_PARAMETER name: type:.MyEnum.Z.anObject. BLOCK_BODY SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:counter type:kotlin.Int visibility:private' type=kotlin.Unit origin=null - receiver: GET_VAR ': . declared in .' type=. origin=null + receiver: GET_VAR ': . declared in .' type=. origin=null value: CONST Int type=kotlin.Int value=1 CALL 'public final fun foo (): kotlin.Unit declared in .MyEnum.Z' type=kotlin.Unit origin=null - $this: GET_VAR ': . declared in .' type=. origin=null + $this: GET_VAR ': . declared in .' type=. origin=null CONSTRUCTOR_CALL 'private constructor () [primary] declared in .MyEnum.Z.anObject.' type=.MyEnum.Z.anObject. origin=null - FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.MyEnum.Z) returnType:. + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.MyEnum.Z) returnType:.MyEnum.Z.anObject. correspondingProperty: PROPERTY name:anObject visibility:public modality:FINAL [val] $this: VALUE_PARAMETER name: type:.MyEnum.Z BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun (): . declared in .MyEnum.Z' - GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anObject type:. visibility:private [final]' type=. origin=null + RETURN type=kotlin.Nothing from='public final fun (): .MyEnum.Z.anObject. declared in .MyEnum.Z' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anObject type:.MyEnum.Z.anObject. visibility:private [final]' type=.MyEnum.Z.anObject. origin=null receiver: GET_VAR ': .MyEnum.Z declared in .MyEnum.Z.' type=.MyEnum.Z origin=null FUN name:values visibility:public modality:FINAL <> ($this:.MyEnum) returnType:kotlin.Array<.MyEnum> $this: VALUE_PARAMETER name: type:.MyEnum diff --git a/compiler/testData/ir/irText/expressions/funInterface/partialSam.fir.txt b/compiler/testData/ir/irText/expressions/funInterface/partialSam.fir.txt index 83fe2ee2d4b..351ad3d65b9 100644 --- a/compiler/testData/ir/irText/expressions/funInterface/partialSam.fir.txt +++ b/compiler/testData/ir/irText/expressions/funInterface/partialSam.fir.txt @@ -56,7 +56,7 @@ FILE fqName: fileName:/partialSam.kt public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any PROPERTY name:fsi visibility:public modality:FINAL [val] - FIELD PROPERTY_BACKING_FIELD name:fsi type:. visibility:private [final,static] + FIELD PROPERTY_BACKING_FIELD name:fsi type:.fsi. visibility:private [final,static] EXPRESSION_BODY BLOCK type=.fsi. origin=OBJECT_LITERAL CLASS OBJECT name: modality:FINAL visibility:local superTypes:[.Fn] @@ -74,13 +74,13 @@ FILE fqName: fileName:/partialSam.kt RETURN type=kotlin.Nothing from='public final fun run (s: kotlin.String, i: kotlin.Int, t: kotlin.String): kotlin.Int declared in .fsi.' CONST Int type=kotlin.Int value=1 CONSTRUCTOR_CALL 'private constructor () [primary] declared in .fsi.' type=.fsi. origin=null - FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:. + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:.fsi. correspondingProperty: PROPERTY name:fsi visibility:public modality:FINAL [val] BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun (): . declared in ' - GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:fsi type:. visibility:private [final,static]' type=. origin=null + RETURN type=kotlin.Nothing from='public final fun (): .fsi. declared in ' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:fsi type:.fsi. visibility:private [final,static]' type=.fsi. origin=null PROPERTY name:fis visibility:public modality:FINAL [val] - FIELD PROPERTY_BACKING_FIELD name:fis type:. visibility:private [final,static] + FIELD PROPERTY_BACKING_FIELD name:fis type:.fis. visibility:private [final,static] EXPRESSION_BODY BLOCK type=.fis. origin=OBJECT_LITERAL CLASS OBJECT name: modality:FINAL visibility:local superTypes:[.Fn] @@ -98,17 +98,17 @@ FILE fqName: fileName:/partialSam.kt RETURN type=kotlin.Nothing from='public final fun run (s: kotlin.String, i: kotlin.Int, t: kotlin.Int): kotlin.String declared in .fis.' CONST String type=kotlin.String value="" CONSTRUCTOR_CALL 'private constructor () [primary] declared in .fis.' type=.fis. origin=null - FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:. + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> () returnType:.fis. correspondingProperty: PROPERTY name:fis visibility:public modality:FINAL [val] BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun (): . declared in ' - GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:fis type:. visibility:private [final,static]' type=. origin=null + RETURN type=kotlin.Nothing from='public final fun (): .fis. declared in ' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:fis type:.fis. visibility:private [final,static]' type=.fis. origin=null FUN name:test visibility:public modality:FINAL <> (j:.J) returnType:kotlin.Unit VALUE_PARAMETER name:j index:0 type:.J BLOCK_BODY CALL 'public final fun runConversion (f1: .Fn, f2: .Fn): kotlin.Int declared in .J' type=kotlin.Int origin=null $this: GET_VAR 'j: .J declared in .test' type=.J origin=null - f1: CALL 'public final fun (): . declared in ' type=. origin=GET_PROPERTY + f1: CALL 'public final fun (): .fsi. declared in ' type=. origin=GET_PROPERTY f2: FUN_EXPR type=kotlin.Function3 origin=LAMBDA FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> (s:kotlin.String, i:kotlin.Int, ti:kotlin.Int) returnType:kotlin.String VALUE_PARAMETER name:s index:0 type:kotlin.String @@ -127,4 +127,4 @@ FILE fqName: fileName:/partialSam.kt BLOCK_BODY RETURN type=kotlin.Nothing from='local final fun (s: kotlin.String, i: kotlin.Int, ts: kotlin.String): kotlin.Int declared in .test' CONST Int type=kotlin.Int value=1 - f2: CALL 'public final fun (): . declared in ' type=. origin=GET_PROPERTY + f2: CALL 'public final fun (): .fis. declared in ' type=. origin=GET_PROPERTY diff --git a/compiler/testData/ir/irText/expressions/multipleThisReferences.fir.txt b/compiler/testData/ir/irText/expressions/multipleThisReferences.fir.txt index 1c65adb98cd..f873cedf4e7 100644 --- a/compiler/testData/ir/irText/expressions/multipleThisReferences.fir.txt +++ b/compiler/testData/ir/irText/expressions/multipleThisReferences.fir.txt @@ -67,11 +67,11 @@ FILE fqName: fileName:/multipleThisReferences.kt RETURN type=kotlin.Nothing from='public final fun (): kotlin.Int declared in .Host' GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.Int visibility:private [final]' type=kotlin.Int origin=null receiver: GET_VAR ': .Host declared in .Host.' type=.Host origin=null - FUN name:test visibility:public modality:FINAL <> ($this:.Host, $receiver:.Outer) returnType:. + FUN name:test visibility:public modality:FINAL <> ($this:.Host, $receiver:.Outer) returnType:.Host.test. $this: VALUE_PARAMETER name: type:.Host $receiver: VALUE_PARAMETER name: type:.Outer BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun test (): . declared in .Host' + RETURN type=kotlin.Nothing from='public final fun test (): .Host.test. declared in .Host' BLOCK type=.Host.test. origin=OBJECT_LITERAL CLASS OBJECT name: modality:FINAL visibility:local superTypes:[.Outer.Inner] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Host.test. @@ -85,7 +85,7 @@ FILE fqName: fileName:/multipleThisReferences.kt EXPRESSION_BODY CALL 'public final fun plus (other: kotlin.Int): kotlin.Int [operator] declared in kotlin.Int' type=kotlin.Int origin=null $this: CALL 'public final fun (): kotlin.Int declared in .Outer.Inner' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': . declared in .' type=. origin=null + $this: GET_VAR ': .Host.test. declared in .Host.test.' type=.Host.test. origin=null other: GET_VAR 'y: kotlin.Int declared in .Host.' type=kotlin.Int origin=null FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.Host.test.) returnType:kotlin.Int correspondingProperty: PROPERTY name:xx visibility:public modality:FINAL [val] diff --git a/compiler/testData/ir/irText/expressions/objectReference.fir.txt b/compiler/testData/ir/irText/expressions/objectReference.fir.txt index 0e126219dbb..7f04133dfe8 100644 --- a/compiler/testData/ir/irText/expressions/objectReference.fir.txt +++ b/compiler/testData/ir/irText/expressions/objectReference.fir.txt @@ -108,7 +108,7 @@ FILE fqName: fileName:/objectReference.kt GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:aLambda type:kotlin.Function0 visibility:private [final]' type=kotlin.Function0 origin=null receiver: GET_VAR ': .Z declared in .Z.' type=.Z origin=null PROPERTY name:anObject visibility:public modality:FINAL [val] - FIELD PROPERTY_BACKING_FIELD name:anObject type:. visibility:private [final] + FIELD PROPERTY_BACKING_FIELD name:anObject type:.Z.anObject. visibility:private [final] EXPRESSION_BODY BLOCK type=.Z.anObject. origin=OBJECT_LITERAL CLASS OBJECT name: modality:FINAL visibility:local superTypes:[kotlin.Any] @@ -143,12 +143,12 @@ FILE fqName: fileName:/objectReference.kt CALL 'public final fun foo (): kotlin.Unit declared in .Z' type=kotlin.Unit origin=null $this: GET_OBJECT 'CLASS OBJECT name:Z modality:FINAL visibility:public superTypes:[kotlin.Any]' type=.Z CONSTRUCTOR_CALL 'private constructor () [primary] declared in .Z.anObject.' type=.Z.anObject. origin=null - FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.Z) returnType:. + FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.Z) returnType:.Z.anObject. correspondingProperty: PROPERTY name:anObject visibility:public modality:FINAL [val] $this: VALUE_PARAMETER name: type:.Z BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun (): . declared in .Z' - GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anObject type:. visibility:private [final]' type=. origin=null + RETURN type=kotlin.Nothing from='public final fun (): .Z.anObject. declared in .Z' + GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anObject type:.Z.anObject. visibility:private [final]' type=.Z.anObject. origin=null receiver: GET_VAR ': .Z declared in .Z.' type=.Z origin=null FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: diff --git a/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.fir.txt b/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.fir.txt index ceb39708d4c..ab13237482c 100644 --- a/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.fir.txt +++ b/compiler/testData/ir/irText/expressions/temporaryInEnumEntryInitializer.fir.txt @@ -30,7 +30,7 @@ FILE fqName: fileName:/temporaryInEnumEntryInitializer.kt ENUM_ENTRY name:ENTRY class: CLASS ENUM_ENTRY name:ENTRY modality:FINAL visibility:private superTypes:[.En] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.En.ENTRY - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor (x: kotlin.String?) [primary] declared in .En' x: CALL 'public open fun toString (): kotlin.String declared in kotlin.Any' type=kotlin.String? origin=null diff --git a/compiler/testData/ir/irText/expressions/thisOfGenericOuterClass.fir.txt b/compiler/testData/ir/irText/expressions/thisOfGenericOuterClass.fir.txt index 437cb507f64..a08aae3f628 100644 --- a/compiler/testData/ir/irText/expressions/thisOfGenericOuterClass.fir.txt +++ b/compiler/testData/ir/irText/expressions/thisOfGenericOuterClass.fir.txt @@ -62,10 +62,10 @@ FILE fqName: fileName:/thisOfGenericOuterClass.kt overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any - FUN name:test visibility:public modality:FINAL <> ($receiver:.Outer) returnType:. + FUN name:test visibility:public modality:FINAL <> ($receiver:.Outer) returnType:.test. $receiver: VALUE_PARAMETER name: type:.Outer BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun test (): . declared in ' + RETURN type=kotlin.Nothing from='public final fun test (): .test. declared in ' BLOCK type=.test. origin=OBJECT_LITERAL CLASS OBJECT name: modality:FINAL visibility:local superTypes:[.Outer.Inner] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.test. @@ -81,7 +81,7 @@ FILE fqName: fileName:/thisOfGenericOuterClass.kt $this: CALL 'public final fun (): T of .Outer declared in .Outer' type=kotlin.Int origin=GET_PROPERTY $this: GET_VAR ': .Outer declared in .test' type=.Outer origin=null other: CALL 'public final fun (): kotlin.Int declared in .Outer.Inner' type=kotlin.Int origin=GET_PROPERTY - $this: GET_VAR ': . declared in .' type=. origin=null + $this: GET_VAR ': .test. declared in .test.' type=.test. origin=null FUN DEFAULT_PROPERTY_ACCESSOR name: visibility:public modality:FINAL <> ($this:.test.) returnType:kotlin.Int correspondingProperty: PROPERTY name:xx visibility:public modality:FINAL [val] $this: VALUE_PARAMETER name: type:.test. diff --git a/compiler/testData/ir/irText/expressions/thisReferenceBeforeClassDeclared.fir.txt b/compiler/testData/ir/irText/expressions/thisReferenceBeforeClassDeclared.fir.txt index bbce1d83987..7f9006068df 100644 --- a/compiler/testData/ir/irText/expressions/thisReferenceBeforeClassDeclared.fir.txt +++ b/compiler/testData/ir/irText/expressions/thisReferenceBeforeClassDeclared.fir.txt @@ -2,7 +2,7 @@ FILE fqName: fileName:/thisReferenceBeforeClassDeclared.kt FUN name:test visibility:public modality:FINAL <> ($receiver:.WithCompanion) returnType:kotlin.Unit $receiver: VALUE_PARAMETER name: type:.WithCompanion BLOCK_BODY - VAR name:test1 type:. [val] + VAR name:test1 type:.test. [val] BLOCK type=.test. origin=OBJECT_LITERAL CLASS OBJECT name: modality:FINAL visibility:local superTypes:[.WithCompanion] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.test. @@ -11,7 +11,7 @@ FILE fqName: fileName:/thisReferenceBeforeClassDeclared.kt ERROR_CALL 'Cannot find delegated constructor call' type=.WithCompanion INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name: modality:FINAL visibility:local superTypes:[.WithCompanion]' CONSTRUCTOR_CALL 'private constructor () [primary] declared in .test.' type=.test. origin=null - VAR name:test2 type:. [val] + VAR name:test2 type:.test. [val] BLOCK type=.test. origin=OBJECT_LITERAL CLASS OBJECT name: modality:FINAL visibility:local superTypes:[.WithCompanion] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.test. diff --git a/compiler/testData/ir/irText/singletons/enumEntry.fir.txt b/compiler/testData/ir/irText/singletons/enumEntry.fir.txt index 7e31f58ce25..c431b74a491 100644 --- a/compiler/testData/ir/irText/singletons/enumEntry.fir.txt +++ b/compiler/testData/ir/irText/singletons/enumEntry.fir.txt @@ -9,7 +9,7 @@ FILE fqName: fileName:/enumEntry.kt ENUM_ENTRY name:ENTRY class: CLASS ENUM_ENTRY name:ENTRY modality:FINAL visibility:private superTypes:[.Z] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Z.ENTRY - CONSTRUCTOR visibility:private <> () returnType:. [primary] + CONSTRUCTOR visibility:private <> () returnType:. [primary] BLOCK_BODY ENUM_CONSTRUCTOR_CALL 'private constructor () [primary] declared in .Z' INSTANCE_INITIALIZER_CALL classDescriptor='CLASS ENUM_ENTRY name:ENTRY modality:FINAL visibility:private superTypes:[.Z]' @@ -26,7 +26,7 @@ FILE fqName: fileName:/enumEntry.kt $this: VALUE_PARAMETER name: type:.Z.ENTRY.A BLOCK_BODY CALL 'public final fun test (): kotlin.Unit declared in .Z.ENTRY' type=kotlin.Unit origin=null - $this: GET_VAR ': . declared in .' type=. origin=null + $this: GET_VAR ': . declared in .' type=. origin=null FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any