From 5a3b39755289db0b86c0b0b9484f4a985c0235e6 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Tue, 29 Mar 2022 12:26:42 +0400 Subject: [PATCH] [FIR] Get rid of `FirTypedDeclaration` `FirTypedDeclaration` has only one inheritor (`FirCallableDeclaration`), so there is no much sense to keep this class --- .../FirProjectionRelationChecker.kt | 2 +- .../transformers/ReturnTypeCalculator.kt | 6 +-- .../ReturnTypeCalculatorForFullBodyResolve.kt | 4 +- .../fir/scopes/FakeOverrideTypeCalculator.kt | 10 ++-- .../FirScopeWithFakeOverrideTypeCalculator.kt | 4 +- .../jetbrains/kotlin/fir/types/TypeUtils.kt | 4 +- .../jetbrains/kotlin/fir/FirCallResolver.kt | 4 +- .../kotlin/fir/resolve/ResolveUtils.kt | 2 +- .../kotlin/fir/resolve/calls/Arguments.kt | 4 +- .../tower/FirInvokeResolveTowerExtension.kt | 4 +- ...rCallCompletionResultsWriterTransformer.kt | 2 +- .../resolve/transformers/TransformUtils.kt | 4 +- .../body/resolve/FirImplicitBodyResolve.kt | 6 +-- .../declarations/FirCallableDeclaration.kt | 8 +-- .../fir/declarations/FirTypedDeclaration.kt | 50 ------------------- .../kotlin/fir/visitors/FirDefaultVisitor.kt | 5 +- .../fir/visitors/FirDefaultVisitorVoid.kt | 5 +- .../kotlin/fir/visitors/FirTransformer.kt | 9 ---- .../kotlin/fir/visitors/FirVisitor.kt | 3 -- .../kotlin/fir/visitors/FirVisitorVoid.kt | 9 ---- .../org/jetbrains/kotlin/fir/FirRenderer.kt | 4 -- .../fir/tree/generator/FirTreeBuilder.kt | 3 +- .../fir/tree/generator/NodeConfigurator.kt | 5 +- .../compiler/visualizer/FirVisualizer.kt | 2 +- 24 files changed, 35 insertions(+), 124 deletions(-) delete mode 100644 compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypedDeclaration.kt diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirProjectionRelationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirProjectionRelationChecker.kt index d31d6351118..d7ba928590a 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirProjectionRelationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirProjectionRelationChecker.kt @@ -23,7 +23,7 @@ object FirProjectionRelationChecker : FirBasicDeclarationChecker() { return } - if (declaration is FirTypedDeclaration) { + if (declaration is FirCallableDeclaration) { checkTypeRef(declaration.returnTypeRef, context, reporter) } diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/transformers/ReturnTypeCalculator.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/transformers/ReturnTypeCalculator.kt index 789524a5d48..c4f7bc75343 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/transformers/ReturnTypeCalculator.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/transformers/ReturnTypeCalculator.kt @@ -5,14 +5,14 @@ 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.types.FirResolvedTypeRef 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)!! } diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/transformers/ReturnTypeCalculatorForFullBodyResolve.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/transformers/ReturnTypeCalculatorForFullBodyResolve.kt index 0a6b8bd787c..1d49716434e 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/transformers/ReturnTypeCalculatorForFullBodyResolve.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/resolve/transformers/ReturnTypeCalculatorForFullBodyResolve.kt @@ -5,7 +5,7 @@ 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.DiagnosticKind 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 object ReturnTypeCalculatorForFullBodyResolve : ReturnTypeCalculator() { - override fun tryCalculateReturnTypeOrNull(declaration: FirTypedDeclaration): FirResolvedTypeRef? { + override fun tryCalculateReturnTypeOrNull(declaration: FirCallableDeclaration): FirResolvedTypeRef? { val returnTypeRef = declaration.returnTypeRef if (returnTypeRef is FirResolvedTypeRef) return returnTypeRef if (declaration.origin.fromSupertypes) { diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/FakeOverrideTypeCalculator.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/FakeOverrideTypeCalculator.kt index 6ce2021af68..804759876fa 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/FakeOverrideTypeCalculator.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/FakeOverrideTypeCalculator.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.scopes import org.jetbrains.kotlin.fir.declarations.FirDeclarationAttributes import org.jetbrains.kotlin.fir.declarations.FirDeclarationDataKey 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.resolvedTypeFromPrototype 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 abstract class FakeOverrideTypeCalculator { - abstract fun computeReturnType(declaration: FirTypedDeclaration): FirTypeRef? + abstract fun computeReturnType(declaration: FirCallableDeclaration): FirTypeRef? object DoNothing : FakeOverrideTypeCalculator() { - override fun computeReturnType(declaration: FirTypedDeclaration): FirTypeRef { + override fun computeReturnType(declaration: FirCallableDeclaration): FirTypeRef { return declaration.returnTypeRef } } object Forced : FakeOverrideTypeCalculator() { - override fun computeReturnType(declaration: FirTypedDeclaration): FirResolvedTypeRef? { + override fun computeReturnType(declaration: FirCallableDeclaration): FirResolvedTypeRef? { val fakeOverrideSubstitution = declaration.attributes.fakeOverrideSubstitution ?: return declaration.returnTypeRef as? FirResolvedTypeRef synchronized(fakeOverrideSubstitution) { @@ -33,7 +33,7 @@ abstract class FakeOverrideTypeCalculator { return declaration.returnTypeRef as FirResolvedTypeRef } val (substitutor, baseSymbol) = fakeOverrideSubstitution - val baseDeclaration = baseSymbol.fir as FirTypedDeclaration + val baseDeclaration = baseSymbol.fir as FirCallableDeclaration val baseReturnType = computeReturnType(baseDeclaration)?.type ?: return null declaration.attributes.fakeOverrideSubstitution = null val coneType = substitutor.substituteOrSelf(baseReturnType) diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirScopeWithFakeOverrideTypeCalculator.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirScopeWithFakeOverrideTypeCalculator.kt index 526132c711f..de43ca6b5dd 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirScopeWithFakeOverrideTypeCalculator.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/scopes/impl/FirScopeWithFakeOverrideTypeCalculator.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir.scopes.impl 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.isSubstitutionOverride import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor @@ -74,8 +73,7 @@ class FirScopeWithFakeOverrideTypeCalculator( return delegate.getClassifierNames() } - private fun updateReturnType(declaration: FirTypedDeclaration) { - if (declaration !is FirCallableDeclaration) return + private fun updateReturnType(declaration: FirCallableDeclaration) { if (declaration.isSubstitutionOverride || declaration.isIntersectionOverride) { fakeOverrideTypeCalculator.computeReturnType(declaration) } diff --git a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/TypeUtils.kt b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/TypeUtils.kt index 04746569afb..b472abd6661 100644 --- a/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/TypeUtils.kt +++ b/compiler/fir/providers/src/org/jetbrains/kotlin/fir/types/TypeUtils.kt @@ -563,8 +563,8 @@ fun ConeKotlinType.isSubtypeOf(superType: ConeKotlinType, session: FirSession): this, superType, ) -fun FirTypedDeclaration.isSubtypeOf( - other: FirTypedDeclaration, +fun FirCallableDeclaration.isSubtypeOf( + other: FirCallableDeclaration, typeCheckerContext: TypeCheckerState ): Boolean { return AbstractTypeChecker.isSubtypeOf( diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt index 227490dab85..c47b1843486 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirCallResolver.kt @@ -713,7 +713,7 @@ class FirCallResolver( coneType != null && !coneType.isUnit -> { ConeFunctionExpectedError( name.asString(), - (fir as? FirTypedDeclaration)?.returnTypeRef?.coneType ?: coneType + (fir as? FirCallableDeclaration)?.returnTypeRef?.coneType ?: coneType ) } singleExpectedCandidate != null && !singleExpectedCandidate.currentApplicability.isSuccess -> { @@ -829,4 +829,4 @@ class FirCallResolver( } /** A candidate in the overload candidate set. */ -data class OverloadCandidate(val candidate: Candidate, val isInBestCandidates: Boolean) \ No newline at end of file +data class OverloadCandidate(val candidate: Candidate, val isInBestCandidates: Boolean) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt index 7eac4d24f25..731806109c1 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ResolveUtils.kt @@ -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) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Arguments.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Arguments.kt index ce41c1435ae..65aefb0a4eb 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Arguments.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Arguments.kt @@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.resolve.calls import org.jetbrains.kotlin.fir.FirSession 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.expressions.* 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 * 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) resolvePlainArgumentType( csBuilder, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirInvokeResolveTowerExtension.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirInvokeResolveTowerExtension.kt index 964794d05e9..ff74847a6f5 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirInvokeResolveTowerExtension.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/tower/FirInvokeResolveTowerExtension.kt @@ -5,7 +5,7 @@ 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.FirQualifiedAccessExpression import org.jetbrains.kotlin.fir.expressions.FirResolvedQualifier @@ -296,7 +296,7 @@ private fun BodyResolveComponents.createExplicitReceiverForInvokeByCallable( candidate ) dispatchReceiver = candidate.dispatchReceiverExpression() - this.typeRef = returnTypeCalculator.tryCalculateReturnType(symbol.fir as FirTypedDeclaration) + this.typeRef = returnTypeCalculator.tryCalculateReturnType(symbol.fir) if (!invokeBuiltinExtensionMode) { extensionReceiver = extensionReceiverExpression diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt index adc35237bc5..ae84950438a 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirCallCompletionResultsWriterTransformer.kt @@ -99,7 +99,7 @@ class FirCallCompletionResultsWriterTransformer( val subCandidate = calleeReference.candidate val declaration = subCandidate.symbol.fir val typeArguments = computeTypeArguments(qualifiedAccessExpression, subCandidate) - val typeRef = if (declaration is FirTypedDeclaration) { + val typeRef = if (declaration is FirCallableDeclaration) { val calculated = typeCalculator.tryCalculateReturnType(declaration) if (calculated !is FirErrorTypeRef) { buildResolvedTypeRef { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/TransformUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/TransformUtils.kt index 3c88c8328da..c36b2c0d74b 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/TransformUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/TransformUtils.kt @@ -9,7 +9,7 @@ import org.jetbrains.kotlin.KtFakeSourceElementKind import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.copyWithNewSourceKind 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.expressions.FirExpression 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 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. diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt index 0d39e8228b4..31195cda578 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirImplicitBodyResolve.kt @@ -215,7 +215,7 @@ private class ReturnTypeCalculatorWithJump( var outerTowerDataContexts: FirRegularTowerDataContexts? = null - override fun tryCalculateReturnTypeOrNull(declaration: FirTypedDeclaration): FirResolvedTypeRef { + override fun tryCalculateReturnTypeOrNull(declaration: FirCallableDeclaration): FirResolvedTypeRef { if (declaration is FirValueParameter && declaration.returnTypeRef is FirImplicitTypeRef) { // TODO? declaration.transformReturnTypeRef( @@ -229,8 +229,6 @@ private class ReturnTypeCalculatorWithJump( val returnTypeRef = declaration.returnTypeRef if (returnTypeRef is FirResolvedTypeRef) return returnTypeRef - require(declaration is FirCallableDeclaration) { "${declaration::class}: ${declaration.render()}" } - if (declaration is FirSyntheticProperty) { return tryCalculateReturnType(declaration.getter.delegate) } @@ -242,7 +240,7 @@ private class ReturnTypeCalculatorWithJump( (declaration.returnTypeRef as? FirResolvedTypeRef)?.let { return it } declaration.attributes.fakeOverrideSubstitution = null val (substitutor, baseSymbol) = fakeOverrideSubstitution - val baseDeclaration = baseSymbol.fir as FirTypedDeclaration + val baseDeclaration = baseSymbol.fir as FirCallableDeclaration val baseReturnTypeRef = tryCalculateReturnType(baseDeclaration) val baseReturnType = baseReturnTypeRef.type val coneType = substitutor.substituteOrSelf(baseReturnType) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt index 71c2f62642a..6897c4b0054 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableDeclaration.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -sealed class FirCallableDeclaration : FirTypedDeclaration() { +sealed class FirCallableDeclaration : FirMemberDeclaration() { abstract override val source: KtSourceElement? abstract override val annotations: List abstract override val moduleData: FirModuleData @@ -29,7 +29,7 @@ sealed class FirCallableDeclaration : FirTypedDeclaration() { abstract override val attributes: FirDeclarationAttributes abstract override val typeParameters: List abstract override val status: FirDeclarationStatus - abstract override val returnTypeRef: FirTypeRef + abstract val returnTypeRef: FirTypeRef abstract val receiverTypeRef: FirTypeRef? abstract val deprecation: DeprecationsPerUseSite? abstract override val symbol: FirCallableSymbol @@ -44,7 +44,7 @@ sealed class FirCallableDeclaration : FirTypedDeclaration() { abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) - abstract override fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) + abstract fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) abstract fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) @@ -56,7 +56,7 @@ sealed class FirCallableDeclaration : FirTypedDeclaration() { abstract override fun transformStatus(transformer: FirTransformer, data: D): FirCallableDeclaration - abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirCallableDeclaration + abstract fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirCallableDeclaration abstract fun transformReceiverTypeRef(transformer: FirTransformer, data: D): FirCallableDeclaration } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypedDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypedDeclaration.kt deleted file mode 100644 index 3b3c6faa059..00000000000 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypedDeclaration.kt +++ /dev/null @@ -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 - abstract override val symbol: FirBasedSymbol - 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 - abstract override val status: FirDeclarationStatus - abstract val returnTypeRef: FirTypeRef - - override fun accept(visitor: FirVisitor, data: D): R = visitor.visitTypedDeclaration(this, data) - - @Suppress("UNCHECKED_CAST") - override fun transform(transformer: FirTransformer, data: D): E = - transformer.transformTypedDeclaration(this, data) as E - - abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) - - abstract fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) - - abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirTypedDeclaration - - abstract override fun transformTypeParameters(transformer: FirTransformer, data: D): FirTypedDeclaration - - abstract override fun transformStatus(transformer: FirTransformer, data: D): FirTypedDeclaration - - abstract fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirTypedDeclaration -} diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitor.kt index 4c94e1d14b6..b8abc2c1d64 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitor.kt @@ -22,7 +22,6 @@ import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration 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.FirTypeParameterRef import org.jetbrains.kotlin.fir.declarations.FirTypeParameter @@ -162,9 +161,7 @@ abstract class FirDefaultVisitor : FirVisitor() { 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 = visitTypedDeclaration(callableDeclaration, data) + override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): R = visitMemberDeclaration(callableDeclaration, data) override fun visitEnumEntry(enumEntry: FirEnumEntry, data: D): R = visitVariable(enumEntry, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitorVoid.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitorVoid.kt index 71d273dd860..7ae48c4b51c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitorVoid.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirDefaultVisitorVoid.kt @@ -22,7 +22,6 @@ import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration 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.FirTypeParameterRef import org.jetbrains.kotlin.fir.declarations.FirTypeParameter @@ -162,9 +161,7 @@ abstract class FirDefaultVisitorVoid : FirVisitorVoid() { override fun visitTypeParametersOwner(typeParametersOwner: FirTypeParametersOwner) = visitTypeParameterRefsOwner(typeParametersOwner) - override fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration) = visitMemberDeclaration(typedDeclaration) - - override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) = visitTypedDeclaration(callableDeclaration) + override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) = visitMemberDeclaration(callableDeclaration) override fun visitEnumEntry(enumEntry: FirEnumEntry) = visitVariable(enumEntry) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt index e9ba371ead5..3f89653b59a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirTransformer.kt @@ -22,7 +22,6 @@ import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration 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.FirTypeParameterRef import org.jetbrains.kotlin.fir.declarations.FirTypeParameter @@ -217,10 +216,6 @@ abstract class FirTransformer : FirVisitor() { return transformElement(anonymousInitializer, data) } - open fun transformTypedDeclaration(typedDeclaration: FirTypedDeclaration, data: D): FirTypedDeclaration { - return transformElement(typedDeclaration, data) - } - open fun transformCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: D): FirCallableDeclaration { return transformElement(callableDeclaration, data) } @@ -769,10 +764,6 @@ abstract class FirTransformer : FirVisitor() { 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 { return transformCallableDeclaration(callableDeclaration, data) } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt index 76b7e549c2d..589799fd088 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitor.kt @@ -22,7 +22,6 @@ import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration 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.FirTypeParameterRef import org.jetbrains.kotlin.fir.declarations.FirTypeParameter @@ -184,8 +183,6 @@ abstract class FirVisitor { 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 visitTypeParameterRef(typeParameterRef: FirTypeParameterRef, data: D): R = visitElement(typeParameterRef, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt index e626e20dc5a..1c92d620875 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/visitors/FirVisitorVoid.kt @@ -22,7 +22,6 @@ import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner import org.jetbrains.kotlin.fir.declarations.FirTypeParametersOwner import org.jetbrains.kotlin.fir.declarations.FirMemberDeclaration 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.FirTypeParameterRef import org.jetbrains.kotlin.fir.declarations.FirTypeParameter @@ -216,10 +215,6 @@ abstract class FirVisitorVoid : FirVisitor() { visitElement(anonymousInitializer) } - open fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration) { - visitElement(typedDeclaration) - } - open fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) { visitElement(callableDeclaration) } @@ -768,10 +763,6 @@ abstract class FirVisitorVoid : FirVisitor() { visitAnonymousInitializer(anonymousInitializer) } - final override fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration, data: Nothing?) { - visitTypedDeclaration(typedDeclaration) - } - final override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration, data: Nothing?) { visitCallableDeclaration(callableDeclaration) } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt index 53da2257374..3c127e382e9 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt @@ -737,10 +737,6 @@ open class FirRenderer(builder: StringBuilder, protected val mode: RenderMode = print("\$subj\$") } - override fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration) { - visitDeclaration(typedDeclaration) - } - override fun visitValueParameter(valueParameter: FirValueParameter) { valueParameter.renderDeclarationData() valueParameter.annotations.renderAnnotations() diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt index 98fa81b370c..06083b59b09 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/FirTreeBuilder.kt @@ -31,8 +31,7 @@ object FirTreeBuilder : AbstractFirTreeBuilder() { val typeParametersOwner by sealedElement(Declaration, typeParameterRefsOwner) val memberDeclaration by sealedElement(Declaration, declaration, typeParameterRefsOwner) val anonymousInitializer by element(Declaration, declaration, controlFlowGraphOwner) - val typedDeclaration by sealedElement(Declaration, memberDeclaration) - val callableDeclaration by sealedElement(Declaration, typedDeclaration) + val callableDeclaration by sealedElement(Declaration, memberDeclaration) val typeParameterRef by element(Declaration) val typeParameter by element(Declaration, typeParameterRef, declaration) diff --git a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt index fe991e7a295..4c822a9d5ab 100644 --- a/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt +++ b/compiler/fir/tree/tree-generator/src/org/jetbrains/kotlin/fir/tree/generator/NodeConfigurator.kt @@ -79,11 +79,8 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild shouldBeAbstractClass() } - typedDeclaration.configure { - +field("returnTypeRef", typeRef, withReplace = true).withTransform() - } - callableDeclaration.configure { + +field("returnTypeRef", typeRef, withReplace = true).withTransform() +field("receiverTypeRef", typeRef, nullable = true, withReplace = true).withTransform() +field("deprecation", deprecationsPerUseSiteType, nullable = true).withReplace().apply { isMutable = true } +symbol("FirCallableSymbol", "out FirCallableDeclaration") diff --git a/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt b/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt index 7fac7db1630..7bacc9c2ec3 100644 --- a/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt +++ b/compiler/visualizer/render-fir/src/org/jetbrains/kotlin/compiler/visualizer/FirVisualizer.kt @@ -163,7 +163,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { stack.push((function.name ?: ANONYMOUS_NAME)) if (function.equalsToken != null) { function.bodyExpression!!.firstOfTypeWithRender(function.equalsToken) { this.result.typeRef } - ?: function.firstOfTypeWithRender(function.equalsToken) { this.returnTypeRef } + ?: function.firstOfTypeWithRender(function.equalsToken) { this.returnTypeRef } } super.visitNamedFunction(function) stack.pop()