From f20845ba403eceff96c64387312aa19fa3646edc Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 3 Feb 2020 15:32:06 +0300 Subject: [PATCH] Get rid of FirMemberFunction --- .../jetbrains/kotlin/fir/dump/HtmlFirDump.kt | 2 +- .../java/scopes/JavaClassEnhancementScope.kt | 16 +++--- .../kotlin/fir/builder/BaseFirBuilder.kt | 7 +-- .../resolve/calls/ConstructorProcessing.kt | 4 +- ...rCallCompletionResultsWriterTransformer.kt | 2 +- .../kotlin/fir/declarations/FirConstructor.kt | 2 +- .../fir/declarations/FirMemberFunction.kt | 51 ------------------- .../fir/declarations/FirSimpleFunction.kt | 4 +- .../impl/FirSimpleFunctionImpl.kt | 6 +-- .../kotlin/fir/visitors/FirTransformer.kt | 9 ---- .../kotlin/fir/visitors/FirVisitor.kt | 3 -- .../kotlin/fir/visitors/FirVisitorVoid.kt | 9 ---- .../fir/tree/generator/FirTreeBuilder.kt | 5 +- .../fir/tree/generator/NodeConfigurator.kt | 17 +++---- 14 files changed, 29 insertions(+), 108 deletions(-) delete mode 100644 compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirMemberFunction.kt diff --git a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt index 82dad057266..d94dc56c679 100644 --- a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt +++ b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt @@ -1003,7 +1003,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver } } - private fun FlowContent.describeVerbose(symbol: FirCallableSymbol<*>, fir: FirMemberFunction<*>) { + private fun FlowContent.describeVerbose(symbol: FirCallableSymbol<*>, fir: FirFunction<*>) { describeTypeParameters(fir) fir.receiverTypeRef?.let { diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassEnhancementScope.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassEnhancementScope.kt index 1dee4b3803d..62353327a61 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassEnhancementScope.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassEnhancementScope.kt @@ -125,12 +125,11 @@ class JavaClassEnhancementScope( if (firMethod !is FirJavaMethod && firMethod !is FirJavaConstructor) { return original } - if (firMethod !is FirMemberFunction<*>) throw AssertionError() return enhanceMethod(firMethod, original.callableId, name) } private fun enhanceMethod( - firMethod: FirMemberFunction<*>, + firMethod: FirFunction<*>, methodId: CallableId, name: Name, isAccessor: Boolean = false, @@ -149,13 +148,13 @@ class JavaClassEnhancementScope( } } - val overriddenMembers = firMethod.overriddenMembers() + val overriddenMembers = (firMethod as? FirSimpleFunction)?.overriddenMembers().orEmpty() val hasReceiver = overriddenMembers.any { it.receiverTypeRef != null } val newReceiverTypeRef = if (firMethod is FirJavaMethod && hasReceiver) { enhanceReceiverType(firMethod, overriddenMembers, memberContext) } else null - val newReturnTypeRef = if (firMethod is FirJavaConstructor) { + val newReturnTypeRef = if (firMethod !is FirJavaMethod) { firMethod.returnTypeRef } else { enhanceReturnType(firMethod, overriddenMembers, memberContext, predefinedEnhancementInfo) @@ -218,7 +217,7 @@ class JavaClassEnhancementScope( this.typeParameters += firMethod.typeParameters } } - else -> FirSimpleFunctionImpl( + is FirJavaMethod -> FirSimpleFunctionImpl( firMethod.source, this@JavaClassEnhancementScope.session, newReturnTypeRef, @@ -232,6 +231,7 @@ class JavaClassEnhancementScope( this.valueParameters += newValueParameters this.typeParameters += firMethod.typeParameters } + else -> throw AssertionError("Unknown Java method to enhance: ${firMethod.render()}") } function.annotations += firMethod.annotations return function.symbol @@ -258,7 +258,7 @@ class JavaClassEnhancementScope( private data class EnhanceValueParameterResult(val typeRef: FirResolvedTypeRef, val defaultValue: FirExpression?) private fun enhanceValueParameter( - ownerFunction: FirCallableMemberDeclaration<*>, + ownerFunction: FirFunction<*>, overriddenMembers: List>, hasReceiver: Boolean, memberContext: FirJavaEnhancementContext, @@ -338,14 +338,14 @@ class JavaClassEnhancementScope( } } - private fun FirCallableMemberDeclaration<*>.partsForValueParameter( + private fun FirFunction<*>.partsForValueParameter( typeQualifierResolver: FirAnnotationTypeQualifierResolver, overriddenMembers: List>, // TODO: investigate if it's really can be a null (check properties' with extension overrides in Java) parameterContainer: FirAnnotationContainer?, methodContext: FirJavaEnhancementContext, typeInSignature: TypeInSignature - ) = parts( + ): EnhancementSignatureParts = (this as FirCallableMemberDeclaration<*>).parts( typeQualifierResolver, overriddenMembers, parameterContainer, false, diff --git a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt index a23ac157928..f1ddb525df9 100644 --- a/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt +++ b/compiler/fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt @@ -9,10 +9,7 @@ import com.intellij.psi.PsiElement import com.intellij.psi.tree.IElementType import org.jetbrains.kotlin.KtNodeTypes.* import org.jetbrains.kotlin.fir.* -import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction -import org.jetbrains.kotlin.fir.declarations.FirMemberFunction -import org.jetbrains.kotlin.fir.declarations.FirRegularClass -import org.jetbrains.kotlin.fir.declarations.FirTypeParameter +import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.impl.FirErrorFunctionImpl import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind import org.jetbrains.kotlin.fir.diagnostics.FirSimpleDiagnostic @@ -124,7 +121,7 @@ abstract class BaseFirBuilder(val session: FirSession, val context: Context = return@apply } } - is FirMemberFunction<*> -> { + is FirSimpleFunction -> { if (firFunction.name.asString() == labelName) { target.bind(firFunction) return@apply diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt index f51fe1deaf0..82d1173023e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt @@ -188,7 +188,7 @@ private class TypeAliasConstructorsSubstitutingScope( private typealias ConstructorCopyFactory = F.(newReturnType: ConeKotlinType?, newValueParameterTypes: List, newTypeParameters: List) -> F -private class TypeAliasConstructorsSubstitutor>( +private class TypeAliasConstructorsSubstitutor>( private val typeAliasSymbol: FirTypeAliasSymbol, private val substitutor: ConeSubstitutor, private val copyFactory: ConstructorCopyFactory @@ -258,7 +258,7 @@ private fun prepareSubstitutingScopeForTypeAliasConstructors( ) } -private fun > prepareSubstitutorForTypeAliasConstructors( +private fun > prepareSubstitutorForTypeAliasConstructors( typeAliasSymbol: FirTypeAliasSymbol, expandedType: ConeClassLikeType, session: FirSession, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt index 310d36d45ae..0d2ae26148a 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt @@ -324,7 +324,7 @@ class FirCallCompletionResultsWriterTransformer( val syntheticCall = syntheticCall.transformChildren(this, data?.getExpectedType(syntheticCall)?.toExpectedType()) as D val calleeReference = syntheticCall.calleeReference as? FirNamedReferenceWithCandidate ?: return syntheticCall.compose() - val declaration = calleeReference.candidate.symbol.fir as? FirMemberFunction<*> ?: return syntheticCall.compose() + val declaration = calleeReference.candidate.symbol.fir as? FirSimpleFunction ?: return syntheticCall.compose() val typeRef = typeCalculator.tryCalculateReturnType(declaration) syntheticCall.replaceTypeRefWithSubstituted(calleeReference, typeRef) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt index 26db4d3377a..1727623bbe6 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -interface FirConstructor : FirMemberFunction { +interface FirConstructor : FirFunction, FirCallableMemberDeclaration { override val source: FirSourceElement? override val session: FirSession override val resolvePhase: FirResolvePhase diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirMemberFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirMemberFunction.kt deleted file mode 100644 index a717037ab23..00000000000 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirMemberFunction.kt +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 2010-2020 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.declarations - -import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.FirSourceElement -import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall -import org.jetbrains.kotlin.fir.expressions.FirBlock -import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference -import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol -import org.jetbrains.kotlin.fir.types.FirTypeRef -import org.jetbrains.kotlin.name.Name -import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource -import org.jetbrains.kotlin.fir.visitors.* - -/* - * This file was generated automatically - * DO NOT MODIFY IT MANUALLY - */ - -interface FirMemberFunction> : FirFunction, FirCallableMemberDeclaration { - override val source: FirSourceElement? - override val session: FirSession - override val resolvePhase: FirResolvePhase - override val returnTypeRef: FirTypeRef - override val receiverTypeRef: FirTypeRef? - override val controlFlowGraphReference: FirControlFlowGraphReference - override val typeParameters: List - override val valueParameters: List - override val body: FirBlock? - override val name: Name - override val status: FirDeclarationStatus - override val containerSource: DeserializedContainerSource? - override val symbol: FirFunctionSymbol - override val annotations: List - - override fun accept(visitor: FirVisitor, data: D): R = visitor.visitMemberFunction(this, data) - - override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirMemberFunction - - override fun transformReceiverTypeRef(transformer: FirTransformer, data: D): FirMemberFunction - - override fun transformControlFlowGraphReference(transformer: FirTransformer, data: D): FirMemberFunction - - override fun transformValueParameters(transformer: FirTransformer, data: D): FirMemberFunction - - override fun transformStatus(transformer: FirTransformer, data: D): FirMemberFunction -} diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt index c941a83a98b..26afefc7d2b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirSimpleFunction : FirPureAbstractElement(), FirMemberFunction, FirContractDescriptionOwner { +abstract class FirSimpleFunction : FirPureAbstractElement(), FirFunction, FirCallableMemberDeclaration, FirContractDescriptionOwner { abstract override val source: FirSourceElement? abstract override val session: FirSession abstract override val resolvePhase: FirResolvePhase @@ -36,9 +36,9 @@ abstract class FirSimpleFunction : FirPureAbstractElement(), FirMemberFunction abstract override val annotations: List - abstract override val contractDescription: FirContractDescription override fun accept(visitor: FirVisitor, data: D): R = visitor.visitSimpleFunction(this, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt index 5f471de34c3..ed79f5949c4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirSimpleFunctionImpl.kt @@ -45,8 +45,8 @@ open class FirSimpleFunctionImpl( override val valueParameters: MutableList = mutableListOf() override var body: FirBlock? = null override var containerSource: DeserializedContainerSource? = null - override val annotations: MutableList = mutableListOf() override var contractDescription: FirContractDescription = FirEmptyContractDescription + override val annotations: MutableList = mutableListOf() init { symbol.bind(this) @@ -60,8 +60,8 @@ open class FirSimpleFunctionImpl( valueParameters.forEach { it.accept(visitor, data) } body?.accept(visitor, data) status.accept(visitor, data) - annotations.forEach { it.accept(visitor, data) } contractDescription.accept(visitor, data) + annotations.forEach { it.accept(visitor, data) } } override fun transformChildren(transformer: FirTransformer, data: D): FirSimpleFunctionImpl { @@ -72,8 +72,8 @@ open class FirSimpleFunctionImpl( transformValueParameters(transformer, data) body = body?.transformSingle(transformer, data) transformStatus(transformer, data) - annotations.transformInplace(transformer, data) transformContractDescription(transformer, data) + annotations.transformInplace(transformer, data) return this } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt index 04d66957442..ffbbcff3aee 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt @@ -40,7 +40,6 @@ import org.jetbrains.kotlin.fir.declarations.FirSealedClass import org.jetbrains.kotlin.fir.declarations.FirTypeAlias import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirContractDescriptionOwner -import org.jetbrains.kotlin.fir.declarations.FirMemberFunction import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor import org.jetbrains.kotlin.fir.declarations.FirConstructor @@ -266,10 +265,6 @@ abstract class FirTransformer : FirVisitor> transformMemberFunction(memberFunction: FirMemberFunction, data: D): CompositeTransformResult { - return transformElement(memberFunction, data) - } - open fun transformSimpleFunction(simpleFunction: FirSimpleFunction, data: D): CompositeTransformResult { return transformElement(simpleFunction, data) } @@ -722,10 +717,6 @@ abstract class FirTransformer : FirVisitor> visitMemberFunction(memberFunction: FirMemberFunction, data: D): CompositeTransformResult { - return transformMemberFunction(memberFunction, data) - } - final override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: D): CompositeTransformResult { return transformSimpleFunction(simpleFunction, data) } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt index 8875bc57900..7a21f0bd810 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt @@ -40,7 +40,6 @@ import org.jetbrains.kotlin.fir.declarations.FirSealedClass import org.jetbrains.kotlin.fir.declarations.FirTypeAlias import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirContractDescriptionOwner -import org.jetbrains.kotlin.fir.declarations.FirMemberFunction import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor import org.jetbrains.kotlin.fir.declarations.FirConstructor @@ -196,8 +195,6 @@ abstract class FirVisitor { open fun visitContractDescriptionOwner(contractDescriptionOwner: FirContractDescriptionOwner, data: D): R = visitElement(contractDescriptionOwner, data) - open fun > visitMemberFunction(memberFunction: FirMemberFunction, data: D): R = visitElement(memberFunction, data) - open fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: D): R = visitElement(simpleFunction, data) open fun visitPropertyAccessor(propertyAccessor: FirPropertyAccessor, data: D): R = visitElement(propertyAccessor, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt index c0f6ed8d043..038f737a61f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt @@ -40,7 +40,6 @@ import org.jetbrains.kotlin.fir.declarations.FirSealedClass import org.jetbrains.kotlin.fir.declarations.FirTypeAlias import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirContractDescriptionOwner -import org.jetbrains.kotlin.fir.declarations.FirMemberFunction import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor import org.jetbrains.kotlin.fir.declarations.FirConstructor @@ -264,10 +263,6 @@ abstract class FirVisitorVoid : FirVisitor() { visitElement(contractDescriptionOwner) } - open fun > visitMemberFunction(memberFunction: FirMemberFunction) { - visitElement(memberFunction) - } - open fun visitSimpleFunction(simpleFunction: FirSimpleFunction) { visitElement(simpleFunction) } @@ -720,10 +715,6 @@ abstract class FirVisitorVoid : FirVisitor() { visitContractDescriptionOwner(contractDescriptionOwner) } - final override fun > visitMemberFunction(memberFunction: FirMemberFunction, data: Nothing?) { - visitMemberFunction(memberFunction) - } - final override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: Nothing?) { visitSimpleFunction(simpleFunction) } diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt index 6b3b4d96156..6dc618e4130 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt @@ -50,10 +50,9 @@ object FirTreeBuilder : AbstractFirTreeBuilder() { val function = element("Function", Declaration, callableDeclaration, controlFlowGraphOwner, targetElement, annotationContainer, typeParametersOwner, statement) val contractDescriptionOwner = element("ContractDescriptionOwner", Declaration) - val memberFunction = element("MemberFunction", Declaration, function, callableMemberDeclaration) - val simpleFunction = element("SimpleFunction", Declaration, memberFunction, contractDescriptionOwner) + val simpleFunction = element("SimpleFunction", Declaration, function, callableMemberDeclaration, contractDescriptionOwner) val propertyAccessor = element("PropertyAccessor", Declaration, function, contractDescriptionOwner) - val constructor = element("Constructor", Declaration, memberFunction) + val constructor = element("Constructor", Declaration, function, callableMemberDeclaration) val file = element("File", Declaration, annotationContainer, declaration) val anonymousFunction = element("AnonymousFunction", Declaration, function, expression) diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt index f99529964b9..f84fe662590 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt @@ -260,16 +260,11 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild +annotations } - memberFunction.configure { - withArg("F", memberFunction) - parentArg(function, "F", "F") - parentArg(callableMemberDeclaration, "F", "F") - +symbol("FirFunctionSymbol", "F") - +annotations - } - simpleFunction.configure { - parentArg(memberFunction, "F", simpleFunction) + parentArg(function, "F", simpleFunction) + +symbol("FirFunctionSymbol") + +annotations + parentArg(callableMemberDeclaration, "F", simpleFunction) } contractDescriptionOwner.configure { @@ -310,7 +305,9 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild } constructor.configure { - parentArg(memberFunction, "F", constructor) + parentArg(function, "F", constructor) + parentArg(callableMemberDeclaration, "F", constructor) + +annotations +symbol("FirConstructorSymbol") +field("delegatedConstructor", delegatedConstructorCall, nullable = true) +body(nullable = true)