FIR: Update fir hierarchy, decouple member declaration from callable
This commit is contained in:
@@ -33,7 +33,9 @@ interface ConeCallableSymbol : ConeSymbol {
|
||||
val callableId: CallableId
|
||||
}
|
||||
|
||||
interface ConePropertySymbol : ConeCallableSymbol
|
||||
interface ConePropertySymbol : ConeVariableSymbol
|
||||
|
||||
interface ConeVariableSymbol : ConeCallableSymbol
|
||||
|
||||
interface ConeFunctionSymbol : ConeCallableSymbol {
|
||||
val parameters: List<ConeKotlinType>
|
||||
|
||||
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.java
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMember
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||
import org.jetbrains.kotlin.fir.java.declarations.*
|
||||
@@ -49,13 +49,13 @@ class JavaSymbolProvider(
|
||||
is FirConstructor -> {
|
||||
CallableId(callableId.packageName, callableId.className, firClass.name)
|
||||
}
|
||||
is FirCallableMember -> {
|
||||
is FirCallableMemberDeclaration -> {
|
||||
CallableId(callableId.packageName, callableId.className, declaration.name)
|
||||
}
|
||||
else -> null
|
||||
}
|
||||
if (declarationId == callableId) {
|
||||
val symbol = (declaration as FirCallableMember).symbol as ConeCallableSymbol
|
||||
val symbol = (declaration as FirCallableMemberDeclaration).symbol as ConeCallableSymbol
|
||||
callableSymbols += symbol
|
||||
}
|
||||
}
|
||||
|
||||
+16
-3
@@ -19,13 +19,26 @@ import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
|
||||
class FirJavaConstructor(
|
||||
session: FirSession,
|
||||
symbol: FirFunctionSymbol,
|
||||
override val symbol: FirFunctionSymbol,
|
||||
visibility: Visibility,
|
||||
delegatedSelfTypeRef: FirTypeRef
|
||||
) : FirAbstractCallableMember(
|
||||
session, psi = null, symbol = symbol, name = NAME, visibility = visibility, modality = Modality.FINAL,
|
||||
isExpect = false, isActual = false, isOverride = false, receiverTypeRef = null, returnTypeRef = delegatedSelfTypeRef
|
||||
session,
|
||||
psi = null,
|
||||
name = NAME,
|
||||
visibility = visibility,
|
||||
modality = Modality.FINAL,
|
||||
isExpect = false,
|
||||
isActual = false,
|
||||
isOverride = false,
|
||||
receiverTypeRef = null,
|
||||
returnTypeRef = delegatedSelfTypeRef
|
||||
), FirConstructor {
|
||||
|
||||
init {
|
||||
symbol.bind(this)
|
||||
}
|
||||
|
||||
override val delegatedConstructor: FirDelegatedConstructorCall?
|
||||
get() = null
|
||||
|
||||
|
||||
@@ -12,12 +12,12 @@ import org.jetbrains.kotlin.fir.declarations.FirField
|
||||
import org.jetbrains.kotlin.fir.declarations.impl.FirAbstractCallableMember
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.java.types.FirJavaTypeRef
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
class FirJavaField(
|
||||
session: FirSession,
|
||||
symbol: FirFieldSymbol,
|
||||
override val symbol: FirPropertySymbol,
|
||||
name: Name,
|
||||
visibility: Visibility,
|
||||
modality: Modality?,
|
||||
@@ -25,11 +25,15 @@ class FirJavaField(
|
||||
override val isVar: Boolean,
|
||||
isStatic: Boolean
|
||||
) : FirAbstractCallableMember(
|
||||
session, psi = null, symbol = symbol, name = name,
|
||||
session, psi = null, name = name,
|
||||
visibility = visibility, modality = modality,
|
||||
isExpect = false, isActual = false, isOverride = false,
|
||||
receiverTypeRef = null, returnTypeRef = returnTypeRef
|
||||
), FirField {
|
||||
init {
|
||||
symbol.bind(this)
|
||||
}
|
||||
|
||||
override val delegate: FirExpression?
|
||||
get() = null
|
||||
|
||||
|
||||
@@ -163,7 +163,7 @@ private fun JavaClassifierType.enhanceInflexibleType(
|
||||
globalArgIndex++
|
||||
arg.toConeProjection(
|
||||
session,
|
||||
((originalSymbol as? FirBasedSymbol<*>)?.fir as? FirCallableMember)?.typeParameters?.getOrNull(localArgIndex)
|
||||
((originalSymbol as? FirBasedSymbol<*>)?.fir as? FirCallableMemberDeclaration)?.typeParameters?.getOrNull(localArgIndex)
|
||||
)
|
||||
} else {
|
||||
val argEnhancedTypeRef = arg.enhancePossiblyFlexible(session, annotations, qualifiers, globalArgIndex)
|
||||
|
||||
@@ -17,10 +17,13 @@ import org.jetbrains.kotlin.fir.expressions.impl.*
|
||||
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
||||
import org.jetbrains.kotlin.fir.references.FirExplicitThisReference
|
||||
import org.jetbrains.kotlin.fir.references.FirSimpleNamedReference
|
||||
import org.jetbrains.kotlin.fir.symbols.CallableId
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImpl
|
||||
import org.jetbrains.kotlin.ir.expressions.IrConstKind
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.psi.*
|
||||
import org.jetbrains.kotlin.resolve.constants.evaluate.*
|
||||
@@ -280,9 +283,11 @@ internal fun generateDestructuringBlock(
|
||||
entry.typeReference.toFirOrImplicitTypeRef(), isVar,
|
||||
FirComponentCallImpl(session, entry, index + 1).apply {
|
||||
arguments += generateAccessExpression(session, entry, container.name)
|
||||
}
|
||||
},
|
||||
FirVariableSymbol(entry.nameAsSafeName) // TODO?
|
||||
).apply {
|
||||
entry.extractAnnotationsTo(this)
|
||||
symbol.bind(this)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -290,7 +295,10 @@ internal fun generateDestructuringBlock(
|
||||
|
||||
internal fun generateTemporaryVariable(
|
||||
session: FirSession, psi: PsiElement?, name: Name, initializer: FirExpression
|
||||
): FirVariable = FirVariableImpl(session, psi, name, FirImplicitTypeRefImpl(session, psi), false, initializer)
|
||||
): FirVariable =
|
||||
FirVariableImpl(session, psi, name, FirImplicitTypeRefImpl(session, psi), false, initializer, FirVariableSymbol(name)).apply {
|
||||
symbol.bind(this)
|
||||
}
|
||||
|
||||
internal fun generateTemporaryVariable(
|
||||
session: FirSession, psi: PsiElement?, specialName: String, initializer: FirExpression
|
||||
|
||||
@@ -700,7 +700,7 @@ class RawFirBuilder(val session: FirSession, val stubMode: Boolean) {
|
||||
propertyType,
|
||||
isVar,
|
||||
initializer,
|
||||
property.delegate?.expression?.toFirExpression("Incorrect delegate expression")
|
||||
delegate = property.delegate?.expression?.toFirExpression("Incorrect delegate expression")
|
||||
)
|
||||
} else {
|
||||
FirMemberPropertyImpl(
|
||||
|
||||
@@ -56,20 +56,20 @@ class FirProviderImpl(val session: FirSession) : FirProvider {
|
||||
classifierContainerFileMap[classId] = file
|
||||
}
|
||||
|
||||
override fun visitCallableMember(callableMember: FirCallableMember) {
|
||||
override fun visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration) {
|
||||
val callableId = when (containerFqName) {
|
||||
FqName.ROOT -> CallableId(packageName, callableMember.name)
|
||||
else -> CallableId(packageName, containerFqName, callableMember.name)
|
||||
FqName.ROOT -> CallableId(packageName, callableMemberDeclaration.name)
|
||||
else -> CallableId(packageName, containerFqName, callableMemberDeclaration.name)
|
||||
}
|
||||
callableMap.merge(callableId, listOf(callableMember)) { a, b -> a + b }
|
||||
callableMap.merge(callableId, listOf(callableMemberDeclaration)) { a, b -> a + b }
|
||||
}
|
||||
|
||||
override fun visitNamedFunction(namedFunction: FirNamedFunction) {
|
||||
visitCallableMember(namedFunction)
|
||||
visitCallableMemberDeclaration(namedFunction)
|
||||
}
|
||||
|
||||
override fun visitProperty(property: FirProperty) {
|
||||
visitCallableMember(property)
|
||||
visitCallableMemberDeclaration(property)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
+3
-3
@@ -161,7 +161,7 @@ class FirBodyResolveTransformer(val session: FirSession) : FirTransformer<Any?>(
|
||||
?: return CandidateApplicability.HIDDEN
|
||||
declaration as FirDeclaration
|
||||
|
||||
if (declaration is FirCallableMember) {
|
||||
if (declaration is FirCallableDeclaration) {
|
||||
if ((declaration.receiverTypeRef == null) != (explicitReceiverType == null)) return CandidateApplicability.PARAMETER_MAPPING_ERROR
|
||||
}
|
||||
|
||||
@@ -288,7 +288,7 @@ class FirBodyResolveTransformer(val session: FirSession) : FirTransformer<Any?>(
|
||||
val lastCandidate = variableChecker.candidates.lastOrNull()
|
||||
if (variableChecker.currentApplicability == CandidateApplicability.RESOLVED && lastCandidate == symbol) {
|
||||
val receiverScope =
|
||||
(lastCandidate as FirBasedSymbol<FirCallableMember>).fir.returnTypeRef.coneTypeUnsafe().scope(session)
|
||||
(lastCandidate as FirBasedSymbol<FirCallableDeclaration>).fir.returnTypeRef.coneTypeUnsafe().scope(session)
|
||||
|
||||
|
||||
lookupInvoke = true
|
||||
@@ -393,7 +393,7 @@ class FirBodyResolveTransformer(val session: FirSession) : FirTransformer<Any?>(
|
||||
is FirErrorNamedReference ->
|
||||
FirErrorTypeRefImpl(session, access.psi, newCallee.errorReason)
|
||||
is FirResolvedCallableReference ->
|
||||
(newCallee.callableSymbol as FirBasedSymbol<FirCallableMember>).fir.returnTypeRef
|
||||
(newCallee.callableSymbol as FirBasedSymbol<FirCallableDeclaration>).fir.returnTypeRef
|
||||
else -> return
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -33,7 +33,7 @@ class FirStatusResolveTransformer : FirAbstractTreeTransformer() {
|
||||
return when (this) {
|
||||
is FirEnumEntry -> Modality.FINAL
|
||||
is FirRegularClass -> if (classKind == ClassKind.INTERFACE) Modality.ABSTRACT else Modality.FINAL
|
||||
is FirCallableMember -> {
|
||||
is FirCallableMemberDeclaration -> {
|
||||
val containingClass = classes.lastOrNull()
|
||||
when {
|
||||
containingClass == null -> Modality.FINAL
|
||||
|
||||
+3
-1
@@ -14,6 +14,7 @@ import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||
import org.jetbrains.kotlin.fir.symbols.*
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.fir.types.impl.ConeAbbreviatedTypeImpl
|
||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassTypeImpl
|
||||
@@ -129,7 +130,8 @@ class FirClassSubstitutionScope(
|
||||
FirValueParameterImpl(
|
||||
this@FirClassSubstitutionScope.session, psi,
|
||||
name, this.returnTypeRef.withReplacedConeType(this@FirClassSubstitutionScope.session, newType),
|
||||
defaultValue, isCrossinline, isNoinline, isVararg
|
||||
defaultValue, isCrossinline, isNoinline, isVararg,
|
||||
FirVariableSymbol(valueParameter.symbol.callableId)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
+7
-10
@@ -7,10 +7,7 @@ package org.jetbrains.kotlin.fir.scopes.impl
|
||||
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMember
|
||||
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
||||
import org.jetbrains.kotlin.fir.declarations.FirNamedFunction
|
||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.scopes.FirScope
|
||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction.NEXT
|
||||
@@ -60,18 +57,18 @@ class FirClassUseSiteScope(
|
||||
}
|
||||
}
|
||||
|
||||
fun similarFunctionsOrBothProperties(member: FirCallableMember, self: FirCallableMember): Boolean {
|
||||
return when (member) {
|
||||
is FirNamedFunction -> self is FirNamedFunction && isOverriddenFunCheck(member, self)
|
||||
fun similarFunctionsOrBothProperties(declaration: FirCallableDeclaration, self: FirCallableDeclaration): Boolean {
|
||||
return when (declaration) {
|
||||
is FirNamedFunction -> self is FirNamedFunction && isOverriddenFunCheck(declaration, self)
|
||||
is FirConstructor -> false
|
||||
is FirProperty -> self is FirProperty
|
||||
else -> error("Unknown fir callable type: $member, $self")
|
||||
else -> error("Unknown fir callable type: $declaration, $self")
|
||||
}
|
||||
}
|
||||
|
||||
val self = (this as AbstractFirBasedSymbol<*>).fir as FirCallableMember
|
||||
val self = (this as AbstractFirBasedSymbol<*>).fir as FirCallableMemberDeclaration
|
||||
val overriding = seen.firstOrNull {
|
||||
val member = (it as AbstractFirBasedSymbol<*>).fir as FirCallableMember
|
||||
val member = (it as AbstractFirBasedSymbol<*>).fir as FirCallableMemberDeclaration
|
||||
self.modality != Modality.FINAL
|
||||
&& sameReceivers(member.receiverTypeRef, self.receiverTypeRef)
|
||||
&& similarFunctionsOrBothProperties(member, self)
|
||||
|
||||
@@ -101,21 +101,25 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitCallableMember(callableMember: FirCallableMember) {
|
||||
visitMemberDeclaration(callableMember)
|
||||
val receiverType = callableMember.receiverTypeRef
|
||||
override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) {
|
||||
if (callableDeclaration is FirMemberDeclaration) {
|
||||
visitMemberDeclaration(callableDeclaration)
|
||||
} else {
|
||||
visitTypedDeclaration(callableDeclaration)
|
||||
}
|
||||
val receiverType = callableDeclaration.receiverTypeRef
|
||||
if (receiverType != null) {
|
||||
print(" ")
|
||||
receiverType.accept(this)
|
||||
print(".")
|
||||
}
|
||||
if (callableMember is FirFunction) {
|
||||
callableMember.valueParameters.renderParameters()
|
||||
} else if (callableMember is FirProperty) {
|
||||
print(if (callableMember.isVar) "(var)" else "(val)")
|
||||
if (callableDeclaration is FirFunction) {
|
||||
callableDeclaration.valueParameters.renderParameters()
|
||||
} else if (callableDeclaration is FirProperty) {
|
||||
print(if (callableDeclaration.isVar) "(var)" else "(val)")
|
||||
}
|
||||
print(": ")
|
||||
callableMember.returnTypeRef.accept(this)
|
||||
callableDeclaration.returnTypeRef.accept(this)
|
||||
}
|
||||
|
||||
private fun Visibility.asString() =
|
||||
@@ -126,7 +130,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
||||
|
||||
private fun FirMemberDeclaration.modalityAsString(): String {
|
||||
return modality?.name?.toLowerCase() ?: run {
|
||||
if (this is FirCallableMember && this.isOverride) {
|
||||
if (this is FirCallableMemberDeclaration && this.isOverride) {
|
||||
"open?"
|
||||
} else {
|
||||
"final?"
|
||||
@@ -148,7 +152,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
||||
if (memberDeclaration.isActual) {
|
||||
print("actual ")
|
||||
}
|
||||
if (memberDeclaration is FirCallableMember) {
|
||||
if (memberDeclaration is FirCallableMemberDeclaration) {
|
||||
if (memberDeclaration.isOverride) {
|
||||
print("override ")
|
||||
}
|
||||
@@ -275,7 +279,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
||||
}
|
||||
|
||||
override fun visitProperty(property: FirProperty) {
|
||||
visitCallableMember(property)
|
||||
visitCallableDeclaration(property)
|
||||
property.initializer?.let {
|
||||
print(" = ")
|
||||
it.accept(this)
|
||||
@@ -300,7 +304,7 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
||||
}
|
||||
|
||||
override fun visitNamedFunction(namedFunction: FirNamedFunction) {
|
||||
visitCallableMember(namedFunction)
|
||||
visitCallableDeclaration(namedFunction)
|
||||
namedFunction.body?.accept(this)
|
||||
if (namedFunction.body == null) {
|
||||
println()
|
||||
|
||||
+5
-9
@@ -11,21 +11,17 @@ import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
// Good name needed (something with receiver, type parameters, return type, and name)
|
||||
interface FirCallableMember :
|
||||
@VisitedSupertype FirDeclaration, FirMemberDeclaration,
|
||||
FirTypedDeclaration, FirSymbolOwner<FirCallableMember> {
|
||||
val isOverride: Boolean get() = status.isOverride
|
||||
|
||||
val isStatic: Boolean get() = status.isStatic
|
||||
interface FirCallableDeclaration :
|
||||
@VisitedSupertype FirDeclaration,
|
||||
FirTypedDeclaration, FirSymbolOwner<FirCallableDeclaration> {
|
||||
|
||||
val receiverTypeRef: FirTypeRef?
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitCallableMember(this, data)
|
||||
visitor.visitCallableDeclaration(this, data)
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
receiverTypeRef?.accept(visitor, data)
|
||||
super<FirMemberDeclaration>.acceptChildren(visitor, data)
|
||||
returnTypeRef.accept(visitor, data)
|
||||
super<FirTypedDeclaration>.acceptChildren(visitor, data)
|
||||
}
|
||||
}
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* Copyright 2010-2019 JetBrains s.r.o. 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.VisitedSupertype
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
interface FirCallableMemberDeclaration : @VisitedSupertype FirDeclaration, FirMemberDeclaration, FirCallableDeclaration {
|
||||
|
||||
val isOverride: Boolean get() = status.isOverride
|
||||
|
||||
val isStatic: Boolean get() = status.isStatic
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitCallableMemberDeclaration(this, data)
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
receiverTypeRef?.accept(visitor, data)
|
||||
super<FirMemberDeclaration>.acceptChildren(visitor, data)
|
||||
returnTypeRef.accept(visitor, data)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -11,14 +11,17 @@ import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
@BaseTransformedType
|
||||
interface FirConstructor : @VisitedSupertype FirFunction, FirCallableMember {
|
||||
interface FirConstructor : @VisitedSupertype FirFunction, FirCallableMemberDeclaration {
|
||||
|
||||
override val isOverride: Boolean get() = status.isOverride
|
||||
|
||||
val delegatedConstructor: FirDelegatedConstructorCall?
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitConstructor(this, data)
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
super<FirCallableMember>.acceptChildren(visitor, data)
|
||||
super<FirCallableMemberDeclaration>.acceptChildren(visitor, data)
|
||||
delegatedConstructor?.accept(visitor, data)
|
||||
for (parameter in valueParameters) {
|
||||
parameter.accept(visitor, data)
|
||||
|
||||
@@ -11,12 +11,12 @@ import org.jetbrains.kotlin.fir.expressions.FirVariable
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
@BaseTransformedType
|
||||
interface FirField : @VisitedSupertype FirDeclaration, FirCallableMember, FirVariable {
|
||||
interface FirField : @VisitedSupertype FirDeclaration, FirCallableMemberDeclaration, FirVariable {
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitField(this, data)
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
super<FirCallableMember>.acceptChildren(visitor, data)
|
||||
super<FirCallableMemberDeclaration>.acceptChildren(visitor, data)
|
||||
initializer?.accept(visitor, data)
|
||||
delegate?.accept(visitor, data)
|
||||
}
|
||||
|
||||
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.fir.VisitedSupertype
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
@BaseTransformedType
|
||||
interface FirNamedFunction : @VisitedSupertype FirFunction, FirCallableMember {
|
||||
interface FirNamedFunction : @VisitedSupertype FirFunction, FirCallableMemberDeclaration, FirMemberDeclaration {
|
||||
val isOperator: Boolean get() = status.isOperator
|
||||
|
||||
val isInfix: Boolean get() = status.isInfix
|
||||
@@ -23,11 +23,13 @@ interface FirNamedFunction : @VisitedSupertype FirFunction, FirCallableMember {
|
||||
|
||||
val isSuspend: Boolean get() = status.isSuspend
|
||||
|
||||
override val isOverride: Boolean get() = status.isOverride
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitNamedFunction(this, data)
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
super<FirCallableMember>.acceptChildren(visitor, data)
|
||||
super<FirCallableMemberDeclaration>.acceptChildren(visitor, data)
|
||||
for (parameter in valueParameters) {
|
||||
parameter.accept(visitor, data)
|
||||
}
|
||||
|
||||
@@ -7,17 +7,18 @@ package org.jetbrains.kotlin.fir.declarations
|
||||
|
||||
import org.jetbrains.kotlin.fir.BaseTransformedType
|
||||
import org.jetbrains.kotlin.fir.VisitedSupertype
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirVariable
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
// May be should not inherit FirVariable
|
||||
@BaseTransformedType
|
||||
interface FirProperty : @VisitedSupertype FirDeclaration, FirCallableMember, FirVariable {
|
||||
interface FirProperty : @VisitedSupertype FirDeclaration, FirCallableMemberDeclaration, FirVariable, FirMemberDeclaration {
|
||||
val isConst: Boolean get() = status.isConst
|
||||
|
||||
val isLateInit: Boolean get() = status.isLateInit
|
||||
|
||||
override val isOverride: Boolean get() = status.isOverride
|
||||
|
||||
// Should it be nullable or have some default?
|
||||
val getter: FirPropertyAccessor
|
||||
|
||||
@@ -27,7 +28,7 @@ interface FirProperty : @VisitedSupertype FirDeclaration, FirCallableMember, Fir
|
||||
visitor.visitProperty(this, data)
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
super<FirCallableMember>.acceptChildren(visitor, data)
|
||||
super<FirCallableMemberDeclaration>.acceptChildren(visitor, data)
|
||||
initializer?.accept(visitor, data)
|
||||
delegate?.accept(visitor, data)
|
||||
getter.accept(visitor, data)
|
||||
|
||||
@@ -8,10 +8,13 @@ package org.jetbrains.kotlin.fir.declarations
|
||||
import org.jetbrains.kotlin.fir.BaseTransformedType
|
||||
import org.jetbrains.kotlin.fir.VisitedSupertype
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirVariable
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
@BaseTransformedType
|
||||
interface FirValueParameter : @VisitedSupertype FirDeclaration, FirTypedDeclaration, FirNamedDeclaration {
|
||||
interface FirValueParameter : @VisitedSupertype FirDeclaration, FirTypedDeclaration, FirNamedDeclaration, FirVariable {
|
||||
val isCrossinline: Boolean
|
||||
|
||||
val isNoinline: Boolean
|
||||
@@ -20,11 +23,13 @@ interface FirValueParameter : @VisitedSupertype FirDeclaration, FirTypedDeclarat
|
||||
|
||||
val defaultValue: FirExpression?
|
||||
|
||||
override val symbol: FirVariableSymbol
|
||||
|
||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
|
||||
visitor.visitValueParameter(this, data)
|
||||
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
super<FirTypedDeclaration>.acceptChildren(visitor, data)
|
||||
super<FirVariable>.acceptChildren(visitor, data)
|
||||
defaultValue?.accept(visitor, data)
|
||||
}
|
||||
}
|
||||
+6
-5
@@ -10,16 +10,17 @@ import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.Visibility
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMember
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.transformSingle
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
abstract class FirAbstractCallableMember : FirAbstractMemberDeclaration, FirCallableMember {
|
||||
abstract class FirAbstractCallableMember : FirAbstractMemberDeclaration, FirCallableMemberDeclaration {
|
||||
|
||||
final override val symbol: FirBasedSymbol<FirCallableMember>
|
||||
final override val symbol: FirBasedSymbol<FirCallableDeclaration>
|
||||
final override var receiverTypeRef: FirTypeRef?
|
||||
final override var returnTypeRef: FirTypeRef
|
||||
|
||||
@@ -30,7 +31,7 @@ abstract class FirAbstractCallableMember : FirAbstractMemberDeclaration, FirCall
|
||||
constructor(
|
||||
session: FirSession,
|
||||
psi: PsiElement?,
|
||||
symbol: FirBasedSymbol<FirCallableMember>,
|
||||
symbol: FirBasedSymbol<FirCallableDeclaration>,
|
||||
name: Name,
|
||||
receiverTypeRef: FirTypeRef?,
|
||||
returnTypeRef: FirTypeRef
|
||||
@@ -44,7 +45,7 @@ abstract class FirAbstractCallableMember : FirAbstractMemberDeclaration, FirCall
|
||||
constructor(
|
||||
session: FirSession,
|
||||
psi: PsiElement?,
|
||||
symbol: FirBasedSymbol<FirCallableMember>,
|
||||
symbol: FirBasedSymbol<FirCallableDeclaration>,
|
||||
name: Name,
|
||||
visibility: Visibility,
|
||||
modality: Modality?,
|
||||
|
||||
+16
-1
@@ -13,9 +13,16 @@ import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||
import org.jetbrains.kotlin.fir.expressions.FirBlock
|
||||
import org.jetbrains.kotlin.fir.symbols.CallableId
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||
import org.jetbrains.kotlin.fir.transformInplace
|
||||
import org.jetbrains.kotlin.fir.transformSingle
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.impl.FirImplicitUnitTypeRef
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
abstract class FirDefaultPropertyAccessor(
|
||||
session: FirSession,
|
||||
@@ -64,7 +71,15 @@ class FirDefaultPropertySetter(
|
||||
propertyTypeRef: FirTypeRef,
|
||||
visibility: Visibility
|
||||
) : FirDefaultPropertyAccessor(session, psi, isGetter = false, visibility = visibility) {
|
||||
override val valueParameters = mutableListOf(FirDefaultSetterValueParameter(session, psi, propertyTypeRef))
|
||||
override val valueParameters = mutableListOf(
|
||||
FirDefaultSetterValueParameter(
|
||||
session, psi, propertyTypeRef, FirVariableSymbol(
|
||||
CallableId(
|
||||
FqName.ROOT, Name.special("<default-setter-parameter>")
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
override var returnTypeRef: FirTypeRef = FirImplicitUnitTypeRef(session, psi)
|
||||
|
||||
|
||||
+18
-1
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||
import org.jetbrains.kotlin.fir.transformSingle
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
@@ -18,14 +19,30 @@ import org.jetbrains.kotlin.name.Name
|
||||
class FirDefaultSetterValueParameter(
|
||||
session: FirSession,
|
||||
psi: PsiElement?,
|
||||
override var returnTypeRef: FirTypeRef
|
||||
override var returnTypeRef: FirTypeRef,
|
||||
override val symbol: FirVariableSymbol = FirVariableSymbol(name)
|
||||
) : FirAbstractNamedAnnotatedDeclaration(session, psi, name), FirValueParameter {
|
||||
|
||||
init {
|
||||
symbol.bind(this)
|
||||
}
|
||||
|
||||
override val initializer: FirExpression?
|
||||
get() = null
|
||||
override val delegate: FirExpression?
|
||||
get() = null
|
||||
override val receiverTypeRef: FirTypeRef?
|
||||
get() = null
|
||||
|
||||
override val isCrossinline = false
|
||||
|
||||
override val isNoinline = false
|
||||
|
||||
override val isVararg = false
|
||||
|
||||
override val isVar: Boolean = false
|
||||
override val isVal: Boolean = false
|
||||
|
||||
override val defaultValue: FirExpression? = null
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||
|
||||
+17
-1
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||
import org.jetbrains.kotlin.fir.transformSingle
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
@@ -23,8 +24,23 @@ open class FirValueParameterImpl(
|
||||
override var defaultValue: FirExpression?,
|
||||
override val isCrossinline: Boolean,
|
||||
override val isNoinline: Boolean,
|
||||
override val isVararg: Boolean
|
||||
override val isVararg: Boolean,
|
||||
override val symbol: FirVariableSymbol = FirVariableSymbol(name)
|
||||
) : FirAbstractNamedAnnotatedDeclaration(session, psi, name), FirValueParameter {
|
||||
|
||||
init {
|
||||
symbol.bind(this)
|
||||
}
|
||||
|
||||
override val isVar: Boolean
|
||||
get() = false
|
||||
override val initializer: FirExpression?
|
||||
get() = null
|
||||
override val delegate: FirExpression?
|
||||
get() = null
|
||||
override val receiverTypeRef: FirTypeRef?
|
||||
get() = null
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
|
||||
defaultValue = defaultValue?.transformSingle(transformer, data)
|
||||
|
||||
@@ -8,8 +8,11 @@ package org.jetbrains.kotlin.fir.declarations.impl
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.fir.FirElement
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.FirVariable
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol
|
||||
import org.jetbrains.kotlin.fir.transformSingle
|
||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||
@@ -22,8 +25,17 @@ class FirVariableImpl(
|
||||
override var returnTypeRef: FirTypeRef,
|
||||
override val isVar: Boolean,
|
||||
override var initializer: FirExpression?,
|
||||
override val symbol: FirBasedSymbol<FirCallableDeclaration> = FirVariableSymbol(name),
|
||||
override var delegate: FirExpression? = null
|
||||
) : FirAbstractNamedAnnotatedDeclaration(session, psiElement, name), FirVariable {
|
||||
|
||||
init {
|
||||
symbol.bind(this)
|
||||
}
|
||||
|
||||
override val receiverTypeRef: FirTypeRef?
|
||||
get() = null
|
||||
|
||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
|
||||
initializer = initializer?.transformSingle(transformer, data)
|
||||
|
||||
@@ -6,12 +6,10 @@
|
||||
package org.jetbrains.kotlin.fir.expressions
|
||||
|
||||
import org.jetbrains.kotlin.fir.VisitedSupertype
|
||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.FirNamedDeclaration
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||
|
||||
interface FirVariable : @VisitedSupertype FirDeclaration, FirTypedDeclaration, FirNamedDeclaration, FirStatement {
|
||||
interface FirVariable : @VisitedSupertype FirDeclaration, FirTypedDeclaration, FirCallableDeclaration, FirNamedDeclaration, FirStatement {
|
||||
val isVar: Boolean
|
||||
|
||||
val isVal: Boolean
|
||||
@@ -27,6 +25,6 @@ interface FirVariable : @VisitedSupertype FirDeclaration, FirTypedDeclaration, F
|
||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||
initializer?.accept(visitor, data)
|
||||
delegate?.accept(visitor, data)
|
||||
super<FirTypedDeclaration>.acceptChildren(visitor, data)
|
||||
super<FirCallableDeclaration>.acceptChildren(visitor, data)
|
||||
}
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.symbols.impl
|
||||
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMember
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.CallableId
|
||||
import org.jetbrains.kotlin.fir.symbols.ConeFunctionSymbol
|
||||
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||
class FirFunctionSymbol(
|
||||
override val callableId: CallableId,
|
||||
val isFakeOverride: Boolean = false
|
||||
) : ConeFunctionSymbol, AbstractFirBasedSymbol<FirCallableMember>() {
|
||||
) : ConeFunctionSymbol, AbstractFirBasedSymbol<FirCallableDeclaration>() {
|
||||
override val parameters: List<ConeKotlinType>
|
||||
get() = emptyList()
|
||||
}
|
||||
@@ -5,9 +5,16 @@
|
||||
|
||||
package org.jetbrains.kotlin.fir.symbols.impl
|
||||
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMember
|
||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||
import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.CallableId
|
||||
import org.jetbrains.kotlin.fir.symbols.ConePropertySymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.ConeVariableSymbol
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
|
||||
class FirPropertySymbol(override val callableId: CallableId) : ConePropertySymbol, AbstractFirBasedSymbol<FirCallableMember>()
|
||||
class FirPropertySymbol(override val callableId: CallableId) : ConePropertySymbol, AbstractFirBasedSymbol<FirCallableDeclaration>()
|
||||
|
||||
class FirVariableSymbol(override val callableId: CallableId) : ConeVariableSymbol, AbstractFirBasedSymbol<FirCallableDeclaration>() {
|
||||
constructor(name: Name) : this(CallableId(FqName("var"), name)) // TODO?
|
||||
}
|
||||
+12
-4
@@ -24,8 +24,8 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformElement(declaration, data)
|
||||
}
|
||||
|
||||
open fun transformCallableMember(callableMember: FirCallableMember, data: D): CompositeTransformResult<FirDeclaration> {
|
||||
return transformDeclaration(callableMember, data)
|
||||
open fun transformCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): CompositeTransformResult<FirDeclaration> {
|
||||
return transformDeclaration(callableDeclaration, data)
|
||||
}
|
||||
|
||||
open fun transformDeclarationWithBody(declarationWithBody: FirDeclarationWithBody, data: D): CompositeTransformResult<FirDeclaration> {
|
||||
@@ -76,6 +76,10 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformNamedDeclaration(memberDeclaration, data)
|
||||
}
|
||||
|
||||
open fun transformCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration, data: D): CompositeTransformResult<FirDeclaration> {
|
||||
return transformMemberDeclaration(callableMemberDeclaration, data)
|
||||
}
|
||||
|
||||
open fun transformClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration, data: D): CompositeTransformResult<FirDeclaration> {
|
||||
return transformMemberDeclaration(classLikeDeclaration, data)
|
||||
}
|
||||
@@ -416,8 +420,12 @@ abstract class FirTransformer<in D> : FirVisitor<CompositeTransformResult<FirEle
|
||||
return transformCall(call, data)
|
||||
}
|
||||
|
||||
final override fun visitCallableMember(callableMember: FirCallableMember, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformCallableMember(callableMember, data)
|
||||
final override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformCallableDeclaration(callableDeclaration, data)
|
||||
}
|
||||
|
||||
final override fun visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration, data: D): CompositeTransformResult<FirElement> {
|
||||
return transformCallableMemberDeclaration(callableMemberDeclaration, data)
|
||||
}
|
||||
|
||||
final override fun visitCallableReferenceAccess(callableReferenceAccess: FirCallableReferenceAccess, data: D): CompositeTransformResult<FirElement> {
|
||||
|
||||
@@ -24,8 +24,8 @@ abstract class FirVisitor<out R, in D> {
|
||||
return visitElement(declaration, data)
|
||||
}
|
||||
|
||||
open fun visitCallableMember(callableMember: FirCallableMember, data: D): R {
|
||||
return visitDeclaration(callableMember, data)
|
||||
open fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): R {
|
||||
return visitDeclaration(callableDeclaration, data)
|
||||
}
|
||||
|
||||
open fun visitDeclarationWithBody(declarationWithBody: FirDeclarationWithBody, data: D): R {
|
||||
@@ -76,6 +76,10 @@ abstract class FirVisitor<out R, in D> {
|
||||
return visitNamedDeclaration(memberDeclaration, data)
|
||||
}
|
||||
|
||||
open fun visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration, data: D): R {
|
||||
return visitMemberDeclaration(callableMemberDeclaration, data)
|
||||
}
|
||||
|
||||
open fun visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration, data: D): R {
|
||||
return visitMemberDeclaration(classLikeDeclaration, data)
|
||||
}
|
||||
|
||||
+12
-4
@@ -24,8 +24,8 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitElement(declaration, null)
|
||||
}
|
||||
|
||||
open fun visitCallableMember(callableMember: FirCallableMember) {
|
||||
visitDeclaration(callableMember, null)
|
||||
open fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) {
|
||||
visitDeclaration(callableDeclaration, null)
|
||||
}
|
||||
|
||||
open fun visitDeclarationWithBody(declarationWithBody: FirDeclarationWithBody) {
|
||||
@@ -76,6 +76,10 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitNamedDeclaration(memberDeclaration, null)
|
||||
}
|
||||
|
||||
open fun visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration) {
|
||||
visitMemberDeclaration(callableMemberDeclaration, null)
|
||||
}
|
||||
|
||||
open fun visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration) {
|
||||
visitMemberDeclaration(classLikeDeclaration, null)
|
||||
}
|
||||
@@ -416,8 +420,12 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
||||
visitCall(call)
|
||||
}
|
||||
|
||||
final override fun visitCallableMember(callableMember: FirCallableMember, data: Nothing?) {
|
||||
visitCallableMember(callableMember)
|
||||
final override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: Nothing?) {
|
||||
visitCallableDeclaration(callableDeclaration)
|
||||
}
|
||||
|
||||
final override fun visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration, data: Nothing?) {
|
||||
visitCallableMemberDeclaration(callableMemberDeclaration)
|
||||
}
|
||||
|
||||
final override fun visitCallableReferenceAccess(callableReferenceAccess: FirCallableReferenceAccess, data: Nothing?) {
|
||||
|
||||
Reference in New Issue
Block a user