From b3768a201f5cf470d31be1ded0bb9aa39ba2c700 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Mon, 4 Oct 2021 12:28:06 +0300 Subject: [PATCH] [FIR2IR] Create special IrDeclarationOrigin for generated declarations --- .../kotlin/fir/backend/ConversionUtils.kt | 11 ++++++- .../fir/backend/Fir2IrClassifierStorage.kt | 9 +++--- .../fir/backend/Fir2IrDeclarationStorage.kt | 29 ++++++++++--------- .../kotlin/fir/backend/Fir2IrVisitor.kt | 4 +-- .../fir/backend/IrPluginDeclarationOrigin.kt | 15 ++++++++++ .../generators/DelegatedMemberGenerator.kt | 4 +-- .../predicate/DeclarationPredicate.kt | 11 +++++++ .../kotlin/fir/plugin/AllOpenPluginKey.kt | 6 +++- ...hGeneratedMembersAndNestedClass.fir.ir.txt | 6 ++-- ...lassWithMembersAndNestedClasses.fir.ir.txt | 13 +++++---- .../memberGen/topLevelCallables.fir.ir.txt | 4 +-- 11 files changed, 79 insertions(+), 33 deletions(-) create mode 100644 compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/IrPluginDeclarationOrigin.kt diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt index 27aafd5b71d..4a1a421b76e 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt @@ -492,7 +492,10 @@ internal fun IrDeclarationParent.declareThisReceiverParameter( fun FirClass.irOrigin(firProvider: FirProvider): IrDeclarationOrigin = when { firProvider.getFirClassifierContainerFileIfAny(symbol) != null -> IrDeclarationOrigin.DEFINED isJava -> IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB - else -> IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB + else -> when (val origin = origin) { + is FirDeclarationOrigin.Plugin -> IrPluginDeclarationOrigin(origin.key) + else -> IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB + } } val IrType.isSamType: Boolean @@ -598,3 +601,9 @@ fun FirSession.createFilesWithGeneratedDeclarations(): List { } } } + +fun FirDeclaration?.computeIrOrigin(predefinedOrigin: IrDeclarationOrigin? = null): IrDeclarationOrigin { + return predefinedOrigin + ?: (this?.origin as? FirDeclarationOrigin.Plugin)?.let { IrPluginDeclarationOrigin(it.key) } + ?: IrDeclarationOrigin.DEFINED +} diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt index 998560e3ce6..4dc67127492 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt @@ -229,7 +229,7 @@ class Fir2IrClassifierStorage( fun registerIrClass( regularClass: FirRegularClass, parent: IrDeclarationParent? = null, - origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED + predefinedOrigin: IrDeclarationOrigin? = null ): IrClass { val visibility = regularClass.visibility val modality = if (regularClass.classKind == ClassKind.ENUM_CLASS) { @@ -245,7 +245,7 @@ class Fir2IrClassifierStorage( irFactory.createClass( startOffset, endOffset, - origin, + regularClass.computeIrOrigin(predefinedOrigin), symbol, regularClass.name, regularClass.classKind, @@ -314,7 +314,7 @@ class Fir2IrClassifierStorage( typeContext: ConversionTypeContext = ConversionTypeContext.DEFAULT ): IrTypeParameter { require(index >= 0) - val origin = IrDeclarationOrigin.DEFINED + val origin = typeParameter.computeIrOrigin() val irTypeParameter = with(typeParameter) { convertWithOffsets { startOffset, endOffset -> irFactory.createTypeParameter( @@ -389,11 +389,12 @@ class Fir2IrClassifierStorage( fun createIrEnumEntry( enumEntry: FirEnumEntry, irParent: IrClass?, - origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED + predefinedOrigin: IrDeclarationOrigin? = null ): IrEnumEntry { return enumEntry.convertWithOffsets { startOffset, endOffset -> val signature = signatureComposer.composeSignature(enumEntry) val result = declareIrEnumEntry(signature) { symbol -> + val origin = enumEntry.computeIrOrigin(predefinedOrigin) irFactory.createEnumEntry( startOffset, endOffset, origin, symbol, enumEntry.name ).apply { 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 91ffeeec91f..c8cb0b1802f 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 @@ -437,7 +437,7 @@ class Fir2IrDeclarationStorage( function: FirFunction, irParent: IrDeclarationParent?, thisReceiverOwner: IrClass? = irParent as? IrClass, - origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED, + predefinedOrigin: IrDeclarationOrigin? = null, isLocal: Boolean = false, containingClass: ConeClassLikeLookupTag? = null, ): IrSimpleFunction = convertCatching(function) { @@ -453,7 +453,7 @@ class Fir2IrDeclarationStorage( // See org.jetbrains.kotlin.backend.jvm.lower.InheritedDefaultMethodsOnClassesLoweringKt.isDefinitelyNotDefaultImplsMethod (irParent as? IrClass)?.origin == IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB && function.origin == FirDeclarationOrigin.Enhancement -> IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB - else -> origin + else -> function.computeIrOrigin(predefinedOrigin) } classifierStorage.preCacheTypeParameters(function) val name = simpleFunction?.name @@ -544,9 +544,10 @@ class Fir2IrDeclarationStorage( fun createIrConstructor( constructor: FirConstructor, irParent: IrClass, - origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED, + predefinedOrigin: IrDeclarationOrigin? = null, isLocal: Boolean = false ): IrConstructor = convertCatching(constructor) { + val origin = constructor.computeIrOrigin(predefinedOrigin) val isPrimary = constructor.isPrimary classifierStorage.preCacheTypeParameters(constructor) val signature = if (isLocal) null else signatureComposer.composeSignature(constructor) @@ -572,11 +573,11 @@ class Fir2IrDeclarationStorage( fun getOrCreateIrConstructor( constructor: FirConstructor, irParent: IrClass, - origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED, + predefinedOrigin: IrDeclarationOrigin? = null, isLocal: Boolean = false ): IrConstructor { getCachedIrConstructor(constructor)?.let { return it } - return createIrConstructor(constructor, irParent, origin, isLocal) + return createIrConstructor(constructor, irParent, predefinedOrigin, isLocal) } private fun declareIrAccessor( @@ -760,10 +761,11 @@ class Fir2IrDeclarationStorage( property: FirProperty, irParent: IrDeclarationParent?, thisReceiverOwner: IrClass? = irParent as? IrClass, - origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED, + predefinedOrigin: IrDeclarationOrigin? = null, isLocal: Boolean = false, containingClass: ConeClassLikeLookupTag? = null, ): IrProperty = convertCatching(property) { + val origin = property.computeIrOrigin(predefinedOrigin) classifierStorage.preCacheTypeParameters(property) if (property.delegate != null) { val delegateReference = (property.delegate as? FirQualifiedAccess)?.calleeReference as? FirResolvedNamedReference @@ -930,7 +932,7 @@ class Fir2IrDeclarationStorage( typeContext: ConversionTypeContext = ConversionTypeContext.DEFAULT, skipDefaultParameter: Boolean = false, ): IrValueParameter = convertCatching(valueParameter) { - val origin = IrDeclarationOrigin.DEFINED + val origin = valueParameter.computeIrOrigin() val type = valueParameter.returnTypeRef.toIrType() val irParameter = valueParameter.convertWithOffsets { startOffset, endOffset -> irFactory.createValueParameter( @@ -1058,7 +1060,7 @@ class Fir2IrDeclarationStorage( return getIrCallableSymbol( firConstructorSymbol, getCachedIrDeclaration = ::getCachedIrConstructor, - createIrDeclaration = { parent, origin -> createIrConstructor(fir, parent as IrClass, origin = origin) }, + createIrDeclaration = { parent, origin -> createIrConstructor(fir, parent as IrClass, predefinedOrigin = origin) }, createIrLazyDeclaration = { signature, lazyParent, declarationOrigin -> val symbol = Fir2IrConstructorSymbol(signature) val irConstructor = fir.convertWithOffsets { startOffset, endOffset -> @@ -1085,13 +1087,13 @@ class Fir2IrDeclarationStorage( val irParent = findIrParent(fir) val parentOrigin = (irParent as? IrDeclaration)?.origin ?: IrDeclarationOrigin.DEFINED val declarationOrigin = computeDeclarationOrigin(firFunctionSymbol, parentOrigin) - createIrFunction(fir, irParent, origin = declarationOrigin).symbol + createIrFunction(fir, irParent, predefinedOrigin = declarationOrigin).symbol } is FirSimpleFunction -> { return getIrCallableSymbol( firFunctionSymbol, getCachedIrDeclaration = ::getCachedIrFunction, - createIrDeclaration = { parent, origin -> createIrFunction(fir, parent, origin = origin) }, + createIrDeclaration = { parent, origin -> createIrFunction(fir, parent, predefinedOrigin = origin) }, createIrLazyDeclaration = { signature, lazyParent, declarationOrigin -> val symbol = Fir2IrSimpleFunctionSymbol(signature, fir.containerSource) val irFunction = fir.convertWithOffsets { startOffset, endOffset -> @@ -1130,7 +1132,7 @@ class Fir2IrDeclarationStorage( return getIrCallableSymbol( firPropertySymbol, getCachedIrDeclaration = ::getCachedIrProperty, - createIrDeclaration = { parent, origin -> createIrProperty(fir, parent, origin = origin) }, + createIrDeclaration = { parent, origin -> createIrProperty(fir, parent, predefinedOrigin = origin) }, createIrLazyDeclaration = { signature, lazyParent, declarationOrigin -> val symbol = Fir2IrPropertySymbol(signature, fir.containerSource) val irProperty = fir.convertWithOffsets { startOffset, endOffset -> @@ -1212,6 +1214,7 @@ class Fir2IrDeclarationStorage( (symbol.fir.origin is FirDeclarationOrigin.Enhancement || symbol.fir.origin is FirDeclarationOrigin.Java) -> { IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB } + symbol.origin is FirDeclarationOrigin.Plugin -> IrPluginDeclarationOrigin((symbol.origin as FirDeclarationOrigin.Plugin).key) else -> parentOrigin } @@ -1244,7 +1247,7 @@ class Fir2IrDeclarationStorage( propertyCache[fir]?.let { return it.backingField!!.symbol } val irParent = findIrParent(fir) val parentOrigin = (irParent as? IrDeclaration)?.origin ?: IrDeclarationOrigin.DEFINED - createIrProperty(fir, irParent, origin = parentOrigin).apply { + createIrProperty(fir, irParent, predefinedOrigin = parentOrigin).apply { setAndModifyParent(irParent) }.backingField!!.symbol } @@ -1270,7 +1273,7 @@ class Fir2IrDeclarationStorage( classifierStorage.createIrEnumEntry( firDeclaration, irParent = irParentClass, - origin = if (containingFile != null) IrDeclarationOrigin.DEFINED else + predefinedOrigin = if (containingFile != null) IrDeclarationOrigin.DEFINED else irParentClass?.origin ?: IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB ).symbol } 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 13a07daea73..8414fcc571b 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 @@ -217,7 +217,7 @@ class Fir2IrVisitor( override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: Any?): IrElement { val irFunction = if (simpleFunction.visibility == Visibilities.Local) { declarationStorage.createIrFunction( - simpleFunction, irParent = conversionScope.parent(), origin = IrDeclarationOrigin.LOCAL_FUNCTION, isLocal = true + simpleFunction, irParent = conversionScope.parent(), predefinedOrigin = IrDeclarationOrigin.LOCAL_FUNCTION, isLocal = true ) } else { declarationStorage.getCachedIrFunction(simpleFunction)!! @@ -236,7 +236,7 @@ class Fir2IrVisitor( override fun visitAnonymousFunction(anonymousFunction: FirAnonymousFunction, data: Any?): IrElement { return anonymousFunction.convertWithOffsets { startOffset, endOffset -> val irFunction = declarationStorage.createIrFunction( - anonymousFunction, irParent = conversionScope.parent(), origin = IrDeclarationOrigin.LOCAL_FUNCTION_FOR_LAMBDA, isLocal = true + anonymousFunction, irParent = conversionScope.parent(), predefinedOrigin = IrDeclarationOrigin.LOCAL_FUNCTION_FOR_LAMBDA, isLocal = true ) conversionScope.withFunction(irFunction) { memberGenerator.convertFunctionContent(irFunction, anonymousFunction, containingClass = null) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/IrPluginDeclarationOrigin.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/IrPluginDeclarationOrigin.kt new file mode 100644 index 00000000000..ea267d0b528 --- /dev/null +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/IrPluginDeclarationOrigin.kt @@ -0,0 +1,15 @@ +/* + * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.backend + +import org.jetbrains.kotlin.fir.declarations.FirPluginKey +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin + +class IrPluginDeclarationOrigin(val pluginKey: FirPluginKey) : IrDeclarationOrigin { + override fun toString(): String { + return "GENERATED[${pluginKey}]" + } +} diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt index 2d19e38a741..b2a3edac8c2 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt @@ -118,7 +118,7 @@ class DelegatedMemberGenerator( ): IrSimpleFunction { val delegateFunction = declarationStorage.createIrFunction( - delegateOverride, subClass, origin = IrDeclarationOrigin.DELEGATED_MEMBER, + delegateOverride, subClass, predefinedOrigin = IrDeclarationOrigin.DELEGATED_MEMBER, containingClass = firSubClass.symbol.toLookupTag() ) val baseSymbols = mutableListOf() @@ -188,7 +188,7 @@ class DelegatedMemberGenerator( ): IrProperty { val delegateProperty = declarationStorage.createIrProperty( - firDelegateProperty, subClass, origin = IrDeclarationOrigin.DELEGATED_MEMBER, + firDelegateProperty, subClass, predefinedOrigin = IrDeclarationOrigin.DELEGATED_MEMBER, containingClass = firSubClass.symbol.toLookupTag() ) // the overridden symbols should be collected only after all fake overrides for all superclases are created and bound to their diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/extensions/predicate/DeclarationPredicate.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/extensions/predicate/DeclarationPredicate.kt index 263b8f70196..c21494201e3 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/extensions/predicate/DeclarationPredicate.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/extensions/predicate/DeclarationPredicate.kt @@ -72,6 +72,17 @@ class UnderAnnotatedWith(annotations: Set) : Annotated(annotation } } +// annotation class AllOpen // from library + +/* + +@AllOpen +annotation class MyOpen + +@MyOpen +class MyClass + */ + sealed class MetaAnnotated(final override val metaAnnotations: Set) : DeclarationPredicate() { init { require(metaAnnotations.isNotEmpty()) { diff --git a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenPluginKey.kt b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenPluginKey.kt index c2dec81b413..eafa09f159a 100644 --- a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenPluginKey.kt +++ b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenPluginKey.kt @@ -7,4 +7,8 @@ package org.jetbrains.kotlin.fir.plugin import org.jetbrains.kotlin.fir.declarations.FirPluginKey -object AllOpenPluginKey : FirPluginKey() \ No newline at end of file +object AllOpenPluginKey : FirPluginKey() { + override fun toString(): String { + return "AllOpenPlugin" + } +} diff --git a/plugins/fir/fir-plugin-prototype/testData/fir2ir/memberGen/classWithGeneratedMembersAndNestedClass.fir.ir.txt b/plugins/fir/fir-plugin-prototype/testData/fir2ir/memberGen/classWithGeneratedMembersAndNestedClass.fir.ir.txt index d1f18d9b274..3a2de9031f6 100644 --- a/plugins/fir/fir-plugin-prototype/testData/fir2ir/memberGen/classWithGeneratedMembersAndNestedClass.fir.ir.txt +++ b/plugins/fir/fir-plugin-prototype/testData/fir2ir/memberGen/classWithGeneratedMembersAndNestedClass.fir.ir.txt @@ -26,11 +26,11 @@ FILE fqName: fileName:/classWithGeneratedMembersAndNestedClass.kt overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any - FUN name:materialize visibility:public modality:FINAL <> ($this:.Foo) returnType:.Foo + FUN GENERATED[AllOpenMembersGeneratorKey] name:materialize visibility:public modality:FINAL <> ($this:.Foo) returnType:.Foo $this: VALUE_PARAMETER name: type:.Foo - CLASS CLASS name:Nested modality:FINAL visibility:public superTypes:[kotlin.Any] + CLASS GENERATED[AllOpenMembersGeneratorKey] CLASS name:Nested modality:FINAL visibility:public superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Foo.Nested - CONSTRUCTOR visibility:public <> () returnType:.Foo.Nested [primary] + CONSTRUCTOR GENERATED[AllOpenMembersGeneratorKey] visibility:public <> () returnType:.Foo.Nested [primary] 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 diff --git a/plugins/fir/fir-plugin-prototype/testData/fir2ir/memberGen/generatedClassWithMembersAndNestedClasses.fir.ir.txt b/plugins/fir/fir-plugin-prototype/testData/fir2ir/memberGen/generatedClassWithMembersAndNestedClasses.fir.ir.txt index 350d90ebd92..ea848a62563 100644 --- a/plugins/fir/fir-plugin-prototype/testData/fir2ir/memberGen/generatedClassWithMembersAndNestedClasses.fir.ir.txt +++ b/plugins/fir/fir-plugin-prototype/testData/fir2ir/memberGen/generatedClassWithMembersAndNestedClasses.fir.ir.txt @@ -64,11 +64,13 @@ FILE fqName:bar fileName:/generatedClassWithMembersAndNestedClasses.kt $this: CALL 'public final fun materialize (): bar.Bar declared in foo.AllOpenGenerated.NestedBar' type=bar.Bar origin=null $this: GET_VAR 'val nestedBar: foo.AllOpenGenerated.NestedBar [val] declared in bar.testNestedClasses' type=foo.AllOpenGenerated.NestedBar origin=null FILE fqName:foo fileName:__GENERATED DECLARATIONS__.kt - CLASS CLASS name:AllOpenGenerated modality:FINAL visibility:public superTypes:[kotlin.Any] + CLASS GENERATED[AllOpenClassGeneratorKey] CLASS name:AllOpenGenerated modality:FINAL visibility:public superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:foo.AllOpenGenerated - CLASS CLASS name:NestedFoo modality:FINAL visibility:public superTypes:[kotlin.Any] + CONSTRUCTOR GENERATED[AllOpenClassGeneratorKey] visibility:public <> () returnType:foo.AllOpenGenerated [primary] + CLASS GENERATED[AllOpenClassGeneratorKey] CLASS name:NestedFoo modality:FINAL visibility:public superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:foo.AllOpenGenerated.NestedFoo - FUN name:materialize visibility:public modality:FINAL <> ($this:foo.AllOpenGenerated.NestedFoo) returnType:bar.Foo + CONSTRUCTOR GENERATED[AllOpenClassGeneratorKey] visibility:public <> () returnType:foo.AllOpenGenerated.NestedFoo [primary] + FUN GENERATED[AllOpenClassGeneratorKey] name:materialize visibility:public modality:FINAL <> ($this:foo.AllOpenGenerated.NestedFoo) returnType:bar.Foo $this: VALUE_PARAMETER name: type:foo.AllOpenGenerated.NestedFoo FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] overridden: @@ -83,9 +85,10 @@ FILE fqName:foo fileName:__GENERATED DECLARATIONS__.kt overridden: public open fun toString (): kotlin.String declared in kotlin.Any $this: VALUE_PARAMETER name: type:kotlin.Any - CLASS CLASS name:NestedBar modality:FINAL visibility:public superTypes:[kotlin.Any] + CLASS GENERATED[AllOpenClassGeneratorKey] CLASS name:NestedBar modality:FINAL visibility:public superTypes:[kotlin.Any] $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:foo.AllOpenGenerated.NestedBar - FUN name:materialize visibility:public modality:FINAL <> ($this:foo.AllOpenGenerated.NestedBar) returnType:bar.Bar + CONSTRUCTOR GENERATED[AllOpenClassGeneratorKey] visibility:public <> () returnType:foo.AllOpenGenerated.NestedBar [primary] + FUN GENERATED[AllOpenClassGeneratorKey] name:materialize visibility:public modality:FINAL <> ($this:foo.AllOpenGenerated.NestedBar) returnType:bar.Bar $this: VALUE_PARAMETER name: type:foo.AllOpenGenerated.NestedBar 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/plugins/fir/fir-plugin-prototype/testData/fir2ir/memberGen/topLevelCallables.fir.ir.txt b/plugins/fir/fir-plugin-prototype/testData/fir2ir/memberGen/topLevelCallables.fir.ir.txt index 8ece258c6a1..578b94098a2 100644 --- a/plugins/fir/fir-plugin-prototype/testData/fir2ir/memberGen/topLevelCallables.fir.ir.txt +++ b/plugins/fir/fir-plugin-prototype/testData/fir2ir/memberGen/topLevelCallables.fir.ir.txt @@ -32,5 +32,5 @@ FILE fqName:foo fileName:/topLevelCallables.kt VALUE_PARAMETER name:s index:0 type:kotlin.String BLOCK_BODY FILE fqName:foo fileName:__GENERATED DECLARATIONS__.kt - FUN name:dummyMySuperClass visibility:public modality:FINAL <> (value:foo.MySuperClass) returnType:kotlin.String - VALUE_PARAMETER name:value index:0 type:foo.MySuperClass + FUN GENERATED[AllOpenPlugin] name:dummyMySuperClass visibility:public modality:FINAL <> (value:foo.MySuperClass) returnType:kotlin.String + VALUE_PARAMETER GENERATED[AllOpenPlugin] name:value index:0 type:foo.MySuperClass