[FIR2IR] Create special IrDeclarationOrigin for generated declarations

This commit is contained in:
Dmitriy Novozhilov
2021-10-04 12:28:06 +03:00
committed by TeamCityServer
parent 233b9f1242
commit b3768a201f
11 changed files with 79 additions and 33 deletions
@@ -492,7 +492,10 @@ internal fun IrDeclarationParent.declareThisReceiverParameter(
fun FirClass.irOrigin(firProvider: FirProvider): IrDeclarationOrigin = when { fun FirClass.irOrigin(firProvider: FirProvider): IrDeclarationOrigin = when {
firProvider.getFirClassifierContainerFileIfAny(symbol) != null -> IrDeclarationOrigin.DEFINED firProvider.getFirClassifierContainerFileIfAny(symbol) != null -> IrDeclarationOrigin.DEFINED
isJava -> IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB 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 val IrType.isSamType: Boolean
@@ -598,3 +601,9 @@ fun FirSession.createFilesWithGeneratedDeclarations(): List<FirFile> {
} }
} }
} }
fun FirDeclaration?.computeIrOrigin(predefinedOrigin: IrDeclarationOrigin? = null): IrDeclarationOrigin {
return predefinedOrigin
?: (this?.origin as? FirDeclarationOrigin.Plugin)?.let { IrPluginDeclarationOrigin(it.key) }
?: IrDeclarationOrigin.DEFINED
}
@@ -229,7 +229,7 @@ class Fir2IrClassifierStorage(
fun registerIrClass( fun registerIrClass(
regularClass: FirRegularClass, regularClass: FirRegularClass,
parent: IrDeclarationParent? = null, parent: IrDeclarationParent? = null,
origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED predefinedOrigin: IrDeclarationOrigin? = null
): IrClass { ): IrClass {
val visibility = regularClass.visibility val visibility = regularClass.visibility
val modality = if (regularClass.classKind == ClassKind.ENUM_CLASS) { val modality = if (regularClass.classKind == ClassKind.ENUM_CLASS) {
@@ -245,7 +245,7 @@ class Fir2IrClassifierStorage(
irFactory.createClass( irFactory.createClass(
startOffset, startOffset,
endOffset, endOffset,
origin, regularClass.computeIrOrigin(predefinedOrigin),
symbol, symbol,
regularClass.name, regularClass.name,
regularClass.classKind, regularClass.classKind,
@@ -314,7 +314,7 @@ class Fir2IrClassifierStorage(
typeContext: ConversionTypeContext = ConversionTypeContext.DEFAULT typeContext: ConversionTypeContext = ConversionTypeContext.DEFAULT
): IrTypeParameter { ): IrTypeParameter {
require(index >= 0) require(index >= 0)
val origin = IrDeclarationOrigin.DEFINED val origin = typeParameter.computeIrOrigin()
val irTypeParameter = with(typeParameter) { val irTypeParameter = with(typeParameter) {
convertWithOffsets { startOffset, endOffset -> convertWithOffsets { startOffset, endOffset ->
irFactory.createTypeParameter( irFactory.createTypeParameter(
@@ -389,11 +389,12 @@ class Fir2IrClassifierStorage(
fun createIrEnumEntry( fun createIrEnumEntry(
enumEntry: FirEnumEntry, enumEntry: FirEnumEntry,
irParent: IrClass?, irParent: IrClass?,
origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED predefinedOrigin: IrDeclarationOrigin? = null
): IrEnumEntry { ): IrEnumEntry {
return enumEntry.convertWithOffsets { startOffset, endOffset -> return enumEntry.convertWithOffsets { startOffset, endOffset ->
val signature = signatureComposer.composeSignature(enumEntry) val signature = signatureComposer.composeSignature(enumEntry)
val result = declareIrEnumEntry(signature) { symbol -> val result = declareIrEnumEntry(signature) { symbol ->
val origin = enumEntry.computeIrOrigin(predefinedOrigin)
irFactory.createEnumEntry( irFactory.createEnumEntry(
startOffset, endOffset, origin, symbol, enumEntry.name startOffset, endOffset, origin, symbol, enumEntry.name
).apply { ).apply {
@@ -437,7 +437,7 @@ class Fir2IrDeclarationStorage(
function: FirFunction, function: FirFunction,
irParent: IrDeclarationParent?, irParent: IrDeclarationParent?,
thisReceiverOwner: IrClass? = irParent as? IrClass, thisReceiverOwner: IrClass? = irParent as? IrClass,
origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED, predefinedOrigin: IrDeclarationOrigin? = null,
isLocal: Boolean = false, isLocal: Boolean = false,
containingClass: ConeClassLikeLookupTag? = null, containingClass: ConeClassLikeLookupTag? = null,
): IrSimpleFunction = convertCatching(function) { ): IrSimpleFunction = convertCatching(function) {
@@ -453,7 +453,7 @@ class Fir2IrDeclarationStorage(
// See org.jetbrains.kotlin.backend.jvm.lower.InheritedDefaultMethodsOnClassesLoweringKt.isDefinitelyNotDefaultImplsMethod // See org.jetbrains.kotlin.backend.jvm.lower.InheritedDefaultMethodsOnClassesLoweringKt.isDefinitelyNotDefaultImplsMethod
(irParent as? IrClass)?.origin == IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB && (irParent as? IrClass)?.origin == IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB &&
function.origin == FirDeclarationOrigin.Enhancement -> IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB function.origin == FirDeclarationOrigin.Enhancement -> IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB
else -> origin else -> function.computeIrOrigin(predefinedOrigin)
} }
classifierStorage.preCacheTypeParameters(function) classifierStorage.preCacheTypeParameters(function)
val name = simpleFunction?.name val name = simpleFunction?.name
@@ -544,9 +544,10 @@ class Fir2IrDeclarationStorage(
fun createIrConstructor( fun createIrConstructor(
constructor: FirConstructor, constructor: FirConstructor,
irParent: IrClass, irParent: IrClass,
origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED, predefinedOrigin: IrDeclarationOrigin? = null,
isLocal: Boolean = false isLocal: Boolean = false
): IrConstructor = convertCatching(constructor) { ): IrConstructor = convertCatching(constructor) {
val origin = constructor.computeIrOrigin(predefinedOrigin)
val isPrimary = constructor.isPrimary val isPrimary = constructor.isPrimary
classifierStorage.preCacheTypeParameters(constructor) classifierStorage.preCacheTypeParameters(constructor)
val signature = if (isLocal) null else signatureComposer.composeSignature(constructor) val signature = if (isLocal) null else signatureComposer.composeSignature(constructor)
@@ -572,11 +573,11 @@ class Fir2IrDeclarationStorage(
fun getOrCreateIrConstructor( fun getOrCreateIrConstructor(
constructor: FirConstructor, constructor: FirConstructor,
irParent: IrClass, irParent: IrClass,
origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED, predefinedOrigin: IrDeclarationOrigin? = null,
isLocal: Boolean = false isLocal: Boolean = false
): IrConstructor { ): IrConstructor {
getCachedIrConstructor(constructor)?.let { return it } getCachedIrConstructor(constructor)?.let { return it }
return createIrConstructor(constructor, irParent, origin, isLocal) return createIrConstructor(constructor, irParent, predefinedOrigin, isLocal)
} }
private fun declareIrAccessor( private fun declareIrAccessor(
@@ -760,10 +761,11 @@ class Fir2IrDeclarationStorage(
property: FirProperty, property: FirProperty,
irParent: IrDeclarationParent?, irParent: IrDeclarationParent?,
thisReceiverOwner: IrClass? = irParent as? IrClass, thisReceiverOwner: IrClass? = irParent as? IrClass,
origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED, predefinedOrigin: IrDeclarationOrigin? = null,
isLocal: Boolean = false, isLocal: Boolean = false,
containingClass: ConeClassLikeLookupTag? = null, containingClass: ConeClassLikeLookupTag? = null,
): IrProperty = convertCatching(property) { ): IrProperty = convertCatching(property) {
val origin = property.computeIrOrigin(predefinedOrigin)
classifierStorage.preCacheTypeParameters(property) classifierStorage.preCacheTypeParameters(property)
if (property.delegate != null) { if (property.delegate != null) {
val delegateReference = (property.delegate as? FirQualifiedAccess)?.calleeReference as? FirResolvedNamedReference val delegateReference = (property.delegate as? FirQualifiedAccess)?.calleeReference as? FirResolvedNamedReference
@@ -930,7 +932,7 @@ class Fir2IrDeclarationStorage(
typeContext: ConversionTypeContext = ConversionTypeContext.DEFAULT, typeContext: ConversionTypeContext = ConversionTypeContext.DEFAULT,
skipDefaultParameter: Boolean = false, skipDefaultParameter: Boolean = false,
): IrValueParameter = convertCatching(valueParameter) { ): IrValueParameter = convertCatching(valueParameter) {
val origin = IrDeclarationOrigin.DEFINED val origin = valueParameter.computeIrOrigin()
val type = valueParameter.returnTypeRef.toIrType() val type = valueParameter.returnTypeRef.toIrType()
val irParameter = valueParameter.convertWithOffsets { startOffset, endOffset -> val irParameter = valueParameter.convertWithOffsets { startOffset, endOffset ->
irFactory.createValueParameter( irFactory.createValueParameter(
@@ -1058,7 +1060,7 @@ class Fir2IrDeclarationStorage(
return getIrCallableSymbol( return getIrCallableSymbol(
firConstructorSymbol, firConstructorSymbol,
getCachedIrDeclaration = ::getCachedIrConstructor, 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 -> createIrLazyDeclaration = { signature, lazyParent, declarationOrigin ->
val symbol = Fir2IrConstructorSymbol(signature) val symbol = Fir2IrConstructorSymbol(signature)
val irConstructor = fir.convertWithOffsets { startOffset, endOffset -> val irConstructor = fir.convertWithOffsets { startOffset, endOffset ->
@@ -1085,13 +1087,13 @@ class Fir2IrDeclarationStorage(
val irParent = findIrParent(fir) val irParent = findIrParent(fir)
val parentOrigin = (irParent as? IrDeclaration)?.origin ?: IrDeclarationOrigin.DEFINED val parentOrigin = (irParent as? IrDeclaration)?.origin ?: IrDeclarationOrigin.DEFINED
val declarationOrigin = computeDeclarationOrigin(firFunctionSymbol, parentOrigin) val declarationOrigin = computeDeclarationOrigin(firFunctionSymbol, parentOrigin)
createIrFunction(fir, irParent, origin = declarationOrigin).symbol createIrFunction(fir, irParent, predefinedOrigin = declarationOrigin).symbol
} }
is FirSimpleFunction -> { is FirSimpleFunction -> {
return getIrCallableSymbol( return getIrCallableSymbol(
firFunctionSymbol, firFunctionSymbol,
getCachedIrDeclaration = ::getCachedIrFunction, getCachedIrDeclaration = ::getCachedIrFunction,
createIrDeclaration = { parent, origin -> createIrFunction(fir, parent, origin = origin) }, createIrDeclaration = { parent, origin -> createIrFunction(fir, parent, predefinedOrigin = origin) },
createIrLazyDeclaration = { signature, lazyParent, declarationOrigin -> createIrLazyDeclaration = { signature, lazyParent, declarationOrigin ->
val symbol = Fir2IrSimpleFunctionSymbol(signature, fir.containerSource) val symbol = Fir2IrSimpleFunctionSymbol(signature, fir.containerSource)
val irFunction = fir.convertWithOffsets { startOffset, endOffset -> val irFunction = fir.convertWithOffsets { startOffset, endOffset ->
@@ -1130,7 +1132,7 @@ class Fir2IrDeclarationStorage(
return getIrCallableSymbol( return getIrCallableSymbol(
firPropertySymbol, firPropertySymbol,
getCachedIrDeclaration = ::getCachedIrProperty, getCachedIrDeclaration = ::getCachedIrProperty,
createIrDeclaration = { parent, origin -> createIrProperty(fir, parent, origin = origin) }, createIrDeclaration = { parent, origin -> createIrProperty(fir, parent, predefinedOrigin = origin) },
createIrLazyDeclaration = { signature, lazyParent, declarationOrigin -> createIrLazyDeclaration = { signature, lazyParent, declarationOrigin ->
val symbol = Fir2IrPropertySymbol(signature, fir.containerSource) val symbol = Fir2IrPropertySymbol(signature, fir.containerSource)
val irProperty = fir.convertWithOffsets { startOffset, endOffset -> val irProperty = fir.convertWithOffsets { startOffset, endOffset ->
@@ -1212,6 +1214,7 @@ class Fir2IrDeclarationStorage(
(symbol.fir.origin is FirDeclarationOrigin.Enhancement || symbol.fir.origin is FirDeclarationOrigin.Java) -> { (symbol.fir.origin is FirDeclarationOrigin.Enhancement || symbol.fir.origin is FirDeclarationOrigin.Java) -> {
IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB
} }
symbol.origin is FirDeclarationOrigin.Plugin -> IrPluginDeclarationOrigin((symbol.origin as FirDeclarationOrigin.Plugin).key)
else -> parentOrigin else -> parentOrigin
} }
@@ -1244,7 +1247,7 @@ class Fir2IrDeclarationStorage(
propertyCache[fir]?.let { return it.backingField!!.symbol } propertyCache[fir]?.let { return it.backingField!!.symbol }
val irParent = findIrParent(fir) val irParent = findIrParent(fir)
val parentOrigin = (irParent as? IrDeclaration)?.origin ?: IrDeclarationOrigin.DEFINED val parentOrigin = (irParent as? IrDeclaration)?.origin ?: IrDeclarationOrigin.DEFINED
createIrProperty(fir, irParent, origin = parentOrigin).apply { createIrProperty(fir, irParent, predefinedOrigin = parentOrigin).apply {
setAndModifyParent(irParent) setAndModifyParent(irParent)
}.backingField!!.symbol }.backingField!!.symbol
} }
@@ -1270,7 +1273,7 @@ class Fir2IrDeclarationStorage(
classifierStorage.createIrEnumEntry( classifierStorage.createIrEnumEntry(
firDeclaration, firDeclaration,
irParent = irParentClass, irParent = irParentClass,
origin = if (containingFile != null) IrDeclarationOrigin.DEFINED else predefinedOrigin = if (containingFile != null) IrDeclarationOrigin.DEFINED else
irParentClass?.origin ?: IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB irParentClass?.origin ?: IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB
).symbol ).symbol
} }
@@ -217,7 +217,7 @@ class Fir2IrVisitor(
override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: Any?): IrElement { override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: Any?): IrElement {
val irFunction = if (simpleFunction.visibility == Visibilities.Local) { val irFunction = if (simpleFunction.visibility == Visibilities.Local) {
declarationStorage.createIrFunction( declarationStorage.createIrFunction(
simpleFunction, irParent = conversionScope.parent(), origin = IrDeclarationOrigin.LOCAL_FUNCTION, isLocal = true simpleFunction, irParent = conversionScope.parent(), predefinedOrigin = IrDeclarationOrigin.LOCAL_FUNCTION, isLocal = true
) )
} else { } else {
declarationStorage.getCachedIrFunction(simpleFunction)!! declarationStorage.getCachedIrFunction(simpleFunction)!!
@@ -236,7 +236,7 @@ class Fir2IrVisitor(
override fun visitAnonymousFunction(anonymousFunction: FirAnonymousFunction, data: Any?): IrElement { override fun visitAnonymousFunction(anonymousFunction: FirAnonymousFunction, data: Any?): IrElement {
return anonymousFunction.convertWithOffsets { startOffset, endOffset -> return anonymousFunction.convertWithOffsets { startOffset, endOffset ->
val irFunction = declarationStorage.createIrFunction( 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) { conversionScope.withFunction(irFunction) {
memberGenerator.convertFunctionContent(irFunction, anonymousFunction, containingClass = null) memberGenerator.convertFunctionContent(irFunction, anonymousFunction, containingClass = null)
@@ -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}]"
}
}
@@ -118,7 +118,7 @@ class DelegatedMemberGenerator(
): IrSimpleFunction { ): IrSimpleFunction {
val delegateFunction = val delegateFunction =
declarationStorage.createIrFunction( declarationStorage.createIrFunction(
delegateOverride, subClass, origin = IrDeclarationOrigin.DELEGATED_MEMBER, delegateOverride, subClass, predefinedOrigin = IrDeclarationOrigin.DELEGATED_MEMBER,
containingClass = firSubClass.symbol.toLookupTag() containingClass = firSubClass.symbol.toLookupTag()
) )
val baseSymbols = mutableListOf<FirNamedFunctionSymbol>() val baseSymbols = mutableListOf<FirNamedFunctionSymbol>()
@@ -188,7 +188,7 @@ class DelegatedMemberGenerator(
): IrProperty { ): IrProperty {
val delegateProperty = val delegateProperty =
declarationStorage.createIrProperty( declarationStorage.createIrProperty(
firDelegateProperty, subClass, origin = IrDeclarationOrigin.DELEGATED_MEMBER, firDelegateProperty, subClass, predefinedOrigin = IrDeclarationOrigin.DELEGATED_MEMBER,
containingClass = firSubClass.symbol.toLookupTag() containingClass = firSubClass.symbol.toLookupTag()
) )
// the overridden symbols should be collected only after all fake overrides for all superclases are created and bound to their // the overridden symbols should be collected only after all fake overrides for all superclases are created and bound to their
@@ -72,6 +72,17 @@ class UnderAnnotatedWith(annotations: Set<AnnotationFqn>) : Annotated(annotation
} }
} }
// annotation class AllOpen // from library
/*
@AllOpen
annotation class MyOpen
@MyOpen
class MyClass
*/
sealed class MetaAnnotated(final override val metaAnnotations: Set<AnnotationFqn>) : DeclarationPredicate() { sealed class MetaAnnotated(final override val metaAnnotations: Set<AnnotationFqn>) : DeclarationPredicate() {
init { init {
require(metaAnnotations.isNotEmpty()) { require(metaAnnotations.isNotEmpty()) {
@@ -7,4 +7,8 @@ package org.jetbrains.kotlin.fir.plugin
import org.jetbrains.kotlin.fir.declarations.FirPluginKey import org.jetbrains.kotlin.fir.declarations.FirPluginKey
object AllOpenPluginKey : FirPluginKey() object AllOpenPluginKey : FirPluginKey() {
override fun toString(): String {
return "AllOpenPlugin"
}
}
@@ -26,11 +26,11 @@ FILE fqName:<root> fileName:/classWithGeneratedMembersAndNestedClass.kt
overridden: overridden:
public open fun toString (): kotlin.String declared in kotlin.Any public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any $this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:materialize visibility:public modality:FINAL <> ($this:<root>.Foo) returnType:<root>.Foo FUN GENERATED[AllOpenMembersGeneratorKey] name:materialize visibility:public modality:FINAL <> ($this:<root>.Foo) returnType:<root>.Foo
$this: VALUE_PARAMETER name:<this> type:<root>.Foo $this: VALUE_PARAMETER name:<this> type:<root>.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:<this> type:<root>.Foo.Nested $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.Foo.Nested
CONSTRUCTOR visibility:public <> () returnType:<root>.Foo.Nested [primary] CONSTRUCTOR GENERATED[AllOpenMembersGeneratorKey] visibility:public <> () returnType:<root>.Foo.Nested [primary]
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden: overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
@@ -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: 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 $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 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:<this> type:foo.AllOpenGenerated $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> 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:<this> type:foo.AllOpenGenerated.NestedFoo $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> 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:<this> type:foo.AllOpenGenerated.NestedFoo $this: VALUE_PARAMETER name:<this> 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] FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden: overridden:
@@ -83,9 +85,10 @@ FILE fqName:foo fileName:__GENERATED DECLARATIONS__.kt
overridden: overridden:
public open fun toString (): kotlin.String declared in kotlin.Any public open fun toString (): kotlin.String declared in kotlin.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any $this: VALUE_PARAMETER name:<this> 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:<this> type:foo.AllOpenGenerated.NestedBar $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> 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:<this> type:foo.AllOpenGenerated.NestedBar $this: VALUE_PARAMETER name:<this> 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] FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden: overridden:
@@ -32,5 +32,5 @@ FILE fqName:foo fileName:/topLevelCallables.kt
VALUE_PARAMETER name:s index:0 type:kotlin.String VALUE_PARAMETER name:s index:0 type:kotlin.String
BLOCK_BODY BLOCK_BODY
FILE fqName:foo fileName:__GENERATED DECLARATIONS__.kt FILE fqName:foo fileName:__GENERATED DECLARATIONS__.kt
FUN name:dummyMySuperClass visibility:public modality:FINAL <> (value:foo.MySuperClass) returnType:kotlin.String FUN GENERATED[AllOpenPlugin] name:dummyMySuperClass visibility:public modality:FINAL <> (value:foo.MySuperClass) returnType:kotlin.String
VALUE_PARAMETER name:value index:0 type:foo.MySuperClass VALUE_PARAMETER GENERATED[AllOpenPlugin] name:value index:0 type:foo.MySuperClass