Get rid of FirMemberFunction
This commit is contained in:
@@ -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)
|
describeTypeParameters(fir)
|
||||||
|
|
||||||
fir.receiverTypeRef?.let {
|
fir.receiverTypeRef?.let {
|
||||||
|
|||||||
+8
-8
@@ -125,12 +125,11 @@ class JavaClassEnhancementScope(
|
|||||||
if (firMethod !is FirJavaMethod && firMethod !is FirJavaConstructor) {
|
if (firMethod !is FirJavaMethod && firMethod !is FirJavaConstructor) {
|
||||||
return original
|
return original
|
||||||
}
|
}
|
||||||
if (firMethod !is FirMemberFunction<*>) throw AssertionError()
|
|
||||||
return enhanceMethod(firMethod, original.callableId, name)
|
return enhanceMethod(firMethod, original.callableId, name)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun enhanceMethod(
|
private fun enhanceMethod(
|
||||||
firMethod: FirMemberFunction<*>,
|
firMethod: FirFunction<*>,
|
||||||
methodId: CallableId,
|
methodId: CallableId,
|
||||||
name: Name,
|
name: Name,
|
||||||
isAccessor: Boolean = false,
|
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 hasReceiver = overriddenMembers.any { it.receiverTypeRef != null }
|
||||||
|
|
||||||
val newReceiverTypeRef = if (firMethod is FirJavaMethod && hasReceiver) {
|
val newReceiverTypeRef = if (firMethod is FirJavaMethod && hasReceiver) {
|
||||||
enhanceReceiverType(firMethod, overriddenMembers, memberContext)
|
enhanceReceiverType(firMethod, overriddenMembers, memberContext)
|
||||||
} else null
|
} else null
|
||||||
val newReturnTypeRef = if (firMethod is FirJavaConstructor) {
|
val newReturnTypeRef = if (firMethod !is FirJavaMethod) {
|
||||||
firMethod.returnTypeRef
|
firMethod.returnTypeRef
|
||||||
} else {
|
} else {
|
||||||
enhanceReturnType(firMethod, overriddenMembers, memberContext, predefinedEnhancementInfo)
|
enhanceReturnType(firMethod, overriddenMembers, memberContext, predefinedEnhancementInfo)
|
||||||
@@ -218,7 +217,7 @@ class JavaClassEnhancementScope(
|
|||||||
this.typeParameters += firMethod.typeParameters
|
this.typeParameters += firMethod.typeParameters
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else -> FirSimpleFunctionImpl(
|
is FirJavaMethod -> FirSimpleFunctionImpl(
|
||||||
firMethod.source,
|
firMethod.source,
|
||||||
this@JavaClassEnhancementScope.session,
|
this@JavaClassEnhancementScope.session,
|
||||||
newReturnTypeRef,
|
newReturnTypeRef,
|
||||||
@@ -232,6 +231,7 @@ class JavaClassEnhancementScope(
|
|||||||
this.valueParameters += newValueParameters
|
this.valueParameters += newValueParameters
|
||||||
this.typeParameters += firMethod.typeParameters
|
this.typeParameters += firMethod.typeParameters
|
||||||
}
|
}
|
||||||
|
else -> throw AssertionError("Unknown Java method to enhance: ${firMethod.render()}")
|
||||||
}
|
}
|
||||||
function.annotations += firMethod.annotations
|
function.annotations += firMethod.annotations
|
||||||
return function.symbol
|
return function.symbol
|
||||||
@@ -258,7 +258,7 @@ class JavaClassEnhancementScope(
|
|||||||
private data class EnhanceValueParameterResult(val typeRef: FirResolvedTypeRef, val defaultValue: FirExpression?)
|
private data class EnhanceValueParameterResult(val typeRef: FirResolvedTypeRef, val defaultValue: FirExpression?)
|
||||||
|
|
||||||
private fun enhanceValueParameter(
|
private fun enhanceValueParameter(
|
||||||
ownerFunction: FirCallableMemberDeclaration<*>,
|
ownerFunction: FirFunction<*>,
|
||||||
overriddenMembers: List<FirCallableMemberDeclaration<*>>,
|
overriddenMembers: List<FirCallableMemberDeclaration<*>>,
|
||||||
hasReceiver: Boolean,
|
hasReceiver: Boolean,
|
||||||
memberContext: FirJavaEnhancementContext,
|
memberContext: FirJavaEnhancementContext,
|
||||||
@@ -338,14 +338,14 @@ class JavaClassEnhancementScope(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FirCallableMemberDeclaration<*>.partsForValueParameter(
|
private fun FirFunction<*>.partsForValueParameter(
|
||||||
typeQualifierResolver: FirAnnotationTypeQualifierResolver,
|
typeQualifierResolver: FirAnnotationTypeQualifierResolver,
|
||||||
overriddenMembers: List<FirCallableMemberDeclaration<*>>,
|
overriddenMembers: List<FirCallableMemberDeclaration<*>>,
|
||||||
// TODO: investigate if it's really can be a null (check properties' with extension overrides in Java)
|
// TODO: investigate if it's really can be a null (check properties' with extension overrides in Java)
|
||||||
parameterContainer: FirAnnotationContainer?,
|
parameterContainer: FirAnnotationContainer?,
|
||||||
methodContext: FirJavaEnhancementContext,
|
methodContext: FirJavaEnhancementContext,
|
||||||
typeInSignature: TypeInSignature
|
typeInSignature: TypeInSignature
|
||||||
) = parts(
|
): EnhancementSignatureParts = (this as FirCallableMemberDeclaration<*>).parts(
|
||||||
typeQualifierResolver,
|
typeQualifierResolver,
|
||||||
overriddenMembers,
|
overriddenMembers,
|
||||||
parameterContainer, false,
|
parameterContainer, false,
|
||||||
|
|||||||
@@ -9,10 +9,7 @@ import com.intellij.psi.PsiElement
|
|||||||
import com.intellij.psi.tree.IElementType
|
import com.intellij.psi.tree.IElementType
|
||||||
import org.jetbrains.kotlin.KtNodeTypes.*
|
import org.jetbrains.kotlin.KtNodeTypes.*
|
||||||
import org.jetbrains.kotlin.fir.*
|
import org.jetbrains.kotlin.fir.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
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.impl.FirErrorFunctionImpl
|
import org.jetbrains.kotlin.fir.declarations.impl.FirErrorFunctionImpl
|
||||||
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
|
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
|
||||||
import org.jetbrains.kotlin.fir.diagnostics.FirSimpleDiagnostic
|
import org.jetbrains.kotlin.fir.diagnostics.FirSimpleDiagnostic
|
||||||
@@ -124,7 +121,7 @@ abstract class BaseFirBuilder<T>(val session: FirSession, val context: Context =
|
|||||||
return@apply
|
return@apply
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
is FirMemberFunction<*> -> {
|
is FirSimpleFunction -> {
|
||||||
if (firFunction.name.asString() == labelName) {
|
if (firFunction.name.asString() == labelName) {
|
||||||
target.bind(firFunction)
|
target.bind(firFunction)
|
||||||
return@apply
|
return@apply
|
||||||
|
|||||||
+2
-2
@@ -188,7 +188,7 @@ private class TypeAliasConstructorsSubstitutingScope(
|
|||||||
private typealias ConstructorCopyFactory<F> =
|
private typealias ConstructorCopyFactory<F> =
|
||||||
F.(newReturnType: ConeKotlinType?, newValueParameterTypes: List<ConeKotlinType?>, newTypeParameters: List<FirTypeParameter>) -> F
|
F.(newReturnType: ConeKotlinType?, newValueParameterTypes: List<ConeKotlinType?>, newTypeParameters: List<FirTypeParameter>) -> F
|
||||||
|
|
||||||
private class TypeAliasConstructorsSubstitutor<F : FirMemberFunction<F>>(
|
private class TypeAliasConstructorsSubstitutor<F : FirFunction<F>>(
|
||||||
private val typeAliasSymbol: FirTypeAliasSymbol,
|
private val typeAliasSymbol: FirTypeAliasSymbol,
|
||||||
private val substitutor: ConeSubstitutor,
|
private val substitutor: ConeSubstitutor,
|
||||||
private val copyFactory: ConstructorCopyFactory<F>
|
private val copyFactory: ConstructorCopyFactory<F>
|
||||||
@@ -258,7 +258,7 @@ private fun prepareSubstitutingScopeForTypeAliasConstructors(
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun <F : FirMemberFunction<F>> prepareSubstitutorForTypeAliasConstructors(
|
private fun <F : FirFunction<F>> prepareSubstitutorForTypeAliasConstructors(
|
||||||
typeAliasSymbol: FirTypeAliasSymbol,
|
typeAliasSymbol: FirTypeAliasSymbol,
|
||||||
expandedType: ConeClassLikeType,
|
expandedType: ConeClassLikeType,
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
|
|||||||
+1
-1
@@ -324,7 +324,7 @@ class FirCallCompletionResultsWriterTransformer(
|
|||||||
val syntheticCall = syntheticCall.transformChildren(this, data?.getExpectedType(syntheticCall)?.toExpectedType()) as D
|
val syntheticCall = syntheticCall.transformChildren(this, data?.getExpectedType(syntheticCall)?.toExpectedType()) as D
|
||||||
val calleeReference = syntheticCall.calleeReference as? FirNamedReferenceWithCandidate ?: return syntheticCall.compose()
|
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)
|
val typeRef = typeCalculator.tryCalculateReturnType(declaration)
|
||||||
syntheticCall.replaceTypeRefWithSubstituted(calleeReference, typeRef)
|
syntheticCall.replaceTypeRefWithSubstituted(calleeReference, typeRef)
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
|||||||
* DO NOT MODIFY IT MANUALLY
|
* DO NOT MODIFY IT MANUALLY
|
||||||
*/
|
*/
|
||||||
|
|
||||||
interface FirConstructor : FirMemberFunction<FirConstructor> {
|
interface FirConstructor : FirFunction<FirConstructor>, FirCallableMemberDeclaration<FirConstructor> {
|
||||||
override val source: FirSourceElement?
|
override val source: FirSourceElement?
|
||||||
override val session: FirSession
|
override val session: FirSession
|
||||||
override val resolvePhase: FirResolvePhase
|
override val resolvePhase: FirResolvePhase
|
||||||
|
|||||||
@@ -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<F : FirMemberFunction<F>> : FirFunction<F>, FirCallableMemberDeclaration<F> {
|
|
||||||
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<FirTypeParameter>
|
|
||||||
override val valueParameters: List<FirValueParameter>
|
|
||||||
override val body: FirBlock?
|
|
||||||
override val name: Name
|
|
||||||
override val status: FirDeclarationStatus
|
|
||||||
override val containerSource: DeserializedContainerSource?
|
|
||||||
override val symbol: FirFunctionSymbol<F>
|
|
||||||
override val annotations: List<FirAnnotationCall>
|
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitMemberFunction(this, data)
|
|
||||||
|
|
||||||
override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirMemberFunction<F>
|
|
||||||
|
|
||||||
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirMemberFunction<F>
|
|
||||||
|
|
||||||
override fun <D> transformControlFlowGraphReference(transformer: FirTransformer<D>, data: D): FirMemberFunction<F>
|
|
||||||
|
|
||||||
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirMemberFunction<F>
|
|
||||||
|
|
||||||
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirMemberFunction<F>
|
|
||||||
}
|
|
||||||
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
|||||||
* DO NOT MODIFY IT MANUALLY
|
* DO NOT MODIFY IT MANUALLY
|
||||||
*/
|
*/
|
||||||
|
|
||||||
abstract class FirSimpleFunction : FirPureAbstractElement(), FirMemberFunction<FirSimpleFunction>, FirContractDescriptionOwner {
|
abstract class FirSimpleFunction : FirPureAbstractElement(), FirFunction<FirSimpleFunction>, FirCallableMemberDeclaration<FirSimpleFunction>, FirContractDescriptionOwner {
|
||||||
abstract override val source: FirSourceElement?
|
abstract override val source: FirSourceElement?
|
||||||
abstract override val session: FirSession
|
abstract override val session: FirSession
|
||||||
abstract override val resolvePhase: FirResolvePhase
|
abstract override val resolvePhase: FirResolvePhase
|
||||||
@@ -36,9 +36,9 @@ abstract class FirSimpleFunction : FirPureAbstractElement(), FirMemberFunction<F
|
|||||||
abstract override val name: Name
|
abstract override val name: Name
|
||||||
abstract override val status: FirDeclarationStatus
|
abstract override val status: FirDeclarationStatus
|
||||||
abstract override val containerSource: DeserializedContainerSource?
|
abstract override val containerSource: DeserializedContainerSource?
|
||||||
|
abstract override val contractDescription: FirContractDescription
|
||||||
abstract override val symbol: FirFunctionSymbol<FirSimpleFunction>
|
abstract override val symbol: FirFunctionSymbol<FirSimpleFunction>
|
||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val contractDescription: FirContractDescription
|
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitSimpleFunction(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitSimpleFunction(this, data)
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -45,8 +45,8 @@ open class FirSimpleFunctionImpl(
|
|||||||
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
|
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
|
||||||
override var body: FirBlock? = null
|
override var body: FirBlock? = null
|
||||||
override var containerSource: DeserializedContainerSource? = null
|
override var containerSource: DeserializedContainerSource? = null
|
||||||
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
|
||||||
override var contractDescription: FirContractDescription = FirEmptyContractDescription
|
override var contractDescription: FirContractDescription = FirEmptyContractDescription
|
||||||
|
override val annotations: MutableList<FirAnnotationCall> = mutableListOf()
|
||||||
|
|
||||||
init {
|
init {
|
||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
@@ -60,8 +60,8 @@ open class FirSimpleFunctionImpl(
|
|||||||
valueParameters.forEach { it.accept(visitor, data) }
|
valueParameters.forEach { it.accept(visitor, data) }
|
||||||
body?.accept(visitor, data)
|
body?.accept(visitor, data)
|
||||||
status.accept(visitor, data)
|
status.accept(visitor, data)
|
||||||
annotations.forEach { it.accept(visitor, data) }
|
|
||||||
contractDescription.accept(visitor, data)
|
contractDescription.accept(visitor, data)
|
||||||
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirSimpleFunctionImpl {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirSimpleFunctionImpl {
|
||||||
@@ -72,8 +72,8 @@ open class FirSimpleFunctionImpl(
|
|||||||
transformValueParameters(transformer, data)
|
transformValueParameters(transformer, data)
|
||||||
body = body?.transformSingle(transformer, data)
|
body = body?.transformSingle(transformer, data)
|
||||||
transformStatus(transformer, data)
|
transformStatus(transformer, data)
|
||||||
annotations.transformInplace(transformer, data)
|
|
||||||
transformContractDescription(transformer, data)
|
transformContractDescription(transformer, data)
|
||||||
|
annotations.transformInplace(transformer, data)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ import org.jetbrains.kotlin.fir.declarations.FirSealedClass
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeAlias
|
import org.jetbrains.kotlin.fir.declarations.FirTypeAlias
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirContractDescriptionOwner
|
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.FirSimpleFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
||||||
@@ -266,10 +265,6 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
|||||||
return transformElement(contractDescriptionOwner, data)
|
return transformElement(contractDescriptionOwner, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun <F : FirMemberFunction<F>> transformMemberFunction(memberFunction: FirMemberFunction<F>, data: D): CompositeTransformResult<FirDeclaration> {
|
|
||||||
return transformElement(memberFunction, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
open fun transformSimpleFunction(simpleFunction: FirSimpleFunction, data: D): CompositeTransformResult<FirDeclaration> {
|
open fun transformSimpleFunction(simpleFunction: FirSimpleFunction, data: D): CompositeTransformResult<FirDeclaration> {
|
||||||
return transformElement(simpleFunction, data)
|
return transformElement(simpleFunction, data)
|
||||||
}
|
}
|
||||||
@@ -722,10 +717,6 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
|||||||
return transformContractDescriptionOwner(contractDescriptionOwner, data)
|
return transformContractDescriptionOwner(contractDescriptionOwner, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
final override fun <F : FirMemberFunction<F>> visitMemberFunction(memberFunction: FirMemberFunction<F>, data: D): CompositeTransformResult<FirDeclaration> {
|
|
||||||
return transformMemberFunction(memberFunction, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
final override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: D): CompositeTransformResult<FirDeclaration> {
|
final override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: D): CompositeTransformResult<FirDeclaration> {
|
||||||
return transformSimpleFunction(simpleFunction, data)
|
return transformSimpleFunction(simpleFunction, data)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ import org.jetbrains.kotlin.fir.declarations.FirSealedClass
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeAlias
|
import org.jetbrains.kotlin.fir.declarations.FirTypeAlias
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirContractDescriptionOwner
|
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.FirSimpleFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
||||||
@@ -196,8 +195,6 @@ abstract class FirVisitor<out R, in D> {
|
|||||||
|
|
||||||
open fun visitContractDescriptionOwner(contractDescriptionOwner: FirContractDescriptionOwner, data: D): R = visitElement(contractDescriptionOwner, data)
|
open fun visitContractDescriptionOwner(contractDescriptionOwner: FirContractDescriptionOwner, data: D): R = visitElement(contractDescriptionOwner, data)
|
||||||
|
|
||||||
open fun <F : FirMemberFunction<F>> visitMemberFunction(memberFunction: FirMemberFunction<F>, data: D): R = visitElement(memberFunction, data)
|
|
||||||
|
|
||||||
open fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: D): R = visitElement(simpleFunction, data)
|
open fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: D): R = visitElement(simpleFunction, data)
|
||||||
|
|
||||||
open fun visitPropertyAccessor(propertyAccessor: FirPropertyAccessor, data: D): R = visitElement(propertyAccessor, data)
|
open fun visitPropertyAccessor(propertyAccessor: FirPropertyAccessor, data: D): R = visitElement(propertyAccessor, data)
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ import org.jetbrains.kotlin.fir.declarations.FirSealedClass
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeAlias
|
import org.jetbrains.kotlin.fir.declarations.FirTypeAlias
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirContractDescriptionOwner
|
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.FirSimpleFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
||||||
@@ -264,10 +263,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitElement(contractDescriptionOwner)
|
visitElement(contractDescriptionOwner)
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun <F : FirMemberFunction<F>> visitMemberFunction(memberFunction: FirMemberFunction<F>) {
|
|
||||||
visitElement(memberFunction)
|
|
||||||
}
|
|
||||||
|
|
||||||
open fun visitSimpleFunction(simpleFunction: FirSimpleFunction) {
|
open fun visitSimpleFunction(simpleFunction: FirSimpleFunction) {
|
||||||
visitElement(simpleFunction)
|
visitElement(simpleFunction)
|
||||||
}
|
}
|
||||||
@@ -720,10 +715,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitContractDescriptionOwner(contractDescriptionOwner)
|
visitContractDescriptionOwner(contractDescriptionOwner)
|
||||||
}
|
}
|
||||||
|
|
||||||
final override fun <F : FirMemberFunction<F>> visitMemberFunction(memberFunction: FirMemberFunction<F>, data: Nothing?) {
|
|
||||||
visitMemberFunction(memberFunction)
|
|
||||||
}
|
|
||||||
|
|
||||||
final override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: Nothing?) {
|
final override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: Nothing?) {
|
||||||
visitSimpleFunction(simpleFunction)
|
visitSimpleFunction(simpleFunction)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-3
@@ -50,10 +50,9 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
|||||||
val function = element("Function", Declaration, callableDeclaration, controlFlowGraphOwner, targetElement, annotationContainer, typeParametersOwner, statement)
|
val function = element("Function", Declaration, callableDeclaration, controlFlowGraphOwner, targetElement, annotationContainer, typeParametersOwner, statement)
|
||||||
|
|
||||||
val contractDescriptionOwner = element("ContractDescriptionOwner", Declaration)
|
val contractDescriptionOwner = element("ContractDescriptionOwner", Declaration)
|
||||||
val memberFunction = element("MemberFunction", Declaration, function, callableMemberDeclaration)
|
val simpleFunction = element("SimpleFunction", Declaration, function, callableMemberDeclaration, contractDescriptionOwner)
|
||||||
val simpleFunction = element("SimpleFunction", Declaration, memberFunction, contractDescriptionOwner)
|
|
||||||
val propertyAccessor = element("PropertyAccessor", Declaration, function, 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 file = element("File", Declaration, annotationContainer, declaration)
|
||||||
|
|
||||||
val anonymousFunction = element("AnonymousFunction", Declaration, function, expression)
|
val anonymousFunction = element("AnonymousFunction", Declaration, function, expression)
|
||||||
|
|||||||
+7
-10
@@ -260,16 +260,11 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
|||||||
+annotations
|
+annotations
|
||||||
}
|
}
|
||||||
|
|
||||||
memberFunction.configure {
|
|
||||||
withArg("F", memberFunction)
|
|
||||||
parentArg(function, "F", "F")
|
|
||||||
parentArg(callableMemberDeclaration, "F", "F")
|
|
||||||
+symbol("FirFunctionSymbol", "F")
|
|
||||||
+annotations
|
|
||||||
}
|
|
||||||
|
|
||||||
simpleFunction.configure {
|
simpleFunction.configure {
|
||||||
parentArg(memberFunction, "F", simpleFunction)
|
parentArg(function, "F", simpleFunction)
|
||||||
|
+symbol("FirFunctionSymbol<FirSimpleFunction>")
|
||||||
|
+annotations
|
||||||
|
parentArg(callableMemberDeclaration, "F", simpleFunction)
|
||||||
}
|
}
|
||||||
|
|
||||||
contractDescriptionOwner.configure {
|
contractDescriptionOwner.configure {
|
||||||
@@ -310,7 +305,9 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
|||||||
}
|
}
|
||||||
|
|
||||||
constructor.configure {
|
constructor.configure {
|
||||||
parentArg(memberFunction, "F", constructor)
|
parentArg(function, "F", constructor)
|
||||||
|
parentArg(callableMemberDeclaration, "F", constructor)
|
||||||
|
+annotations
|
||||||
+symbol("FirConstructorSymbol")
|
+symbol("FirConstructorSymbol")
|
||||||
+field("delegatedConstructor", delegatedConstructorCall, nullable = true)
|
+field("delegatedConstructor", delegatedConstructorCall, nullable = true)
|
||||||
+body(nullable = true)
|
+body(nullable = true)
|
||||||
|
|||||||
Reference in New Issue
Block a user