[FIR] Unity FirCallableDeclaration and FirCallableMemberDeclaration
After removal of all diamonds in FirDeclaration hierarchy FirCallableMemberDeclaration was only one inheritor of FirCallableDeclaration, so there is no need to keep them both
This commit is contained in:
committed by
teamcityserver
parent
adc45fd3dd
commit
51fc2e453f
+2
-2
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.java
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirRenderer
|
import org.jetbrains.kotlin.fir.FirRenderer
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirEnumEntry
|
import org.jetbrains.kotlin.fir.declarations.FirEnumEntry
|
||||||
import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass
|
import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass
|
||||||
@@ -42,7 +42,7 @@ fun renderJavaClass(renderer: FirRenderer, javaClass: FirJavaClass, session: Fir
|
|||||||
if (declaration in renderedDeclarations) continue
|
if (declaration in renderedDeclarations) continue
|
||||||
|
|
||||||
val scopeToUse =
|
val scopeToUse =
|
||||||
if (declaration is FirCallableMemberDeclaration && declaration.status.isStatic)
|
if (declaration is FirCallableDeclaration && declaration.status.isStatic)
|
||||||
staticScope
|
staticScope
|
||||||
else
|
else
|
||||||
memberScope
|
memberScope
|
||||||
|
|||||||
+1
-2
@@ -11,7 +11,6 @@ import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
|||||||
import org.jetbrains.kotlin.fir.analysis.checkers.toRegularClass
|
import org.jetbrains.kotlin.fir.analysis.checkers.toRegularClass
|
||||||
import org.jetbrains.kotlin.fir.analysis.checkers.unsubstitutedScope
|
import org.jetbrains.kotlin.fir.analysis.checkers.unsubstitutedScope
|
||||||
import org.jetbrains.kotlin.fir.containingClass
|
import org.jetbrains.kotlin.fir.containingClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||||
@@ -56,7 +55,7 @@ object FirJvmOverridesBackwardCompatibilityHelper : FirOverridesBackwardCompatib
|
|||||||
visitedSymbols: MutableSet<FirCallableSymbol<*>>,
|
visitedSymbols: MutableSet<FirCallableSymbol<*>>,
|
||||||
context: CheckerContext
|
context: CheckerContext
|
||||||
): Boolean {
|
): Boolean {
|
||||||
val fir = symbol.fir as? FirCallableMemberDeclaration ?: return false
|
val fir = symbol.fir
|
||||||
if (fir.isFinal) return false
|
if (fir.isFinal) return false
|
||||||
|
|
||||||
if (symbol in visitedSymbols) return true
|
if (symbol in visitedSymbols) return true
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ inline fun <reified T : Any> FirQualifiedAccessExpression.getDeclaration(): T? {
|
|||||||
* or null if no proper declaration has been found.
|
* or null if no proper declaration has been found.
|
||||||
*/
|
*/
|
||||||
fun FirDeclaration.getContainingClass(context: CheckerContext): FirClassLikeDeclaration? =
|
fun FirDeclaration.getContainingClass(context: CheckerContext): FirClassLikeDeclaration? =
|
||||||
this.safeAs<FirCallableMemberDeclaration>()?.containingClass()?.toSymbol(context.session)?.fir
|
this.safeAs<FirCallableDeclaration>()?.containingClass()?.toSymbol(context.session)?.fir
|
||||||
|
|
||||||
fun FirClassLikeSymbol<*>.outerClass(context: CheckerContext): FirClassLikeSymbol<*>? {
|
fun FirClassLikeSymbol<*>.outerClass(context: CheckerContext): FirClassLikeSymbol<*>? {
|
||||||
if (this !is FirClassSymbol<*>) return null
|
if (this !is FirClassSymbol<*>) return null
|
||||||
@@ -417,7 +417,7 @@ private fun isSubtypeOfForFunctionalTypeReturningUnit(
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
fun FirCallableMemberDeclaration.isVisibleInClass(parentClass: FirClass): Boolean {
|
fun FirCallableDeclaration.isVisibleInClass(parentClass: FirClass): Boolean {
|
||||||
val classPackage = parentClass.symbol.classId.packageFqName
|
val classPackage = parentClass.symbol.classId.packageFqName
|
||||||
if (visibility == Visibilities.Private ||
|
if (visibility == Visibilities.Private ||
|
||||||
!visibility.visibleFromPackage(classPackage, symbol.callableId.packageName)
|
!visibility.visibleFromPackage(classPackage, symbol.callableId.packageName)
|
||||||
@@ -434,7 +434,7 @@ fun FirCallableMemberDeclaration.isVisibleInClass(parentClass: FirClass): Boolea
|
|||||||
*
|
*
|
||||||
* @param parentClass the contextual class for this query.
|
* @param parentClass the contextual class for this query.
|
||||||
*/
|
*/
|
||||||
fun FirCallableMemberDeclaration.getImplementationStatus(sessionHolder: SessionHolder, parentClass: FirClass): ImplementationStatus {
|
fun FirCallableDeclaration.getImplementationStatus(sessionHolder: SessionHolder, parentClass: FirClass): ImplementationStatus {
|
||||||
val containingClass = getContainingClass(sessionHolder)
|
val containingClass = getContainingClass(sessionHolder)
|
||||||
val symbol = this.symbol
|
val symbol = this.symbol
|
||||||
|
|
||||||
@@ -449,13 +449,13 @@ fun FirCallableMemberDeclaration.getImplementationStatus(sessionHolder: SessionH
|
|||||||
// In Java 8, non-abstract intersection overrides having abstract symbol from base class
|
// In Java 8, non-abstract intersection overrides having abstract symbol from base class
|
||||||
// still should be implemented in current class (even when they have default interface implementation)
|
// still should be implemented in current class (even when they have default interface implementation)
|
||||||
if (symbol.intersections.any {
|
if (symbol.intersections.any {
|
||||||
val fir = (it.fir as FirCallableMemberDeclaration).unwrapFakeOverrides()
|
val fir = it.fir.unwrapFakeOverrides()
|
||||||
fir.isAbstract && (fir.getContainingClass(sessionHolder) as? FirRegularClass)?.classKind == ClassKind.CLASS
|
fir.isAbstract && (fir.getContainingClass(sessionHolder) as? FirRegularClass)?.classKind == ClassKind.CLASS
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
// Exception from the rule above: interface implementation via delegation
|
// Exception from the rule above: interface implementation via delegation
|
||||||
if (symbol.intersections.none {
|
if (symbol.intersections.none {
|
||||||
val fir = (it.fir as FirCallableMemberDeclaration)
|
val fir = it.fir
|
||||||
fir.origin == FirDeclarationOrigin.Delegated && !fir.isAbstract
|
fir.origin == FirDeclarationOrigin.Delegated && !fir.isAbstract
|
||||||
}
|
}
|
||||||
) {
|
) {
|
||||||
@@ -487,7 +487,7 @@ private fun FirIntersectionCallableSymbol.subjectToManyNotImplemented(sessionHol
|
|||||||
var nonAbstractCountInInterface = 0
|
var nonAbstractCountInInterface = 0
|
||||||
var abstractCountInInterface = 0
|
var abstractCountInInterface = 0
|
||||||
for (intersectionSymbol in intersections) {
|
for (intersectionSymbol in intersections) {
|
||||||
val intersection = intersectionSymbol.fir as FirCallableMemberDeclaration
|
val intersection = intersectionSymbol.fir
|
||||||
val containingClass = intersection.getContainingClass(sessionHolder) as? FirRegularClass
|
val containingClass = intersection.getContainingClass(sessionHolder) as? FirRegularClass
|
||||||
val hasInterfaceContainer = containingClass?.classKind == ClassKind.INTERFACE
|
val hasInterfaceContainer = containingClass?.classKind == ClassKind.INTERFACE
|
||||||
if (intersection.modality != Modality.ABSTRACT) {
|
if (intersection.modality != Modality.ABSTRACT) {
|
||||||
@@ -515,7 +515,7 @@ private val FirSimpleFunction.matchesDataClassSyntheticMemberSignatures: Boolean
|
|||||||
(this.name == OperatorNameConventions.TO_STRING && matchesToStringSignature)
|
(this.name == OperatorNameConventions.TO_STRING && matchesToStringSignature)
|
||||||
|
|
||||||
private fun FirDeclaration.getContainingClass(sessionHolder: SessionHolder): FirClassLikeDeclaration? =
|
private fun FirDeclaration.getContainingClass(sessionHolder: SessionHolder): FirClassLikeDeclaration? =
|
||||||
this.safeAs<FirCallableMemberDeclaration>()?.containingClass()?.toSymbol(sessionHolder.session)?.fir
|
this.safeAs<FirCallableDeclaration>()?.containingClass()?.toSymbol(sessionHolder.session)?.fir
|
||||||
|
|
||||||
// NB: we intentionally do not check return types
|
// NB: we intentionally do not check return types
|
||||||
private val FirSimpleFunction.matchesEqualsSignature: Boolean
|
private val FirSimpleFunction.matchesEqualsSignature: Boolean
|
||||||
|
|||||||
+1
-1
@@ -207,7 +207,7 @@ internal val FirDeclaration.isLocalMember: Boolean
|
|||||||
else -> false
|
else -> false
|
||||||
}
|
}
|
||||||
|
|
||||||
internal val FirCallableMemberDeclaration.isExtensionMember: Boolean
|
internal val FirCallableDeclaration.isExtensionMember: Boolean
|
||||||
get() {
|
get() {
|
||||||
return receiverTypeRef != null && dispatchReceiverType != null
|
return receiverTypeRef != null && dispatchReceiverType != null
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -141,7 +141,7 @@ object FirExposedVisibilityDeclarationChecker : FirBasicDeclarationChecker() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
checkMemberReceiver(declaration.receiverTypeRef, declaration as? FirCallableMemberDeclaration, reporter, context)
|
checkMemberReceiver(declaration.receiverTypeRef, declaration as? FirCallableDeclaration, reporter, context)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun checkProperty(declaration: FirProperty, reporter: DiagnosticReporter, context: CheckerContext) {
|
private fun checkProperty(declaration: FirProperty, reporter: DiagnosticReporter, context: CheckerContext) {
|
||||||
@@ -172,7 +172,7 @@ object FirExposedVisibilityDeclarationChecker : FirBasicDeclarationChecker() {
|
|||||||
|
|
||||||
private fun checkMemberReceiver(
|
private fun checkMemberReceiver(
|
||||||
typeRef: FirTypeRef?,
|
typeRef: FirTypeRef?,
|
||||||
memberDeclaration: FirCallableMemberDeclaration?,
|
memberDeclaration: FirCallableDeclaration?,
|
||||||
reporter: DiagnosticReporter,
|
reporter: DiagnosticReporter,
|
||||||
context: CheckerContext
|
context: CheckerContext
|
||||||
) {
|
) {
|
||||||
|
|||||||
+5
-5
@@ -175,7 +175,7 @@ object FirInlineDeclarationChecker : FirFunctionChecker() {
|
|||||||
) {
|
) {
|
||||||
val source = qualifiedAccess.source ?: return
|
val source = qualifiedAccess.source ?: return
|
||||||
if (targetSymbol == null) return
|
if (targetSymbol == null) return
|
||||||
val targetFir = targetSymbol.fir as? FirCallableMemberDeclaration
|
val targetFir = targetSymbol.fir as? FirCallableDeclaration
|
||||||
|
|
||||||
if (targetSymbol.fir in inlinableParameters) {
|
if (targetSymbol.fir in inlinableParameters) {
|
||||||
if (!qualifiedAccess.partOfCall(context)) {
|
if (!qualifiedAccess.partOfCall(context)) {
|
||||||
@@ -199,7 +199,7 @@ object FirInlineDeclarationChecker : FirFunctionChecker() {
|
|||||||
|
|
||||||
private fun checkVisibilityAndAccess(
|
private fun checkVisibilityAndAccess(
|
||||||
accessExpression: FirQualifiedAccess,
|
accessExpression: FirQualifiedAccess,
|
||||||
calledDeclaration: FirCallableMemberDeclaration?,
|
calledDeclaration: FirCallableDeclaration?,
|
||||||
source: FirSourceElement,
|
source: FirSourceElement,
|
||||||
context: CheckerContext
|
context: CheckerContext
|
||||||
) {
|
) {
|
||||||
@@ -248,7 +248,7 @@ object FirInlineDeclarationChecker : FirFunctionChecker() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun checkPrivateClassMemberAccess(
|
private fun checkPrivateClassMemberAccess(
|
||||||
calledDeclaration: FirCallableMemberDeclaration,
|
calledDeclaration: FirCallableDeclaration,
|
||||||
source: FirSourceElement,
|
source: FirSourceElement,
|
||||||
context: CheckerContext
|
context: CheckerContext
|
||||||
) {
|
) {
|
||||||
@@ -266,7 +266,7 @@ object FirInlineDeclarationChecker : FirFunctionChecker() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun checkSuperCalls(
|
private fun checkSuperCalls(
|
||||||
calledDeclaration: FirCallableMemberDeclaration,
|
calledDeclaration: FirCallableDeclaration,
|
||||||
callExpression: FirQualifiedAccess,
|
callExpression: FirQualifiedAccess,
|
||||||
context: CheckerContext
|
context: CheckerContext
|
||||||
) {
|
) {
|
||||||
@@ -305,7 +305,7 @@ object FirInlineDeclarationChecker : FirFunctionChecker() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FirCallableMemberDeclaration.isInsidePrivateClass(): Boolean {
|
private fun FirCallableDeclaration.isInsidePrivateClass(): Boolean {
|
||||||
val containingClass = this.containingClass()?.toSymbol(session)?.fir ?: return false
|
val containingClass = this.containingClass()?.toSymbol(session)?.fir ?: return false
|
||||||
|
|
||||||
val containingClassVisibility = when (containingClass) {
|
val containingClassVisibility = when (containingClass) {
|
||||||
|
|||||||
+3
-3
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext
|
|||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||||
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeTypeParameterInQualifiedAccess
|
import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeTypeParameterInQualifiedAccess
|
||||||
@@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.types.*
|
|||||||
object FirKClassWithIncorrectTypeArgumentChecker : FirFileChecker() {
|
object FirKClassWithIncorrectTypeArgumentChecker : FirFileChecker() {
|
||||||
override fun check(declaration: FirFile, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(declaration: FirFile, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
for (topLevelDeclaration in declaration.declarations) {
|
for (topLevelDeclaration in declaration.declarations) {
|
||||||
if (topLevelDeclaration is FirCallableMemberDeclaration) {
|
if (topLevelDeclaration is FirCallableDeclaration) {
|
||||||
checkTopLevelDeclaration(topLevelDeclaration, context, reporter)
|
checkTopLevelDeclaration(topLevelDeclaration, context, reporter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -33,7 +33,7 @@ object FirKClassWithIncorrectTypeArgumentChecker : FirFileChecker() {
|
|||||||
// bad: fun <T> test1() = T::class
|
// bad: fun <T> test1() = T::class
|
||||||
// okay: fun <T: Any> test2() = T::class
|
// okay: fun <T: Any> test2() = T::class
|
||||||
private fun checkTopLevelDeclaration(
|
private fun checkTopLevelDeclaration(
|
||||||
declaration: FirCallableMemberDeclaration,
|
declaration: FirCallableDeclaration,
|
||||||
context: CheckerContext,
|
context: CheckerContext,
|
||||||
reporter: DiagnosticReporter
|
reporter: DiagnosticReporter
|
||||||
) {
|
) {
|
||||||
|
|||||||
+1
-2
@@ -23,7 +23,6 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.OVERRIDING_FINAL_
|
|||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
||||||
import org.jetbrains.kotlin.fir.containingClass
|
import org.jetbrains.kotlin.fir.containingClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
import org.jetbrains.kotlin.fir.declarations.FirClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.*
|
import org.jetbrains.kotlin.fir.declarations.utils.*
|
||||||
@@ -59,7 +58,7 @@ object FirNotImplementedOverrideChecker : FirClassChecker() {
|
|||||||
val invisibleSymbols = mutableListOf<FirCallableSymbol<*>>()
|
val invisibleSymbols = mutableListOf<FirCallableSymbol<*>>()
|
||||||
|
|
||||||
fun collectSymbol(symbol: FirCallableSymbol<*>) {
|
fun collectSymbol(symbol: FirCallableSymbol<*>) {
|
||||||
val fir = symbol.fir as? FirCallableMemberDeclaration ?: return
|
val fir = symbol.fir
|
||||||
|
|
||||||
val delegatedWrapperData = fir.delegatedWrapperData
|
val delegatedWrapperData = fir.delegatedWrapperData
|
||||||
if (delegatedWrapperData != null) {
|
if (delegatedWrapperData != null) {
|
||||||
|
|||||||
+2
-2
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.analysis.checkers.hasModifier
|
|||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
import org.jetbrains.kotlin.fir.declarations.FirClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.isOpen
|
import org.jetbrains.kotlin.fir.declarations.utils.isOpen
|
||||||
@@ -24,7 +24,7 @@ object FirOpenMemberChecker : FirClassChecker() {
|
|||||||
override fun check(declaration: FirClass, context: CheckerContext, reporter: DiagnosticReporter) {
|
override fun check(declaration: FirClass, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||||
if (declaration.canHaveOpenMembers) return
|
if (declaration.canHaveOpenMembers) return
|
||||||
for (memberDeclaration in declaration.declarations) {
|
for (memberDeclaration in declaration.declarations) {
|
||||||
if (memberDeclaration !is FirCallableMemberDeclaration ||
|
if (memberDeclaration !is FirCallableDeclaration ||
|
||||||
// Marking a constructor `open` is an error covered by diagnostic code WRONG_MODIFIER_TARGET
|
// Marking a constructor `open` is an error covered by diagnostic code WRONG_MODIFIER_TARGET
|
||||||
memberDeclaration is FirConstructor
|
memberDeclaration is FirConstructor
|
||||||
) continue
|
) continue
|
||||||
|
|||||||
+14
-29
@@ -16,7 +16,6 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
|||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
||||||
import org.jetbrains.kotlin.fir.analysis.overridesBackwardCompatibilityHelper
|
import org.jetbrains.kotlin.fir.analysis.overridesBackwardCompatibilityHelper
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.isFinal
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.isOverride
|
import org.jetbrains.kotlin.fir.declarations.utils.isOverride
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.visibility
|
import org.jetbrains.kotlin.fir.declarations.utils.visibility
|
||||||
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
||||||
@@ -46,12 +45,12 @@ object FirOverrideChecker : FirClassChecker() {
|
|||||||
|
|
||||||
for (it in declaration.declarations) {
|
for (it in declaration.declarations) {
|
||||||
if (it is FirSimpleFunction || it is FirProperty) {
|
if (it is FirSimpleFunction || it is FirProperty) {
|
||||||
checkMember(it as FirCallableMemberDeclaration, declaration, reporter, typeCheckerContext, firTypeScope, context)
|
checkMember(it as FirCallableDeclaration, declaration, reporter, typeCheckerContext, firTypeScope, context)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FirTypeScope.retrieveDirectOverriddenOf(member: FirCallableMemberDeclaration): List<FirCallableSymbol<*>> {
|
private fun FirTypeScope.retrieveDirectOverriddenOf(member: FirCallableDeclaration): List<FirCallableSymbol<*>> {
|
||||||
return when (member) {
|
return when (member) {
|
||||||
is FirSimpleFunction -> {
|
is FirSimpleFunction -> {
|
||||||
processFunctionsByName(member.name) {}
|
processFunctionsByName(member.name) {}
|
||||||
@@ -66,7 +65,7 @@ object FirOverrideChecker : FirClassChecker() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun ConeKotlinType.substituteAllTypeParameters(
|
private fun ConeKotlinType.substituteAllTypeParameters(
|
||||||
overrideDeclaration: FirCallableMemberDeclaration,
|
overrideDeclaration: FirCallableDeclaration,
|
||||||
baseDeclaration: FirCallableDeclaration,
|
baseDeclaration: FirCallableDeclaration,
|
||||||
context: CheckerContext
|
context: CheckerContext
|
||||||
): ConeKotlinType {
|
): ConeKotlinType {
|
||||||
@@ -94,7 +93,6 @@ object FirOverrideChecker : FirClassChecker() {
|
|||||||
overriddenSymbols: List<FirCallableSymbol<*>>,
|
overriddenSymbols: List<FirCallableSymbol<*>>,
|
||||||
): FirCallableDeclaration? {
|
): FirCallableDeclaration? {
|
||||||
for (overridden in overriddenSymbols) {
|
for (overridden in overriddenSymbols) {
|
||||||
if (overridden.fir !is FirMemberDeclaration) continue
|
|
||||||
val modality = (overridden.fir as FirMemberDeclaration).status.modality
|
val modality = (overridden.fir as FirMemberDeclaration).status.modality
|
||||||
val isEffectivelyFinal = modality == null || modality == Modality.FINAL
|
val isEffectivelyFinal = modality == null || modality == Modality.FINAL
|
||||||
if (isEffectivelyFinal) {
|
if (isEffectivelyFinal) {
|
||||||
@@ -111,14 +109,13 @@ object FirOverrideChecker : FirClassChecker() {
|
|||||||
return overriddenSymbols.find { (it.fir as? FirProperty)?.isVar == true }?.fir as? FirMemberDeclaration?
|
return overriddenSymbols.find { (it.fir as? FirProperty)?.isVar == true }?.fir as? FirMemberDeclaration?
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FirCallableMemberDeclaration.checkVisibility(
|
private fun FirCallableDeclaration.checkVisibility(
|
||||||
containingClass: FirClass,
|
containingClass: FirClass,
|
||||||
reporter: DiagnosticReporter,
|
reporter: DiagnosticReporter,
|
||||||
overriddenSymbols: List<FirCallableSymbol<*>>,
|
overriddenSymbols: List<FirCallableSymbol<*>>,
|
||||||
context: CheckerContext
|
context: CheckerContext
|
||||||
) {
|
) {
|
||||||
val visibilities = overriddenSymbols.mapNotNull {
|
val visibilities = overriddenSymbols.map {
|
||||||
if (it.fir !is FirMemberDeclaration) return@mapNotNull null
|
|
||||||
it to (it.fir as FirMemberDeclaration).visibility
|
it to (it.fir as FirMemberDeclaration).visibility
|
||||||
}.sortedBy { pair ->
|
}.sortedBy { pair ->
|
||||||
// Regard `null` compare as Int.MIN so that we can report CANNOT_CHANGE_... first deterministically
|
// Regard `null` compare as Int.MIN so that we can report CANNOT_CHANGE_... first deterministically
|
||||||
@@ -140,7 +137,7 @@ object FirOverrideChecker : FirClassChecker() {
|
|||||||
val containingDeclarations = context.containingDeclarations + containingClass
|
val containingDeclarations = context.containingDeclarations + containingClass
|
||||||
val visibilityChecker = context.session.visibilityChecker
|
val visibilityChecker = context.session.visibilityChecker
|
||||||
val hasVisibleBase = overriddenSymbols.any {
|
val hasVisibleBase = overriddenSymbols.any {
|
||||||
val fir = it.fir as? FirCallableMemberDeclaration ?: return@any true
|
val fir = it.fir as? FirCallableDeclaration ?: return@any true
|
||||||
visibilityChecker.isVisible(fir, context.session, file, containingDeclarations, null)
|
visibilityChecker.isVisible(fir, context.session, file, containingDeclarations, null)
|
||||||
}
|
}
|
||||||
if (!hasVisibleBase) {
|
if (!hasVisibleBase) {
|
||||||
@@ -152,7 +149,7 @@ object FirOverrideChecker : FirClassChecker() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// See [OverrideResolver#isReturnTypeOkForOverride]
|
// See [OverrideResolver#isReturnTypeOkForOverride]
|
||||||
private fun FirCallableMemberDeclaration.checkReturnType(
|
private fun FirCallableDeclaration.checkReturnType(
|
||||||
overriddenSymbols: List<FirCallableSymbol<*>>,
|
overriddenSymbols: List<FirCallableSymbol<*>>,
|
||||||
typeCheckerContext: AbstractTypeCheckerContext,
|
typeCheckerContext: AbstractTypeCheckerContext,
|
||||||
context: CheckerContext,
|
context: CheckerContext,
|
||||||
@@ -186,12 +183,12 @@ object FirOverrideChecker : FirClassChecker() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun checkMember(
|
private fun checkMember(
|
||||||
member: FirCallableMemberDeclaration,
|
member: FirCallableDeclaration,
|
||||||
containingClass: FirClass,
|
containingClass: FirClass,
|
||||||
reporter: DiagnosticReporter,
|
reporter: DiagnosticReporter,
|
||||||
typeCheckerContext: AbstractTypeCheckerContext,
|
typeCheckerContext: AbstractTypeCheckerContext,
|
||||||
firTypeScope: FirTypeScope,
|
firTypeScope: FirTypeScope,
|
||||||
context: CheckerContext
|
context: CheckerContext,
|
||||||
) {
|
) {
|
||||||
val overriddenMemberSymbols = firTypeScope.retrieveDirectOverriddenOf(member)
|
val overriddenMemberSymbols = firTypeScope.retrieveDirectOverriddenOf(member)
|
||||||
|
|
||||||
@@ -203,29 +200,15 @@ object FirOverrideChecker : FirClassChecker() {
|
|||||||
}
|
}
|
||||||
val kind = member.source?.kind
|
val kind = member.source?.kind
|
||||||
// Only report if the current member has real source or it's a member property declared inside the primary constructor.
|
// Only report if the current member has real source or it's a member property declared inside the primary constructor.
|
||||||
|
|
||||||
if (kind is FirFakeSourceElementKind.DataClassGeneratedMembers) {
|
|
||||||
overriddenMemberSymbols.find { (it.fir as? FirCallableMemberDeclaration)?.isFinal == true }?.let { base ->
|
|
||||||
reporter.reportOn(
|
|
||||||
containingClass.source,
|
|
||||||
FirErrors.DATA_CLASS_OVERRIDE_CONFLICT,
|
|
||||||
member,
|
|
||||||
base.fir,
|
|
||||||
context
|
|
||||||
)
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if (kind !is FirRealSourceElementKind && kind !is FirFakeSourceElementKind.PropertyFromParameter) return
|
if (kind !is FirRealSourceElementKind && kind !is FirFakeSourceElementKind.PropertyFromParameter) return
|
||||||
|
|
||||||
val overridden = overriddenMemberSymbols.first().originalOrSelf()
|
val overridden = overriddenMemberSymbols.first().originalOrSelf()
|
||||||
val overriddenClass = overridden.containingClass()?.toFirRegularClass(context.session) ?: return
|
val originalContainigClass = overridden.containingClass()?.toFirRegularClass(context.session) ?: return
|
||||||
reporter.reportOn(
|
reporter.reportOn(
|
||||||
member.source,
|
member.source,
|
||||||
FirErrors.VIRTUAL_MEMBER_HIDDEN,
|
FirErrors.VIRTUAL_MEMBER_HIDDEN,
|
||||||
member,
|
member,
|
||||||
overriddenClass,
|
originalContainigClass,
|
||||||
context
|
context
|
||||||
)
|
)
|
||||||
return
|
return
|
||||||
@@ -265,8 +248,10 @@ object FirOverrideChecker : FirClassChecker() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Suppress("UNUSED_PARAMETER") // TODO: delete me after implementing body
|
||||||
private fun DiagnosticReporter.reportNothingToOverride(declaration: FirMemberDeclaration, context: CheckerContext) {
|
private fun DiagnosticReporter.reportNothingToOverride(declaration: FirMemberDeclaration, context: CheckerContext) {
|
||||||
reportOn(declaration.source, FirErrors.NOTHING_TO_OVERRIDE, declaration, context)
|
// TODO: not ready yet, e.g., Collections
|
||||||
|
// reportOn(declaration.source, FirErrors.NOTHING_TO_OVERRIDE, declaration, context)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun DiagnosticReporter.reportOverridingFinalMember(
|
private fun DiagnosticReporter.reportOverridingFinalMember(
|
||||||
|
|||||||
+2
-2
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.analysis.checkers.getDeclaration
|
|||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.modality
|
import org.jetbrains.kotlin.fir.declarations.utils.modality
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||||
@@ -33,7 +33,7 @@ object FirAbstractSuperCallChecker : FirQualifiedAccessExpressionChecker() {
|
|||||||
|
|
||||||
if (closestClass.classKind == ClassKind.CLASS) {
|
if (closestClass.classKind == ClassKind.CLASS) {
|
||||||
// handles all the FirSimpleFunction/FirProperty/etc.
|
// handles all the FirSimpleFunction/FirProperty/etc.
|
||||||
val item = expression.getDeclaration<FirCallableMemberDeclaration>()
|
val item = expression.getDeclaration<FirCallableDeclaration>()
|
||||||
?: return
|
?: return
|
||||||
|
|
||||||
val declaration = item.getContainingClass(context).safeAs<FirRegularClass>()
|
val declaration = item.getContainingClass(context).safeAs<FirRegularClass>()
|
||||||
|
|||||||
+2
-2
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.analysis.checkers.declaration.isLocalMember
|
|||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors
|
||||||
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
@@ -49,7 +49,7 @@ object FirCallableReferenceChecker : FirQualifiedAccessExpressionChecker() {
|
|||||||
if (referredDeclaration is FirConstructor && referredDeclaration.getContainingClass(context.session)?.classKind == ClassKind.ANNOTATION_CLASS) {
|
if (referredDeclaration is FirConstructor && referredDeclaration.getContainingClass(context.session)?.classKind == ClassKind.ANNOTATION_CLASS) {
|
||||||
reporter.reportOn(source, FirErrors.CALLABLE_REFERENCE_TO_ANNOTATION_CONSTRUCTOR, context)
|
reporter.reportOn(source, FirErrors.CALLABLE_REFERENCE_TO_ANNOTATION_CONSTRUCTOR, context)
|
||||||
}
|
}
|
||||||
if ((referredDeclaration as? FirCallableMemberDeclaration)?.isExtensionMember == true &&
|
if ((referredDeclaration as? FirCallableDeclaration)?.isExtensionMember == true &&
|
||||||
!referredDeclaration.isLocalMember
|
!referredDeclaration.isLocalMember
|
||||||
) {
|
) {
|
||||||
reporter.reportOn(source, FirErrors.EXTENSION_IN_CLASS_REFERENCE_NOT_ALLOWED, referredDeclaration, context)
|
reporter.reportOn(source, FirErrors.EXTENSION_IN_CLASS_REFERENCE_NOT_ALLOWED, referredDeclaration, context)
|
||||||
|
|||||||
+6
-6
@@ -13,7 +13,7 @@ import org.jetbrains.kotlin.descriptors.Visibility
|
|||||||
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget
|
||||||
import org.jetbrains.kotlin.fir.*
|
import org.jetbrains.kotlin.fir.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.*
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.comparators.FirCallableMemberDeclarationComparator
|
import org.jetbrains.kotlin.fir.declarations.comparators.FirCallableDeclarationComparator
|
||||||
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor
|
import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.*
|
import org.jetbrains.kotlin.fir.declarations.utils.*
|
||||||
import org.jetbrains.kotlin.fir.deserialization.CONTINUATION_INTERFACE_CLASS_ID
|
import org.jetbrains.kotlin.fir.deserialization.CONTINUATION_INTERFACE_CLASS_ID
|
||||||
@@ -143,7 +143,7 @@ class FirElementSerializer private constructor(
|
|||||||
val callableMembers =
|
val callableMembers =
|
||||||
extension.customClassMembersProducer?.getCallableMembers(klass)
|
extension.customClassMembersProducer?.getCallableMembers(klass)
|
||||||
?: klass.declarations()
|
?: klass.declarations()
|
||||||
.sortedWith(FirCallableMemberDeclarationComparator)
|
.sortedWith(FirCallableDeclarationComparator)
|
||||||
|
|
||||||
for (declaration in callableMembers) {
|
for (declaration in callableMembers) {
|
||||||
if (declaration !is FirEnumEntry && declaration.isStatic) continue // ??? Miss values() & valueOf()
|
if (declaration !is FirEnumEntry && declaration.isStatic) continue // ??? Miss values() & valueOf()
|
||||||
@@ -216,13 +216,13 @@ class FirElementSerializer private constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
private fun FirClass.declarations(): List<FirCallableMemberDeclaration> = buildList {
|
private fun FirClass.declarations(): List<FirCallableDeclaration> = buildList {
|
||||||
val memberScope =
|
val memberScope =
|
||||||
defaultType().scope(session, scopeSession, FakeOverrideTypeCalculator.DoNothing)
|
defaultType().scope(session, scopeSession, FakeOverrideTypeCalculator.DoNothing)
|
||||||
?: error("Null scope for $this")
|
?: error("Null scope for $this")
|
||||||
|
|
||||||
fun addDeclarationIfNeeded(symbol: FirCallableSymbol<*>) {
|
fun addDeclarationIfNeeded(symbol: FirCallableSymbol<*>) {
|
||||||
val declaration = symbol.fir as? FirCallableMemberDeclaration ?: return
|
val declaration = symbol.fir
|
||||||
if (declaration.isSubstitutionOrIntersectionOverride) return
|
if (declaration.isSubstitutionOrIntersectionOverride) return
|
||||||
|
|
||||||
// non-intersection or substitution fake override
|
// non-intersection or substitution fake override
|
||||||
@@ -235,7 +235,7 @@ class FirElementSerializer private constructor(
|
|||||||
memberScope.processAllProperties(::addDeclarationIfNeeded)
|
memberScope.processAllProperties(::addDeclarationIfNeeded)
|
||||||
|
|
||||||
for (declaration in declarations) {
|
for (declaration in declarations) {
|
||||||
if (declaration is FirCallableMemberDeclaration && declaration.isStatic) {
|
if (declaration is FirCallableDeclaration && declaration.isStatic) {
|
||||||
add(declaration)
|
add(declaration)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -817,7 +817,7 @@ class FirElementSerializer private constructor(
|
|||||||
|
|
||||||
private fun FirCallableDeclaration.isSuspendOrHasSuspendTypesInSignature(): Boolean {
|
private fun FirCallableDeclaration.isSuspendOrHasSuspendTypesInSignature(): Boolean {
|
||||||
// TODO (types in signature)
|
// TODO (types in signature)
|
||||||
return this is FirCallableMemberDeclaration && this.isSuspend
|
return this.isSuspend
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun writeVersionRequirementForInlineClasses(
|
private fun writeVersionRequirementForInlineClasses(
|
||||||
|
|||||||
+1
-1
@@ -91,7 +91,7 @@ abstract class FirSerializerExtension {
|
|||||||
get() = null
|
get() = null
|
||||||
|
|
||||||
interface ClassMembersProducer {
|
interface ClassMembersProducer {
|
||||||
fun getCallableMembers(klass: FirClass): Collection<FirCallableMemberDeclaration>
|
fun getCallableMembers(klass: FirClass): Collection<FirCallableDeclaration>
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -83,7 +83,7 @@ open class FirJvmMangleComputer(
|
|||||||
|
|
||||||
private fun FirDeclaration.visitParent() {
|
private fun FirDeclaration.visitParent() {
|
||||||
val (parentPackageFqName, parentClassId) = when (this) {
|
val (parentPackageFqName, parentClassId) = when (this) {
|
||||||
is FirCallableMemberDeclaration -> this.containingClass()?.classId?.let { it.packageFqName to it } ?: return
|
is FirCallableDeclaration -> this.containingClass()?.classId?.let { it.packageFqName to it } ?: return
|
||||||
is FirClassLikeDeclaration -> this.symbol.classId.let { it.packageFqName to it.outerClassId }
|
is FirClassLikeDeclaration -> this.symbol.classId.let { it.packageFqName to it.outerClassId }
|
||||||
else -> return
|
else -> return
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,8 +32,6 @@ import org.jetbrains.kotlin.fir.resolve.calls.originalConstructorIfTypeAlias
|
|||||||
import org.jetbrains.kotlin.fir.resolve.providers.FirProvider
|
import org.jetbrains.kotlin.fir.resolve.providers.FirProvider
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
import org.jetbrains.kotlin.fir.scopes.FirTypeScope
|
||||||
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
import org.jetbrains.kotlin.fir.scopes.ProcessorAction
|
||||||
import org.jetbrains.kotlin.fir.scopes.impl.delegatedWrapperData
|
|
||||||
import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope
|
|
||||||
import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope
|
import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope
|
||||||
import org.jetbrains.kotlin.fir.symbols.AccessorSymbol
|
import org.jetbrains.kotlin.fir.symbols.AccessorSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||||
@@ -281,7 +279,7 @@ internal tailrec fun FirCallableSymbol<*>.unwrapCallRepresentative(root: FirCall
|
|||||||
// interface B { fun foo() }
|
// interface B { fun foo() }
|
||||||
// interface C : A, B // for C.foo we've got an IR fake override
|
// interface C : A, B // for C.foo we've got an IR fake override
|
||||||
// for {A & B} we don't have such an IR declaration, so we're unwrapping it
|
// for {A & B} we don't have such an IR declaration, so we're unwrapping it
|
||||||
if (fir is FirCallableMemberDeclaration && fir.dispatchReceiverType is ConeIntersectionType) {
|
if (fir.dispatchReceiverType is ConeIntersectionType) {
|
||||||
return fir.baseForIntersectionOverride!!.symbol.unwrapCallRepresentative(this)
|
return fir.baseForIntersectionOverride!!.symbol.unwrapCallRepresentative(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -156,7 +156,7 @@ class Fir2IrClassifierStorage(
|
|||||||
|
|
||||||
private fun FirRegularClass.enumClassModality(): Modality {
|
private fun FirRegularClass.enumClassModality(): Modality {
|
||||||
return when {
|
return when {
|
||||||
declarations.any { it is FirCallableMemberDeclaration && it.modality == Modality.ABSTRACT } -> {
|
declarations.any { it is FirCallableDeclaration && it.modality == Modality.ABSTRACT } -> {
|
||||||
Modality.ABSTRACT
|
Modality.ABSTRACT
|
||||||
}
|
}
|
||||||
declarations.any { it is FirEnumEntry && it.initializer != null } -> {
|
declarations.any { it is FirEnumEntry && it.initializer != null } -> {
|
||||||
|
|||||||
+1
-1
@@ -1271,7 +1271,7 @@ class Fir2IrDeclarationStorage(
|
|||||||
|
|
||||||
private fun IrMutableAnnotationContainer.convertAnnotationsFromLibrary(firAnnotationContainer: FirAnnotationContainer) {
|
private fun IrMutableAnnotationContainer.convertAnnotationsFromLibrary(firAnnotationContainer: FirAnnotationContainer) {
|
||||||
if ((firAnnotationContainer as? FirDeclaration)?.isFromLibrary == true ||
|
if ((firAnnotationContainer as? FirDeclaration)?.isFromLibrary == true ||
|
||||||
(firAnnotationContainer is FirCallableMemberDeclaration && firAnnotationContainer.isSubstitutionOrIntersectionOverride)
|
(firAnnotationContainer is FirCallableDeclaration && firAnnotationContainer.isSubstitutionOrIntersectionOverride)
|
||||||
) {
|
) {
|
||||||
annotationGenerator.generate(this, firAnnotationContainer)
|
annotationGenerator.generate(this, firAnnotationContainer)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-2
@@ -6,7 +6,6 @@
|
|||||||
package org.jetbrains.kotlin.fir.backend
|
package org.jetbrains.kotlin.fir.backend
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirElement
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeAlias
|
import org.jetbrains.kotlin.fir.declarations.FirTypeAlias
|
||||||
import org.jetbrains.kotlin.fir.expressions.*
|
import org.jetbrains.kotlin.fir.expressions.*
|
||||||
import org.jetbrains.kotlin.fir.expressions.impl.FirStubStatement
|
import org.jetbrains.kotlin.fir.expressions.impl.FirStubStatement
|
||||||
@@ -292,7 +291,7 @@ class Fir2IrImplicitCastInserter(
|
|||||||
): IrExpression {
|
): IrExpression {
|
||||||
val referencedDeclaration =
|
val referencedDeclaration =
|
||||||
((calleeReference as? FirResolvedNamedReference)?.resolvedSymbol as? FirCallableSymbol<*>)?.unwrapCallRepresentative()
|
((calleeReference as? FirResolvedNamedReference)?.resolvedSymbol as? FirCallableSymbol<*>)?.unwrapCallRepresentative()
|
||||||
?.fir as? FirCallableMemberDeclaration
|
?.fir
|
||||||
|
|
||||||
val dispatchReceiverType =
|
val dispatchReceiverType =
|
||||||
referencedDeclaration?.dispatchReceiverType as? ConeClassLikeType
|
referencedDeclaration?.dispatchReceiverType as? ConeClassLikeType
|
||||||
|
|||||||
+1
-1
@@ -822,7 +822,7 @@ class CallAndReferenceGenerator(
|
|||||||
if (ownerFunction?.extensionReceiverParameter != null) {
|
if (ownerFunction?.extensionReceiverParameter != null) {
|
||||||
extensionReceiver = qualifiedAccess.findIrExtensionReceiver(explicitReceiverExpression)?.let {
|
extensionReceiver = qualifiedAccess.findIrExtensionReceiver(explicitReceiverExpression)?.let {
|
||||||
((qualifiedAccess.calleeReference as FirResolvedNamedReference)
|
((qualifiedAccess.calleeReference as FirResolvedNamedReference)
|
||||||
.resolvedSymbol.fir as? FirCallableMemberDeclaration)?.receiverTypeRef?.let { receiverType ->
|
.resolvedSymbol.fir as? FirCallableDeclaration)?.receiverTypeRef?.let { receiverType ->
|
||||||
with(visitor.implicitCastInserter) {
|
with(visitor.implicitCastInserter) {
|
||||||
it.cast(
|
it.cast(
|
||||||
qualifiedAccess.extensionReceiver,
|
qualifiedAccess.extensionReceiver,
|
||||||
|
|||||||
+1
-1
@@ -201,7 +201,7 @@ internal class DelegatedMemberGenerator(
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun <S : FirCallableSymbol<D>, D : FirCallableMemberDeclaration> S.unwrapDelegateTarget(
|
private fun <S : FirCallableSymbol<D>, D : FirCallableDeclaration> S.unwrapDelegateTarget(
|
||||||
subClassLookupTag: ConeClassLikeLookupTag,
|
subClassLookupTag: ConeClassLikeLookupTag,
|
||||||
firField: FirField,
|
firField: FirField,
|
||||||
): D? {
|
): D? {
|
||||||
|
|||||||
+2
-2
@@ -54,7 +54,7 @@ class FakeOverrideGenerator(
|
|||||||
return conversionScope.withProperty(this, firProperty = null, f)
|
return conversionScope.withProperty(this, firProperty = null, f)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FirCallableMemberDeclaration.allowsToHaveFakeOverrideIn(klass: FirClass): Boolean {
|
private fun FirCallableDeclaration.allowsToHaveFakeOverrideIn(klass: FirClass): Boolean {
|
||||||
if (!allowsToHaveFakeOverride) return false
|
if (!allowsToHaveFakeOverride) return false
|
||||||
if (this.visibility != JavaDescriptorVisibilities.PACKAGE_VISIBILITY) return true
|
if (this.visibility != JavaDescriptorVisibilities.PACKAGE_VISIBILITY) return true
|
||||||
return this.symbol.callableId.packageName == klass.symbol.classId.packageFqName
|
return this.symbol.callableId.packageName == klass.symbol.classId.packageFqName
|
||||||
@@ -179,7 +179,7 @@ class FakeOverrideGenerator(
|
|||||||
private fun FirCallableSymbol<*>.shouldHaveComputedBaseSymbolsForClass(classLookupTag: ConeClassLikeLookupTag): Boolean =
|
private fun FirCallableSymbol<*>.shouldHaveComputedBaseSymbolsForClass(classLookupTag: ConeClassLikeLookupTag): Boolean =
|
||||||
fir.origin.fromSupertypes && dispatchReceiverClassOrNull() == classLookupTag
|
fir.origin.fromSupertypes && dispatchReceiverClassOrNull() == classLookupTag
|
||||||
|
|
||||||
private inline fun <reified D : FirCallableMemberDeclaration, reified S : FirCallableSymbol<D>, reified I : IrDeclaration> createFakeOverriddenIfNeeded(
|
private inline fun <reified D : FirCallableDeclaration, reified S : FirCallableSymbol<D>, reified I : IrDeclaration> createFakeOverriddenIfNeeded(
|
||||||
klass: FirClass,
|
klass: FirClass,
|
||||||
irClass: IrClass,
|
irClass: IrClass,
|
||||||
isLocal: Boolean,
|
isLocal: Boolean,
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import org.jetbrains.kotlin.descriptors.FunctionDescriptor
|
|||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
|
import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
|
||||||
import org.jetbrains.kotlin.fir.backend.declareThisReceiverParameter
|
import org.jetbrains.kotlin.fir.backend.declareThisReceiverParameter
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.hasAnnotation
|
import org.jetbrains.kotlin.fir.declarations.hasAnnotation
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.*
|
import org.jetbrains.kotlin.fir.declarations.utils.*
|
||||||
import org.jetbrains.kotlin.fir.symbols.Fir2IrSimpleFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.Fir2IrSimpleFunctionSymbol
|
||||||
@@ -29,7 +29,7 @@ import org.jetbrains.kotlin.name.ClassId
|
|||||||
import org.jetbrains.kotlin.resolve.annotations.JVM_STATIC_ANNOTATION_FQ_NAME
|
import org.jetbrains.kotlin.resolve.annotations.JVM_STATIC_ANNOTATION_FQ_NAME
|
||||||
import kotlin.properties.ReadWriteProperty
|
import kotlin.properties.ReadWriteProperty
|
||||||
|
|
||||||
abstract class AbstractFir2IrLazyFunction<F : FirCallableMemberDeclaration>(
|
abstract class AbstractFir2IrLazyFunction<F : FirCallableDeclaration>(
|
||||||
components: Fir2IrComponents,
|
components: Fir2IrComponents,
|
||||||
override val startOffset: Int,
|
override val startOffset: Int,
|
||||||
override val endOffset: Int,
|
override val endOffset: Int,
|
||||||
@@ -87,7 +87,7 @@ abstract class AbstractFir2IrLazyFunction<F : FirCallableMemberDeclaration>(
|
|||||||
|
|
||||||
protected fun shouldHaveDispatchReceiver(
|
protected fun shouldHaveDispatchReceiver(
|
||||||
containingClass: IrClass,
|
containingClass: IrClass,
|
||||||
staticOwner: FirCallableMemberDeclaration
|
staticOwner: FirCallableDeclaration
|
||||||
): Boolean {
|
): Boolean {
|
||||||
return !staticOwner.isStatic &&
|
return !staticOwner.isStatic &&
|
||||||
(!containingClass.isObject || containingClass.isCompanion || !staticOwner.hasAnnotation(JVM_STATIC_CLASS_ID))
|
(!containingClass.isObject || containingClass.isCompanion || !staticOwner.hasAnnotation(JVM_STATIC_CLASS_ID))
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.fir.backend.ConversionTypeContext
|
|||||||
import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
|
import org.jetbrains.kotlin.fir.backend.Fir2IrComponents
|
||||||
import org.jetbrains.kotlin.fir.backend.generateOverriddenAccessorSymbols
|
import org.jetbrains.kotlin.fir.backend.generateOverriddenAccessorSymbols
|
||||||
import org.jetbrains.kotlin.fir.backend.toIrType
|
import org.jetbrains.kotlin.fir.backend.toIrType
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
@@ -38,12 +38,12 @@ class Fir2IrLazyPropertyAccessor(
|
|||||||
firParentClass: FirRegularClass,
|
firParentClass: FirRegularClass,
|
||||||
symbol: Fir2IrSimpleFunctionSymbol,
|
symbol: Fir2IrSimpleFunctionSymbol,
|
||||||
isFakeOverride: Boolean
|
isFakeOverride: Boolean
|
||||||
) : AbstractFir2IrLazyFunction<FirCallableMemberDeclaration>(components, startOffset, endOffset, origin, symbol, isFakeOverride) {
|
) : AbstractFir2IrLazyFunction<FirCallableDeclaration>(components, startOffset, endOffset, origin, symbol, isFakeOverride) {
|
||||||
init {
|
init {
|
||||||
symbol.bind(this)
|
symbol.bind(this)
|
||||||
}
|
}
|
||||||
|
|
||||||
override val fir: FirCallableMemberDeclaration
|
override val fir: FirCallableDeclaration
|
||||||
get() = firAccessor ?: firParentProperty
|
get() = firAccessor ?: firParentProperty
|
||||||
|
|
||||||
// TODO: investigate why some deserialized properties are inline
|
// TODO: investigate why some deserialized properties are inline
|
||||||
|
|||||||
+2
-2
@@ -62,7 +62,7 @@ class FirBasedSignatureComposer(private val mangler: FirMangler) : Fir2IrSignatu
|
|||||||
override fun composeSignature(declaration: FirDeclaration, containingClass: ConeClassLikeLookupTag?): IdSignature? {
|
override fun composeSignature(declaration: FirDeclaration, containingClass: ConeClassLikeLookupTag?): IdSignature? {
|
||||||
if (declaration is FirAnonymousObject || declaration is FirAnonymousFunction) return null
|
if (declaration is FirAnonymousObject || declaration is FirAnonymousFunction) return null
|
||||||
if (declaration is FirRegularClass && declaration.classId.isLocal) return null
|
if (declaration is FirRegularClass && declaration.classId.isLocal) return null
|
||||||
if (declaration is FirCallableMemberDeclaration) {
|
if (declaration is FirCallableDeclaration) {
|
||||||
if (declaration.visibility == Visibilities.Local) return null
|
if (declaration.visibility == Visibilities.Local) return null
|
||||||
if (declaration.dispatchReceiverClassOrNull()?.classId?.isLocal == true || containingClass?.classId?.isLocal == true) return null
|
if (declaration.dispatchReceiverClassOrNull()?.classId?.isLocal == true || containingClass?.classId?.isLocal == true) return null
|
||||||
}
|
}
|
||||||
@@ -87,7 +87,7 @@ class FirBasedSignatureComposer(private val mangler: FirMangler) : Fir2IrSignatu
|
|||||||
classId.packageFqName.asString(), classId.relativeClassName.asString(), builder.hashId, builder.mask
|
classId.packageFqName.asString(), classId.relativeClassName.asString(), builder.hashId, builder.mask
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
is FirCallableMemberDeclaration -> {
|
is FirCallableDeclaration -> {
|
||||||
if (declaration.visibility == Visibilities.Private) return null
|
if (declaration.visibility == Visibilities.Private) return null
|
||||||
val containingClassId = containingClass?.classId
|
val containingClassId = containingClass?.classId
|
||||||
|
|
||||||
|
|||||||
+13
-13
@@ -40,7 +40,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs
|
|||||||
class FirSignatureEnhancement(
|
class FirSignatureEnhancement(
|
||||||
private val owner: FirRegularClass,
|
private val owner: FirRegularClass,
|
||||||
private val session: FirSession,
|
private val session: FirSession,
|
||||||
private val overridden: FirSimpleFunction.() -> List<FirCallableMemberDeclaration>
|
private val overridden: FirSimpleFunction.() -> List<FirCallableDeclaration>
|
||||||
) {
|
) {
|
||||||
/*
|
/*
|
||||||
* FirSignatureEnhancement may be created with library session which doesn't have single module data,
|
* FirSignatureEnhancement may be created with library session which doesn't have single module data,
|
||||||
@@ -306,7 +306,7 @@ class FirSignatureEnhancement(
|
|||||||
|
|
||||||
private fun enhanceReceiverType(
|
private fun enhanceReceiverType(
|
||||||
ownerFunction: FirJavaMethod,
|
ownerFunction: FirJavaMethod,
|
||||||
overriddenMembers: List<FirCallableMemberDeclaration>,
|
overriddenMembers: List<FirCallableDeclaration>,
|
||||||
memberContext: FirJavaEnhancementContext
|
memberContext: FirJavaEnhancementContext
|
||||||
): FirResolvedTypeRef {
|
): FirResolvedTypeRef {
|
||||||
val signatureParts = ownerFunction.partsForValueParameter(
|
val signatureParts = ownerFunction.partsForValueParameter(
|
||||||
@@ -322,7 +322,7 @@ class FirSignatureEnhancement(
|
|||||||
|
|
||||||
private fun enhanceValueParameterType(
|
private fun enhanceValueParameterType(
|
||||||
ownerFunction: FirFunction,
|
ownerFunction: FirFunction,
|
||||||
overriddenMembers: List<FirCallableMemberDeclaration>,
|
overriddenMembers: List<FirCallableDeclaration>,
|
||||||
hasReceiver: Boolean,
|
hasReceiver: Boolean,
|
||||||
memberContext: FirJavaEnhancementContext,
|
memberContext: FirJavaEnhancementContext,
|
||||||
predefinedEnhancementInfo: PredefinedFunctionEnhancementInfo?,
|
predefinedEnhancementInfo: PredefinedFunctionEnhancementInfo?,
|
||||||
@@ -348,8 +348,8 @@ class FirSignatureEnhancement(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun enhanceReturnType(
|
private fun enhanceReturnType(
|
||||||
owner: FirCallableMemberDeclaration,
|
owner: FirCallableDeclaration,
|
||||||
overriddenMembers: List<FirCallableMemberDeclaration>,
|
overriddenMembers: List<FirCallableDeclaration>,
|
||||||
memberContext: FirJavaEnhancementContext,
|
memberContext: FirJavaEnhancementContext,
|
||||||
predefinedEnhancementInfo: PredefinedFunctionEnhancementInfo?
|
predefinedEnhancementInfo: PredefinedFunctionEnhancementInfo?
|
||||||
): FirResolvedTypeRef {
|
): FirResolvedTypeRef {
|
||||||
@@ -370,21 +370,21 @@ class FirSignatureEnhancement(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private sealed class TypeInSignature {
|
private sealed class TypeInSignature {
|
||||||
abstract fun getTypeRef(member: FirCallableMemberDeclaration): FirTypeRef
|
abstract fun getTypeRef(member: FirCallableDeclaration): FirTypeRef
|
||||||
|
|
||||||
object Return : TypeInSignature() {
|
object Return : TypeInSignature() {
|
||||||
override fun getTypeRef(member: FirCallableMemberDeclaration): FirTypeRef = member.returnTypeRef
|
override fun getTypeRef(member: FirCallableDeclaration): FirTypeRef = member.returnTypeRef
|
||||||
}
|
}
|
||||||
|
|
||||||
object Receiver : TypeInSignature() {
|
object Receiver : TypeInSignature() {
|
||||||
override fun getTypeRef(member: FirCallableMemberDeclaration): FirTypeRef {
|
override fun getTypeRef(member: FirCallableDeclaration): FirTypeRef {
|
||||||
if (member is FirJavaMethod) return member.valueParameters[0].returnTypeRef
|
if (member is FirJavaMethod) return member.valueParameters[0].returnTypeRef
|
||||||
return member.receiverTypeRef!!
|
return member.receiverTypeRef!!
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class ValueParameter(val hasReceiver: Boolean, val index: Int) : TypeInSignature() {
|
class ValueParameter(val hasReceiver: Boolean, val index: Int) : TypeInSignature() {
|
||||||
override fun getTypeRef(member: FirCallableMemberDeclaration): FirTypeRef {
|
override fun getTypeRef(member: FirCallableDeclaration): FirTypeRef {
|
||||||
if (hasReceiver && member is FirJavaMethod) {
|
if (hasReceiver && member is FirJavaMethod) {
|
||||||
return member.valueParameters[index + 1].returnTypeRef
|
return member.valueParameters[index + 1].returnTypeRef
|
||||||
}
|
}
|
||||||
@@ -395,12 +395,12 @@ class FirSignatureEnhancement(
|
|||||||
|
|
||||||
private fun FirFunction.partsForValueParameter(
|
private fun FirFunction.partsForValueParameter(
|
||||||
typeQualifierResolver: FirAnnotationTypeQualifierResolver,
|
typeQualifierResolver: FirAnnotationTypeQualifierResolver,
|
||||||
overriddenMembers: List<FirCallableMemberDeclaration>,
|
overriddenMembers: List<FirCallableDeclaration>,
|
||||||
// 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
|
||||||
): EnhancementSignatureParts = (this as FirCallableMemberDeclaration).parts(
|
): EnhancementSignatureParts = (this as FirCallableDeclaration).parts(
|
||||||
typeQualifierResolver,
|
typeQualifierResolver,
|
||||||
overriddenMembers,
|
overriddenMembers,
|
||||||
parameterContainer, false,
|
parameterContainer, false,
|
||||||
@@ -411,9 +411,9 @@ class FirSignatureEnhancement(
|
|||||||
typeInSignature
|
typeInSignature
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun FirCallableMemberDeclaration.parts(
|
private fun FirCallableDeclaration.parts(
|
||||||
typeQualifierResolver: FirAnnotationTypeQualifierResolver,
|
typeQualifierResolver: FirAnnotationTypeQualifierResolver,
|
||||||
overriddenMembers: List<FirCallableMemberDeclaration>,
|
overriddenMembers: List<FirCallableDeclaration>,
|
||||||
typeContainer: FirAnnotationContainer?,
|
typeContainer: FirAnnotationContainer?,
|
||||||
isCovariant: Boolean,
|
isCovariant: Boolean,
|
||||||
containerContext: FirJavaEnhancementContext,
|
containerContext: FirJavaEnhancementContext,
|
||||||
|
|||||||
+3
-3
@@ -6,7 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.fir.java.scopes
|
package org.jetbrains.kotlin.fir.java.scopes
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||||
import org.jetbrains.kotlin.fir.java.enhancement.FirSignatureEnhancement
|
import org.jetbrains.kotlin.fir.java.enhancement.FirSignatureEnhancement
|
||||||
@@ -64,14 +64,14 @@ class JavaClassMembersEnhancementScope(
|
|||||||
return super.processFunctionsByName(name, processor)
|
return super.processFunctionsByName(name, processor)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FirCallableMemberDeclaration.overriddenMembers(name: Name): List<FirCallableMemberDeclaration> {
|
private fun FirCallableDeclaration.overriddenMembers(name: Name): List<FirCallableDeclaration> {
|
||||||
val backMap = overrideBindCache.getOrPut(name) {
|
val backMap = overrideBindCache.getOrPut(name) {
|
||||||
useSiteMemberScope
|
useSiteMemberScope
|
||||||
.overrideByBase
|
.overrideByBase
|
||||||
.toList()
|
.toList()
|
||||||
.groupBy({ (_, key) -> key }, { (value) -> value })
|
.groupBy({ (_, key) -> key }, { (value) -> value })
|
||||||
}
|
}
|
||||||
return backMap[this.symbol]?.map { it.fir as FirCallableMemberDeclaration } ?: emptyList()
|
return backMap[this.symbol]?.map { it.fir } ?: emptyList()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun processClassifiersByNameWithSubstitution(name: Name, processor: (FirClassifierSymbol<*>, ConeSubstitutor) -> Unit) {
|
override fun processClassifiersByNameWithSubstitution(name: Name, processor: (FirClassifierSymbol<*>, ConeSubstitutor) -> Unit) {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.java.scopes
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
||||||
@@ -101,7 +101,7 @@ class JavaOverrideChecker internal constructor(
|
|||||||
argument is ConeKotlinTypeProjection && argument.type.isTypeParameterDependent()
|
argument is ConeKotlinTypeProjection && argument.type.isTypeParameterDependent()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FirCallableMemberDeclaration.isTypeParameterDependent(): Boolean =
|
private fun FirCallableDeclaration.isTypeParameterDependent(): Boolean =
|
||||||
typeParameters.isNotEmpty() || returnTypeRef.isTypeParameterDependent() ||
|
typeParameters.isNotEmpty() || returnTypeRef.isTypeParameterDependent() ||
|
||||||
receiverTypeRef.isTypeParameterDependent() ||
|
receiverTypeRef.isTypeParameterDependent() ||
|
||||||
this is FirSimpleFunction && valueParameters.any { it.returnTypeRef.isTypeParameterDependent() }
|
this is FirSimpleFunction && valueParameters.any { it.returnTypeRef.isTypeParameterDependent() }
|
||||||
@@ -127,7 +127,7 @@ class JavaOverrideChecker internal constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun FirCallableMemberDeclaration.extractTypeParametersTo(result: MutableCollection<FirTypeParameterRef>) {
|
private fun FirCallableDeclaration.extractTypeParametersTo(result: MutableCollection<FirTypeParameterRef>) {
|
||||||
result += typeParameters
|
result += typeParameters
|
||||||
returnTypeRef.extractTypeParametersTo(result)
|
returnTypeRef.extractTypeParametersTo(result)
|
||||||
receiverTypeRef?.extractTypeParametersTo(result)
|
receiverTypeRef?.extractTypeParametersTo(result)
|
||||||
@@ -137,8 +137,8 @@ class JavaOverrideChecker internal constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun buildTypeParametersSubstitutorIfCompatible(
|
override fun buildTypeParametersSubstitutorIfCompatible(
|
||||||
overrideCandidate: FirCallableMemberDeclaration,
|
overrideCandidate: FirCallableDeclaration,
|
||||||
baseDeclaration: FirCallableMemberDeclaration
|
baseDeclaration: FirCallableDeclaration
|
||||||
): ConeSubstitutor {
|
): ConeSubstitutor {
|
||||||
if (!overrideCandidate.isTypeParameterDependent() && !baseDeclaration.isTypeParameterDependent()) {
|
if (!overrideCandidate.isTypeParameterDependent() && !baseDeclaration.isTypeParameterDependent()) {
|
||||||
return ConeSubstitutor.Empty
|
return ConeSubstitutor.Empty
|
||||||
@@ -162,7 +162,7 @@ class JavaOverrideChecker internal constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun isOverriddenProperty(overrideCandidate: FirCallableMemberDeclaration, baseDeclaration: FirProperty): Boolean {
|
override fun isOverriddenProperty(overrideCandidate: FirCallableDeclaration, baseDeclaration: FirProperty): Boolean {
|
||||||
if (baseDeclaration.modality == Modality.FINAL) return false
|
if (baseDeclaration.modality == Modality.FINAL) return false
|
||||||
val receiverTypeRef = baseDeclaration.receiverTypeRef
|
val receiverTypeRef = baseDeclaration.receiverTypeRef
|
||||||
return when (overrideCandidate) {
|
return when (overrideCandidate) {
|
||||||
|
|||||||
+6
-9
@@ -6,10 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.fir.resolve.calls.jvm
|
package org.jetbrains.kotlin.fir.resolve.calls.jvm
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.containingClass
|
import org.jetbrains.kotlin.fir.containingClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.*
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirConstructor
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirVariable
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
|
import org.jetbrains.kotlin.fir.declarations.utils.isExpect
|
||||||
import org.jetbrains.kotlin.fir.resolve.calls.AbstractConeCallConflictResolver
|
import org.jetbrains.kotlin.fir.resolve.calls.AbstractConeCallConflictResolver
|
||||||
import org.jetbrains.kotlin.fir.resolve.calls.Candidate
|
import org.jetbrains.kotlin.fir.resolve.calls.Candidate
|
||||||
@@ -36,10 +33,10 @@ class ConeEquivalentCallConflictResolver(
|
|||||||
val result = mutableSetOf<Candidate>()
|
val result = mutableSetOf<Candidate>()
|
||||||
outerLoop@ for (myCandidate in candidates) {
|
outerLoop@ for (myCandidate in candidates) {
|
||||||
val me = myCandidate.symbol.fir
|
val me = myCandidate.symbol.fir
|
||||||
if (me is FirCallableMemberDeclaration && me.symbol.containingClass() == null) {
|
if (me is FirCallableDeclaration && me.symbol.containingClass() == null) {
|
||||||
for (otherCandidate in result) {
|
for (otherCandidate in result) {
|
||||||
val other = otherCandidate.symbol.fir
|
val other = otherCandidate.symbol.fir
|
||||||
if (other is FirCallableMemberDeclaration && other.symbol.containingClass() == null) {
|
if (other is FirCallableDeclaration && other.symbol.containingClass() == null) {
|
||||||
if (areEquivalentTopLevelCallables(me, myCandidate, other, otherCandidate)) {
|
if (areEquivalentTopLevelCallables(me, myCandidate, other, otherCandidate)) {
|
||||||
continue@outerLoop
|
continue@outerLoop
|
||||||
}
|
}
|
||||||
@@ -52,9 +49,9 @@ class ConeEquivalentCallConflictResolver(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun areEquivalentTopLevelCallables(
|
private fun areEquivalentTopLevelCallables(
|
||||||
first: FirCallableMemberDeclaration,
|
first: FirCallableDeclaration,
|
||||||
firstCandidate: Candidate,
|
firstCandidate: Candidate,
|
||||||
second: FirCallableMemberDeclaration,
|
second: FirCallableDeclaration,
|
||||||
secondCandidate: Candidate
|
secondCandidate: Candidate
|
||||||
): Boolean {
|
): Boolean {
|
||||||
if (first.symbol.callableId != second.symbol.callableId) return false
|
if (first.symbol.callableId != second.symbol.callableId) return false
|
||||||
@@ -68,7 +65,7 @@ class ConeEquivalentCallConflictResolver(
|
|||||||
compareCallsByUsedArguments(secondSignature, firstSignature, false)
|
compareCallsByUsedArguments(secondSignature, firstSignature, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createFlatSignature(call: Candidate, declaration: FirCallableMemberDeclaration): FlatSignature<Candidate> {
|
private fun createFlatSignature(call: Candidate, declaration: FirCallableDeclaration): FlatSignature<Candidate> {
|
||||||
return when (declaration) {
|
return when (declaration) {
|
||||||
is FirSimpleFunction -> createFlatSignature(call, declaration)
|
is FirSimpleFunction -> createFlatSignature(call, declaration)
|
||||||
is FirConstructor -> createFlatSignature(call, declaration)
|
is FirConstructor -> createFlatSignature(call, declaration)
|
||||||
|
|||||||
+1
-1
@@ -63,7 +63,7 @@ internal object CheckCallableReferenceExpectedType : CheckerStage() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val declarationReceiverType: ConeKotlinType? =
|
val declarationReceiverType: ConeKotlinType? =
|
||||||
(fir as? FirCallableMemberDeclaration)?.receiverTypeRef?.coneType
|
fir.receiverTypeRef?.coneType
|
||||||
?.let(candidate.substitutor::substituteOrSelf)
|
?.let(candidate.substitutor::substituteOrSelf)
|
||||||
|
|
||||||
if (resultingReceiverType != null && declarationReceiverType != null) {
|
if (resultingReceiverType != null && declarationReceiverType != null) {
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.resolve.calls
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||||
import org.jetbrains.kotlin.descriptors.Modality
|
import org.jetbrains.kotlin.descriptors.Modality
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.modality
|
import org.jetbrains.kotlin.fir.declarations.utils.modality
|
||||||
import org.jetbrains.kotlin.fir.dispatchReceiverClassOrNull
|
import org.jetbrains.kotlin.fir.dispatchReceiverClassOrNull
|
||||||
@@ -89,7 +89,7 @@ private fun BodyResolveComponents.resolveSupertypesByPropertyName(supertypes: Co
|
|||||||
private inline fun BodyResolveComponents.resolveSupertypesByMembers(
|
private inline fun BodyResolveComponents.resolveSupertypesByMembers(
|
||||||
supertypes: Collection<ConeKotlinType>,
|
supertypes: Collection<ConeKotlinType>,
|
||||||
allowNonConcreteMembers: Boolean,
|
allowNonConcreteMembers: Boolean,
|
||||||
getMembers: (ConeKotlinType) -> Collection<FirCallableMemberDeclaration>
|
getMembers: (ConeKotlinType) -> Collection<FirCallableDeclaration>
|
||||||
): Collection<ConeKotlinType> {
|
): Collection<ConeKotlinType> {
|
||||||
val typesWithConcreteMembers = SmartList<ConeKotlinType>()
|
val typesWithConcreteMembers = SmartList<ConeKotlinType>()
|
||||||
val typesWithNonConcreteMembers = SmartList<ConeKotlinType>()
|
val typesWithNonConcreteMembers = SmartList<ConeKotlinType>()
|
||||||
@@ -121,7 +121,7 @@ private inline fun BodyResolveComponents.resolveSupertypesByMembers(
|
|||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
private fun BodyResolveComponents.getFunctionMembers(type: ConeKotlinType, name: Name): Collection<FirCallableMemberDeclaration> =
|
private fun BodyResolveComponents.getFunctionMembers(type: ConeKotlinType, name: Name): Collection<FirCallableDeclaration> =
|
||||||
buildList {
|
buildList {
|
||||||
type.scope(session, scopeSession, FakeOverrideTypeCalculator.DoNothing)?.processFunctionsByName(name) {
|
type.scope(session, scopeSession, FakeOverrideTypeCalculator.DoNothing)?.processFunctionsByName(name) {
|
||||||
add(it.fir)
|
add(it.fir)
|
||||||
@@ -129,7 +129,7 @@ private fun BodyResolveComponents.getFunctionMembers(type: ConeKotlinType, name:
|
|||||||
}
|
}
|
||||||
|
|
||||||
@OptIn(ExperimentalStdlibApi::class)
|
@OptIn(ExperimentalStdlibApi::class)
|
||||||
private fun BodyResolveComponents.getPropertyMembers(type: ConeKotlinType, name: Name): Collection<FirCallableMemberDeclaration> =
|
private fun BodyResolveComponents.getPropertyMembers(type: ConeKotlinType, name: Name): Collection<FirCallableDeclaration> =
|
||||||
buildList {
|
buildList {
|
||||||
type.scope(session, scopeSession, FakeOverrideTypeCalculator.DoNothing)?.processPropertiesByName(name) {
|
type.scope(session, scopeSession, FakeOverrideTypeCalculator.DoNothing)?.processPropertiesByName(name) {
|
||||||
addIfNotNull(it.fir as? FirProperty)
|
addIfNotNull(it.fir as? FirProperty)
|
||||||
@@ -137,7 +137,7 @@ private fun BodyResolveComponents.getPropertyMembers(type: ConeKotlinType, name:
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun BodyResolveComponents.isConcreteMember(supertype: ConeKotlinType, member: FirCallableMemberDeclaration): Boolean {
|
private fun BodyResolveComponents.isConcreteMember(supertype: ConeKotlinType, member: FirCallableDeclaration): Boolean {
|
||||||
// "Concrete member" is a function or a property that is not abstract,
|
// "Concrete member" is a function or a property that is not abstract,
|
||||||
// and is not an implicit fake override for a method of Any on an interface.
|
// and is not an implicit fake override for a method of Any on an interface.
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -138,7 +138,7 @@ class FirDelegatedPropertyInferenceSession(
|
|||||||
?: when (val container = components.container) {
|
?: when (val container = components.container) {
|
||||||
is FirRegularClass -> container.defaultType()
|
is FirRegularClass -> container.defaultType()
|
||||||
is FirAnonymousObject -> container.defaultType()
|
is FirAnonymousObject -> container.defaultType()
|
||||||
is FirCallableMemberDeclaration -> container.dispatchReceiverType
|
is FirCallableDeclaration -> container.dispatchReceiverType
|
||||||
else -> null
|
else -> null
|
||||||
} ?: components.session.builtinTypes.nullableNothingType.type
|
} ?: components.session.builtinTypes.nullableNothingType.type
|
||||||
val valueParameterForThis = (symbol as? FirFunctionSymbol<*>)?.fir?.valueParameters?.firstOrNull() ?: return
|
val valueParameterForThis = (symbol as? FirFunctionSymbol<*>)?.fir?.valueParameters?.firstOrNull() ?: return
|
||||||
|
|||||||
+1
-1
@@ -139,7 +139,7 @@ class FirProviderImpl(val session: FirSession, val kotlinScopeProvider: FirKotli
|
|||||||
data.state.callableContainerMap[symbol] = data.file
|
data.state.callableContainerMap[symbol] = data.file
|
||||||
}
|
}
|
||||||
|
|
||||||
private inline fun <reified D : FirCallableMemberDeclaration, S : FirCallableSymbol<D>> registerCallable(
|
private inline fun <reified D : FirCallableDeclaration, S : FirCallableSymbol<D>> registerCallable(
|
||||||
symbol: S,
|
symbol: S,
|
||||||
data: FirRecorderData,
|
data: FirRecorderData,
|
||||||
map: MutableMap<CallableId, List<S>>
|
map: MutableMap<CallableId, List<S>>
|
||||||
|
|||||||
+1
-1
@@ -498,7 +498,7 @@ class FirCallCompletionResultsWriterTransformer(
|
|||||||
private fun computeTypeArgumentTypes(
|
private fun computeTypeArgumentTypes(
|
||||||
candidate: Candidate,
|
candidate: Candidate,
|
||||||
): List<ConeKotlinType> {
|
): List<ConeKotlinType> {
|
||||||
val declaration = candidate.symbol.fir as? FirCallableMemberDeclaration ?: return emptyList()
|
val declaration = candidate.symbol.fir as? FirCallableDeclaration ?: return emptyList()
|
||||||
|
|
||||||
return declaration.typeParameters.map { ConeTypeParameterTypeImpl(it.symbol.toLookupTag(), false) }
|
return declaration.typeParameters.map { ConeTypeParameterTypeImpl(it.symbol.toLookupTag(), false) }
|
||||||
.map { candidate.substitutor.substituteOrSelf(it) }
|
.map { candidate.substitutor.substituteOrSelf(it) }
|
||||||
|
|||||||
+2
-2
@@ -56,10 +56,10 @@ fun <F : FirClassLikeDeclaration> F.runStatusResolveForLocalClass(
|
|||||||
}
|
}
|
||||||
|
|
||||||
abstract class ResolvedStatusCalculator {
|
abstract class ResolvedStatusCalculator {
|
||||||
abstract fun tryCalculateResolvedStatus(declaration: FirCallableMemberDeclaration): FirResolvedDeclarationStatus
|
abstract fun tryCalculateResolvedStatus(declaration: FirCallableDeclaration): FirResolvedDeclarationStatus
|
||||||
|
|
||||||
object Default : ResolvedStatusCalculator() {
|
object Default : ResolvedStatusCalculator() {
|
||||||
override fun tryCalculateResolvedStatus(declaration: FirCallableMemberDeclaration): FirResolvedDeclarationStatus {
|
override fun tryCalculateResolvedStatus(declaration: FirCallableDeclaration): FirResolvedDeclarationStatus {
|
||||||
val status = declaration.status
|
val status = declaration.status
|
||||||
require(status is FirResolvedDeclarationStatus) {
|
require(status is FirResolvedDeclarationStatus) {
|
||||||
"Status of ${declaration.render()} is unresolved"
|
"Status of ${declaration.render()} is unresolved"
|
||||||
|
|||||||
+2
-2
@@ -82,7 +82,7 @@ class FirStatusResolver(
|
|||||||
return resolveStatus(function, function.status, containingClass, null, isLocal) l@{
|
return resolveStatus(function, function.status, containingClass, null, isLocal) l@{
|
||||||
if (containingClass == null) return@l emptyList()
|
if (containingClass == null) return@l emptyList()
|
||||||
@Suppress("RemoveExplicitTypeArguments") // Workaround for KT-42175
|
@Suppress("RemoveExplicitTypeArguments") // Workaround for KT-42175
|
||||||
buildList<FirCallableMemberDeclaration> {
|
buildList<FirCallableDeclaration> {
|
||||||
val scope = containingClass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = false)
|
val scope = containingClass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = false)
|
||||||
val symbol = function.symbol
|
val symbol = function.symbol
|
||||||
scope.processFunctionsByName(function.name) {}
|
scope.processFunctionsByName(function.name) {}
|
||||||
@@ -237,7 +237,7 @@ class FirStatusResolver(
|
|||||||
): Modality {
|
): Modality {
|
||||||
return when (declaration) {
|
return when (declaration) {
|
||||||
is FirRegularClass -> if (declaration.classKind == ClassKind.INTERFACE) Modality.ABSTRACT else Modality.FINAL
|
is FirRegularClass -> if (declaration.classKind == ClassKind.INTERFACE) Modality.ABSTRACT else Modality.FINAL
|
||||||
is FirCallableMemberDeclaration -> {
|
is FirCallableDeclaration -> {
|
||||||
when {
|
when {
|
||||||
containingClass == null -> Modality.FINAL
|
containingClass == null -> Modality.FINAL
|
||||||
containingClass.classKind == ClassKind.INTERFACE -> {
|
containingClass.classKind == ClassKind.INTERFACE -> {
|
||||||
|
|||||||
+1
-1
@@ -82,7 +82,7 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor
|
|||||||
return ((data as? ResolutionMode.WithStatus)?.status ?: declarationStatus)
|
return ((data as? ResolutionMode.WithStatus)?.status ?: declarationStatus)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun prepareSignatureForBodyResolve(callableMember: FirCallableMemberDeclaration) {
|
private fun prepareSignatureForBodyResolve(callableMember: FirCallableDeclaration) {
|
||||||
callableMember.transformReturnTypeRef(transformer, ResolutionMode.ContextIndependent)
|
callableMember.transformReturnTypeRef(transformer, ResolutionMode.ContextIndependent)
|
||||||
callableMember.transformReceiverTypeRef(transformer, ResolutionMode.ContextIndependent)
|
callableMember.transformReceiverTypeRef(transformer, ResolutionMode.ContextIndependent)
|
||||||
if (callableMember is FirFunction) {
|
if (callableMember is FirFunction) {
|
||||||
|
|||||||
+7
-7
@@ -155,7 +155,7 @@ open class FirImplicitAwareBodyResolveTransformer(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun <D : FirCallableMemberDeclaration> computeCachedTransformationResult(
|
private fun <D : FirCallableDeclaration> computeCachedTransformationResult(
|
||||||
member: D,
|
member: D,
|
||||||
transform: () -> D
|
transform: () -> D
|
||||||
): D {
|
): D {
|
||||||
@@ -188,7 +188,7 @@ private class ReturnTypeCalculatorWithJump(
|
|||||||
private val session: FirSession,
|
private val session: FirSession,
|
||||||
private val scopeSession: ScopeSession,
|
private val scopeSession: ScopeSession,
|
||||||
val implicitBodyResolveComputationSession: ImplicitBodyResolveComputationSession,
|
val implicitBodyResolveComputationSession: ImplicitBodyResolveComputationSession,
|
||||||
val designationMapForLocalClasses: Map<FirCallableMemberDeclaration, List<FirClassLikeDeclaration>> = mapOf(),
|
val designationMapForLocalClasses: Map<FirCallableDeclaration, List<FirClassLikeDeclaration>> = mapOf(),
|
||||||
val createTransformer: (
|
val createTransformer: (
|
||||||
designation: Iterator<FirElement>,
|
designation: Iterator<FirElement>,
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
@@ -215,7 +215,7 @@ private class ReturnTypeCalculatorWithJump(
|
|||||||
val returnTypeRef = declaration.returnTypeRef
|
val returnTypeRef = declaration.returnTypeRef
|
||||||
if (returnTypeRef is FirResolvedTypeRef) return returnTypeRef
|
if (returnTypeRef is FirResolvedTypeRef) return returnTypeRef
|
||||||
|
|
||||||
require(declaration is FirCallableMemberDeclaration) { "${declaration::class}: ${declaration.render()}" }
|
require(declaration is FirCallableDeclaration) { "${declaration::class}: ${declaration.render()}" }
|
||||||
|
|
||||||
if (declaration is FirSyntheticProperty) {
|
if (declaration is FirSyntheticProperty) {
|
||||||
return tryCalculateReturnType(declaration.getter.delegate)
|
return tryCalculateReturnType(declaration.getter.delegate)
|
||||||
@@ -246,7 +246,7 @@ private class ReturnTypeCalculatorWithJump(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun computeReturnTypeRef(declaration: FirCallableMemberDeclaration): FirResolvedTypeRef {
|
private fun computeReturnTypeRef(declaration: FirCallableDeclaration): FirResolvedTypeRef {
|
||||||
val symbol = declaration.symbol
|
val symbol = declaration.symbol
|
||||||
val provider = session.firProvider
|
val provider = session.firProvider
|
||||||
|
|
||||||
@@ -281,7 +281,7 @@ private class ReturnTypeCalculatorWithJump(
|
|||||||
|
|
||||||
designation.first().transform<FirElement, ResolutionMode>(transformer, ResolutionMode.ContextDependent)
|
designation.first().transform<FirElement, ResolutionMode>(transformer, ResolutionMode.ContextDependent)
|
||||||
|
|
||||||
val transformedDeclaration = transformer.lastResult as? FirCallableMemberDeclaration
|
val transformedDeclaration = transformer.lastResult as? FirCallableDeclaration
|
||||||
?: error("Unexpected lastResult: ${transformer.lastResult?.render()}")
|
?: error("Unexpected lastResult: ${transformer.lastResult?.render()}")
|
||||||
|
|
||||||
val newReturnTypeRef = transformedDeclaration.returnTypeRef
|
val newReturnTypeRef = transformedDeclaration.returnTypeRef
|
||||||
@@ -344,7 +344,7 @@ class ImplicitBodyResolveComputationSession {
|
|||||||
|
|
||||||
fun storeResult(
|
fun storeResult(
|
||||||
symbol: FirCallableSymbol<*>,
|
symbol: FirCallableSymbol<*>,
|
||||||
transformedDeclaration: FirCallableMemberDeclaration
|
transformedDeclaration: FirCallableDeclaration
|
||||||
) {
|
) {
|
||||||
require(implicitBodyResolveStatusMap[symbol] == ImplicitBodyResolveComputationStatus.Computing) {
|
require(implicitBodyResolveStatusMap[symbol] == ImplicitBodyResolveComputationStatus.Computing) {
|
||||||
"Unexpected static in storeResult for $symbol: ${implicitBodyResolveStatusMap[symbol]}"
|
"Unexpected static in storeResult for $symbol: ${implicitBodyResolveStatusMap[symbol]}"
|
||||||
@@ -365,6 +365,6 @@ internal sealed class ImplicitBodyResolveComputationStatus {
|
|||||||
|
|
||||||
class Computed(
|
class Computed(
|
||||||
val resolvedTypeRef: FirResolvedTypeRef,
|
val resolvedTypeRef: FirResolvedTypeRef,
|
||||||
val transformedDeclaration: FirCallableMemberDeclaration
|
val transformedDeclaration: FirCallableDeclaration
|
||||||
) : ImplicitBodyResolveComputationStatus()
|
) : ImplicitBodyResolveComputationStatus()
|
||||||
}
|
}
|
||||||
|
|||||||
+11
-14
@@ -13,16 +13,16 @@ import org.jetbrains.kotlin.utils.keysToMap
|
|||||||
|
|
||||||
class LocalClassesNavigationInfo(
|
class LocalClassesNavigationInfo(
|
||||||
val parentForClass: Map<FirClassLikeDeclaration, FirClassLikeDeclaration?>,
|
val parentForClass: Map<FirClassLikeDeclaration, FirClassLikeDeclaration?>,
|
||||||
private val parentClassForFunction: Map<FirCallableMemberDeclaration, FirClassLikeDeclaration>,
|
private val parentClassForFunction: Map<FirCallableDeclaration, FirClassLikeDeclaration>,
|
||||||
val allMembers: List<FirDeclaration>
|
val allMembers: List<FirDeclaration>
|
||||||
) {
|
) {
|
||||||
val designationMap: Map<FirCallableMemberDeclaration, List<FirClassLikeDeclaration>> by lazy {
|
val designationMap: Map<FirCallableDeclaration, List<FirClassLikeDeclaration>> by lazy {
|
||||||
parentClassForFunction.keys.keysToMap {
|
parentClassForFunction.keys.keysToMap {
|
||||||
pathForCallable(it)
|
pathForCallable(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun pathForCallable(callableMemberDeclaration: FirCallableMemberDeclaration): List<FirClassLikeDeclaration> {
|
private fun pathForCallable(callableMemberDeclaration: FirCallableDeclaration): List<FirClassLikeDeclaration> {
|
||||||
val result = mutableListOf<FirClassLikeDeclaration>()
|
val result = mutableListOf<FirClassLikeDeclaration>()
|
||||||
var current = parentClassForFunction[callableMemberDeclaration]
|
var current = parentClassForFunction[callableMemberDeclaration]
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ fun FirClassLikeDeclaration.collectLocalClassesNavigationInfo(): LocalClassesNav
|
|||||||
}
|
}
|
||||||
|
|
||||||
private class NavigationInfoVisitor : FirDefaultVisitor<Unit, Any?>() {
|
private class NavigationInfoVisitor : FirDefaultVisitor<Unit, Any?>() {
|
||||||
val resultingMap: MutableMap<FirCallableMemberDeclaration, FirClassLikeDeclaration> = mutableMapOf()
|
val resultingMap: MutableMap<FirCallableDeclaration, FirClassLikeDeclaration> = mutableMapOf()
|
||||||
val parentForClass: MutableMap<FirClassLikeDeclaration, FirClassLikeDeclaration?> = mutableMapOf()
|
val parentForClass: MutableMap<FirClassLikeDeclaration, FirClassLikeDeclaration?> = mutableMapOf()
|
||||||
val allMembers: MutableList<FirDeclaration> = mutableListOf()
|
val allMembers: MutableList<FirDeclaration> = mutableListOf()
|
||||||
private val currentPath: MutableList<FirClassLikeDeclaration> = mutableListOf()
|
private val currentPath: MutableList<FirClassLikeDeclaration> = mutableListOf()
|
||||||
@@ -68,24 +68,21 @@ private class NavigationInfoVisitor : FirDefaultVisitor<Unit, Any?>() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: Any?) {
|
override fun visitSimpleFunction(simpleFunction: FirSimpleFunction, data: Any?) {
|
||||||
visitCallableMemberDeclaration(simpleFunction, null)
|
visitCallableDeclaration(simpleFunction, null)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitProperty(property: FirProperty, data: Any?) {
|
override fun visitProperty(property: FirProperty, data: Any?) {
|
||||||
visitCallableMemberDeclaration(property, null)
|
visitCallableDeclaration(property, null)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitConstructor(constructor: FirConstructor, data: Any?) {
|
override fun visitConstructor(constructor: FirConstructor, data: Any?) {
|
||||||
visitCallableMemberDeclaration(constructor, null)
|
visitCallableDeclaration(constructor, null)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitCallableMemberDeclaration(
|
override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: Any?) {
|
||||||
callableMemberDeclaration: FirCallableMemberDeclaration,
|
allMembers += callableDeclaration
|
||||||
data: Any?
|
if (callableDeclaration.returnTypeRef !is FirImplicitTypeRef) return
|
||||||
) {
|
resultingMap[callableDeclaration] = currentPath.last()
|
||||||
allMembers += callableMemberDeclaration
|
|
||||||
if (callableMemberDeclaration.returnTypeRef !is FirImplicitTypeRef) return
|
|
||||||
resultingMap[callableMemberDeclaration] = currentPath.last()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitAnonymousInitializer(anonymousInitializer: FirAnonymousInitializer, data: Any?) {
|
override fun visitAnonymousInitializer(anonymousInitializer: FirAnonymousInitializer, data: Any?) {
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.scopes
|
package org.jetbrains.kotlin.fir.scopes
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@ interface FirOverrideChecker {
|
|||||||
): Boolean
|
): Boolean
|
||||||
|
|
||||||
fun isOverriddenProperty(
|
fun isOverriddenProperty(
|
||||||
overrideCandidate: FirCallableMemberDeclaration, // NB: in Java it can be a function which overrides accessor
|
overrideCandidate: FirCallableDeclaration, // NB: in Java it can be a function which overrides accessor
|
||||||
baseDeclaration: FirProperty
|
baseDeclaration: FirProperty
|
||||||
): Boolean
|
): Boolean
|
||||||
}
|
}
|
||||||
|
|||||||
+5
-5
@@ -25,13 +25,13 @@ abstract class AbstractFirOverrideScope(
|
|||||||
return overrideChecker.isOverriddenFunction(overrideCandidate, baseDeclaration)
|
return overrideChecker.isOverriddenFunction(overrideCandidate, baseDeclaration)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isOverriddenProperty(overrideCandidate: FirCallableMemberDeclaration, baseDeclaration: FirProperty): Boolean {
|
private fun isOverriddenProperty(overrideCandidate: FirCallableDeclaration, baseDeclaration: FirProperty): Boolean {
|
||||||
return overrideChecker.isOverriddenProperty(overrideCandidate, baseDeclaration)
|
return overrideChecker.isOverriddenProperty(overrideCandidate, baseDeclaration)
|
||||||
}
|
}
|
||||||
|
|
||||||
protected fun similarFunctionsOrBothProperties(
|
protected fun similarFunctionsOrBothProperties(
|
||||||
overrideCandidate: FirCallableMemberDeclaration,
|
overrideCandidate: FirCallableDeclaration,
|
||||||
baseDeclaration: FirCallableMemberDeclaration
|
baseDeclaration: FirCallableDeclaration
|
||||||
): Boolean {
|
): Boolean {
|
||||||
return when (overrideCandidate) {
|
return when (overrideCandidate) {
|
||||||
is FirSimpleFunction -> when (baseDeclaration) {
|
is FirSimpleFunction -> when (baseDeclaration) {
|
||||||
@@ -50,9 +50,9 @@ abstract class AbstractFirOverrideScope(
|
|||||||
protected open fun FirCallableSymbol<*>.getOverridden(overrideCandidates: Set<FirCallableSymbol<*>>): FirCallableSymbol<*>? {
|
protected open fun FirCallableSymbol<*>.getOverridden(overrideCandidates: Set<FirCallableSymbol<*>>): FirCallableSymbol<*>? {
|
||||||
if (overrideByBase.containsKey(this)) return overrideByBase[this]
|
if (overrideByBase.containsKey(this)) return overrideByBase[this]
|
||||||
|
|
||||||
val baseDeclaration = (this as FirBasedSymbol<*>).fir as FirCallableMemberDeclaration
|
val baseDeclaration = (this as FirBasedSymbol<*>).fir as FirCallableDeclaration
|
||||||
val override = overrideCandidates.firstOrNull {
|
val override = overrideCandidates.firstOrNull {
|
||||||
val overrideCandidate = (it as FirBasedSymbol<*>).fir as FirCallableMemberDeclaration
|
val overrideCandidate = (it as FirBasedSymbol<*>).fir as FirCallableDeclaration
|
||||||
baseDeclaration.modality != Modality.FINAL && similarFunctionsOrBothProperties(overrideCandidate, baseDeclaration)
|
baseDeclaration.modality != Modality.FINAL && similarFunctionsOrBothProperties(overrideCandidate, baseDeclaration)
|
||||||
} // TODO: two or more overrides for one fun?
|
} // TODO: two or more overrides for one fun?
|
||||||
overrideByBase[this] = override
|
overrideByBase[this] = override
|
||||||
|
|||||||
+5
-5
@@ -6,7 +6,7 @@
|
|||||||
package org.jetbrains.kotlin.fir.scopes.impl
|
package org.jetbrains.kotlin.fir.scopes.impl
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
||||||
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap
|
||||||
import org.jetbrains.kotlin.fir.scopes.FirOverrideChecker
|
import org.jetbrains.kotlin.fir.scopes.FirOverrideChecker
|
||||||
@@ -15,14 +15,14 @@ import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl
|
|||||||
abstract class FirAbstractOverrideChecker : FirOverrideChecker {
|
abstract class FirAbstractOverrideChecker : FirOverrideChecker {
|
||||||
|
|
||||||
protected abstract fun buildTypeParametersSubstitutorIfCompatible(
|
protected abstract fun buildTypeParametersSubstitutorIfCompatible(
|
||||||
overrideCandidate: FirCallableMemberDeclaration,
|
overrideCandidate: FirCallableDeclaration,
|
||||||
baseDeclaration: FirCallableMemberDeclaration
|
baseDeclaration: FirCallableDeclaration
|
||||||
): ConeSubstitutor?
|
): ConeSubstitutor?
|
||||||
}
|
}
|
||||||
|
|
||||||
fun buildSubstitutorForOverridesCheck(
|
fun buildSubstitutorForOverridesCheck(
|
||||||
overrideCandidate: FirCallableMemberDeclaration,
|
overrideCandidate: FirCallableDeclaration,
|
||||||
baseDeclaration: FirCallableMemberDeclaration,
|
baseDeclaration: FirCallableDeclaration,
|
||||||
useSiteSession: FirSession
|
useSiteSession: FirSession
|
||||||
): ConeSubstitutor? {
|
): ConeSubstitutor? {
|
||||||
if (overrideCandidate.typeParameters.size != baseDeclaration.typeParameters.size) return null
|
if (overrideCandidate.typeParameters.size != baseDeclaration.typeParameters.size) return null
|
||||||
|
|||||||
+1
-1
@@ -34,7 +34,7 @@ class FirClassDeclaredMemberScope(
|
|||||||
val result = mutableMapOf<Name, MutableList<FirCallableSymbol<*>>>()
|
val result = mutableMapOf<Name, MutableList<FirCallableSymbol<*>>>()
|
||||||
loop@ for (declaration in klass.declarations) {
|
loop@ for (declaration in klass.declarations) {
|
||||||
when (declaration) {
|
when (declaration) {
|
||||||
is FirCallableMemberDeclaration -> {
|
is FirCallableDeclaration -> {
|
||||||
val name = when (declaration) {
|
val name = when (declaration) {
|
||||||
is FirConstructor -> CONSTRUCTOR_NAME
|
is FirConstructor -> CONSTRUCTOR_NAME
|
||||||
is FirVariable -> if (declaration.isSynthetic) continue@loop else declaration.name
|
is FirVariable -> if (declaration.isSynthetic) continue@loop else declaration.name
|
||||||
|
|||||||
+2
-2
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.scopes.impl
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
|
||||||
@@ -211,7 +211,7 @@ class FirClassSubstitutionScope(
|
|||||||
val fakeOverrideSubstitution: FakeOverrideSubstitution?
|
val fakeOverrideSubstitution: FakeOverrideSubstitution?
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun createSubstitutedData(member: FirCallableMemberDeclaration): SubstitutedData {
|
private fun createSubstitutedData(member: FirCallableDeclaration): SubstitutedData {
|
||||||
val (newTypeParameters, substitutor) = FirFakeOverrideGenerator.createNewTypeParametersAndSubstitutor(
|
val (newTypeParameters, substitutor) = FirFakeOverrideGenerator.createNewTypeParametersAndSubstitutor(
|
||||||
session,
|
session,
|
||||||
member as FirTypeParameterRefsOwner,
|
member as FirTypeParameterRefsOwner,
|
||||||
|
|||||||
+2
-2
@@ -186,7 +186,7 @@ object FirFakeOverrideGenerator {
|
|||||||
}
|
}
|
||||||
val symbol = baseFunction.symbol
|
val symbol = baseFunction.symbol
|
||||||
val (copiedReceiverType, possibleReturnType) = substituteReceiverAndReturnType(
|
val (copiedReceiverType, possibleReturnType) = substituteReceiverAndReturnType(
|
||||||
baseFunction as FirCallableMemberDeclaration, newReceiverType, newReturnType, substitutor
|
baseFunction as FirCallableDeclaration, newReceiverType, newReturnType, substitutor
|
||||||
)
|
)
|
||||||
val (copiedReturnType, newFakeOverrideSubstitution) = when (possibleReturnType) {
|
val (copiedReturnType, newFakeOverrideSubstitution) = when (possibleReturnType) {
|
||||||
is Maybe.Value -> possibleReturnType.value to null
|
is Maybe.Value -> possibleReturnType.value to null
|
||||||
@@ -348,7 +348,7 @@ object FirFakeOverrideGenerator {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun substituteReceiverAndReturnType(
|
private fun substituteReceiverAndReturnType(
|
||||||
baseCallable: FirCallableMemberDeclaration,
|
baseCallable: FirCallableDeclaration,
|
||||||
newReceiverType: ConeKotlinType?,
|
newReceiverType: ConeKotlinType?,
|
||||||
newReturnType: ConeKotlinType?,
|
newReturnType: ConeKotlinType?,
|
||||||
substitutor: ConeSubstitutor
|
substitutor: ConeSubstitutor
|
||||||
|
|||||||
+2
-2
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.scopes.impl
|
package org.jetbrains.kotlin.fir.scopes.impl
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
||||||
import org.jetbrains.kotlin.fir.isIntersectionOverride
|
import org.jetbrains.kotlin.fir.isIntersectionOverride
|
||||||
import org.jetbrains.kotlin.fir.isSubstitutionOverride
|
import org.jetbrains.kotlin.fir.isSubstitutionOverride
|
||||||
@@ -75,7 +75,7 @@ class FirScopeWithFakeOverrideTypeCalculator(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun updateReturnType(declaration: FirTypedDeclaration) {
|
private fun updateReturnType(declaration: FirTypedDeclaration) {
|
||||||
if (declaration !is FirCallableMemberDeclaration) return
|
if (declaration !is FirCallableDeclaration) return
|
||||||
if (declaration.isSubstitutionOverride || declaration.isIntersectionOverride) {
|
if (declaration.isSubstitutionOverride || declaration.isIntersectionOverride) {
|
||||||
fakeOverrideTypeCalculator.computeReturnType(declaration)
|
fakeOverrideTypeCalculator.computeReturnType(declaration)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -105,8 +105,8 @@ class FirStandardOverrideChecker(private val session: FirSession) : FirAbstractO
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun buildTypeParametersSubstitutorIfCompatible(
|
override fun buildTypeParametersSubstitutorIfCompatible(
|
||||||
overrideCandidate: FirCallableMemberDeclaration,
|
overrideCandidate: FirCallableDeclaration,
|
||||||
baseDeclaration: FirCallableMemberDeclaration
|
baseDeclaration: FirCallableDeclaration
|
||||||
): ConeSubstitutor? {
|
): ConeSubstitutor? {
|
||||||
val substitutor = buildSubstitutorForOverridesCheck(overrideCandidate, baseDeclaration, session) ?: return null
|
val substitutor = buildSubstitutorForOverridesCheck(overrideCandidate, baseDeclaration, session) ?: return null
|
||||||
if (
|
if (
|
||||||
@@ -143,7 +143,7 @@ class FirStandardOverrideChecker(private val session: FirSession) : FirAbstractO
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun isOverriddenProperty(
|
override fun isOverriddenProperty(
|
||||||
overrideCandidate: FirCallableMemberDeclaration,
|
overrideCandidate: FirCallableDeclaration,
|
||||||
baseDeclaration: FirProperty
|
baseDeclaration: FirProperty
|
||||||
): Boolean {
|
): Boolean {
|
||||||
if (Visibilities.isPrivate(baseDeclaration.visibility)) return false
|
if (Visibilities.isPrivate(baseDeclaration.visibility)) return false
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.scopes.impl
|
package org.jetbrains.kotlin.fir.scopes.impl
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.utils.isStatic
|
import org.jetbrains.kotlin.fir.declarations.utils.isStatic
|
||||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
||||||
@@ -33,7 +33,7 @@ class FirStaticScope(private val delegateScope: FirScope) : FirScope(), FirConta
|
|||||||
|
|
||||||
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) {
|
||||||
delegateScope.processPropertiesByName(name) {
|
delegateScope.processPropertiesByName(name) {
|
||||||
if ((it.fir as? FirCallableMemberDeclaration)?.isStatic == true) {
|
if ((it.fir as? FirCallableDeclaration)?.isStatic == true) {
|
||||||
processor(it)
|
processor(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+4
-5
@@ -402,7 +402,6 @@ class FirTypeIntersectionScope private constructor(
|
|||||||
): Boolean {
|
): Boolean {
|
||||||
val aFir = a.fir
|
val aFir = a.fir
|
||||||
val bFir = b.fir
|
val bFir = b.fir
|
||||||
if (aFir !is FirCallableMemberDeclaration || bFir !is FirCallableMemberDeclaration) return false
|
|
||||||
|
|
||||||
val substitutor = buildSubstitutorForOverridesCheck(aFir, bFir, session) ?: return false
|
val substitutor = buildSubstitutorForOverridesCheck(aFir, bFir, session) ?: return false
|
||||||
// NB: these lines throw CCE in modularized tests when changed to just .coneType (FirImplicitTypeRef)
|
// NB: these lines throw CCE in modularized tests when changed to just .coneType (FirImplicitTypeRef)
|
||||||
@@ -439,8 +438,8 @@ class FirTypeIntersectionScope private constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val result = Visibilities.compare(
|
val result = Visibilities.compare(
|
||||||
(member.member.fir as FirCallableMemberDeclaration).status.visibility,
|
member.member.fir.status.visibility,
|
||||||
(candidate.member.fir as FirCallableMemberDeclaration).status.visibility
|
candidate.member.fir.status.visibility
|
||||||
)
|
)
|
||||||
if (result != null && result < 0) {
|
if (result != null && result < 0) {
|
||||||
member = candidate
|
member = candidate
|
||||||
@@ -457,7 +456,7 @@ class FirTypeIntersectionScope private constructor(
|
|||||||
|
|
||||||
val iterator = members.iterator()
|
val iterator = members.iterator()
|
||||||
|
|
||||||
val overrideCandidate = overrider.member.fir as FirCallableMemberDeclaration
|
val overrideCandidate = overrider.member.fir
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
val next = iterator.next()
|
val next = iterator.next()
|
||||||
if (next == overrider) {
|
if (next == overrider) {
|
||||||
@@ -465,7 +464,7 @@ class FirTypeIntersectionScope private constructor(
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
if (similarFunctionsOrBothProperties(overrideCandidate, next.member.fir as FirCallableMemberDeclaration)) {
|
if (similarFunctionsOrBothProperties(overrideCandidate, next.member.fir)) {
|
||||||
result.add(next)
|
result.add(next)
|
||||||
iterator.remove()
|
iterator.remove()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,9 +32,9 @@ abstract class FirAnonymousFunction : FirFunction(), FirTypeParametersOwner {
|
|||||||
abstract override val attributes: FirDeclarationAttributes
|
abstract override val attributes: FirDeclarationAttributes
|
||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val returnTypeRef: FirTypeRef
|
abstract override val returnTypeRef: FirTypeRef
|
||||||
|
abstract override val status: FirDeclarationStatus
|
||||||
abstract override val receiverTypeRef: FirTypeRef?
|
abstract override val receiverTypeRef: FirTypeRef?
|
||||||
abstract override val deprecation: DeprecationsPerUseSite?
|
abstract override val deprecation: DeprecationsPerUseSite?
|
||||||
abstract override val status: FirDeclarationStatus
|
|
||||||
abstract override val containerSource: DeserializedContainerSource?
|
abstract override val containerSource: DeserializedContainerSource?
|
||||||
abstract override val dispatchReceiverType: ConeKotlinType?
|
abstract override val dispatchReceiverType: ConeKotlinType?
|
||||||
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
|
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
|
||||||
@@ -78,10 +78,10 @@ abstract class FirAnonymousFunction : FirFunction(), FirTypeParametersOwner {
|
|||||||
|
|
||||||
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
|
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
|
||||||
|
|
||||||
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
|
|
||||||
|
|
||||||
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
|
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
|
||||||
|
|
||||||
|
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
|
||||||
|
|
||||||
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
|
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
|
||||||
|
|
||||||
abstract override fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
|
abstract override fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirAnonymousFunction
|
||||||
|
|||||||
+11
-1
@@ -10,7 +10,9 @@ import org.jetbrains.kotlin.fir.FirModuleData
|
|||||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
import org.jetbrains.kotlin.fir.FirSourceElement
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
|
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -18,7 +20,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
|||||||
* DO NOT MODIFY IT MANUALLY
|
* DO NOT MODIFY IT MANUALLY
|
||||||
*/
|
*/
|
||||||
|
|
||||||
sealed class FirCallableDeclaration : FirTypedDeclaration() {
|
sealed class FirCallableDeclaration : FirTypedDeclaration(), FirMemberDeclaration {
|
||||||
abstract override val source: FirSourceElement?
|
abstract override val source: FirSourceElement?
|
||||||
abstract override val moduleData: FirModuleData
|
abstract override val moduleData: FirModuleData
|
||||||
abstract override val resolvePhase: FirResolvePhase
|
abstract override val resolvePhase: FirResolvePhase
|
||||||
@@ -26,9 +28,13 @@ sealed class FirCallableDeclaration : FirTypedDeclaration() {
|
|||||||
abstract override val attributes: FirDeclarationAttributes
|
abstract override val attributes: FirDeclarationAttributes
|
||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val returnTypeRef: FirTypeRef
|
abstract override val returnTypeRef: FirTypeRef
|
||||||
|
abstract override val typeParameters: List<FirTypeParameterRef>
|
||||||
|
abstract override val status: FirDeclarationStatus
|
||||||
abstract val receiverTypeRef: FirTypeRef?
|
abstract val receiverTypeRef: FirTypeRef?
|
||||||
abstract val deprecation: DeprecationsPerUseSite?
|
abstract val deprecation: DeprecationsPerUseSite?
|
||||||
abstract override val symbol: FirCallableSymbol<out FirCallableDeclaration>
|
abstract override val symbol: FirCallableSymbol<out FirCallableDeclaration>
|
||||||
|
abstract val containerSource: DeserializedContainerSource?
|
||||||
|
abstract val dispatchReceiverType: ConeKotlinType?
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitCallableDeclaration(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitCallableDeclaration(this, data)
|
||||||
|
|
||||||
@@ -48,5 +54,9 @@ sealed class FirCallableDeclaration : FirTypedDeclaration() {
|
|||||||
|
|
||||||
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirCallableDeclaration
|
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirCallableDeclaration
|
||||||
|
|
||||||
|
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirCallableDeclaration
|
||||||
|
|
||||||
|
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirCallableDeclaration
|
||||||
|
|
||||||
abstract fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirCallableDeclaration
|
abstract fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirCallableDeclaration
|
||||||
}
|
}
|
||||||
|
|||||||
-62
@@ -1,62 +0,0 @@
|
|||||||
/*
|
|
||||||
* 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.declarations
|
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirElement
|
|
||||||
import org.jetbrains.kotlin.fir.FirModuleData
|
|
||||||
import org.jetbrains.kotlin.fir.FirSourceElement
|
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
|
||||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedContainerSource
|
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file was generated automatically
|
|
||||||
* DO NOT MODIFY IT MANUALLY
|
|
||||||
*/
|
|
||||||
|
|
||||||
sealed class FirCallableMemberDeclaration : FirCallableDeclaration(), FirMemberDeclaration {
|
|
||||||
abstract override val source: FirSourceElement?
|
|
||||||
abstract override val moduleData: FirModuleData
|
|
||||||
abstract override val resolvePhase: FirResolvePhase
|
|
||||||
abstract override val origin: FirDeclarationOrigin
|
|
||||||
abstract override val attributes: FirDeclarationAttributes
|
|
||||||
abstract override val annotations: List<FirAnnotationCall>
|
|
||||||
abstract override val returnTypeRef: FirTypeRef
|
|
||||||
abstract override val receiverTypeRef: FirTypeRef?
|
|
||||||
abstract override val deprecation: DeprecationsPerUseSite?
|
|
||||||
abstract override val symbol: FirCallableSymbol<out FirCallableDeclaration>
|
|
||||||
abstract override val typeParameters: List<FirTypeParameterRef>
|
|
||||||
abstract override val status: FirDeclarationStatus
|
|
||||||
abstract val containerSource: DeserializedContainerSource?
|
|
||||||
abstract val dispatchReceiverType: ConeKotlinType?
|
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitCallableMemberDeclaration(this, data)
|
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
|
||||||
override fun <E: FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
|
|
||||||
transformer.transformCallableMemberDeclaration(this, data) as E
|
|
||||||
|
|
||||||
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
|
||||||
|
|
||||||
abstract override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
|
|
||||||
|
|
||||||
abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
|
|
||||||
|
|
||||||
abstract override fun replaceDeprecation(newDeprecation: DeprecationsPerUseSite?)
|
|
||||||
|
|
||||||
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration
|
|
||||||
|
|
||||||
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration
|
|
||||||
|
|
||||||
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration
|
|
||||||
|
|
||||||
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration
|
|
||||||
|
|
||||||
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirCallableMemberDeclaration
|
|
||||||
}
|
|
||||||
@@ -30,10 +30,10 @@ abstract class FirConstructor : FirFunction(), FirTypeParameterRefsOwner {
|
|||||||
abstract override val origin: FirDeclarationOrigin
|
abstract override val origin: FirDeclarationOrigin
|
||||||
abstract override val attributes: FirDeclarationAttributes
|
abstract override val attributes: FirDeclarationAttributes
|
||||||
abstract override val returnTypeRef: FirTypeRef
|
abstract override val returnTypeRef: FirTypeRef
|
||||||
abstract override val receiverTypeRef: FirTypeRef?
|
|
||||||
abstract override val deprecation: DeprecationsPerUseSite?
|
|
||||||
abstract override val typeParameters: List<FirTypeParameterRef>
|
abstract override val typeParameters: List<FirTypeParameterRef>
|
||||||
abstract override val status: FirDeclarationStatus
|
abstract override val status: FirDeclarationStatus
|
||||||
|
abstract override val receiverTypeRef: FirTypeRef?
|
||||||
|
abstract override val deprecation: DeprecationsPerUseSite?
|
||||||
abstract override val containerSource: DeserializedContainerSource?
|
abstract override val containerSource: DeserializedContainerSource?
|
||||||
abstract override val dispatchReceiverType: ConeKotlinType?
|
abstract override val dispatchReceiverType: ConeKotlinType?
|
||||||
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
|
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
|
||||||
@@ -66,12 +66,12 @@ abstract class FirConstructor : FirFunction(), FirTypeParameterRefsOwner {
|
|||||||
|
|
||||||
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirConstructor
|
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirConstructor
|
||||||
|
|
||||||
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirConstructor
|
|
||||||
|
|
||||||
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirConstructor
|
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirConstructor
|
||||||
|
|
||||||
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirConstructor
|
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirConstructor
|
||||||
|
|
||||||
|
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirConstructor
|
||||||
|
|
||||||
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirConstructor
|
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirConstructor
|
||||||
|
|
||||||
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirConstructor
|
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirConstructor
|
||||||
|
|||||||
@@ -29,10 +29,10 @@ abstract class FirEnumEntry : FirVariable() {
|
|||||||
abstract override val origin: FirDeclarationOrigin
|
abstract override val origin: FirDeclarationOrigin
|
||||||
abstract override val attributes: FirDeclarationAttributes
|
abstract override val attributes: FirDeclarationAttributes
|
||||||
abstract override val returnTypeRef: FirTypeRef
|
abstract override val returnTypeRef: FirTypeRef
|
||||||
abstract override val receiverTypeRef: FirTypeRef?
|
|
||||||
abstract override val deprecation: DeprecationsPerUseSite?
|
|
||||||
abstract override val typeParameters: List<FirTypeParameterRef>
|
abstract override val typeParameters: List<FirTypeParameterRef>
|
||||||
abstract override val status: FirDeclarationStatus
|
abstract override val status: FirDeclarationStatus
|
||||||
|
abstract override val receiverTypeRef: FirTypeRef?
|
||||||
|
abstract override val deprecation: DeprecationsPerUseSite?
|
||||||
abstract override val containerSource: DeserializedContainerSource?
|
abstract override val containerSource: DeserializedContainerSource?
|
||||||
abstract override val dispatchReceiverType: ConeKotlinType?
|
abstract override val dispatchReceiverType: ConeKotlinType?
|
||||||
abstract override val name: Name
|
abstract override val name: Name
|
||||||
@@ -63,12 +63,12 @@ abstract class FirEnumEntry : FirVariable() {
|
|||||||
|
|
||||||
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
||||||
|
|
||||||
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
|
||||||
|
|
||||||
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
||||||
|
|
||||||
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
||||||
|
|
||||||
|
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
||||||
|
|
||||||
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
||||||
|
|
||||||
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirEnumEntry
|
||||||
|
|||||||
@@ -32,9 +32,9 @@ abstract class FirErrorFunction : FirFunction(), FirDiagnosticHolder {
|
|||||||
abstract override val attributes: FirDeclarationAttributes
|
abstract override val attributes: FirDeclarationAttributes
|
||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val returnTypeRef: FirTypeRef
|
abstract override val returnTypeRef: FirTypeRef
|
||||||
|
abstract override val status: FirDeclarationStatus
|
||||||
abstract override val receiverTypeRef: FirTypeRef?
|
abstract override val receiverTypeRef: FirTypeRef?
|
||||||
abstract override val deprecation: DeprecationsPerUseSite?
|
abstract override val deprecation: DeprecationsPerUseSite?
|
||||||
abstract override val status: FirDeclarationStatus
|
|
||||||
abstract override val containerSource: DeserializedContainerSource?
|
abstract override val containerSource: DeserializedContainerSource?
|
||||||
abstract override val dispatchReceiverType: ConeKotlinType?
|
abstract override val dispatchReceiverType: ConeKotlinType?
|
||||||
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
|
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
|
||||||
@@ -68,10 +68,10 @@ abstract class FirErrorFunction : FirFunction(), FirDiagnosticHolder {
|
|||||||
|
|
||||||
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirErrorFunction
|
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirErrorFunction
|
||||||
|
|
||||||
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirErrorFunction
|
|
||||||
|
|
||||||
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirErrorFunction
|
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirErrorFunction
|
||||||
|
|
||||||
|
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirErrorFunction
|
||||||
|
|
||||||
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirErrorFunction
|
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirErrorFunction
|
||||||
|
|
||||||
abstract override fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirErrorFunction
|
abstract override fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirErrorFunction
|
||||||
|
|||||||
@@ -31,10 +31,10 @@ abstract class FirErrorProperty : FirVariable(), FirDiagnosticHolder {
|
|||||||
abstract override val origin: FirDeclarationOrigin
|
abstract override val origin: FirDeclarationOrigin
|
||||||
abstract override val attributes: FirDeclarationAttributes
|
abstract override val attributes: FirDeclarationAttributes
|
||||||
abstract override val returnTypeRef: FirTypeRef
|
abstract override val returnTypeRef: FirTypeRef
|
||||||
abstract override val receiverTypeRef: FirTypeRef?
|
|
||||||
abstract override val deprecation: DeprecationsPerUseSite?
|
|
||||||
abstract override val typeParameters: List<FirTypeParameterRef>
|
abstract override val typeParameters: List<FirTypeParameterRef>
|
||||||
abstract override val status: FirDeclarationStatus
|
abstract override val status: FirDeclarationStatus
|
||||||
|
abstract override val receiverTypeRef: FirTypeRef?
|
||||||
|
abstract override val deprecation: DeprecationsPerUseSite?
|
||||||
abstract override val containerSource: DeserializedContainerSource?
|
abstract override val containerSource: DeserializedContainerSource?
|
||||||
abstract override val dispatchReceiverType: ConeKotlinType?
|
abstract override val dispatchReceiverType: ConeKotlinType?
|
||||||
abstract override val name: Name
|
abstract override val name: Name
|
||||||
@@ -66,12 +66,12 @@ abstract class FirErrorProperty : FirVariable(), FirDiagnosticHolder {
|
|||||||
|
|
||||||
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
||||||
|
|
||||||
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
|
||||||
|
|
||||||
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
||||||
|
|
||||||
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
||||||
|
|
||||||
|
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
||||||
|
|
||||||
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
||||||
|
|
||||||
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirErrorProperty
|
||||||
|
|||||||
@@ -29,10 +29,10 @@ abstract class FirField : FirVariable() {
|
|||||||
abstract override val origin: FirDeclarationOrigin
|
abstract override val origin: FirDeclarationOrigin
|
||||||
abstract override val attributes: FirDeclarationAttributes
|
abstract override val attributes: FirDeclarationAttributes
|
||||||
abstract override val returnTypeRef: FirTypeRef
|
abstract override val returnTypeRef: FirTypeRef
|
||||||
abstract override val receiverTypeRef: FirTypeRef?
|
|
||||||
abstract override val deprecation: DeprecationsPerUseSite?
|
|
||||||
abstract override val typeParameters: List<FirTypeParameterRef>
|
abstract override val typeParameters: List<FirTypeParameterRef>
|
||||||
abstract override val status: FirDeclarationStatus
|
abstract override val status: FirDeclarationStatus
|
||||||
|
abstract override val receiverTypeRef: FirTypeRef?
|
||||||
|
abstract override val deprecation: DeprecationsPerUseSite?
|
||||||
abstract override val containerSource: DeserializedContainerSource?
|
abstract override val containerSource: DeserializedContainerSource?
|
||||||
abstract override val dispatchReceiverType: ConeKotlinType?
|
abstract override val dispatchReceiverType: ConeKotlinType?
|
||||||
abstract override val name: Name
|
abstract override val name: Name
|
||||||
@@ -63,12 +63,12 @@ abstract class FirField : FirVariable() {
|
|||||||
|
|
||||||
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirField
|
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirField
|
||||||
|
|
||||||
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirField
|
|
||||||
|
|
||||||
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirField
|
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirField
|
||||||
|
|
||||||
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirField
|
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirField
|
||||||
|
|
||||||
|
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirField
|
||||||
|
|
||||||
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirField
|
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirField
|
||||||
|
|
||||||
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirField
|
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirField
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.*
|
|||||||
* DO NOT MODIFY IT MANUALLY
|
* DO NOT MODIFY IT MANUALLY
|
||||||
*/
|
*/
|
||||||
|
|
||||||
sealed class FirFunction : FirCallableMemberDeclaration(), FirTargetElement, FirControlFlowGraphOwner, FirStatement {
|
sealed class FirFunction : FirCallableDeclaration(), FirTargetElement, FirControlFlowGraphOwner, FirStatement {
|
||||||
abstract override val source: FirSourceElement?
|
abstract override val source: FirSourceElement?
|
||||||
abstract override val moduleData: FirModuleData
|
abstract override val moduleData: FirModuleData
|
||||||
abstract override val resolvePhase: FirResolvePhase
|
abstract override val resolvePhase: FirResolvePhase
|
||||||
@@ -32,10 +32,10 @@ sealed class FirFunction : FirCallableMemberDeclaration(), FirTargetElement, Fir
|
|||||||
abstract override val attributes: FirDeclarationAttributes
|
abstract override val attributes: FirDeclarationAttributes
|
||||||
abstract override val annotations: List<FirAnnotationCall>
|
abstract override val annotations: List<FirAnnotationCall>
|
||||||
abstract override val returnTypeRef: FirTypeRef
|
abstract override val returnTypeRef: FirTypeRef
|
||||||
abstract override val receiverTypeRef: FirTypeRef?
|
|
||||||
abstract override val deprecation: DeprecationsPerUseSite?
|
|
||||||
abstract override val typeParameters: List<FirTypeParameterRef>
|
abstract override val typeParameters: List<FirTypeParameterRef>
|
||||||
abstract override val status: FirDeclarationStatus
|
abstract override val status: FirDeclarationStatus
|
||||||
|
abstract override val receiverTypeRef: FirTypeRef?
|
||||||
|
abstract override val deprecation: DeprecationsPerUseSite?
|
||||||
abstract override val containerSource: DeserializedContainerSource?
|
abstract override val containerSource: DeserializedContainerSource?
|
||||||
abstract override val dispatchReceiverType: ConeKotlinType?
|
abstract override val dispatchReceiverType: ConeKotlinType?
|
||||||
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
|
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
|
||||||
@@ -67,12 +67,12 @@ sealed class FirFunction : FirCallableMemberDeclaration(), FirTargetElement, Fir
|
|||||||
|
|
||||||
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirFunction
|
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirFunction
|
||||||
|
|
||||||
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirFunction
|
|
||||||
|
|
||||||
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirFunction
|
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirFunction
|
||||||
|
|
||||||
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirFunction
|
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirFunction
|
||||||
|
|
||||||
|
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirFunction
|
||||||
|
|
||||||
abstract fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirFunction
|
abstract fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirFunction
|
||||||
|
|
||||||
abstract fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirFunction
|
abstract fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirFunction
|
||||||
|
|||||||
@@ -32,9 +32,9 @@ abstract class FirProperty : FirVariable(), FirTypeParametersOwner, FirControlFl
|
|||||||
abstract override val origin: FirDeclarationOrigin
|
abstract override val origin: FirDeclarationOrigin
|
||||||
abstract override val attributes: FirDeclarationAttributes
|
abstract override val attributes: FirDeclarationAttributes
|
||||||
abstract override val returnTypeRef: FirTypeRef
|
abstract override val returnTypeRef: FirTypeRef
|
||||||
|
abstract override val status: FirDeclarationStatus
|
||||||
abstract override val receiverTypeRef: FirTypeRef?
|
abstract override val receiverTypeRef: FirTypeRef?
|
||||||
abstract override val deprecation: DeprecationsPerUseSite?
|
abstract override val deprecation: DeprecationsPerUseSite?
|
||||||
abstract override val status: FirDeclarationStatus
|
|
||||||
abstract override val containerSource: DeserializedContainerSource?
|
abstract override val containerSource: DeserializedContainerSource?
|
||||||
abstract override val dispatchReceiverType: ConeKotlinType?
|
abstract override val dispatchReceiverType: ConeKotlinType?
|
||||||
abstract override val name: Name
|
abstract override val name: Name
|
||||||
@@ -75,10 +75,10 @@ abstract class FirProperty : FirVariable(), FirTypeParametersOwner, FirControlFl
|
|||||||
|
|
||||||
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirProperty
|
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirProperty
|
||||||
|
|
||||||
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirProperty
|
|
||||||
|
|
||||||
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirProperty
|
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirProperty
|
||||||
|
|
||||||
|
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirProperty
|
||||||
|
|
||||||
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirProperty
|
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirProperty
|
||||||
|
|
||||||
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirProperty
|
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirProperty
|
||||||
|
|||||||
@@ -30,9 +30,9 @@ abstract class FirPropertyAccessor : FirFunction(), FirContractDescriptionOwner,
|
|||||||
abstract override val origin: FirDeclarationOrigin
|
abstract override val origin: FirDeclarationOrigin
|
||||||
abstract override val attributes: FirDeclarationAttributes
|
abstract override val attributes: FirDeclarationAttributes
|
||||||
abstract override val returnTypeRef: FirTypeRef
|
abstract override val returnTypeRef: FirTypeRef
|
||||||
|
abstract override val status: FirDeclarationStatus
|
||||||
abstract override val receiverTypeRef: FirTypeRef?
|
abstract override val receiverTypeRef: FirTypeRef?
|
||||||
abstract override val deprecation: DeprecationsPerUseSite?
|
abstract override val deprecation: DeprecationsPerUseSite?
|
||||||
abstract override val status: FirDeclarationStatus
|
|
||||||
abstract override val containerSource: DeserializedContainerSource?
|
abstract override val containerSource: DeserializedContainerSource?
|
||||||
abstract override val dispatchReceiverType: ConeKotlinType?
|
abstract override val dispatchReceiverType: ConeKotlinType?
|
||||||
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
|
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
|
||||||
@@ -69,10 +69,10 @@ abstract class FirPropertyAccessor : FirFunction(), FirContractDescriptionOwner,
|
|||||||
|
|
||||||
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
||||||
|
|
||||||
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
|
||||||
|
|
||||||
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
||||||
|
|
||||||
|
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
||||||
|
|
||||||
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
||||||
|
|
||||||
abstract override fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
abstract override fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirPropertyAccessor
|
||||||
|
|||||||
@@ -31,9 +31,9 @@ abstract class FirSimpleFunction : FirFunction(), FirContractDescriptionOwner, F
|
|||||||
abstract override val origin: FirDeclarationOrigin
|
abstract override val origin: FirDeclarationOrigin
|
||||||
abstract override val attributes: FirDeclarationAttributes
|
abstract override val attributes: FirDeclarationAttributes
|
||||||
abstract override val returnTypeRef: FirTypeRef
|
abstract override val returnTypeRef: FirTypeRef
|
||||||
|
abstract override val status: FirDeclarationStatus
|
||||||
abstract override val receiverTypeRef: FirTypeRef?
|
abstract override val receiverTypeRef: FirTypeRef?
|
||||||
abstract override val deprecation: DeprecationsPerUseSite?
|
abstract override val deprecation: DeprecationsPerUseSite?
|
||||||
abstract override val status: FirDeclarationStatus
|
|
||||||
abstract override val containerSource: DeserializedContainerSource?
|
abstract override val containerSource: DeserializedContainerSource?
|
||||||
abstract override val dispatchReceiverType: ConeKotlinType?
|
abstract override val dispatchReceiverType: ConeKotlinType?
|
||||||
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
|
abstract override val controlFlowGraphReference: FirControlFlowGraphReference?
|
||||||
@@ -69,10 +69,10 @@ abstract class FirSimpleFunction : FirFunction(), FirContractDescriptionOwner, F
|
|||||||
|
|
||||||
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirSimpleFunction
|
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirSimpleFunction
|
||||||
|
|
||||||
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirSimpleFunction
|
|
||||||
|
|
||||||
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirSimpleFunction
|
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirSimpleFunction
|
||||||
|
|
||||||
|
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirSimpleFunction
|
||||||
|
|
||||||
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirSimpleFunction
|
abstract override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirSimpleFunction
|
||||||
|
|
||||||
abstract override fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirSimpleFunction
|
abstract override fun <D> transformBody(transformer: FirTransformer<D>, data: D): FirSimpleFunction
|
||||||
|
|||||||
@@ -30,10 +30,10 @@ abstract class FirValueParameter : FirVariable(), FirControlFlowGraphOwner {
|
|||||||
abstract override val origin: FirDeclarationOrigin
|
abstract override val origin: FirDeclarationOrigin
|
||||||
abstract override val attributes: FirDeclarationAttributes
|
abstract override val attributes: FirDeclarationAttributes
|
||||||
abstract override val returnTypeRef: FirTypeRef
|
abstract override val returnTypeRef: FirTypeRef
|
||||||
abstract override val receiverTypeRef: FirTypeRef?
|
|
||||||
abstract override val deprecation: DeprecationsPerUseSite?
|
|
||||||
abstract override val typeParameters: List<FirTypeParameterRef>
|
abstract override val typeParameters: List<FirTypeParameterRef>
|
||||||
abstract override val status: FirDeclarationStatus
|
abstract override val status: FirDeclarationStatus
|
||||||
|
abstract override val receiverTypeRef: FirTypeRef?
|
||||||
|
abstract override val deprecation: DeprecationsPerUseSite?
|
||||||
abstract override val containerSource: DeserializedContainerSource?
|
abstract override val containerSource: DeserializedContainerSource?
|
||||||
abstract override val dispatchReceiverType: ConeKotlinType?
|
abstract override val dispatchReceiverType: ConeKotlinType?
|
||||||
abstract override val name: Name
|
abstract override val name: Name
|
||||||
@@ -71,12 +71,12 @@ abstract class FirValueParameter : FirVariable(), FirControlFlowGraphOwner {
|
|||||||
|
|
||||||
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirValueParameter
|
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirValueParameter
|
||||||
|
|
||||||
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirValueParameter
|
|
||||||
|
|
||||||
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirValueParameter
|
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirValueParameter
|
||||||
|
|
||||||
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirValueParameter
|
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirValueParameter
|
||||||
|
|
||||||
|
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirValueParameter
|
||||||
|
|
||||||
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirValueParameter
|
abstract override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirValueParameter
|
||||||
|
|
||||||
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirValueParameter
|
abstract override fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirValueParameter
|
||||||
|
|||||||
@@ -23,17 +23,17 @@ import org.jetbrains.kotlin.fir.visitors.*
|
|||||||
* DO NOT MODIFY IT MANUALLY
|
* DO NOT MODIFY IT MANUALLY
|
||||||
*/
|
*/
|
||||||
|
|
||||||
sealed class FirVariable : FirCallableMemberDeclaration(), FirStatement {
|
sealed class FirVariable : FirCallableDeclaration(), FirStatement {
|
||||||
abstract override val source: FirSourceElement?
|
abstract override val source: FirSourceElement?
|
||||||
abstract override val moduleData: FirModuleData
|
abstract override val moduleData: FirModuleData
|
||||||
abstract override val resolvePhase: FirResolvePhase
|
abstract override val resolvePhase: FirResolvePhase
|
||||||
abstract override val origin: FirDeclarationOrigin
|
abstract override val origin: FirDeclarationOrigin
|
||||||
abstract override val attributes: FirDeclarationAttributes
|
abstract override val attributes: FirDeclarationAttributes
|
||||||
abstract override val returnTypeRef: FirTypeRef
|
abstract override val returnTypeRef: FirTypeRef
|
||||||
abstract override val receiverTypeRef: FirTypeRef?
|
|
||||||
abstract override val deprecation: DeprecationsPerUseSite?
|
|
||||||
abstract override val typeParameters: List<FirTypeParameterRef>
|
abstract override val typeParameters: List<FirTypeParameterRef>
|
||||||
abstract override val status: FirDeclarationStatus
|
abstract override val status: FirDeclarationStatus
|
||||||
|
abstract override val receiverTypeRef: FirTypeRef?
|
||||||
|
abstract override val deprecation: DeprecationsPerUseSite?
|
||||||
abstract override val containerSource: DeserializedContainerSource?
|
abstract override val containerSource: DeserializedContainerSource?
|
||||||
abstract override val dispatchReceiverType: ConeKotlinType?
|
abstract override val dispatchReceiverType: ConeKotlinType?
|
||||||
abstract val name: Name
|
abstract val name: Name
|
||||||
@@ -64,12 +64,12 @@ sealed class FirVariable : FirCallableMemberDeclaration(), FirStatement {
|
|||||||
|
|
||||||
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirVariable
|
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirVariable
|
||||||
|
|
||||||
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirVariable
|
|
||||||
|
|
||||||
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirVariable
|
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirVariable
|
||||||
|
|
||||||
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirVariable
|
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirVariable
|
||||||
|
|
||||||
|
abstract override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirVariable
|
||||||
|
|
||||||
abstract fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirVariable
|
abstract fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirVariable
|
||||||
|
|
||||||
abstract fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirVariable
|
abstract fun <D> transformDelegate(transformer: FirTransformer<D>, data: D): FirVariable
|
||||||
|
|||||||
+2
-2
@@ -41,14 +41,14 @@ interface FirAbstractConstructorBuilder : FirFunctionBuilder {
|
|||||||
abstract override var attributes: FirDeclarationAttributes
|
abstract override var attributes: FirDeclarationAttributes
|
||||||
abstract override val annotations: MutableList<FirAnnotationCall>
|
abstract override val annotations: MutableList<FirAnnotationCall>
|
||||||
abstract override var returnTypeRef: FirTypeRef
|
abstract override var returnTypeRef: FirTypeRef
|
||||||
abstract override var deprecation: DeprecationsPerUseSite?
|
|
||||||
abstract override var status: FirDeclarationStatus
|
abstract override var status: FirDeclarationStatus
|
||||||
|
abstract override var deprecation: DeprecationsPerUseSite?
|
||||||
abstract override var containerSource: DeserializedContainerSource?
|
abstract override var containerSource: DeserializedContainerSource?
|
||||||
abstract override var dispatchReceiverType: ConeKotlinType?
|
abstract override var dispatchReceiverType: ConeKotlinType?
|
||||||
abstract override val valueParameters: MutableList<FirValueParameter>
|
abstract override val valueParameters: MutableList<FirValueParameter>
|
||||||
abstract override var body: FirBlock?
|
abstract override var body: FirBlock?
|
||||||
abstract var receiverTypeRef: FirTypeRef?
|
|
||||||
abstract val typeParameters: MutableList<FirTypeParameterRef>
|
abstract val typeParameters: MutableList<FirTypeParameterRef>
|
||||||
|
abstract var receiverTypeRef: FirTypeRef?
|
||||||
abstract var controlFlowGraphReference: FirControlFlowGraphReference?
|
abstract var controlFlowGraphReference: FirControlFlowGraphReference?
|
||||||
abstract var symbol: FirConstructorSymbol
|
abstract var symbol: FirConstructorSymbol
|
||||||
abstract var delegatedConstructor: FirDelegatedConstructorCall?
|
abstract var delegatedConstructor: FirDelegatedConstructorCall?
|
||||||
|
|||||||
+6
-6
@@ -43,10 +43,10 @@ open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationC
|
|||||||
override lateinit var origin: FirDeclarationOrigin
|
override lateinit var origin: FirDeclarationOrigin
|
||||||
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
||||||
override lateinit var returnTypeRef: FirTypeRef
|
override lateinit var returnTypeRef: FirTypeRef
|
||||||
override var receiverTypeRef: FirTypeRef? = null
|
|
||||||
override var deprecation: DeprecationsPerUseSite? = null
|
|
||||||
override val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
|
override val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
|
||||||
override lateinit var status: FirDeclarationStatus
|
override lateinit var status: FirDeclarationStatus
|
||||||
|
override var receiverTypeRef: FirTypeRef? = null
|
||||||
|
override var deprecation: DeprecationsPerUseSite? = null
|
||||||
override var containerSource: DeserializedContainerSource? = null
|
override var containerSource: DeserializedContainerSource? = null
|
||||||
override var dispatchReceiverType: ConeKotlinType? = null
|
override var dispatchReceiverType: ConeKotlinType? = null
|
||||||
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
|
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
|
||||||
@@ -63,10 +63,10 @@ open class FirConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotationC
|
|||||||
origin,
|
origin,
|
||||||
attributes,
|
attributes,
|
||||||
returnTypeRef,
|
returnTypeRef,
|
||||||
receiverTypeRef,
|
|
||||||
deprecation,
|
|
||||||
typeParameters,
|
typeParameters,
|
||||||
status,
|
status,
|
||||||
|
receiverTypeRef,
|
||||||
|
deprecation,
|
||||||
containerSource,
|
containerSource,
|
||||||
dispatchReceiverType,
|
dispatchReceiverType,
|
||||||
valueParameters,
|
valueParameters,
|
||||||
@@ -106,10 +106,10 @@ inline fun buildConstructorCopy(original: FirConstructor, init: FirConstructorBu
|
|||||||
copyBuilder.origin = original.origin
|
copyBuilder.origin = original.origin
|
||||||
copyBuilder.attributes = original.attributes.copy()
|
copyBuilder.attributes = original.attributes.copy()
|
||||||
copyBuilder.returnTypeRef = original.returnTypeRef
|
copyBuilder.returnTypeRef = original.returnTypeRef
|
||||||
copyBuilder.receiverTypeRef = original.receiverTypeRef
|
|
||||||
copyBuilder.deprecation = original.deprecation
|
|
||||||
copyBuilder.typeParameters.addAll(original.typeParameters)
|
copyBuilder.typeParameters.addAll(original.typeParameters)
|
||||||
copyBuilder.status = original.status
|
copyBuilder.status = original.status
|
||||||
|
copyBuilder.receiverTypeRef = original.receiverTypeRef
|
||||||
|
copyBuilder.deprecation = original.deprecation
|
||||||
copyBuilder.containerSource = original.containerSource
|
copyBuilder.containerSource = original.containerSource
|
||||||
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
|
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
|
||||||
copyBuilder.valueParameters.addAll(original.valueParameters)
|
copyBuilder.valueParameters.addAll(original.valueParameters)
|
||||||
|
|||||||
+2
-2
@@ -41,9 +41,9 @@ class FirEnumEntryBuilder : FirAnnotationContainerBuilder {
|
|||||||
lateinit var origin: FirDeclarationOrigin
|
lateinit var origin: FirDeclarationOrigin
|
||||||
var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
||||||
lateinit var returnTypeRef: FirTypeRef
|
lateinit var returnTypeRef: FirTypeRef
|
||||||
var deprecation: DeprecationsPerUseSite? = null
|
|
||||||
val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
|
val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
|
||||||
lateinit var status: FirDeclarationStatus
|
lateinit var status: FirDeclarationStatus
|
||||||
|
var deprecation: DeprecationsPerUseSite? = null
|
||||||
var containerSource: DeserializedContainerSource? = null
|
var containerSource: DeserializedContainerSource? = null
|
||||||
var dispatchReceiverType: ConeKotlinType? = null
|
var dispatchReceiverType: ConeKotlinType? = null
|
||||||
lateinit var name: Name
|
lateinit var name: Name
|
||||||
@@ -59,9 +59,9 @@ class FirEnumEntryBuilder : FirAnnotationContainerBuilder {
|
|||||||
origin,
|
origin,
|
||||||
attributes,
|
attributes,
|
||||||
returnTypeRef,
|
returnTypeRef,
|
||||||
deprecation,
|
|
||||||
typeParameters,
|
typeParameters,
|
||||||
status,
|
status,
|
||||||
|
deprecation,
|
||||||
containerSource,
|
containerSource,
|
||||||
dispatchReceiverType,
|
dispatchReceiverType,
|
||||||
name,
|
name,
|
||||||
|
|||||||
+2
-2
@@ -43,9 +43,9 @@ open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilde
|
|||||||
override lateinit var origin: FirDeclarationOrigin
|
override lateinit var origin: FirDeclarationOrigin
|
||||||
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
||||||
open lateinit var returnTypeRef: FirTypeRef
|
open lateinit var returnTypeRef: FirTypeRef
|
||||||
open var deprecation: DeprecationsPerUseSite? = null
|
|
||||||
open val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
|
open val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
|
||||||
open lateinit var status: FirDeclarationStatus
|
open lateinit var status: FirDeclarationStatus
|
||||||
|
open var deprecation: DeprecationsPerUseSite? = null
|
||||||
open var containerSource: DeserializedContainerSource? = null
|
open var containerSource: DeserializedContainerSource? = null
|
||||||
open var dispatchReceiverType: ConeKotlinType? = null
|
open var dispatchReceiverType: ConeKotlinType? = null
|
||||||
open lateinit var name: Name
|
open lateinit var name: Name
|
||||||
@@ -63,9 +63,9 @@ open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilde
|
|||||||
origin,
|
origin,
|
||||||
attributes,
|
attributes,
|
||||||
returnTypeRef,
|
returnTypeRef,
|
||||||
deprecation,
|
|
||||||
typeParameters,
|
typeParameters,
|
||||||
status,
|
status,
|
||||||
|
deprecation,
|
||||||
containerSource,
|
containerSource,
|
||||||
dispatchReceiverType,
|
dispatchReceiverType,
|
||||||
name,
|
name,
|
||||||
|
|||||||
+1
-1
@@ -38,8 +38,8 @@ interface FirFunctionBuilder : FirDeclarationBuilder, FirAnnotationContainerBuil
|
|||||||
abstract override var attributes: FirDeclarationAttributes
|
abstract override var attributes: FirDeclarationAttributes
|
||||||
abstract override val annotations: MutableList<FirAnnotationCall>
|
abstract override val annotations: MutableList<FirAnnotationCall>
|
||||||
abstract var returnTypeRef: FirTypeRef
|
abstract var returnTypeRef: FirTypeRef
|
||||||
abstract var deprecation: DeprecationsPerUseSite?
|
|
||||||
abstract var status: FirDeclarationStatus
|
abstract var status: FirDeclarationStatus
|
||||||
|
abstract var deprecation: DeprecationsPerUseSite?
|
||||||
abstract var containerSource: DeserializedContainerSource?
|
abstract var containerSource: DeserializedContainerSource?
|
||||||
abstract var dispatchReceiverType: ConeKotlinType?
|
abstract var dispatchReceiverType: ConeKotlinType?
|
||||||
abstract val valueParameters: MutableList<FirValueParameter>
|
abstract val valueParameters: MutableList<FirValueParameter>
|
||||||
|
|||||||
+4
-4
@@ -43,10 +43,10 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio
|
|||||||
override lateinit var origin: FirDeclarationOrigin
|
override lateinit var origin: FirDeclarationOrigin
|
||||||
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
||||||
override lateinit var returnTypeRef: FirTypeRef
|
override lateinit var returnTypeRef: FirTypeRef
|
||||||
override var receiverTypeRef: FirTypeRef? = null
|
|
||||||
override var deprecation: DeprecationsPerUseSite? = null
|
|
||||||
override val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
|
override val typeParameters: MutableList<FirTypeParameterRef> = mutableListOf()
|
||||||
override lateinit var status: FirDeclarationStatus
|
override lateinit var status: FirDeclarationStatus
|
||||||
|
override var receiverTypeRef: FirTypeRef? = null
|
||||||
|
override var deprecation: DeprecationsPerUseSite? = null
|
||||||
override var containerSource: DeserializedContainerSource? = null
|
override var containerSource: DeserializedContainerSource? = null
|
||||||
override var dispatchReceiverType: ConeKotlinType? = null
|
override var dispatchReceiverType: ConeKotlinType? = null
|
||||||
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
|
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
|
||||||
@@ -63,10 +63,10 @@ class FirPrimaryConstructorBuilder : FirAbstractConstructorBuilder, FirAnnotatio
|
|||||||
origin,
|
origin,
|
||||||
attributes,
|
attributes,
|
||||||
returnTypeRef,
|
returnTypeRef,
|
||||||
receiverTypeRef,
|
|
||||||
deprecation,
|
|
||||||
typeParameters,
|
typeParameters,
|
||||||
status,
|
status,
|
||||||
|
receiverTypeRef,
|
||||||
|
deprecation,
|
||||||
containerSource,
|
containerSource,
|
||||||
dispatchReceiverType,
|
dispatchReceiverType,
|
||||||
valueParameters,
|
valueParameters,
|
||||||
|
|||||||
+3
-3
@@ -46,8 +46,8 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui
|
|||||||
override lateinit var origin: FirDeclarationOrigin
|
override lateinit var origin: FirDeclarationOrigin
|
||||||
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
||||||
override lateinit var returnTypeRef: FirTypeRef
|
override lateinit var returnTypeRef: FirTypeRef
|
||||||
override var deprecation: DeprecationsPerUseSite? = null
|
|
||||||
override lateinit var status: FirDeclarationStatus
|
override lateinit var status: FirDeclarationStatus
|
||||||
|
override var deprecation: DeprecationsPerUseSite? = null
|
||||||
override var containerSource: DeserializedContainerSource? = null
|
override var containerSource: DeserializedContainerSource? = null
|
||||||
override var dispatchReceiverType: ConeKotlinType? = null
|
override var dispatchReceiverType: ConeKotlinType? = null
|
||||||
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
|
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
|
||||||
@@ -67,8 +67,8 @@ class FirPropertyAccessorBuilder : FirFunctionBuilder, FirAnnotationContainerBui
|
|||||||
origin,
|
origin,
|
||||||
attributes,
|
attributes,
|
||||||
returnTypeRef,
|
returnTypeRef,
|
||||||
deprecation,
|
|
||||||
status,
|
status,
|
||||||
|
deprecation,
|
||||||
containerSource,
|
containerSource,
|
||||||
dispatchReceiverType,
|
dispatchReceiverType,
|
||||||
valueParameters,
|
valueParameters,
|
||||||
@@ -103,8 +103,8 @@ inline fun buildPropertyAccessorCopy(original: FirPropertyAccessor, init: FirPro
|
|||||||
copyBuilder.origin = original.origin
|
copyBuilder.origin = original.origin
|
||||||
copyBuilder.attributes = original.attributes.copy()
|
copyBuilder.attributes = original.attributes.copy()
|
||||||
copyBuilder.returnTypeRef = original.returnTypeRef
|
copyBuilder.returnTypeRef = original.returnTypeRef
|
||||||
copyBuilder.deprecation = original.deprecation
|
|
||||||
copyBuilder.status = original.status
|
copyBuilder.status = original.status
|
||||||
|
copyBuilder.deprecation = original.deprecation
|
||||||
copyBuilder.containerSource = original.containerSource
|
copyBuilder.containerSource = original.containerSource
|
||||||
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
|
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
|
||||||
copyBuilder.valueParameters.addAll(original.valueParameters)
|
copyBuilder.valueParameters.addAll(original.valueParameters)
|
||||||
|
|||||||
+3
-3
@@ -46,9 +46,9 @@ class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder,
|
|||||||
override lateinit var origin: FirDeclarationOrigin
|
override lateinit var origin: FirDeclarationOrigin
|
||||||
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
||||||
lateinit var returnTypeRef: FirTypeRef
|
lateinit var returnTypeRef: FirTypeRef
|
||||||
|
lateinit var status: FirDeclarationStatus
|
||||||
var receiverTypeRef: FirTypeRef? = null
|
var receiverTypeRef: FirTypeRef? = null
|
||||||
var deprecation: DeprecationsPerUseSite? = null
|
var deprecation: DeprecationsPerUseSite? = null
|
||||||
lateinit var status: FirDeclarationStatus
|
|
||||||
var containerSource: DeserializedContainerSource? = null
|
var containerSource: DeserializedContainerSource? = null
|
||||||
var dispatchReceiverType: ConeKotlinType? = null
|
var dispatchReceiverType: ConeKotlinType? = null
|
||||||
lateinit var name: Name
|
lateinit var name: Name
|
||||||
@@ -72,9 +72,9 @@ class FirPropertyBuilder : FirDeclarationBuilder, FirTypeParametersOwnerBuilder,
|
|||||||
origin,
|
origin,
|
||||||
attributes,
|
attributes,
|
||||||
returnTypeRef,
|
returnTypeRef,
|
||||||
|
status,
|
||||||
receiverTypeRef,
|
receiverTypeRef,
|
||||||
deprecation,
|
deprecation,
|
||||||
status,
|
|
||||||
containerSource,
|
containerSource,
|
||||||
dispatchReceiverType,
|
dispatchReceiverType,
|
||||||
name,
|
name,
|
||||||
@@ -114,9 +114,9 @@ inline fun buildPropertyCopy(original: FirProperty, init: FirPropertyBuilder.()
|
|||||||
copyBuilder.origin = original.origin
|
copyBuilder.origin = original.origin
|
||||||
copyBuilder.attributes = original.attributes.copy()
|
copyBuilder.attributes = original.attributes.copy()
|
||||||
copyBuilder.returnTypeRef = original.returnTypeRef
|
copyBuilder.returnTypeRef = original.returnTypeRef
|
||||||
|
copyBuilder.status = original.status
|
||||||
copyBuilder.receiverTypeRef = original.receiverTypeRef
|
copyBuilder.receiverTypeRef = original.receiverTypeRef
|
||||||
copyBuilder.deprecation = original.deprecation
|
copyBuilder.deprecation = original.deprecation
|
||||||
copyBuilder.status = original.status
|
|
||||||
copyBuilder.containerSource = original.containerSource
|
copyBuilder.containerSource = original.containerSource
|
||||||
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
|
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
|
||||||
copyBuilder.name = original.name
|
copyBuilder.name = original.name
|
||||||
|
|||||||
+3
-3
@@ -46,9 +46,9 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
|
|||||||
override lateinit var origin: FirDeclarationOrigin
|
override lateinit var origin: FirDeclarationOrigin
|
||||||
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
override var attributes: FirDeclarationAttributes = FirDeclarationAttributes()
|
||||||
override lateinit var returnTypeRef: FirTypeRef
|
override lateinit var returnTypeRef: FirTypeRef
|
||||||
|
override lateinit var status: FirDeclarationStatus
|
||||||
open var receiverTypeRef: FirTypeRef? = null
|
open var receiverTypeRef: FirTypeRef? = null
|
||||||
override var deprecation: DeprecationsPerUseSite? = null
|
override var deprecation: DeprecationsPerUseSite? = null
|
||||||
override lateinit var status: FirDeclarationStatus
|
|
||||||
override var containerSource: DeserializedContainerSource? = null
|
override var containerSource: DeserializedContainerSource? = null
|
||||||
override var dispatchReceiverType: ConeKotlinType? = null
|
override var dispatchReceiverType: ConeKotlinType? = null
|
||||||
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
|
override val valueParameters: MutableList<FirValueParameter> = mutableListOf()
|
||||||
@@ -67,9 +67,9 @@ open class FirSimpleFunctionBuilder : FirFunctionBuilder, FirTypeParametersOwner
|
|||||||
origin,
|
origin,
|
||||||
attributes,
|
attributes,
|
||||||
returnTypeRef,
|
returnTypeRef,
|
||||||
|
status,
|
||||||
receiverTypeRef,
|
receiverTypeRef,
|
||||||
deprecation,
|
deprecation,
|
||||||
status,
|
|
||||||
containerSource,
|
containerSource,
|
||||||
dispatchReceiverType,
|
dispatchReceiverType,
|
||||||
valueParameters,
|
valueParameters,
|
||||||
@@ -104,9 +104,9 @@ inline fun buildSimpleFunctionCopy(original: FirSimpleFunction, init: FirSimpleF
|
|||||||
copyBuilder.origin = original.origin
|
copyBuilder.origin = original.origin
|
||||||
copyBuilder.attributes = original.attributes.copy()
|
copyBuilder.attributes = original.attributes.copy()
|
||||||
copyBuilder.returnTypeRef = original.returnTypeRef
|
copyBuilder.returnTypeRef = original.returnTypeRef
|
||||||
|
copyBuilder.status = original.status
|
||||||
copyBuilder.receiverTypeRef = original.receiverTypeRef
|
copyBuilder.receiverTypeRef = original.receiverTypeRef
|
||||||
copyBuilder.deprecation = original.deprecation
|
copyBuilder.deprecation = original.deprecation
|
||||||
copyBuilder.status = original.status
|
|
||||||
copyBuilder.containerSource = original.containerSource
|
copyBuilder.containerSource = original.containerSource
|
||||||
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
|
copyBuilder.dispatchReceiverType = original.dispatchReceiverType
|
||||||
copyBuilder.valueParameters.addAll(original.valueParameters)
|
copyBuilder.valueParameters.addAll(original.valueParameters)
|
||||||
|
|||||||
+6
-6
@@ -65,8 +65,8 @@ internal class FirAnonymousFunctionImpl(
|
|||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
annotations.forEach { it.accept(visitor, data) }
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
returnTypeRef.accept(visitor, data)
|
returnTypeRef.accept(visitor, data)
|
||||||
receiverTypeRef?.accept(visitor, data)
|
|
||||||
status.accept(visitor, data)
|
status.accept(visitor, data)
|
||||||
|
receiverTypeRef?.accept(visitor, data)
|
||||||
controlFlowGraphReference?.accept(visitor, data)
|
controlFlowGraphReference?.accept(visitor, data)
|
||||||
valueParameters.forEach { it.accept(visitor, data) }
|
valueParameters.forEach { it.accept(visitor, data) }
|
||||||
body?.accept(visitor, data)
|
body?.accept(visitor, data)
|
||||||
@@ -78,8 +78,8 @@ internal class FirAnonymousFunctionImpl(
|
|||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirAnonymousFunctionImpl {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirAnonymousFunctionImpl {
|
||||||
transformAnnotations(transformer, data)
|
transformAnnotations(transformer, data)
|
||||||
transformReturnTypeRef(transformer, data)
|
transformReturnTypeRef(transformer, data)
|
||||||
transformReceiverTypeRef(transformer, data)
|
|
||||||
transformStatus(transformer, data)
|
transformStatus(transformer, data)
|
||||||
|
transformReceiverTypeRef(transformer, data)
|
||||||
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
|
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
|
||||||
transformValueParameters(transformer, data)
|
transformValueParameters(transformer, data)
|
||||||
transformBody(transformer, data)
|
transformBody(transformer, data)
|
||||||
@@ -99,13 +99,13 @@ internal class FirAnonymousFunctionImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirAnonymousFunctionImpl {
|
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirAnonymousFunctionImpl {
|
||||||
receiverTypeRef = receiverTypeRef?.transform(transformer, data)
|
status = status.transform(transformer, data)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirAnonymousFunctionImpl {
|
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirAnonymousFunctionImpl {
|
||||||
status = status.transform(transformer, data)
|
receiverTypeRef = receiverTypeRef?.transform(transformer, data)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+9
-9
@@ -37,10 +37,10 @@ internal class FirConstructorImpl(
|
|||||||
override val origin: FirDeclarationOrigin,
|
override val origin: FirDeclarationOrigin,
|
||||||
override val attributes: FirDeclarationAttributes,
|
override val attributes: FirDeclarationAttributes,
|
||||||
override var returnTypeRef: FirTypeRef,
|
override var returnTypeRef: FirTypeRef,
|
||||||
override var receiverTypeRef: FirTypeRef?,
|
|
||||||
override var deprecation: DeprecationsPerUseSite?,
|
|
||||||
override val typeParameters: MutableList<FirTypeParameterRef>,
|
override val typeParameters: MutableList<FirTypeParameterRef>,
|
||||||
override var status: FirDeclarationStatus,
|
override var status: FirDeclarationStatus,
|
||||||
|
override var receiverTypeRef: FirTypeRef?,
|
||||||
|
override var deprecation: DeprecationsPerUseSite?,
|
||||||
override val containerSource: DeserializedContainerSource?,
|
override val containerSource: DeserializedContainerSource?,
|
||||||
override val dispatchReceiverType: ConeKotlinType?,
|
override val dispatchReceiverType: ConeKotlinType?,
|
||||||
override val valueParameters: MutableList<FirValueParameter>,
|
override val valueParameters: MutableList<FirValueParameter>,
|
||||||
@@ -58,9 +58,9 @@ internal class FirConstructorImpl(
|
|||||||
|
|
||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
returnTypeRef.accept(visitor, data)
|
returnTypeRef.accept(visitor, data)
|
||||||
receiverTypeRef?.accept(visitor, data)
|
|
||||||
typeParameters.forEach { it.accept(visitor, data) }
|
typeParameters.forEach { it.accept(visitor, data) }
|
||||||
status.accept(visitor, data)
|
status.accept(visitor, data)
|
||||||
|
receiverTypeRef?.accept(visitor, data)
|
||||||
controlFlowGraphReference?.accept(visitor, data)
|
controlFlowGraphReference?.accept(visitor, data)
|
||||||
valueParameters.forEach { it.accept(visitor, data) }
|
valueParameters.forEach { it.accept(visitor, data) }
|
||||||
annotations.forEach { it.accept(visitor, data) }
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
@@ -70,9 +70,9 @@ internal class FirConstructorImpl(
|
|||||||
|
|
||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirConstructorImpl {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirConstructorImpl {
|
||||||
transformReturnTypeRef(transformer, data)
|
transformReturnTypeRef(transformer, data)
|
||||||
transformReceiverTypeRef(transformer, data)
|
|
||||||
transformTypeParameters(transformer, data)
|
transformTypeParameters(transformer, data)
|
||||||
transformStatus(transformer, data)
|
transformStatus(transformer, data)
|
||||||
|
transformReceiverTypeRef(transformer, data)
|
||||||
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
|
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
|
||||||
transformValueParameters(transformer, data)
|
transformValueParameters(transformer, data)
|
||||||
transformAnnotations(transformer, data)
|
transformAnnotations(transformer, data)
|
||||||
@@ -86,11 +86,6 @@ internal class FirConstructorImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirConstructorImpl {
|
|
||||||
receiverTypeRef = receiverTypeRef?.transform(transformer, data)
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirConstructorImpl {
|
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirConstructorImpl {
|
||||||
typeParameters.transformInplace(transformer, data)
|
typeParameters.transformInplace(transformer, data)
|
||||||
return this
|
return this
|
||||||
@@ -101,6 +96,11 @@ internal class FirConstructorImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirConstructorImpl {
|
||||||
|
receiverTypeRef = receiverTypeRef?.transform(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirConstructorImpl {
|
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirConstructorImpl {
|
||||||
valueParameters.transformInplace(transformer, data)
|
valueParameters.transformInplace(transformer, data)
|
||||||
return this
|
return this
|
||||||
|
|||||||
+7
-7
@@ -66,8 +66,8 @@ internal class FirDefaultSetterValueParameter(
|
|||||||
|
|
||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
returnTypeRef.accept(visitor, data)
|
returnTypeRef.accept(visitor, data)
|
||||||
receiverTypeRef?.accept(visitor, data)
|
|
||||||
status.accept(visitor, data)
|
status.accept(visitor, data)
|
||||||
|
receiverTypeRef?.accept(visitor, data)
|
||||||
initializer?.accept(visitor, data)
|
initializer?.accept(visitor, data)
|
||||||
delegate?.accept(visitor, data)
|
delegate?.accept(visitor, data)
|
||||||
getter?.accept(visitor, data)
|
getter?.accept(visitor, data)
|
||||||
@@ -79,8 +79,8 @@ internal class FirDefaultSetterValueParameter(
|
|||||||
|
|
||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
|
||||||
transformReturnTypeRef(transformer, data)
|
transformReturnTypeRef(transformer, data)
|
||||||
transformReceiverTypeRef(transformer, data)
|
|
||||||
transformStatus(transformer, data)
|
transformStatus(transformer, data)
|
||||||
|
transformReceiverTypeRef(transformer, data)
|
||||||
transformInitializer(transformer, data)
|
transformInitializer(transformer, data)
|
||||||
transformDelegate(transformer, data)
|
transformDelegate(transformer, data)
|
||||||
transformGetter(transformer, data)
|
transformGetter(transformer, data)
|
||||||
@@ -94,11 +94,6 @@ internal class FirDefaultSetterValueParameter(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
|
|
||||||
receiverTypeRef = receiverTypeRef?.transform(transformer, data)
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
|
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
@@ -108,6 +103,11 @@ internal class FirDefaultSetterValueParameter(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
|
||||||
|
receiverTypeRef = receiverTypeRef?.transform(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
|
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirDefaultSetterValueParameter {
|
||||||
initializer = initializer?.transform(transformer, data)
|
initializer = initializer?.transform(transformer, data)
|
||||||
return this
|
return this
|
||||||
|
|||||||
+5
-5
@@ -36,9 +36,9 @@ internal class FirEnumEntryImpl(
|
|||||||
override val origin: FirDeclarationOrigin,
|
override val origin: FirDeclarationOrigin,
|
||||||
override val attributes: FirDeclarationAttributes,
|
override val attributes: FirDeclarationAttributes,
|
||||||
override var returnTypeRef: FirTypeRef,
|
override var returnTypeRef: FirTypeRef,
|
||||||
override var deprecation: DeprecationsPerUseSite?,
|
|
||||||
override val typeParameters: MutableList<FirTypeParameterRef>,
|
override val typeParameters: MutableList<FirTypeParameterRef>,
|
||||||
override var status: FirDeclarationStatus,
|
override var status: FirDeclarationStatus,
|
||||||
|
override var deprecation: DeprecationsPerUseSite?,
|
||||||
override val containerSource: DeserializedContainerSource?,
|
override val containerSource: DeserializedContainerSource?,
|
||||||
override val dispatchReceiverType: ConeKotlinType?,
|
override val dispatchReceiverType: ConeKotlinType?,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
@@ -79,10 +79,6 @@ internal class FirEnumEntryImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
|
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
|
||||||
typeParameters.transformInplace(transformer, data)
|
typeParameters.transformInplace(transformer, data)
|
||||||
return this
|
return this
|
||||||
@@ -93,6 +89,10 @@ internal class FirEnumEntryImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
|
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirEnumEntryImpl {
|
||||||
initializer = initializer?.transform(transformer, data)
|
initializer = initializer?.transform(transformer, data)
|
||||||
return this
|
return this
|
||||||
|
|||||||
+4
-4
@@ -47,8 +47,8 @@ internal class FirErrorFunctionImpl(
|
|||||||
override val symbol: FirErrorFunctionSymbol,
|
override val symbol: FirErrorFunctionSymbol,
|
||||||
) : FirErrorFunction() {
|
) : FirErrorFunction() {
|
||||||
override var returnTypeRef: FirTypeRef = FirErrorTypeRefImpl(null, null, diagnostic)
|
override var returnTypeRef: FirTypeRef = FirErrorTypeRefImpl(null, null, diagnostic)
|
||||||
override val receiverTypeRef: FirTypeRef? get() = null
|
|
||||||
override var status: FirDeclarationStatus = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS
|
override var status: FirDeclarationStatus = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS
|
||||||
|
override val receiverTypeRef: FirTypeRef? get() = null
|
||||||
override var controlFlowGraphReference: FirControlFlowGraphReference? = null
|
override var controlFlowGraphReference: FirControlFlowGraphReference? = null
|
||||||
override val body: FirBlock? get() = null
|
override val body: FirBlock? get() = null
|
||||||
override val typeParameters: List<FirTypeParameter> get() = emptyList()
|
override val typeParameters: List<FirTypeParameter> get() = emptyList()
|
||||||
@@ -84,12 +84,12 @@ internal class FirErrorFunctionImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirErrorFunctionImpl {
|
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirErrorFunctionImpl {
|
||||||
|
status = status.transform(transformer, data)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirErrorFunctionImpl {
|
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirErrorFunctionImpl {
|
||||||
status = status.transform(transformer, data)
|
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
-5
@@ -47,9 +47,9 @@ internal class FirErrorPropertyImpl(
|
|||||||
override val symbol: FirErrorPropertySymbol,
|
override val symbol: FirErrorPropertySymbol,
|
||||||
) : FirErrorProperty() {
|
) : FirErrorProperty() {
|
||||||
override var returnTypeRef: FirTypeRef = FirErrorTypeRefImpl(null, null, diagnostic)
|
override var returnTypeRef: FirTypeRef = FirErrorTypeRefImpl(null, null, diagnostic)
|
||||||
override val receiverTypeRef: FirTypeRef? get() = null
|
|
||||||
override val typeParameters: List<FirTypeParameterRef> get() = emptyList()
|
override val typeParameters: List<FirTypeParameterRef> get() = emptyList()
|
||||||
override var status: FirDeclarationStatus = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS
|
override var status: FirDeclarationStatus = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS
|
||||||
|
override val receiverTypeRef: FirTypeRef? get() = null
|
||||||
override val initializer: FirExpression? get() = null
|
override val initializer: FirExpression? get() = null
|
||||||
override val delegate: FirExpression? get() = null
|
override val delegate: FirExpression? get() = null
|
||||||
override val isVar: Boolean get() = false
|
override val isVar: Boolean get() = false
|
||||||
@@ -79,10 +79,6 @@ internal class FirErrorPropertyImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
|
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
@@ -92,6 +88,10 @@ internal class FirErrorPropertyImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
|
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirErrorPropertyImpl {
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -37,9 +37,9 @@ class FirFieldImpl @FirImplementationDetail constructor(
|
|||||||
override val origin: FirDeclarationOrigin,
|
override val origin: FirDeclarationOrigin,
|
||||||
override val attributes: FirDeclarationAttributes,
|
override val attributes: FirDeclarationAttributes,
|
||||||
override var returnTypeRef: FirTypeRef,
|
override var returnTypeRef: FirTypeRef,
|
||||||
override var deprecation: DeprecationsPerUseSite?,
|
|
||||||
override val typeParameters: MutableList<FirTypeParameterRef>,
|
override val typeParameters: MutableList<FirTypeParameterRef>,
|
||||||
override var status: FirDeclarationStatus,
|
override var status: FirDeclarationStatus,
|
||||||
|
override var deprecation: DeprecationsPerUseSite?,
|
||||||
override val containerSource: DeserializedContainerSource?,
|
override val containerSource: DeserializedContainerSource?,
|
||||||
override val dispatchReceiverType: ConeKotlinType?,
|
override val dispatchReceiverType: ConeKotlinType?,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
@@ -80,10 +80,6 @@ class FirFieldImpl @FirImplementationDetail constructor(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirFieldImpl {
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirFieldImpl {
|
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirFieldImpl {
|
||||||
typeParameters.transformInplace(transformer, data)
|
typeParameters.transformInplace(transformer, data)
|
||||||
return this
|
return this
|
||||||
@@ -94,6 +90,10 @@ class FirFieldImpl @FirImplementationDetail constructor(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirFieldImpl {
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirFieldImpl {
|
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirFieldImpl {
|
||||||
initializer = initializer?.transform(transformer, data)
|
initializer = initializer?.transform(transformer, data)
|
||||||
return this
|
return this
|
||||||
|
|||||||
+9
-9
@@ -37,10 +37,10 @@ internal class FirPrimaryConstructor(
|
|||||||
override val origin: FirDeclarationOrigin,
|
override val origin: FirDeclarationOrigin,
|
||||||
override val attributes: FirDeclarationAttributes,
|
override val attributes: FirDeclarationAttributes,
|
||||||
override var returnTypeRef: FirTypeRef,
|
override var returnTypeRef: FirTypeRef,
|
||||||
override var receiverTypeRef: FirTypeRef?,
|
|
||||||
override var deprecation: DeprecationsPerUseSite?,
|
|
||||||
override val typeParameters: MutableList<FirTypeParameterRef>,
|
override val typeParameters: MutableList<FirTypeParameterRef>,
|
||||||
override var status: FirDeclarationStatus,
|
override var status: FirDeclarationStatus,
|
||||||
|
override var receiverTypeRef: FirTypeRef?,
|
||||||
|
override var deprecation: DeprecationsPerUseSite?,
|
||||||
override val containerSource: DeserializedContainerSource?,
|
override val containerSource: DeserializedContainerSource?,
|
||||||
override val dispatchReceiverType: ConeKotlinType?,
|
override val dispatchReceiverType: ConeKotlinType?,
|
||||||
override val valueParameters: MutableList<FirValueParameter>,
|
override val valueParameters: MutableList<FirValueParameter>,
|
||||||
@@ -58,9 +58,9 @@ internal class FirPrimaryConstructor(
|
|||||||
|
|
||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
returnTypeRef.accept(visitor, data)
|
returnTypeRef.accept(visitor, data)
|
||||||
receiverTypeRef?.accept(visitor, data)
|
|
||||||
typeParameters.forEach { it.accept(visitor, data) }
|
typeParameters.forEach { it.accept(visitor, data) }
|
||||||
status.accept(visitor, data)
|
status.accept(visitor, data)
|
||||||
|
receiverTypeRef?.accept(visitor, data)
|
||||||
controlFlowGraphReference?.accept(visitor, data)
|
controlFlowGraphReference?.accept(visitor, data)
|
||||||
valueParameters.forEach { it.accept(visitor, data) }
|
valueParameters.forEach { it.accept(visitor, data) }
|
||||||
annotations.forEach { it.accept(visitor, data) }
|
annotations.forEach { it.accept(visitor, data) }
|
||||||
@@ -70,9 +70,9 @@ internal class FirPrimaryConstructor(
|
|||||||
|
|
||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirPrimaryConstructor {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirPrimaryConstructor {
|
||||||
transformReturnTypeRef(transformer, data)
|
transformReturnTypeRef(transformer, data)
|
||||||
transformReceiverTypeRef(transformer, data)
|
|
||||||
transformTypeParameters(transformer, data)
|
transformTypeParameters(transformer, data)
|
||||||
transformStatus(transformer, data)
|
transformStatus(transformer, data)
|
||||||
|
transformReceiverTypeRef(transformer, data)
|
||||||
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
|
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
|
||||||
transformValueParameters(transformer, data)
|
transformValueParameters(transformer, data)
|
||||||
transformAnnotations(transformer, data)
|
transformAnnotations(transformer, data)
|
||||||
@@ -86,11 +86,6 @@ internal class FirPrimaryConstructor(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirPrimaryConstructor {
|
|
||||||
receiverTypeRef = receiverTypeRef?.transform(transformer, data)
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirPrimaryConstructor {
|
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirPrimaryConstructor {
|
||||||
typeParameters.transformInplace(transformer, data)
|
typeParameters.transformInplace(transformer, data)
|
||||||
return this
|
return this
|
||||||
@@ -101,6 +96,11 @@ internal class FirPrimaryConstructor(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirPrimaryConstructor {
|
||||||
|
receiverTypeRef = receiverTypeRef?.transform(transformer, data)
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirPrimaryConstructor {
|
override fun <D> transformValueParameters(transformer: FirTransformer<D>, data: D): FirPrimaryConstructor {
|
||||||
valueParameters.transformInplace(transformer, data)
|
valueParameters.transformInplace(transformer, data)
|
||||||
return this
|
return this
|
||||||
|
|||||||
+4
-4
@@ -39,8 +39,8 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
|
|||||||
override val origin: FirDeclarationOrigin,
|
override val origin: FirDeclarationOrigin,
|
||||||
override val attributes: FirDeclarationAttributes,
|
override val attributes: FirDeclarationAttributes,
|
||||||
override var returnTypeRef: FirTypeRef,
|
override var returnTypeRef: FirTypeRef,
|
||||||
override var deprecation: DeprecationsPerUseSite?,
|
|
||||||
override var status: FirDeclarationStatus,
|
override var status: FirDeclarationStatus,
|
||||||
|
override var deprecation: DeprecationsPerUseSite?,
|
||||||
override val containerSource: DeserializedContainerSource?,
|
override val containerSource: DeserializedContainerSource?,
|
||||||
override val dispatchReceiverType: ConeKotlinType?,
|
override val dispatchReceiverType: ConeKotlinType?,
|
||||||
override val valueParameters: MutableList<FirValueParameter>,
|
override val valueParameters: MutableList<FirValueParameter>,
|
||||||
@@ -87,12 +87,12 @@ open class FirPropertyAccessorImpl @FirImplementationDetail constructor(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl {
|
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl {
|
||||||
|
status = status.transform(transformer, data)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl {
|
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirPropertyAccessorImpl {
|
||||||
status = status.transform(transformer, data)
|
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,9 +39,9 @@ internal class FirPropertyImpl(
|
|||||||
override val origin: FirDeclarationOrigin,
|
override val origin: FirDeclarationOrigin,
|
||||||
override val attributes: FirDeclarationAttributes,
|
override val attributes: FirDeclarationAttributes,
|
||||||
override var returnTypeRef: FirTypeRef,
|
override var returnTypeRef: FirTypeRef,
|
||||||
|
override var status: FirDeclarationStatus,
|
||||||
override var receiverTypeRef: FirTypeRef?,
|
override var receiverTypeRef: FirTypeRef?,
|
||||||
override var deprecation: DeprecationsPerUseSite?,
|
override var deprecation: DeprecationsPerUseSite?,
|
||||||
override var status: FirDeclarationStatus,
|
|
||||||
override val containerSource: DeserializedContainerSource?,
|
override val containerSource: DeserializedContainerSource?,
|
||||||
override val dispatchReceiverType: ConeKotlinType?,
|
override val dispatchReceiverType: ConeKotlinType?,
|
||||||
override val name: Name,
|
override val name: Name,
|
||||||
@@ -69,8 +69,8 @@ internal class FirPropertyImpl(
|
|||||||
|
|
||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
returnTypeRef.accept(visitor, data)
|
returnTypeRef.accept(visitor, data)
|
||||||
receiverTypeRef?.accept(visitor, data)
|
|
||||||
status.accept(visitor, data)
|
status.accept(visitor, data)
|
||||||
|
receiverTypeRef?.accept(visitor, data)
|
||||||
initializer?.accept(visitor, data)
|
initializer?.accept(visitor, data)
|
||||||
delegate?.accept(visitor, data)
|
delegate?.accept(visitor, data)
|
||||||
getter?.accept(visitor, data)
|
getter?.accept(visitor, data)
|
||||||
@@ -82,8 +82,8 @@ internal class FirPropertyImpl(
|
|||||||
|
|
||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
|
||||||
transformReturnTypeRef(transformer, data)
|
transformReturnTypeRef(transformer, data)
|
||||||
transformReceiverTypeRef(transformer, data)
|
|
||||||
transformStatus(transformer, data)
|
transformStatus(transformer, data)
|
||||||
|
transformReceiverTypeRef(transformer, data)
|
||||||
transformInitializer(transformer, data)
|
transformInitializer(transformer, data)
|
||||||
transformDelegate(transformer, data)
|
transformDelegate(transformer, data)
|
||||||
transformGetter(transformer, data)
|
transformGetter(transformer, data)
|
||||||
@@ -98,13 +98,13 @@ internal class FirPropertyImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
|
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
|
||||||
receiverTypeRef = receiverTypeRef?.transform(transformer, data)
|
status = status.transform(transformer, data)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
|
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirPropertyImpl {
|
||||||
status = status.transform(transformer, data)
|
receiverTypeRef = receiverTypeRef?.transform(transformer, data)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-7
@@ -38,9 +38,9 @@ internal class FirSimpleFunctionImpl(
|
|||||||
override val origin: FirDeclarationOrigin,
|
override val origin: FirDeclarationOrigin,
|
||||||
override val attributes: FirDeclarationAttributes,
|
override val attributes: FirDeclarationAttributes,
|
||||||
override var returnTypeRef: FirTypeRef,
|
override var returnTypeRef: FirTypeRef,
|
||||||
|
override var status: FirDeclarationStatus,
|
||||||
override var receiverTypeRef: FirTypeRef?,
|
override var receiverTypeRef: FirTypeRef?,
|
||||||
override var deprecation: DeprecationsPerUseSite?,
|
override var deprecation: DeprecationsPerUseSite?,
|
||||||
override var status: FirDeclarationStatus,
|
|
||||||
override val containerSource: DeserializedContainerSource?,
|
override val containerSource: DeserializedContainerSource?,
|
||||||
override val dispatchReceiverType: ConeKotlinType?,
|
override val dispatchReceiverType: ConeKotlinType?,
|
||||||
override val valueParameters: MutableList<FirValueParameter>,
|
override val valueParameters: MutableList<FirValueParameter>,
|
||||||
@@ -59,8 +59,8 @@ internal class FirSimpleFunctionImpl(
|
|||||||
|
|
||||||
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
returnTypeRef.accept(visitor, data)
|
returnTypeRef.accept(visitor, data)
|
||||||
receiverTypeRef?.accept(visitor, data)
|
|
||||||
status.accept(visitor, data)
|
status.accept(visitor, data)
|
||||||
|
receiverTypeRef?.accept(visitor, data)
|
||||||
controlFlowGraphReference?.accept(visitor, data)
|
controlFlowGraphReference?.accept(visitor, data)
|
||||||
valueParameters.forEach { it.accept(visitor, data) }
|
valueParameters.forEach { it.accept(visitor, data) }
|
||||||
body?.accept(visitor, data)
|
body?.accept(visitor, data)
|
||||||
@@ -71,8 +71,8 @@ internal class FirSimpleFunctionImpl(
|
|||||||
|
|
||||||
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirSimpleFunctionImpl {
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirSimpleFunctionImpl {
|
||||||
transformReturnTypeRef(transformer, data)
|
transformReturnTypeRef(transformer, data)
|
||||||
transformReceiverTypeRef(transformer, data)
|
|
||||||
transformStatus(transformer, data)
|
transformStatus(transformer, data)
|
||||||
|
transformReceiverTypeRef(transformer, data)
|
||||||
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
|
controlFlowGraphReference = controlFlowGraphReference?.transform(transformer, data)
|
||||||
transformValueParameters(transformer, data)
|
transformValueParameters(transformer, data)
|
||||||
transformBody(transformer, data)
|
transformBody(transformer, data)
|
||||||
@@ -87,13 +87,13 @@ internal class FirSimpleFunctionImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirSimpleFunctionImpl {
|
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirSimpleFunctionImpl {
|
||||||
receiverTypeRef = receiverTypeRef?.transform(transformer, data)
|
status = status.transform(transformer, data)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirSimpleFunctionImpl {
|
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirSimpleFunctionImpl {
|
||||||
status = status.transform(transformer, data)
|
receiverTypeRef = receiverTypeRef?.transform(transformer, data)
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+5
-5
@@ -49,9 +49,9 @@ internal class FirValueParameterImpl(
|
|||||||
override val isNoinline: Boolean,
|
override val isNoinline: Boolean,
|
||||||
override val isVararg: Boolean,
|
override val isVararg: Boolean,
|
||||||
) : FirValueParameter() {
|
) : FirValueParameter() {
|
||||||
override val receiverTypeRef: FirTypeRef? get() = null
|
|
||||||
override val typeParameters: List<FirTypeParameterRef> get() = emptyList()
|
override val typeParameters: List<FirTypeParameterRef> get() = emptyList()
|
||||||
override var status: FirDeclarationStatus = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS
|
override var status: FirDeclarationStatus = FirResolvedDeclarationStatusImpl.DEFAULT_STATUS_FOR_STATUSLESS_DECLARATIONS
|
||||||
|
override val receiverTypeRef: FirTypeRef? get() = null
|
||||||
override val initializer: FirExpression? get() = null
|
override val initializer: FirExpression? get() = null
|
||||||
override val delegate: FirExpression? get() = null
|
override val delegate: FirExpression? get() = null
|
||||||
override val isVar: Boolean get() = false
|
override val isVar: Boolean get() = false
|
||||||
@@ -84,10 +84,6 @@ internal class FirValueParameterImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirValueParameterImpl {
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirValueParameterImpl {
|
override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirValueParameterImpl {
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
@@ -97,6 +93,10 @@ internal class FirValueParameterImpl(
|
|||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun <D> transformReceiverTypeRef(transformer: FirTransformer<D>, data: D): FirValueParameterImpl {
|
||||||
|
return this
|
||||||
|
}
|
||||||
|
|
||||||
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirValueParameterImpl {
|
override fun <D> transformInitializer(transformer: FirTransformer<D>, data: D): FirValueParameterImpl {
|
||||||
return this
|
return this
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,13 +21,12 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirAnnotatedDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirAnnotatedDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
|
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirVariable
|
import org.jetbrains.kotlin.fir.declarations.FirVariable
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
@@ -204,18 +203,6 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
|
|||||||
return transformElement(typedDeclaration, data)
|
return transformElement(typedDeclaration, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun transformCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): FirCallableDeclaration {
|
|
||||||
return transformElement(callableDeclaration, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
open fun transformTypeParameterRef(typeParameterRef: FirTypeParameterRef, data: D): FirTypeParameterRef {
|
|
||||||
return transformElement(typeParameterRef, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
open fun transformTypeParameter(typeParameter: FirTypeParameter, data: D): FirTypeParameterRef {
|
|
||||||
return transformElement(typeParameter, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
open fun transformTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner, data: D): FirTypeParameterRefsOwner {
|
open fun transformTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner, data: D): FirTypeParameterRefsOwner {
|
||||||
return transformElement(typeParameterRefsOwner, data)
|
return transformElement(typeParameterRefsOwner, data)
|
||||||
}
|
}
|
||||||
@@ -228,8 +215,16 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
|
|||||||
return transformElement(memberDeclaration, data)
|
return transformElement(memberDeclaration, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun transformCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration, data: D): FirCallableMemberDeclaration {
|
open fun transformCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): FirCallableDeclaration {
|
||||||
return transformElement(callableMemberDeclaration, data)
|
return transformElement(callableDeclaration, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
open fun transformTypeParameterRef(typeParameterRef: FirTypeParameterRef, data: D): FirTypeParameterRef {
|
||||||
|
return transformElement(typeParameterRef, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
open fun transformTypeParameter(typeParameter: FirTypeParameter, data: D): FirTypeParameterRef {
|
||||||
|
return transformElement(typeParameter, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun transformVariable(variable: FirVariable, data: D): FirStatement {
|
open fun transformVariable(variable: FirVariable, data: D): FirStatement {
|
||||||
@@ -720,18 +715,6 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
|
|||||||
return transformTypedDeclaration(typedDeclaration, data)
|
return transformTypedDeclaration(typedDeclaration, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
final override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): FirCallableDeclaration {
|
|
||||||
return transformCallableDeclaration(callableDeclaration, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
final override fun visitTypeParameterRef(typeParameterRef: FirTypeParameterRef, data: D): FirTypeParameterRef {
|
|
||||||
return transformTypeParameterRef(typeParameterRef, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
final override fun visitTypeParameter(typeParameter: FirTypeParameter, data: D): FirTypeParameterRef {
|
|
||||||
return transformTypeParameter(typeParameter, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
final override fun visitTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner, data: D): FirTypeParameterRefsOwner {
|
final override fun visitTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner, data: D): FirTypeParameterRefsOwner {
|
||||||
return transformTypeParameterRefsOwner(typeParameterRefsOwner, data)
|
return transformTypeParameterRefsOwner(typeParameterRefsOwner, data)
|
||||||
}
|
}
|
||||||
@@ -744,8 +727,16 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
|
|||||||
return transformMemberDeclaration(memberDeclaration, data)
|
return transformMemberDeclaration(memberDeclaration, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
final override fun visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration, data: D): FirCallableMemberDeclaration {
|
final override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): FirCallableDeclaration {
|
||||||
return transformCallableMemberDeclaration(callableMemberDeclaration, data)
|
return transformCallableDeclaration(callableDeclaration, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
final override fun visitTypeParameterRef(typeParameterRef: FirTypeParameterRef, data: D): FirTypeParameterRef {
|
||||||
|
return transformTypeParameterRef(typeParameterRef, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
final override fun visitTypeParameter(typeParameter: FirTypeParameter, data: D): FirTypeParameterRef {
|
||||||
|
return transformTypeParameter(typeParameter, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
final override fun visitVariable(variable: FirVariable, data: D): FirStatement {
|
final override fun visitVariable(variable: FirVariable, data: D): FirStatement {
|
||||||
|
|||||||
@@ -21,13 +21,12 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirAnnotatedDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirAnnotatedDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
|
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirVariable
|
import org.jetbrains.kotlin.fir.declarations.FirVariable
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
@@ -173,19 +172,17 @@ abstract class FirVisitor<out R, in D> {
|
|||||||
|
|
||||||
open fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration, data: D): R = visitElement(typedDeclaration, data)
|
open fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration, data: D): R = visitElement(typedDeclaration, data)
|
||||||
|
|
||||||
open fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): R = visitElement(callableDeclaration, data)
|
|
||||||
|
|
||||||
open fun visitTypeParameterRef(typeParameterRef: FirTypeParameterRef, data: D): R = visitElement(typeParameterRef, data)
|
|
||||||
|
|
||||||
open fun visitTypeParameter(typeParameter: FirTypeParameter, data: D): R = visitElement(typeParameter, data)
|
|
||||||
|
|
||||||
open fun visitTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner, data: D): R = visitElement(typeParameterRefsOwner, data)
|
open fun visitTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner, data: D): R = visitElement(typeParameterRefsOwner, data)
|
||||||
|
|
||||||
open fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner, data: D): R = visitElement(typeParametersOwner, data)
|
open fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner, data: D): R = visitElement(typeParametersOwner, data)
|
||||||
|
|
||||||
open fun visitMemberDeclaration(memberDeclaration: FirMemberDeclaration, data: D): R = visitElement(memberDeclaration, data)
|
open fun visitMemberDeclaration(memberDeclaration: FirMemberDeclaration, data: D): R = visitElement(memberDeclaration, data)
|
||||||
|
|
||||||
open fun visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration, data: D): R = visitElement(callableMemberDeclaration, data)
|
open fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): R = visitElement(callableDeclaration, data)
|
||||||
|
|
||||||
|
open fun visitTypeParameterRef(typeParameterRef: FirTypeParameterRef, data: D): R = visitElement(typeParameterRef, data)
|
||||||
|
|
||||||
|
open fun visitTypeParameter(typeParameter: FirTypeParameter, data: D): R = visitElement(typeParameter, data)
|
||||||
|
|
||||||
open fun visitVariable(variable: FirVariable, data: D): R = visitElement(variable, data)
|
open fun visitVariable(variable: FirVariable, data: D): R = visitElement(variable, data)
|
||||||
|
|
||||||
|
|||||||
@@ -21,13 +21,12 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirAnnotatedDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirAnnotatedDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
|
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
||||||
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirVariable
|
import org.jetbrains.kotlin.fir.declarations.FirVariable
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
import org.jetbrains.kotlin.fir.declarations.FirProperty
|
||||||
@@ -203,18 +202,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitElement(typedDeclaration)
|
visitElement(typedDeclaration)
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) {
|
|
||||||
visitElement(callableDeclaration)
|
|
||||||
}
|
|
||||||
|
|
||||||
open fun visitTypeParameterRef(typeParameterRef: FirTypeParameterRef) {
|
|
||||||
visitElement(typeParameterRef)
|
|
||||||
}
|
|
||||||
|
|
||||||
open fun visitTypeParameter(typeParameter: FirTypeParameter) {
|
|
||||||
visitElement(typeParameter)
|
|
||||||
}
|
|
||||||
|
|
||||||
open fun visitTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner) {
|
open fun visitTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner) {
|
||||||
visitElement(typeParameterRefsOwner)
|
visitElement(typeParameterRefsOwner)
|
||||||
}
|
}
|
||||||
@@ -227,8 +214,16 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitElement(memberDeclaration)
|
visitElement(memberDeclaration)
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration) {
|
open fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) {
|
||||||
visitElement(callableMemberDeclaration)
|
visitElement(callableDeclaration)
|
||||||
|
}
|
||||||
|
|
||||||
|
open fun visitTypeParameterRef(typeParameterRef: FirTypeParameterRef) {
|
||||||
|
visitElement(typeParameterRef)
|
||||||
|
}
|
||||||
|
|
||||||
|
open fun visitTypeParameter(typeParameter: FirTypeParameter) {
|
||||||
|
visitElement(typeParameter)
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun visitVariable(variable: FirVariable) {
|
open fun visitVariable(variable: FirVariable) {
|
||||||
@@ -719,18 +714,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitTypedDeclaration(typedDeclaration)
|
visitTypedDeclaration(typedDeclaration)
|
||||||
}
|
}
|
||||||
|
|
||||||
final override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: Nothing?) {
|
|
||||||
visitCallableDeclaration(callableDeclaration)
|
|
||||||
}
|
|
||||||
|
|
||||||
final override fun visitTypeParameterRef(typeParameterRef: FirTypeParameterRef, data: Nothing?) {
|
|
||||||
visitTypeParameterRef(typeParameterRef)
|
|
||||||
}
|
|
||||||
|
|
||||||
final override fun visitTypeParameter(typeParameter: FirTypeParameter, data: Nothing?) {
|
|
||||||
visitTypeParameter(typeParameter)
|
|
||||||
}
|
|
||||||
|
|
||||||
final override fun visitTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner, data: Nothing?) {
|
final override fun visitTypeParameterRefsOwner(typeParameterRefsOwner: FirTypeParameterRefsOwner, data: Nothing?) {
|
||||||
visitTypeParameterRefsOwner(typeParameterRefsOwner)
|
visitTypeParameterRefsOwner(typeParameterRefsOwner)
|
||||||
}
|
}
|
||||||
@@ -743,8 +726,16 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitMemberDeclaration(memberDeclaration)
|
visitMemberDeclaration(memberDeclaration)
|
||||||
}
|
}
|
||||||
|
|
||||||
final override fun visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration, data: Nothing?) {
|
final override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: Nothing?) {
|
||||||
visitCallableMemberDeclaration(callableMemberDeclaration)
|
visitCallableDeclaration(callableDeclaration)
|
||||||
|
}
|
||||||
|
|
||||||
|
final override fun visitTypeParameterRef(typeParameterRef: FirTypeParameterRef, data: Nothing?) {
|
||||||
|
visitTypeParameterRef(typeParameterRef)
|
||||||
|
}
|
||||||
|
|
||||||
|
final override fun visitTypeParameter(typeParameter: FirTypeParameter, data: Nothing?) {
|
||||||
|
visitTypeParameter(typeParameter)
|
||||||
}
|
}
|
||||||
|
|
||||||
final override fun visitVariable(variable: FirVariable, data: Nothing?) {
|
final override fun visitVariable(variable: FirVariable, data: Nothing?) {
|
||||||
|
|||||||
@@ -16,15 +16,12 @@ import org.jetbrains.kotlin.fir.types.ConeIntersectionType
|
|||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
|
|
||||||
fun FirCallableSymbol<*>.dispatchReceiverTypeOrNull(): ConeKotlinType? =
|
fun FirCallableSymbol<*>.dispatchReceiverTypeOrNull(): ConeKotlinType? =
|
||||||
(fir as? FirCallableMemberDeclaration)?.dispatchReceiverType
|
fir.dispatchReceiverType
|
||||||
|
|
||||||
fun FirCallableSymbol<*>.dispatchReceiverClassOrNull(): ConeClassLikeLookupTag? =
|
fun FirCallableSymbol<*>.dispatchReceiverClassOrNull(): ConeClassLikeLookupTag? =
|
||||||
(fir as? FirCallableMemberDeclaration)?.dispatchReceiverClassOrNull()
|
fir.dispatchReceiverClassOrNull()
|
||||||
|
|
||||||
fun FirCallableDeclaration.dispatchReceiverClassOrNull(): ConeClassLikeLookupTag? =
|
fun FirCallableDeclaration.dispatchReceiverClassOrNull(): ConeClassLikeLookupTag? {
|
||||||
(this as? FirCallableMemberDeclaration)?.dispatchReceiverClassOrNull()
|
|
||||||
|
|
||||||
fun FirCallableMemberDeclaration.dispatchReceiverClassOrNull(): ConeClassLikeLookupTag? {
|
|
||||||
if (dispatchReceiverType is ConeIntersectionType && isIntersectionOverride) return symbol.baseForIntersectionOverride!!.fir.dispatchReceiverClassOrNull()
|
if (dispatchReceiverType is ConeIntersectionType && isIntersectionOverride) return symbol.baseForIntersectionOverride!!.fir.dispatchReceiverClassOrNull()
|
||||||
|
|
||||||
return (dispatchReceiverType as? ConeClassLikeType)?.lookupTag
|
return (dispatchReceiverType as? ConeClassLikeType)?.lookupTag
|
||||||
@@ -35,9 +32,6 @@ fun FirCallableDeclaration.containingClass(): ConeClassLikeLookupTag? {
|
|||||||
return (containingClassAttr ?: dispatchReceiverClassOrNull())
|
return (containingClassAttr ?: dispatchReceiverClassOrNull())
|
||||||
}
|
}
|
||||||
|
|
||||||
fun FirCallableMemberDeclaration.containingClass(): ConeClassLikeLookupTag? {
|
|
||||||
return (containingClassAttr ?: dispatchReceiverClassOrNull())
|
|
||||||
}
|
|
||||||
fun FirRegularClass.containingClassForLocal(): ConeClassLikeLookupTag? =
|
fun FirRegularClass.containingClassForLocal(): ConeClassLikeLookupTag? =
|
||||||
if (isLocal) containingClassForLocalAttr else null
|
if (isLocal) containingClassForLocalAttr else null
|
||||||
|
|
||||||
|
|||||||
@@ -217,11 +217,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
|
|||||||
|
|
||||||
override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) {
|
override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) {
|
||||||
callableDeclaration.annotations.renderAnnotations()
|
callableDeclaration.annotations.renderAnnotations()
|
||||||
if (callableDeclaration is FirMemberDeclaration) {
|
visitMemberDeclaration(callableDeclaration)
|
||||||
visitMemberDeclaration(callableDeclaration)
|
|
||||||
} else {
|
|
||||||
visitTypedDeclaration(callableDeclaration)
|
|
||||||
}
|
|
||||||
val receiverType = callableDeclaration.receiverTypeRef
|
val receiverType = callableDeclaration.receiverTypeRef
|
||||||
print(" ")
|
print(" ")
|
||||||
if (receiverType != null) {
|
if (receiverType != null) {
|
||||||
@@ -275,7 +271,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
|
|||||||
|
|
||||||
private fun FirMemberDeclaration.modalityAsString(): String {
|
private fun FirMemberDeclaration.modalityAsString(): String {
|
||||||
return modality?.name?.toLowerCaseAsciiOnly() ?: run {
|
return modality?.name?.toLowerCaseAsciiOnly() ?: run {
|
||||||
if (this is FirCallableMemberDeclaration && this.isOverride) {
|
if (this is FirCallableDeclaration && this.isOverride) {
|
||||||
"open?"
|
"open?"
|
||||||
} else {
|
} else {
|
||||||
"final?"
|
"final?"
|
||||||
@@ -1088,7 +1084,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM
|
|||||||
override fun visitResolvedNamedReference(resolvedNamedReference: FirResolvedNamedReference) {
|
override fun visitResolvedNamedReference(resolvedNamedReference: FirResolvedNamedReference) {
|
||||||
print("R|")
|
print("R|")
|
||||||
val symbol = resolvedNamedReference.resolvedSymbol
|
val symbol = resolvedNamedReference.resolvedSymbol
|
||||||
val isSubstitutionOverride = (symbol.fir as? FirCallableMemberDeclaration)?.isSubstitutionOverride == true
|
val isSubstitutionOverride = (symbol.fir as? FirCallableDeclaration)?.isSubstitutionOverride == true
|
||||||
|
|
||||||
if (isSubstitutionOverride) {
|
if (isSubstitutionOverride) {
|
||||||
print("SubstitutionOverride<")
|
print("SubstitutionOverride<")
|
||||||
|
|||||||
+3
-3
@@ -5,13 +5,13 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.declarations.comparators
|
package org.jetbrains.kotlin.fir.declarations.comparators
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
||||||
import org.jetbrains.kotlin.fir.render
|
import org.jetbrains.kotlin.fir.render
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRefComparator
|
import org.jetbrains.kotlin.fir.types.FirTypeRefComparator
|
||||||
|
|
||||||
object FirCallableMemberDeclarationComparator : Comparator<FirCallableMemberDeclaration> {
|
object FirCallableDeclarationComparator : Comparator<FirCallableDeclaration> {
|
||||||
override fun compare(a: FirCallableMemberDeclaration, b: FirCallableMemberDeclaration): Int {
|
override fun compare(a: FirCallableDeclaration, b: FirCallableDeclaration): Int {
|
||||||
val typeAndNameDiff = FirMemberDeclarationComparator.TypeAndNameComparator.compare(a, b)
|
val typeAndNameDiff = FirMemberDeclarationComparator.TypeAndNameComparator.compare(a, b)
|
||||||
if (typeAndNameDiff != 0) {
|
if (typeAndNameDiff != 0) {
|
||||||
return typeAndNameDiff
|
return typeAndNameDiff
|
||||||
+3
-3
@@ -29,7 +29,7 @@ object FirMemberDeclarationComparator : Comparator<FirMemberDeclaration> {
|
|||||||
|
|
||||||
private val FirMemberDeclaration.name: Name
|
private val FirMemberDeclaration.name: Name
|
||||||
get() = when (this) {
|
get() = when (this) {
|
||||||
is FirCallableMemberDeclaration ->
|
is FirCallableDeclaration ->
|
||||||
this.symbol.callableId.callableName
|
this.symbol.callableId.callableName
|
||||||
is FirClass ->
|
is FirClass ->
|
||||||
this.classId.shortClassName
|
this.classId.shortClassName
|
||||||
@@ -55,8 +55,8 @@ object FirMemberDeclarationComparator : Comparator<FirMemberDeclaration> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun compare(a: FirMemberDeclaration, b: FirMemberDeclaration): Int {
|
override fun compare(a: FirMemberDeclaration, b: FirMemberDeclaration): Int {
|
||||||
if (a is FirCallableMemberDeclaration && b is FirCallableMemberDeclaration) {
|
if (a is FirCallableDeclaration && b is FirCallableDeclaration) {
|
||||||
return FirCallableMemberDeclarationComparator.compare(a, b)
|
return FirCallableDeclarationComparator.compare(a, b)
|
||||||
}
|
}
|
||||||
|
|
||||||
val typeAndNameDiff = TypeAndNameComparator.compare(a, b)
|
val typeAndNameDiff = TypeAndNameComparator.compare(a, b)
|
||||||
|
|||||||
+1
-1
@@ -39,11 +39,11 @@ abstract class FirDefaultPropertyAccessor(
|
|||||||
origin,
|
origin,
|
||||||
FirDeclarationAttributes(),
|
FirDeclarationAttributes(),
|
||||||
propertyTypeRef,
|
propertyTypeRef,
|
||||||
deprecation = null,
|
|
||||||
status = if (effectiveVisibility == null)
|
status = if (effectiveVisibility == null)
|
||||||
FirDeclarationStatusImpl(visibility, Modality.FINAL)
|
FirDeclarationStatusImpl(visibility, Modality.FINAL)
|
||||||
else
|
else
|
||||||
FirResolvedDeclarationStatusImpl(visibility, Modality.FINAL, effectiveVisibility),
|
FirResolvedDeclarationStatusImpl(visibility, Modality.FINAL, effectiveVisibility),
|
||||||
|
deprecation = null,
|
||||||
containerSource = null,
|
containerSource = null,
|
||||||
dispatchReceiverType = null,
|
dispatchReceiverType = null,
|
||||||
valueParameters,
|
valueParameters,
|
||||||
|
|||||||
+1
-1
@@ -37,7 +37,7 @@ var <T> T.danglingTypeConstraints: List<DanglingTypeConstraint>?
|
|||||||
|
|
||||||
val FirMemberDeclaration.containerSource: SourceElement?
|
val FirMemberDeclaration.containerSource: SourceElement?
|
||||||
get() = when (this) {
|
get() = when (this) {
|
||||||
is FirCallableMemberDeclaration -> containerSource
|
is FirCallableDeclaration -> containerSource
|
||||||
is FirRegularClass -> sourceElement
|
is FirRegularClass -> sourceElement
|
||||||
is FirTypeAlias -> sourceElement
|
is FirTypeAlias -> sourceElement
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.scopes
|
package org.jetbrains.kotlin.fir.scopes
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.isIntersectionOverride
|
import org.jetbrains.kotlin.fir.isIntersectionOverride
|
||||||
import org.jetbrains.kotlin.fir.originalForSubstitutionOverride
|
import org.jetbrains.kotlin.fir.originalForSubstitutionOverride
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
@@ -146,7 +146,7 @@ inline fun FirTypeScope.processDirectlyOverriddenProperties(
|
|||||||
fun FirTypeScope.getDirectOverriddenMembers(
|
fun FirTypeScope.getDirectOverriddenMembers(
|
||||||
member: FirCallableSymbol<*>,
|
member: FirCallableSymbol<*>,
|
||||||
unwrapIntersectionAndSubstitutionOverride: Boolean = false,
|
unwrapIntersectionAndSubstitutionOverride: Boolean = false,
|
||||||
): List<FirCallableSymbol<out FirCallableMemberDeclaration>> =
|
): List<FirCallableSymbol<out FirCallableDeclaration>> =
|
||||||
when (member) {
|
when (member) {
|
||||||
is FirNamedFunctionSymbol -> getDirectOverriddenFunctions(member, unwrapIntersectionAndSubstitutionOverride)
|
is FirNamedFunctionSymbol -> getDirectOverriddenFunctions(member, unwrapIntersectionAndSubstitutionOverride)
|
||||||
is FirPropertySymbol -> getDirectOverriddenProperties(member, unwrapIntersectionAndSubstitutionOverride)
|
is FirPropertySymbol -> getDirectOverriddenProperties(member, unwrapIntersectionAndSubstitutionOverride)
|
||||||
|
|||||||
+5
-6
@@ -30,15 +30,14 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
|||||||
val annotatedDeclaration = sealedElement("AnnotatedDeclaration", Declaration, declaration, annotationContainer)
|
val annotatedDeclaration = sealedElement("AnnotatedDeclaration", Declaration, declaration, annotationContainer)
|
||||||
val anonymousInitializer = element("AnonymousInitializer", Declaration, declaration, controlFlowGraphOwner)
|
val anonymousInitializer = element("AnonymousInitializer", Declaration, declaration, controlFlowGraphOwner)
|
||||||
val typedDeclaration = sealedElement("TypedDeclaration", Declaration, annotatedDeclaration)
|
val typedDeclaration = sealedElement("TypedDeclaration", Declaration, annotatedDeclaration)
|
||||||
val callableDeclaration = sealedElement("CallableDeclaration", Declaration, typedDeclaration)
|
|
||||||
val typeParameterRef = element("TypeParameterRef", Declaration)
|
|
||||||
val typeParameter = element("TypeParameter", Declaration, typeParameterRef, annotatedDeclaration)
|
|
||||||
val typeParameterRefsOwner = sealedElement("TypeParameterRefsOwner", Declaration)
|
val typeParameterRefsOwner = sealedElement("TypeParameterRefsOwner", Declaration)
|
||||||
val typeParametersOwner = sealedElement("TypeParametersOwner", Declaration, typeParameterRefsOwner)
|
val typeParametersOwner = sealedElement("TypeParametersOwner", Declaration, typeParameterRefsOwner)
|
||||||
val memberDeclaration = sealedElement("MemberDeclaration", Declaration, typeParameterRefsOwner)
|
val memberDeclaration = sealedElement("MemberDeclaration", Declaration, typeParameterRefsOwner)
|
||||||
val callableMemberDeclaration = sealedElement("CallableMemberDeclaration", Declaration, callableDeclaration, memberDeclaration)
|
val callableDeclaration = sealedElement("CallableDeclaration", Declaration, typedDeclaration, memberDeclaration)
|
||||||
|
val typeParameterRef = element("TypeParameterRef", Declaration)
|
||||||
|
val typeParameter = element("TypeParameter", Declaration, typeParameterRef, annotatedDeclaration)
|
||||||
|
|
||||||
val variable = sealedElement("Variable", Declaration, callableMemberDeclaration, statement)
|
val variable = sealedElement("Variable", Declaration, callableDeclaration, statement)
|
||||||
val valueParameter = element("ValueParameter", Declaration, variable, controlFlowGraphOwner)
|
val valueParameter = element("ValueParameter", Declaration, variable, controlFlowGraphOwner)
|
||||||
val property = element("Property", Declaration, variable, typeParametersOwner, controlFlowGraphOwner)
|
val property = element("Property", Declaration, variable, typeParametersOwner, controlFlowGraphOwner)
|
||||||
val field = element("Field", Declaration, variable)
|
val field = element("Field", Declaration, variable)
|
||||||
@@ -49,7 +48,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
|||||||
val regularClass = element("RegularClass", Declaration, klass, memberDeclaration, controlFlowGraphOwner)
|
val regularClass = element("RegularClass", Declaration, klass, memberDeclaration, controlFlowGraphOwner)
|
||||||
val typeAlias = element("TypeAlias", Declaration, classLikeDeclaration, memberDeclaration, typeParametersOwner)
|
val typeAlias = element("TypeAlias", Declaration, classLikeDeclaration, memberDeclaration, typeParametersOwner)
|
||||||
|
|
||||||
val function = sealedElement("Function", Declaration, callableMemberDeclaration, targetElement, controlFlowGraphOwner, statement)
|
val function = sealedElement("Function", Declaration, callableDeclaration, targetElement, controlFlowGraphOwner, statement)
|
||||||
|
|
||||||
val contractDescriptionOwner = sealedElement("ContractDescriptionOwner", Declaration)
|
val contractDescriptionOwner = sealedElement("ContractDescriptionOwner", Declaration)
|
||||||
val simpleFunction = element("SimpleFunction", Declaration, function, contractDescriptionOwner, typeParametersOwner)
|
val simpleFunction = element("SimpleFunction", Declaration, function, contractDescriptionOwner, typeParametersOwner)
|
||||||
|
|||||||
-2
@@ -87,9 +87,7 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
|||||||
+field("receiverTypeRef", typeRef, nullable = true, withReplace = true).withTransform()
|
+field("receiverTypeRef", typeRef, nullable = true, withReplace = true).withTransform()
|
||||||
+field("deprecation", deprecationsPerUseSiteType, nullable = true).withReplace().apply { isMutable = true }
|
+field("deprecation", deprecationsPerUseSiteType, nullable = true).withReplace().apply { isMutable = true }
|
||||||
+symbol("FirCallableSymbol", "out FirCallableDeclaration")
|
+symbol("FirCallableSymbol", "out FirCallableDeclaration")
|
||||||
}
|
|
||||||
|
|
||||||
callableMemberDeclaration.configure {
|
|
||||||
+field("containerSource", type(DeserializedContainerSource::class), nullable = true)
|
+field("containerSource", type(DeserializedContainerSource::class), nullable = true)
|
||||||
+field("dispatchReceiverType", coneKotlinTypeType, nullable = true)
|
+field("dispatchReceiverType", coneKotlinTypeType, nullable = true)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.test.frontend.fir.handlers
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirRenderer
|
import org.jetbrains.kotlin.fir.FirRenderer
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
import org.jetbrains.kotlin.fir.declarations.FirRegularClass
|
||||||
import org.jetbrains.kotlin.fir.render
|
import org.jetbrains.kotlin.fir.render
|
||||||
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
import org.jetbrains.kotlin.fir.resolve.ScopeSession
|
||||||
@@ -111,7 +111,7 @@ class FirScopeDumpHandler(testServices: TestServices) : FirAnalysisHandler(testS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun SmartPrinter.printInfo(declaration: FirCallableMemberDeclaration, counter: SymbolCounter) {
|
private fun SmartPrinter.printInfo(declaration: FirCallableDeclaration, counter: SymbolCounter) {
|
||||||
print("[${declaration.origin}]: ")
|
print("[${declaration.origin}]: ")
|
||||||
print(declaration.render(FirRenderer.RenderMode.NoBodies).trim())
|
print(declaration.render(FirRenderer.RenderMode.NoBodies).trim())
|
||||||
print(" from ${declaration.dispatchReceiverType?.render()}")
|
print(" from ${declaration.dispatchReceiverType?.render()}")
|
||||||
|
|||||||
+1
-1
@@ -469,7 +469,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun renderImplicitReceiver(symbol: FirBasedSymbol<*>, psi: PsiElement?) {
|
private fun renderImplicitReceiver(symbol: FirBasedSymbol<*>, psi: PsiElement?) {
|
||||||
val receiverType = (symbol.fir as? FirCallableMemberDeclaration)?.dispatchReceiverType ?: return
|
val receiverType = (symbol.fir as? FirCallableDeclaration)?.dispatchReceiverType ?: return
|
||||||
val implicitReceiverIndex = implicitReceivers.indexOf(receiverType)
|
val implicitReceiverIndex = implicitReceivers.indexOf(receiverType)
|
||||||
if (implicitReceiverIndex != -1) addAnnotation("this@$implicitReceiverIndex", psi)
|
if (implicitReceiverIndex != -1) addAnnotation("this@$implicitReceiverIndex", psi)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -58,7 +58,7 @@ private fun collectDesignationPath(declaration: FirDeclaration): List<FirDeclara
|
|||||||
val containingClass = when (declaration) {
|
val containingClass = when (declaration) {
|
||||||
is FirCallableDeclaration -> {
|
is FirCallableDeclaration -> {
|
||||||
if (declaration.symbol.callableId.isLocal) return null
|
if (declaration.symbol.callableId.isLocal) return null
|
||||||
if ((declaration as? FirCallableMemberDeclaration)?.status?.visibility == Visibilities.Local) return null
|
if ((declaration as? FirCallableDeclaration)?.status?.visibility == Visibilities.Local) return null
|
||||||
when (declaration) {
|
when (declaration) {
|
||||||
is FirSimpleFunction, is FirProperty, is FirField, is FirConstructor -> {
|
is FirSimpleFunction, is FirProperty, is FirField, is FirConstructor -> {
|
||||||
val klass = declaration.containingClass() ?: return emptyList()
|
val klass = declaration.containingClass() ?: return emptyList()
|
||||||
|
|||||||
+3
-3
@@ -115,7 +115,7 @@ internal class FirIdeRenderer private constructor(
|
|||||||
return if (classKind == ClassKind.INTERFACE) Modality.ABSTRACT else Modality.FINAL
|
return if (classKind == ClassKind.INTERFACE) Modality.ABSTRACT else Modality.FINAL
|
||||||
}
|
}
|
||||||
val containingFirClass = containingDeclaration as? FirRegularClass ?: return Modality.FINAL
|
val containingFirClass = containingDeclaration as? FirRegularClass ?: return Modality.FINAL
|
||||||
if (this !is FirCallableMemberDeclaration) return Modality.FINAL
|
if (this !is FirCallableDeclaration) return Modality.FINAL
|
||||||
if (isOverride) {
|
if (isOverride) {
|
||||||
if (containingFirClass.modality != Modality.FINAL) return Modality.OPEN
|
if (containingFirClass.modality != Modality.FINAL) return Modality.OPEN
|
||||||
}
|
}
|
||||||
@@ -126,7 +126,7 @@ internal class FirIdeRenderer private constructor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun StringBuilder.renderModalityForCallable(
|
private fun StringBuilder.renderModalityForCallable(
|
||||||
callable: FirCallableMemberDeclaration,
|
callable: FirCallableDeclaration,
|
||||||
containingDeclaration: FirDeclaration?
|
containingDeclaration: FirDeclaration?
|
||||||
) {
|
) {
|
||||||
val modality = callable.modality ?: return
|
val modality = callable.modality ?: return
|
||||||
@@ -137,7 +137,7 @@ internal class FirIdeRenderer private constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun StringBuilder.renderOverride(callableMember: FirCallableMemberDeclaration) {
|
private fun StringBuilder.renderOverride(callableMember: FirCallableDeclaration) {
|
||||||
if (RendererModifier.OVERRIDE !in options.modifiers) return
|
if (RendererModifier.OVERRIDE !in options.modifiers) return
|
||||||
renderModifier(callableMember.isOverride || options.forceRenderingOverrideModifier, "override")
|
renderModifier(callableMember.isOverride || options.forceRenderingOverrideModifier, "override")
|
||||||
}
|
}
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user