[FIR] Get rid of FirTypedDeclaration
`FirTypedDeclaration` has only one inheritor (`FirCallableDeclaration`), so there is no much sense to keep this class
This commit is contained in:
committed by
teamcity
parent
ae0ce57b2c
commit
5a3b397552
+1
-1
@@ -23,7 +23,7 @@ object FirProjectionRelationChecker : FirBasicDeclarationChecker() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if (declaration is FirTypedDeclaration) {
|
if (declaration is FirCallableDeclaration) {
|
||||||
checkTypeRef(declaration.returnTypeRef, context, reporter)
|
checkTypeRef(declaration.returnTypeRef, context, reporter)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -5,14 +5,14 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.resolve.transformers
|
package org.jetbrains.kotlin.fir.resolve.transformers
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||||
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||||
|
|
||||||
abstract class ReturnTypeCalculator {
|
abstract class ReturnTypeCalculator {
|
||||||
abstract fun tryCalculateReturnTypeOrNull(declaration: FirTypedDeclaration): FirResolvedTypeRef?
|
abstract fun tryCalculateReturnTypeOrNull(declaration: FirCallableDeclaration): FirResolvedTypeRef?
|
||||||
|
|
||||||
fun tryCalculateReturnType(declaration: FirTypedDeclaration): FirResolvedTypeRef {
|
fun tryCalculateReturnType(declaration: FirCallableDeclaration): FirResolvedTypeRef {
|
||||||
return tryCalculateReturnTypeOrNull(declaration)!!
|
return tryCalculateReturnTypeOrNull(declaration)!!
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.resolve.transformers
|
package org.jetbrains.kotlin.fir.resolve.transformers
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic
|
import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic
|
||||||
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
|
import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind
|
||||||
import org.jetbrains.kotlin.fir.render
|
import org.jetbrains.kotlin.fir.render
|
||||||
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
|||||||
import org.jetbrains.kotlin.fir.types.builder.buildErrorTypeRef
|
import org.jetbrains.kotlin.fir.types.builder.buildErrorTypeRef
|
||||||
|
|
||||||
object ReturnTypeCalculatorForFullBodyResolve : ReturnTypeCalculator() {
|
object ReturnTypeCalculatorForFullBodyResolve : ReturnTypeCalculator() {
|
||||||
override fun tryCalculateReturnTypeOrNull(declaration: FirTypedDeclaration): FirResolvedTypeRef? {
|
override fun tryCalculateReturnTypeOrNull(declaration: FirCallableDeclaration): FirResolvedTypeRef? {
|
||||||
val returnTypeRef = declaration.returnTypeRef
|
val returnTypeRef = declaration.returnTypeRef
|
||||||
if (returnTypeRef is FirResolvedTypeRef) return returnTypeRef
|
if (returnTypeRef is FirResolvedTypeRef) return returnTypeRef
|
||||||
if (declaration.origin.fromSupertypes) {
|
if (declaration.origin.fromSupertypes) {
|
||||||
|
|||||||
+5
-5
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.scopes
|
|||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationDataKey
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationDataKey
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirDeclarationDataRegistry
|
import org.jetbrains.kotlin.fir.declarations.FirDeclarationDataRegistry
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
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.resolvedTypeFromPrototype
|
import org.jetbrains.kotlin.fir.resolvedTypeFromPrototype
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||||
@@ -16,16 +16,16 @@ import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
|||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
|
|
||||||
abstract class FakeOverrideTypeCalculator {
|
abstract class FakeOverrideTypeCalculator {
|
||||||
abstract fun computeReturnType(declaration: FirTypedDeclaration): FirTypeRef?
|
abstract fun computeReturnType(declaration: FirCallableDeclaration): FirTypeRef?
|
||||||
|
|
||||||
object DoNothing : FakeOverrideTypeCalculator() {
|
object DoNothing : FakeOverrideTypeCalculator() {
|
||||||
override fun computeReturnType(declaration: FirTypedDeclaration): FirTypeRef {
|
override fun computeReturnType(declaration: FirCallableDeclaration): FirTypeRef {
|
||||||
return declaration.returnTypeRef
|
return declaration.returnTypeRef
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
object Forced : FakeOverrideTypeCalculator() {
|
object Forced : FakeOverrideTypeCalculator() {
|
||||||
override fun computeReturnType(declaration: FirTypedDeclaration): FirResolvedTypeRef? {
|
override fun computeReturnType(declaration: FirCallableDeclaration): FirResolvedTypeRef? {
|
||||||
val fakeOverrideSubstitution = declaration.attributes.fakeOverrideSubstitution
|
val fakeOverrideSubstitution = declaration.attributes.fakeOverrideSubstitution
|
||||||
?: return declaration.returnTypeRef as? FirResolvedTypeRef
|
?: return declaration.returnTypeRef as? FirResolvedTypeRef
|
||||||
synchronized(fakeOverrideSubstitution) {
|
synchronized(fakeOverrideSubstitution) {
|
||||||
@@ -33,7 +33,7 @@ abstract class FakeOverrideTypeCalculator {
|
|||||||
return declaration.returnTypeRef as FirResolvedTypeRef
|
return declaration.returnTypeRef as FirResolvedTypeRef
|
||||||
}
|
}
|
||||||
val (substitutor, baseSymbol) = fakeOverrideSubstitution
|
val (substitutor, baseSymbol) = fakeOverrideSubstitution
|
||||||
val baseDeclaration = baseSymbol.fir as FirTypedDeclaration
|
val baseDeclaration = baseSymbol.fir as FirCallableDeclaration
|
||||||
val baseReturnType = computeReturnType(baseDeclaration)?.type ?: return null
|
val baseReturnType = computeReturnType(baseDeclaration)?.type ?: return null
|
||||||
declaration.attributes.fakeOverrideSubstitution = null
|
declaration.attributes.fakeOverrideSubstitution = null
|
||||||
val coneType = substitutor.substituteOrSelf(baseReturnType)
|
val coneType = substitutor.substituteOrSelf(baseReturnType)
|
||||||
|
|||||||
+1
-3
@@ -6,7 +6,6 @@
|
|||||||
package org.jetbrains.kotlin.fir.scopes.impl
|
package org.jetbrains.kotlin.fir.scopes.impl
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
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
|
||||||
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor
|
||||||
@@ -74,8 +73,7 @@ class FirScopeWithFakeOverrideTypeCalculator(
|
|||||||
return delegate.getClassifierNames()
|
return delegate.getClassifierNames()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateReturnType(declaration: FirTypedDeclaration) {
|
private fun updateReturnType(declaration: FirCallableDeclaration) {
|
||||||
if (declaration !is FirCallableDeclaration) return
|
|
||||||
if (declaration.isSubstitutionOverride || declaration.isIntersectionOverride) {
|
if (declaration.isSubstitutionOverride || declaration.isIntersectionOverride) {
|
||||||
fakeOverrideTypeCalculator.computeReturnType(declaration)
|
fakeOverrideTypeCalculator.computeReturnType(declaration)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -563,8 +563,8 @@ fun ConeKotlinType.isSubtypeOf(superType: ConeKotlinType, session: FirSession):
|
|||||||
this, superType,
|
this, superType,
|
||||||
)
|
)
|
||||||
|
|
||||||
fun FirTypedDeclaration.isSubtypeOf(
|
fun FirCallableDeclaration.isSubtypeOf(
|
||||||
other: FirTypedDeclaration,
|
other: FirCallableDeclaration,
|
||||||
typeCheckerContext: TypeCheckerState
|
typeCheckerContext: TypeCheckerState
|
||||||
): Boolean {
|
): Boolean {
|
||||||
return AbstractTypeChecker.isSubtypeOf(
|
return AbstractTypeChecker.isSubtypeOf(
|
||||||
|
|||||||
@@ -713,7 +713,7 @@ class FirCallResolver(
|
|||||||
coneType != null && !coneType.isUnit -> {
|
coneType != null && !coneType.isUnit -> {
|
||||||
ConeFunctionExpectedError(
|
ConeFunctionExpectedError(
|
||||||
name.asString(),
|
name.asString(),
|
||||||
(fir as? FirTypedDeclaration)?.returnTypeRef?.coneType ?: coneType
|
(fir as? FirCallableDeclaration)?.returnTypeRef?.coneType ?: coneType
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
singleExpectedCandidate != null && !singleExpectedCandidate.currentApplicability.isSuccess -> {
|
singleExpectedCandidate != null && !singleExpectedCandidate.currentApplicability.isSuccess -> {
|
||||||
@@ -829,4 +829,4 @@ class FirCallResolver(
|
|||||||
}
|
}
|
||||||
|
|
||||||
/** A candidate in the overload candidate set. */
|
/** A candidate in the overload candidate set. */
|
||||||
data class OverloadCandidate(val candidate: Candidate, val isInBestCandidates: Boolean)
|
data class OverloadCandidate(val candidate: Candidate, val isInBestCandidates: Boolean)
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ fun FirFunction.constructFunctionalType(isSuspend: Boolean = false): ConeLookupT
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
val rawReturnType = (this as FirTypedDeclaration).returnTypeRef.coneType
|
val rawReturnType = (this as FirCallableDeclaration).returnTypeRef.coneType
|
||||||
|
|
||||||
return createFunctionalType(parameters, receiverTypeRef?.coneType, rawReturnType, isSuspend = isSuspend)
|
return createFunctionalType(parameters, receiverTypeRef?.coneType, rawReturnType, isSuspend = isSuspend)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.resolve.calls
|
|||||||
|
|
||||||
import org.jetbrains.kotlin.fir.FirSession
|
import org.jetbrains.kotlin.fir.FirSession
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
import org.jetbrains.kotlin.fir.declarations.FirFunction
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.expressions.*
|
import org.jetbrains.kotlin.fir.expressions.*
|
||||||
import org.jetbrains.kotlin.fir.lookupTracker
|
import org.jetbrains.kotlin.fir.lookupTracker
|
||||||
@@ -196,7 +196,7 @@ fun Candidate.resolveSubCallArgument(
|
|||||||
* It's important to extract type from argument neither from symbol, because of symbol contains
|
* It's important to extract type from argument neither from symbol, because of symbol contains
|
||||||
* placeholder type with value 0, but argument contains type with proper literal value
|
* placeholder type with value 0, but argument contains type with proper literal value
|
||||||
*/
|
*/
|
||||||
val type: ConeKotlinType = context.returnTypeCalculator.tryCalculateReturnType(candidate.symbol.fir as FirTypedDeclaration).type
|
val type: ConeKotlinType = context.returnTypeCalculator.tryCalculateReturnType(candidate.symbol.fir as FirCallableDeclaration).type
|
||||||
val argumentType = candidate.substitutor.substituteOrSelf(type)
|
val argumentType = candidate.substitutor.substituteOrSelf(type)
|
||||||
resolvePlainArgumentType(
|
resolvePlainArgumentType(
|
||||||
csBuilder,
|
csBuilder,
|
||||||
|
|||||||
+2
-2
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.fir.resolve.calls.tower
|
package org.jetbrains.kotlin.fir.resolve.calls.tower
|
||||||
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier
|
import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier
|
||||||
@@ -296,7 +296,7 @@ private fun BodyResolveComponents.createExplicitReceiverForInvokeByCallable(
|
|||||||
candidate
|
candidate
|
||||||
)
|
)
|
||||||
dispatchReceiver = candidate.dispatchReceiverExpression()
|
dispatchReceiver = candidate.dispatchReceiverExpression()
|
||||||
this.typeRef = returnTypeCalculator.tryCalculateReturnType(symbol.fir as FirTypedDeclaration)
|
this.typeRef = returnTypeCalculator.tryCalculateReturnType(symbol.fir)
|
||||||
|
|
||||||
if (!invokeBuiltinExtensionMode) {
|
if (!invokeBuiltinExtensionMode) {
|
||||||
extensionReceiver = extensionReceiverExpression
|
extensionReceiver = extensionReceiverExpression
|
||||||
|
|||||||
+1
-1
@@ -99,7 +99,7 @@ class FirCallCompletionResultsWriterTransformer(
|
|||||||
val subCandidate = calleeReference.candidate
|
val subCandidate = calleeReference.candidate
|
||||||
val declaration = subCandidate.symbol.fir
|
val declaration = subCandidate.symbol.fir
|
||||||
val typeArguments = computeTypeArguments(qualifiedAccessExpression, subCandidate)
|
val typeArguments = computeTypeArguments(qualifiedAccessExpression, subCandidate)
|
||||||
val typeRef = if (declaration is FirTypedDeclaration) {
|
val typeRef = if (declaration is FirCallableDeclaration) {
|
||||||
val calculated = typeCalculator.tryCalculateReturnType(declaration)
|
val calculated = typeCalculator.tryCalculateReturnType(declaration)
|
||||||
if (calculated !is FirErrorTypeRef) {
|
if (calculated !is FirErrorTypeRef) {
|
||||||
buildResolvedTypeRef {
|
buildResolvedTypeRef {
|
||||||
|
|||||||
+2
-2
@@ -9,7 +9,7 @@ import org.jetbrains.kotlin.KtFakeSourceElementKind
|
|||||||
import org.jetbrains.kotlin.fir.FirElement
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
import org.jetbrains.kotlin.fir.copyWithNewSourceKind
|
import org.jetbrains.kotlin.fir.copyWithNewSourceKind
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirClass
|
import org.jetbrains.kotlin.fir.declarations.FirClass
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
import org.jetbrains.kotlin.fir.references.*
|
import org.jetbrains.kotlin.fir.references.*
|
||||||
@@ -99,7 +99,7 @@ internal fun FirValueParameter.transformVarargTypeToArrayType() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun FirTypedDeclaration.transformTypeToArrayType() {
|
internal fun FirCallableDeclaration.transformTypeToArrayType() {
|
||||||
val returnTypeRef = this.returnTypeRef
|
val returnTypeRef = this.returnTypeRef
|
||||||
require(returnTypeRef is FirResolvedTypeRef)
|
require(returnTypeRef is FirResolvedTypeRef)
|
||||||
// If the delegated type is already resolved, it means we have already created a resolved array type for this vararg type declaration.
|
// If the delegated type is already resolved, it means we have already created a resolved array type for this vararg type declaration.
|
||||||
|
|||||||
+2
-4
@@ -215,7 +215,7 @@ private class ReturnTypeCalculatorWithJump(
|
|||||||
|
|
||||||
var outerTowerDataContexts: FirRegularTowerDataContexts? = null
|
var outerTowerDataContexts: FirRegularTowerDataContexts? = null
|
||||||
|
|
||||||
override fun tryCalculateReturnTypeOrNull(declaration: FirTypedDeclaration): FirResolvedTypeRef {
|
override fun tryCalculateReturnTypeOrNull(declaration: FirCallableDeclaration): FirResolvedTypeRef {
|
||||||
if (declaration is FirValueParameter && declaration.returnTypeRef is FirImplicitTypeRef) {
|
if (declaration is FirValueParameter && declaration.returnTypeRef is FirImplicitTypeRef) {
|
||||||
// TODO?
|
// TODO?
|
||||||
declaration.transformReturnTypeRef(
|
declaration.transformReturnTypeRef(
|
||||||
@@ -229,8 +229,6 @@ 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 FirCallableDeclaration) { "${declaration::class}: ${declaration.render()}" }
|
|
||||||
|
|
||||||
if (declaration is FirSyntheticProperty) {
|
if (declaration is FirSyntheticProperty) {
|
||||||
return tryCalculateReturnType(declaration.getter.delegate)
|
return tryCalculateReturnType(declaration.getter.delegate)
|
||||||
}
|
}
|
||||||
@@ -242,7 +240,7 @@ private class ReturnTypeCalculatorWithJump(
|
|||||||
(declaration.returnTypeRef as? FirResolvedTypeRef)?.let { return it }
|
(declaration.returnTypeRef as? FirResolvedTypeRef)?.let { return it }
|
||||||
declaration.attributes.fakeOverrideSubstitution = null
|
declaration.attributes.fakeOverrideSubstitution = null
|
||||||
val (substitutor, baseSymbol) = fakeOverrideSubstitution
|
val (substitutor, baseSymbol) = fakeOverrideSubstitution
|
||||||
val baseDeclaration = baseSymbol.fir as FirTypedDeclaration
|
val baseDeclaration = baseSymbol.fir as FirCallableDeclaration
|
||||||
val baseReturnTypeRef = tryCalculateReturnType(baseDeclaration)
|
val baseReturnTypeRef = tryCalculateReturnType(baseDeclaration)
|
||||||
val baseReturnType = baseReturnTypeRef.type
|
val baseReturnType = baseReturnTypeRef.type
|
||||||
val coneType = substitutor.substituteOrSelf(baseReturnType)
|
val coneType = substitutor.substituteOrSelf(baseReturnType)
|
||||||
|
|||||||
+4
-4
@@ -20,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 : FirMemberDeclaration() {
|
||||||
abstract override val source: KtSourceElement?
|
abstract override val source: KtSourceElement?
|
||||||
abstract override val annotations: List<FirAnnotation>
|
abstract override val annotations: List<FirAnnotation>
|
||||||
abstract override val moduleData: FirModuleData
|
abstract override val moduleData: FirModuleData
|
||||||
@@ -29,7 +29,7 @@ sealed class FirCallableDeclaration : FirTypedDeclaration() {
|
|||||||
abstract override val attributes: FirDeclarationAttributes
|
abstract override val attributes: FirDeclarationAttributes
|
||||||
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 returnTypeRef: FirTypeRef
|
abstract val returnTypeRef: FirTypeRef
|
||||||
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>
|
||||||
@@ -44,7 +44,7 @@ sealed class FirCallableDeclaration : FirTypedDeclaration() {
|
|||||||
|
|
||||||
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
||||||
|
|
||||||
abstract override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
|
abstract fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
|
||||||
|
|
||||||
abstract fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
|
abstract fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?)
|
||||||
|
|
||||||
@@ -56,7 +56,7 @@ sealed class FirCallableDeclaration : FirTypedDeclaration() {
|
|||||||
|
|
||||||
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirCallableDeclaration
|
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirCallableDeclaration
|
||||||
|
|
||||||
abstract override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirCallableDeclaration
|
abstract fun <D> transformReturnTypeRef(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
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,50 +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.KtSourceElement
|
|
||||||
import org.jetbrains.kotlin.fir.FirElement
|
|
||||||
import org.jetbrains.kotlin.fir.FirModuleData
|
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
|
||||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
|
||||||
import org.jetbrains.kotlin.fir.visitors.*
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file was generated automatically
|
|
||||||
* DO NOT MODIFY IT MANUALLY
|
|
||||||
*/
|
|
||||||
|
|
||||||
sealed class FirTypedDeclaration : FirMemberDeclaration() {
|
|
||||||
abstract override val source: KtSourceElement?
|
|
||||||
abstract override val annotations: List<FirAnnotation>
|
|
||||||
abstract override val symbol: FirBasedSymbol<out FirDeclaration>
|
|
||||||
abstract override val moduleData: FirModuleData
|
|
||||||
abstract override val resolvePhase: FirResolvePhase
|
|
||||||
abstract override val origin: FirDeclarationOrigin
|
|
||||||
abstract override val attributes: FirDeclarationAttributes
|
|
||||||
abstract override val typeParameters: List<FirTypeParameterRef>
|
|
||||||
abstract override val status: FirDeclarationStatus
|
|
||||||
abstract val returnTypeRef: FirTypeRef
|
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitTypedDeclaration(this, data)
|
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
|
||||||
override fun <E: FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
|
|
||||||
transformer.transformTypedDeclaration(this, data) as E
|
|
||||||
|
|
||||||
abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase)
|
|
||||||
|
|
||||||
abstract fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef)
|
|
||||||
|
|
||||||
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirTypedDeclaration
|
|
||||||
|
|
||||||
abstract override fun <D> transformTypeParameters(transformer: FirTransformer<D>, data: D): FirTypedDeclaration
|
|
||||||
|
|
||||||
abstract override fun <D> transformStatus(transformer: FirTransformer<D>, data: D): FirTypedDeclaration
|
|
||||||
|
|
||||||
abstract fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D): FirTypedDeclaration
|
|
||||||
}
|
|
||||||
@@ -22,7 +22,6 @@ 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.FirAnonymousInitializer
|
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||||
@@ -162,9 +161,7 @@ abstract class FirDefaultVisitor<out R, in D> : FirVisitor<R, D>() {
|
|||||||
|
|
||||||
override fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner, data: D): R = visitTypeParameterRefsOwner(typeParametersOwner, data)
|
override fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner, data: D): R = visitTypeParameterRefsOwner(typeParametersOwner, data)
|
||||||
|
|
||||||
override fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration, data: D): R = visitMemberDeclaration(typedDeclaration, data)
|
override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): R = visitMemberDeclaration(callableDeclaration, data)
|
||||||
|
|
||||||
override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): R = visitTypedDeclaration(callableDeclaration, data)
|
|
||||||
|
|
||||||
override fun visitEnumEntry(enumEntry: FirEnumEntry, data: D): R = visitVariable(enumEntry, data)
|
override fun visitEnumEntry(enumEntry: FirEnumEntry, data: D): R = visitVariable(enumEntry, data)
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ 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.FirAnonymousInitializer
|
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||||
@@ -162,9 +161,7 @@ abstract class FirDefaultVisitorVoid : FirVisitorVoid() {
|
|||||||
|
|
||||||
override fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner) = visitTypeParameterRefsOwner(typeParametersOwner)
|
override fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner) = visitTypeParameterRefsOwner(typeParametersOwner)
|
||||||
|
|
||||||
override fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration) = visitMemberDeclaration(typedDeclaration)
|
override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) = visitMemberDeclaration(callableDeclaration)
|
||||||
|
|
||||||
override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) = visitTypedDeclaration(callableDeclaration)
|
|
||||||
|
|
||||||
override fun visitEnumEntry(enumEntry: FirEnumEntry) = visitVariable(enumEntry)
|
override fun visitEnumEntry(enumEntry: FirEnumEntry) = visitVariable(enumEntry)
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ 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.FirAnonymousInitializer
|
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||||
@@ -217,10 +216,6 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
|
|||||||
return transformElement(anonymousInitializer, data)
|
return transformElement(anonymousInitializer, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun transformTypedDeclaration(typedDeclaration: FirTypedDeclaration, data: D): FirTypedDeclaration {
|
|
||||||
return transformElement(typedDeclaration, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
open fun transformCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): FirCallableDeclaration {
|
open fun transformCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): FirCallableDeclaration {
|
||||||
return transformElement(callableDeclaration, data)
|
return transformElement(callableDeclaration, data)
|
||||||
}
|
}
|
||||||
@@ -769,10 +764,6 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
|
|||||||
return transformAnonymousInitializer(anonymousInitializer, data)
|
return transformAnonymousInitializer(anonymousInitializer, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
final override fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration, data: D): FirTypedDeclaration {
|
|
||||||
return transformTypedDeclaration(typedDeclaration, data)
|
|
||||||
}
|
|
||||||
|
|
||||||
final override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): FirCallableDeclaration {
|
final override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): FirCallableDeclaration {
|
||||||
return transformCallableDeclaration(callableDeclaration, data)
|
return transformCallableDeclaration(callableDeclaration, data)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ 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.FirAnonymousInitializer
|
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||||
@@ -184,8 +183,6 @@ abstract class FirVisitor<out R, in D> {
|
|||||||
|
|
||||||
open fun visitAnonymousInitializer(anonymousInitializer: FirAnonymousInitializer, data: D): R = visitElement(anonymousInitializer, data)
|
open fun visitAnonymousInitializer(anonymousInitializer: FirAnonymousInitializer, data: D): R = visitElement(anonymousInitializer, 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 visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): R = visitElement(callableDeclaration, data)
|
||||||
|
|
||||||
open fun visitTypeParameterRef(typeParameterRef: FirTypeParameterRef, data: D): R = visitElement(typeParameterRef, data)
|
open fun visitTypeParameterRef(typeParameterRef: FirTypeParameterRef, data: D): R = visitElement(typeParameterRef, data)
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ 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.FirAnonymousInitializer
|
import org.jetbrains.kotlin.fir.declarations.FirAnonymousInitializer
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypedDeclaration
|
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef
|
||||||
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
|
||||||
@@ -216,10 +215,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitElement(anonymousInitializer)
|
visitElement(anonymousInitializer)
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration) {
|
|
||||||
visitElement(typedDeclaration)
|
|
||||||
}
|
|
||||||
|
|
||||||
open fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) {
|
open fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) {
|
||||||
visitElement(callableDeclaration)
|
visitElement(callableDeclaration)
|
||||||
}
|
}
|
||||||
@@ -768,10 +763,6 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitAnonymousInitializer(anonymousInitializer)
|
visitAnonymousInitializer(anonymousInitializer)
|
||||||
}
|
}
|
||||||
|
|
||||||
final override fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration, data: Nothing?) {
|
|
||||||
visitTypedDeclaration(typedDeclaration)
|
|
||||||
}
|
|
||||||
|
|
||||||
final override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: Nothing?) {
|
final override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: Nothing?) {
|
||||||
visitCallableDeclaration(callableDeclaration)
|
visitCallableDeclaration(callableDeclaration)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -737,10 +737,6 @@ open class FirRenderer(builder: StringBuilder, protected val mode: RenderMode =
|
|||||||
print("\$subj\$")
|
print("\$subj\$")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration) {
|
|
||||||
visitDeclaration(typedDeclaration)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun visitValueParameter(valueParameter: FirValueParameter) {
|
override fun visitValueParameter(valueParameter: FirValueParameter) {
|
||||||
valueParameter.renderDeclarationData()
|
valueParameter.renderDeclarationData()
|
||||||
valueParameter.annotations.renderAnnotations()
|
valueParameter.annotations.renderAnnotations()
|
||||||
|
|||||||
+1
-2
@@ -31,8 +31,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
|||||||
val typeParametersOwner by sealedElement(Declaration, typeParameterRefsOwner)
|
val typeParametersOwner by sealedElement(Declaration, typeParameterRefsOwner)
|
||||||
val memberDeclaration by sealedElement(Declaration, declaration, typeParameterRefsOwner)
|
val memberDeclaration by sealedElement(Declaration, declaration, typeParameterRefsOwner)
|
||||||
val anonymousInitializer by element(Declaration, declaration, controlFlowGraphOwner)
|
val anonymousInitializer by element(Declaration, declaration, controlFlowGraphOwner)
|
||||||
val typedDeclaration by sealedElement(Declaration, memberDeclaration)
|
val callableDeclaration by sealedElement(Declaration, memberDeclaration)
|
||||||
val callableDeclaration by sealedElement(Declaration, typedDeclaration)
|
|
||||||
val typeParameterRef by element(Declaration)
|
val typeParameterRef by element(Declaration)
|
||||||
val typeParameter by element(Declaration, typeParameterRef, declaration)
|
val typeParameter by element(Declaration, typeParameterRef, declaration)
|
||||||
|
|
||||||
|
|||||||
+1
-4
@@ -79,11 +79,8 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
|||||||
shouldBeAbstractClass()
|
shouldBeAbstractClass()
|
||||||
}
|
}
|
||||||
|
|
||||||
typedDeclaration.configure {
|
|
||||||
+field("returnTypeRef", typeRef, withReplace = true).withTransform()
|
|
||||||
}
|
|
||||||
|
|
||||||
callableDeclaration.configure {
|
callableDeclaration.configure {
|
||||||
|
+field("returnTypeRef", typeRef, withReplace = true).withTransform()
|
||||||
+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")
|
||||||
|
|||||||
+1
-1
@@ -163,7 +163,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() {
|
|||||||
stack.push((function.name ?: ANONYMOUS_NAME))
|
stack.push((function.name ?: ANONYMOUS_NAME))
|
||||||
if (function.equalsToken != null) {
|
if (function.equalsToken != null) {
|
||||||
function.bodyExpression!!.firstOfTypeWithRender<FirReturnExpression>(function.equalsToken) { this.result.typeRef }
|
function.bodyExpression!!.firstOfTypeWithRender<FirReturnExpression>(function.equalsToken) { this.result.typeRef }
|
||||||
?: function.firstOfTypeWithRender<FirTypedDeclaration>(function.equalsToken) { this.returnTypeRef }
|
?: function.firstOfTypeWithRender<FirCallableDeclaration>(function.equalsToken) { this.returnTypeRef }
|
||||||
}
|
}
|
||||||
super.visitNamedFunction(function)
|
super.visitNamedFunction(function)
|
||||||
stack.pop()
|
stack.pop()
|
||||||
|
|||||||
Reference in New Issue
Block a user