From f400477c7037cb7d80e51f3c69b1f92fa72235d8 Mon Sep 17 00:00:00 2001 From: Dmitriy Novozhilov Date: Sat, 26 Jun 2021 12:30:37 +0300 Subject: [PATCH] [FIR] Remove generic parameter from FirDeclaration --- .../kotlin/fir/java/JavaClassRendering.kt | 4 +- .../problems/capturedTypeInEquality.kt | 2 +- .../kotlin/fir/checkers/generator/Main.kt | 8 +- .../diagnostics/FirDiagnosticsList.kt | 51 +++++----- .../FirJvmExternalDeclarationChecker.kt | 4 +- .../FirDeclarationCheckerAliases.kt | 8 +- .../fir/analysis/diagnostics/FirErrors.kt | 34 +++---- .../kotlin/fir/analysis/cfa/CfaUtils.kt | 6 +- .../analysis/cfa/FirCallsEffectAnalyzer.kt | 8 +- .../analysis/cfa/FirControlFlowAnalyzer.kt | 6 +- .../analysis/cfa/FirReturnsImpliesAnalyzer.kt | 10 +- .../checkers/ConeTypeCompatibilityChecker.kt | 20 ++-- .../analysis/checkers/FirAnnotationHelpers.kt | 4 +- .../fir/analysis/checkers/FirConstChecks.kt | 2 +- .../checkers/FirDeclarationInspector.kt | 10 +- .../fir/analysis/checkers/FirHelpers.kt | 50 +++++----- .../checkers/FirSinceKotlinHelpers.kt | 8 +- .../checkers/context/CheckerContext.kt | 2 +- .../context/PersistentCheckerContext.kt | 4 +- .../declaration/FirAnnotationChecker.kt | 8 +- .../FirAnnotationClassDeclarationChecker.kt | 2 +- .../declaration/FirClassVarianceChecker.kt | 8 +- .../declaration/FirConflictsChecker.kt | 22 ++--- .../FirConstructorAllowedChecker.kt | 6 +- .../declaration/FirContractChecker.kt | 2 +- .../declaration/FirCyclicTypeBoundsChecker.kt | 2 +- .../declaration/FirDeclarationChecker.kt | 2 +- .../declaration/FirDeclarationCheckerUtils.kt | 8 +- .../FirDestructuringDeclarationChecker.kt | 8 +- .../FirExposedVisibilityDeclarationChecker.kt | 10 +- .../declaration/FirFunctionNameChecker.kt | 2 +- .../FirFunctionParameterChecker.kt | 15 +-- .../FirInfixFunctionDeclarationChecker.kt | 9 +- .../FirInlineDeclarationChecker.kt | 16 +-- ...rKClassWithIncorrectTypeArgumentChecker.kt | 8 +- .../declaration/FirModifierChecker.kt | 14 +-- .../declaration/FirNestedClassChecker.kt | 5 +- .../FirNotImplementedOverrideChecker.kt | 6 +- .../declaration/FirOpenMemberChecker.kt | 4 +- .../declaration/FirOverrideChecker.kt | 24 ++--- .../FirProjectionRelationChecker.kt | 4 +- .../declaration/FirSealedSupertypeChecker.kt | 9 +- .../declaration/FirSupertypesChecker.kt | 4 +- .../FirThrowableSubclassChecker.kt | 8 +- .../declaration/FirTypeConstraintsChecker.kt | 2 +- .../FirTypeParameterBoundsChecker.kt | 4 +- ...FirUpperBoundViolatedDeclarationChecker.kt | 6 +- .../expression/FirAbstractSuperCallChecker.kt | 2 +- .../expression/FirCallableReferenceChecker.kt | 7 +- .../FirExpressionAnnotationChecker.kt | 2 +- .../expression/FirNotASupertypeChecker.kt | 4 +- ...upertypeExtendedByOtherSupertypeChecker.kt | 6 +- .../FirReservedUnderscoreCheckers.kt | 12 +-- .../expression/FirReturnAllowedChecker.kt | 6 +- .../expression/FirSuperNotAvailableChecker.kt | 2 +- ...rclassNotAccessibleFromInterfaceChecker.kt | 2 +- .../RedundantModalityModifierSyntaxChecker.kt | 8 +- ...edundantVisibilityModifierSyntaxChecker.kt | 12 +-- .../checkers/syntax/FirSyntaxChecker.kt | 2 +- .../collectors/AbstractDiagnosticCollector.kt | 2 +- .../AbstractDiagnosticCollectorVisitor.kt | 14 +-- .../ControlFlowAnalysisDiagnosticComponent.kt | 7 +- .../DeclarationCheckersDiagnosticComponent.kt | 4 +- .../diagnostics/FirDiagnosticRenderers.kt | 4 +- .../jetbrains/kotlin/fir/dump/HtmlFirDump.kt | 20 ++-- .../session/FirJvmModuleVisibilityChecker.kt | 2 +- ...JvmOverridesBackwardCompatibilityHelper.kt | 7 +- .../deserialization/ClassDeserialization.kt | 9 +- .../serialization/FirContractSerializer.kt | 4 +- .../FirElementAwareStringTable.kt | 6 +- .../fir/serialization/FirElementSerializer.kt | 28 +++--- .../serialization/FirSerializerExtension.kt | 10 +- .../jvm/FirJvmElementAwareStringTable.kt | 4 +- .../fir/backend/jvm/FirJvmKotlinMangler.kt | 20 ++-- .../fir/backend/jvm/FirJvmMangleComputer.kt | 24 ++--- .../backend/jvm/FirJvmSerializerExtension.kt | 18 ++-- .../fir/backend/jvm/FirMetadataSerializer.kt | 2 +- .../kotlin/fir/backend/ConversionUtils.kt | 20 ++-- .../fir/backend/Fir2IrClassifierStorage.kt | 19 ++-- .../fir/backend/Fir2IrConversionScope.kt | 11 ++- .../kotlin/fir/backend/Fir2IrConverter.kt | 8 +- .../fir/backend/Fir2IrDeclarationStorage.kt | 42 ++++---- .../fir/backend/Fir2IrImplicitCastInserter.kt | 5 +- .../kotlin/fir/backend/Fir2IrLocalStorage.kt | 17 ++-- .../kotlin/fir/backend/Fir2IrScopeCache.kt | 12 +-- .../fir/backend/Fir2IrSignatureComposer.kt | 2 +- .../kotlin/fir/backend/Fir2IrVisitor.kt | 2 +- .../kotlin/fir/backend/FirMetadataSource.kt | 6 +- .../backend/generators/AdapterGenerator.kt | 8 +- .../generators/CallAndReferenceGenerator.kt | 8 +- .../generators/ClassMemberGenerator.kt | 8 +- .../generators/DataClassMembersGenerator.kt | 8 +- .../generators/DelegatedMemberGenerator.kt | 23 +++-- .../generators/FakeOverrideGenerator.kt | 30 +++--- .../fir/lazy/AbstractFir2IrLazyFunction.kt | 7 +- .../fir/lazy/Fir2IrLazyPropertyAccessor.kt | 9 +- .../fir/lazy/Fir2IrLazySimpleFunction.kt | 15 ++- .../signaturer/FirBasedSignatureComposer.kt | 6 +- .../kotlin/fir/signaturer/FirMangler.kt | 2 +- .../fir/java/FirJavaVisibilityChecker.kt | 2 +- .../kotlin/fir/java/JavaScopeProvider.kt | 18 ++-- .../kotlin/fir/java/JavaSymbolProvider.kt | 2 +- .../fir/java/declarations/FirJavaClass.kt | 4 +- .../fir/java/declarations/FirJavaField.kt | 2 +- .../java/enhancement/SignatureEnhancement.kt | 34 +++---- .../JavaClassMembersEnhancementScope.kt | 5 +- .../scopes/JavaClassUseSiteMemberScope.kt | 8 +- .../fir/java/scopes/JavaOverrideChecker.kt | 17 ++-- .../kotlin/fir/resolve/FirJavaClassMapper.kt | 2 +- .../jvm/ConeEquivalentCallConflictResolver.kt | 17 ++-- .../fir/resolve/scopes/JvmMappedScopes.kt | 7 +- .../kotlin/fir/scopes/jvm/DescriptorUtils.kt | 7 +- .../kotlin/fir/scopes/jvm/JvmMappedScope.kt | 2 +- .../fir/lightTree/converter/ConverterUtil.kt | 3 +- .../converter/DeclarationsConverter.kt | 22 ++--- .../converter/ExpressionsConverter.kt | 4 +- .../lightTree/fir/DestructuringDeclaration.kt | 2 +- .../kotlin/fir/builder/PsiConversionUtils.kt | 2 +- .../kotlin/fir/builder/RawFirBuilder.kt | 10 +- .../RawFirBuilderTotalKotlinTestCase.kt | 2 +- .../fir/builder/StubFirScopeProvider.kt | 8 +- .../kotlin/fir/builder/BaseFirBuilder.kt | 4 +- .../kotlin/fir/builder/ConversionUtils.kt | 6 +- .../kotlin/fir/FirVisibilityChecker.kt | 24 ++--- .../org/jetbrains/kotlin/fir/SessionUtils.kt | 2 +- .../fir/declarations/FirAnnotationUtils.kt | 2 +- .../FirVersionRequirementsTableKey.kt | 2 +- .../FirDeclarationGenerationExtension.kt | 12 +-- .../extensions/FirPredicateBasedProvider.kt | 76 +++++++------- .../FirStatusTransformerExtension.kt | 4 +- .../FirSupertypeGenerationExtension.kt | 2 +- .../fir/resolve/BodyResolveComponents.kt | 16 +-- .../resolve/FirDefaultParametersResolver.kt | 2 +- .../fir/resolve/FirPlatformClassMapper.kt | 4 +- .../kotlin/fir/resolve/ResolveUtils.kt | 12 +-- .../kotlin/fir/resolve/SamResolution.kt | 4 +- .../kotlin/fir/resolve/ScopeUtils.kt | 7 +- .../kotlin/fir/resolve/SupertypeUtils.kt | 12 +-- .../calls/AbstractConeCallConflictResolver.kt | 10 +- .../kotlin/fir/resolve/calls/Arguments.kt | 3 +- .../calls/CallableReferenceResolution.kt | 16 +-- .../kotlin/fir/resolve/calls/Candidate.kt | 2 +- .../resolve/calls/ConstructorProcessing.kt | 2 +- .../calls/FirArgumentsToParametersMapper.kt | 8 +- .../fir/resolve/calls/QualifierReceiver.kt | 2 +- .../fir/resolve/calls/ResolutionDiagnostic.kt | 10 +- .../kotlin/fir/resolve/calls/SuperCalls.kt | 10 +- .../fir/resolve/dfa/FirDataFlowAnalyzer.kt | 10 +- .../dfa/FirLocalVariableAssignmentAnalyzer.kt | 16 +-- .../fir/resolve/dfa/PreliminaryLoopVisitor.kt | 4 +- .../jetbrains/kotlin/fir/resolve/dfa/Stack.kt | 4 +- .../kotlin/fir/resolve/dfa/cfg/CFGNode.kt | 10 +- .../fir/resolve/dfa/cfg/CFGNodeRenderer.kt | 2 +- .../fir/resolve/dfa/cfg/ControlFlowGraph.kt | 2 +- .../dfa/cfg/ControlFlowGraphBuilder.kt | 24 ++--- .../dfa/cfg/ControlFlowGraphNodeBuilder.kt | 10 +- .../jetbrains/kotlin/fir/resolve/dfa/util.kt | 2 +- .../fir/resolve/diagnostics/FirDiagnostics.kt | 2 +- .../inference/FirBuilderInferenceSession.kt | 2 +- .../fir/resolve/inference/FirCallCompleter.kt | 2 +- .../FirDelegatedPropertyInferenceSession.kt | 2 +- .../fir/resolve/inference/InferenceUtils.kt | 8 +- .../fir/resolve/providers/FirProvider.kt | 6 +- .../impl/FirLibrarySessionProvider.kt | 6 +- .../resolve/providers/impl/FirProviderImpl.kt | 12 +-- .../FirAbstractPhaseTransformer.kt | 2 +- ...irAbstractTreeTransformerWithSuperTypes.kt | 8 +- ...rCallCompletionResultsWriterTransformer.kt | 2 +- .../FirStatusResolveTransformer.kt | 98 +++++++++---------- .../resolve/transformers/FirStatusResolver.kt | 48 ++++----- .../transformers/FirSupertypesResolution.kt | 68 ++++++------- .../transformers/FirTypeResolveTransformer.kt | 2 +- .../fir/resolve/transformers/PhaseUtils.kt | 4 +- .../transformers/ReturnTypeCalculator.kt | 4 +- .../resolve/transformers/TransformUtils.kt | 2 +- .../body/resolve/BodyResolveContext.kt | 24 ++--- .../FirAbstractBodyResolveTransformer.kt | 8 +- .../body/resolve/FirArrayOfCallTransformer.kt | 6 +- .../body/resolve/FirBodyResolveTransformer.kt | 10 +- .../FirDeclarationsResolveTransformer.kt | 24 ++--- .../FirExpressionsResolveTransformer.kt | 8 +- .../body/resolve/FirImplicitBodyResolve.kt | 22 ++--- .../resolve/FirTowerDataContextCollector.kt | 2 +- .../body/resolve/LocalClassesNavigation.kt | 28 +++--- .../body/resolve/LocalClassesResolution.kt | 2 +- .../contracts/ConeEffectExtractor.kt | 2 +- .../FirContractResolveTransformer.kt | 6 +- .../FirContractResolveTransformerAdapter.kt | 4 +- ...FirAbstractAnnotationResolveTransformer.kt | 14 +-- .../FirGlobalClassGenerationProcessor.kt | 6 +- .../FirGlobalExtensionStatusProcessor.kt | 2 +- .../FirPluginAnnotationsResolveTransformer.kt | 14 +-- .../plugin/GeneratedClassIndex.kt | 6 +- .../fir/scopes/FakeOverrideTypeCalculator.kt | 6 +- .../fir/scopes/FirKotlinScopeProvider.kt | 31 +++--- .../kotlin/fir/scopes/FirOverrideChecker.kt | 4 +- .../scopes/impl/AbstractFirOverrideScope.kt | 10 +- .../scopes/impl/FirAbstractOverrideChecker.kt | 11 +-- .../impl/FirClassDeclaredMemberScope.kt | 6 +- .../scopes/impl/FirClassSubstitutionScope.kt | 16 ++- .../impl/FirDeclaredMemberScopeProvider.kt | 16 +-- .../scopes/impl/FirDelegatedMemberScope.kt | 19 ++-- .../scopes/impl/FirFakeOverrideGenerator.kt | 8 +- .../kotlin/fir/scopes/impl/FirLocalScope.kt | 9 +- .../scopes/impl/FirNestedClassifierScope.kt | 2 +- .../impl/FirObjectImportedCallableScope.kt | 13 ++- .../FirScopeWithFakeOverrideTypeCalculator.kt | 4 +- .../scopes/impl/FirStandardOverrideChecker.kt | 6 +- .../kotlin/fir/scopes/impl/FirStaticScope.kt | 2 +- .../scopes/impl/FirTypeIntersectionScope.kt | 12 +-- .../kotlin/fir/types/ConeTypeContext.kt | 8 +- .../types/FirCorrespondingSupertypesCache.kt | 3 +- .../declarations/FirAnnotatedDeclaration.kt | 6 +- .../fir/declarations/FirAnonymousFunction.kt | 2 +- .../declarations/FirAnonymousInitializer.kt | 2 +- .../fir/declarations/FirAnonymousObject.kt | 4 +- .../declarations/FirCallableDeclaration.kt | 10 +- .../FirCallableMemberDeclaration.kt | 14 +-- .../kotlin/fir/declarations/FirClass.kt | 14 +-- .../declarations/FirClassLikeDeclaration.kt | 6 +- .../kotlin/fir/declarations/FirConstructor.kt | 2 +- .../kotlin/fir/declarations/FirDeclaration.kt | 4 +- .../kotlin/fir/declarations/FirEnumEntry.kt | 2 +- .../fir/declarations/FirErrorFunction.kt | 2 +- .../fir/declarations/FirErrorProperty.kt | 2 +- .../kotlin/fir/declarations/FirField.kt | 6 +- .../kotlin/fir/declarations/FirFile.kt | 4 +- .../kotlin/fir/declarations/FirFunction.kt | 18 ++-- .../kotlin/fir/declarations/FirProperty.kt | 2 +- .../fir/declarations/FirPropertyAccessor.kt | 2 +- .../fir/declarations/FirRegularClass.kt | 4 +- .../fir/declarations/FirSimpleFunction.kt | 2 +- .../kotlin/fir/declarations/FirTypeAlias.kt | 2 +- .../fir/declarations/FirTypeParameter.kt | 2 +- .../fir/declarations/FirTypedDeclaration.kt | 8 +- .../fir/declarations/FirValueParameter.kt | 2 +- .../kotlin/fir/declarations/FirVariable.kt | 24 ++--- .../builder/FirAnonymousObjectBuilder.kt | 2 +- .../declarations/builder/FirClassBuilder.kt | 4 +- .../builder/FirDeclarationBuilder.kt | 2 +- .../declarations/builder/FirFieldBuilder.kt | 6 +- .../declarations/builder/FirFileBuilder.kt | 2 +- .../builder/FirFunctionBuilder.kt | 2 +- .../builder/FirRegularClassBuilder.kt | 2 +- .../impl/FirAnonymousObjectImpl.kt | 2 +- .../fir/declarations/impl/FirFieldImpl.kt | 4 +- .../fir/declarations/impl/FirFileImpl.kt | 2 +- .../declarations/impl/FirRegularClassImpl.kt | 2 +- .../fir/expressions/FirReturnExpression.kt | 4 +- .../fir/expressions/FirWhenExpression.kt | 2 +- .../builder/FirReturnExpressionBuilder.kt | 2 +- .../builder/FirWhenExpressionBuilder.kt | 2 +- .../impl/FirReturnExpressionImpl.kt | 2 +- .../expressions/impl/FirWhenExpressionImpl.kt | 2 +- .../kotlin/fir/visitors/FirTransformer.kt | 36 +++---- .../kotlin/fir/visitors/FirVisitor.kt | 18 ++-- .../kotlin/fir/visitors/FirVisitorVoid.kt | 36 +++---- .../org/jetbrains/kotlin/fir/ClassMembers.kt | 38 +++---- .../jetbrains/kotlin/fir/FirFunctionTarget.kt | 4 +- .../org/jetbrains/kotlin/fir/FirRenderer.kt | 36 +++---- .../org/jetbrains/kotlin/fir/Primitives.kt | 24 ++--- .../declarations/FirDeclarationAttributes.kt | 6 +- .../FirCallableMemberDeclarationComparator.kt | 11 ++- .../FirMemberDeclarationComparator.kt | 14 +-- .../utils/FirDeclarationBuildingUtils.kt | 8 +- .../declarations/utils/FirDeclarationUtil.kt | 24 ++--- .../fir/declarations/utils/FirStatusUtils.kt | 8 +- .../utils/declarationAttributes.kt | 6 +- .../kotlin/fir/scopes/FirScopeProvider.kt | 8 +- .../kotlin/fir/symbols/FirBasedSymbol.kt | 2 +- .../fir/symbols/impl/FirCallableSymbol.kt | 4 +- .../fir/symbols/impl/FirClassLikeSymbol.kt | 4 +- .../fir/symbols/impl/FirClassifierSymbol.kt | 2 +- .../fir/symbols/impl/FirFunctionSymbol.kt | 6 +- .../fir/symbols/impl/FirVariableSymbol.kt | 2 +- .../fir/tree/generator/NodeConfigurator.kt | 49 ++-------- .../fir/handlers/FirDiagnosticsHandler.kt | 4 +- .../fir/handlers/FirScopeDumpHandler.kt | 2 +- .../kotlin/fir/AbstractFirDiagnosticTest.kt | 3 +- .../compiler/visualizer/FirVisualizer.kt | 22 ++--- .../fir/low/level/api/FirDesignationState.kt | 6 +- .../api/FirModuleResolveStateDepended.kt | 10 +- .../level/api/FirModuleResolveStateImpl.kt | 16 +-- .../level/api/api/DeclarationCopyBuilder.kt | 6 +- .../api/api/FirDeclarationDesignation.kt | 36 +++---- .../level/api/api/FirModuleResolveState.kt | 16 +-- ...arationAndFirDeclarationEqualityChecker.kt | 10 +- .../low/level/api/api/LowLevelFirApiFacade.kt | 20 ++-- .../LowLevelFirApiFacadeForResolveOnAir.kt | 3 +- ...eforeElementDiagnosticCollectionHandler.kt | 2 +- ...FileStructureElementDiagnosticRetriever.kt | 10 +- ...ileStructureElementDiagnosticsCollector.kt | 2 +- .../diagnostics/FirIdeDiagnosticVisitor.kt | 2 +- ...extCollectingDiagnosticCollectorVisitor.kt | 10 +- ...solveTransformerForReturnTypeCalculator.kt | 2 +- .../builder/FirTowerDataContextCollector.kt | 2 +- .../level/api/file/builder/ModuleFileCache.kt | 10 +- .../api/file/structure/FileElementFactory.kt | 2 +- .../file/structure/FileStructureElement.kt | 4 +- .../api/file/structure/FileStructureUtil.kt | 10 +- .../lazy/resolve/FirLazyBodiesCalculator.kt | 16 +-- .../FirLazyDeclarationResolveToType.kt | 10 +- .../resolve/FirLazyDeclarationResolver.kt | 8 +- .../lazy/resolve/NonLocalDeclarationUtils.kt | 9 +- .../RawFirNonLocalDeclarationBuilder.kt | 12 +-- ...rIdeBuiltinsAndCloneableSessionProvider.kt | 6 +- .../FirIdeLibrariesSessionProvider.kt | 6 +- .../low/level/api/providers/FirIdeProvider.kt | 10 +- .../level/api/providers/FirProviderHelper.kt | 8 +- ...rDesignatedBodyResolveTransformerForIDE.kt | 10 +- ...gnatedContractsResolveTransformerForIDE.kt | 10 +- ...esignatedImplicitTypesTransformerForIDE.kt | 10 +- ...esignatedStatusResolveTransformerForIDE.kt | 6 +- ...natedSupertypeResolverTransformerForIDE.kt | 18 ++-- ...DesignatedTypeResolverTransformerForIDE.kt | 10 +- .../FirFileAnnotationsResolveTransformer.kt | 6 +- .../transformers/FirLazyTransformerForIDE.kt | 12 +-- .../FirProviderInterceptorForIDE.kt | 10 +- .../transformers/IDEDeclarationTransformer.kt | 20 ++-- ...irDeclarationForCompiledElementSearcher.kt | 6 +- .../level/api/util/contrainingFileUtils.kt | 6 +- .../low/level/api/util/declarationUtils.kt | 18 ++-- .../util/firDeclarationDesignationUtils.kt | 13 ++- .../idea/fir/low/level/api/util/utils.kt | 4 +- .../AbstractFirLazyDeclarationResolveTest.kt | 10 +- .../AbstractPartialRawFirBuilderTestCase.kt | 10 +- .../AbstractDiagnosticTraversalCounterTest.kt | 2 +- .../AbstractFirContextCollectionTest.kt | 13 +-- .../idea/fir/low/level/api/firTestUtils.kt | 3 +- .../fir/generator/HLDiagnosticConverter.kt | 4 +- ...deDeserializedDeclarationSourceProvider.kt | 16 ++- .../FirCompileTimeConstantEvaluator.kt | 9 +- .../frontend/api/fir/KtSymbolByFirBuilder.kt | 29 +++--- .../KtFirCompletionCandidateChecker.kt | 11 ++- .../components/KtFirExpressionTypeProvider.kt | 2 +- .../api/fir/components/KtFirScopeProvider.kt | 4 +- ...KtFirSymbolDeclarationOverridesProvider.kt | 14 +-- .../api/fir/components/KtFirTypeCreator.kt | 6 +- .../fir/components/KtFirVisibilityChecker.kt | 2 +- .../diagnostics/KtFirDataClassConverters.kt | 54 +++++----- .../api/fir/renderer/ConeTypeIdeRenderer.kt | 12 +-- .../api/fir/renderer/FirIdeRenderer.kt | 42 ++++---- .../fir/symbols/KtFirOverrideInfoProvider.kt | 16 +-- .../frontend/api/fir/symbols/KtFirSymbol.kt | 10 +- .../api/fir/symbols/KtFirSymbolProvider.kt | 8 +- .../fir/symbols/KtFirTypeAndAnnotations.kt | 12 +-- .../annotations/KtFirAnnotationCall.kt | 2 +- .../symbols/annotations/firAnnotationUtils.kt | 6 +- .../api/fir/symbols/firSymbolUtils.kt | 13 ++- .../api/fir/symbols/pointers/pointerUtils.kt | 6 +- .../api/fir/utils/FirRefWithValidityCheck.kt | 4 +- .../KtAnalysisSessionFe10BindingHolder.kt | 4 +- .../idea/frontend/api/fir/utils/firUtils.kt | 2 +- .../fir/plugin/AllOpenStatusTransformer.kt | 2 +- .../fir/plugin/AllOpenSupertypeGenerator.kt | 4 +- .../plugin/AllOpenVisibilityTransformer.kt | 8 +- .../generators/AllOpenMemberGenerator.kt | 10 +- .../generators/AllOpenNestedClassGenerator.kt | 10 +- .../AllOpenRecursiveNestedClassGenerator.kt | 10 +- .../AllOpenTopLevelDeclarationsGenerator.kt | 10 +- 360 files changed, 1774 insertions(+), 1743 deletions(-) diff --git a/compiler/fir/analysis-tests/legacy-fir-tests/tests/org/jetbrains/kotlin/fir/java/JavaClassRendering.kt b/compiler/fir/analysis-tests/legacy-fir-tests/tests/org/jetbrains/kotlin/fir/java/JavaClassRendering.kt index c49787b87b8..c30f9fa041f 100644 --- a/compiler/fir/analysis-tests/legacy-fir-tests/tests/org/jetbrains/kotlin/fir/java/JavaClassRendering.kt +++ b/compiler/fir/analysis-tests/legacy-fir-tests/tests/org/jetbrains/kotlin/fir/java/JavaClassRendering.kt @@ -27,7 +27,7 @@ fun renderJavaClass(renderer: FirRenderer, javaClass: FirJavaClass, session: Fir renderer.visitStatusOwner(javaClass) renderer.renderSupertypes(javaClass) renderer.renderInBraces { - val renderedDeclarations = mutableListOf>() + val renderedDeclarations = mutableListOf() fun renderAndCache(symbol: FirCallableSymbol<*>) { val enhanced = symbol.fir @@ -42,7 +42,7 @@ fun renderJavaClass(renderer: FirRenderer, javaClass: FirJavaClass, session: Fir if (declaration in renderedDeclarations) continue val scopeToUse = - if (declaration is FirCallableMemberDeclaration<*> && declaration.status.isStatic) + if (declaration is FirCallableMemberDeclaration && declaration.status.isStatic) staticScope else memberScope diff --git a/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/capturedTypeInEquality.kt b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/capturedTypeInEquality.kt index 4cc67362737..90fd2436ed8 100644 --- a/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/capturedTypeInEquality.kt +++ b/compiler/fir/analysis-tests/testData/resolveWithStdlib/problems/capturedTypeInEquality.kt @@ -20,4 +20,4 @@ fun foo(target: FirTarget>, property: FirProperty) { } 0 } -} \ No newline at end of file +} diff --git a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/Main.kt b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/Main.kt index 3c8df05c669..dd9a0e530c5 100644 --- a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/Main.kt +++ b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/Main.kt @@ -51,16 +51,16 @@ fun main(args: Array) { val declarationPackage = "$basePackage.checkers.declaration" generateCheckersComponents(generationPath, declarationPackage, "FirDeclarationChecker") { - alias>("BasicDeclarationChecker") - alias>("FunctionChecker") + alias("BasicDeclarationChecker") + alias("FunctionChecker") alias("SimpleFunctionChecker") alias("PropertyChecker") - alias>("ClassChecker") + alias("ClassChecker") alias("RegularClassChecker") alias("ConstructorChecker") alias("FileChecker") alias("FirTypeParameterChecker") - alias>("FirAnnotatedDeclarationChecker") + alias("FirAnnotatedDeclarationChecker") alias("TypeAliasChecker") additional( diff --git a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/FirDiagnosticsList.kt b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/FirDiagnosticsList.kt index 96d66d288b6..13395bfc98a 100644 --- a/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/FirDiagnosticsList.kt +++ b/compiler/fir/checkers/checkers-component-generator/src/org/jetbrains/kotlin/fir/checkers/generator/diagnostics/FirDiagnosticsList.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir.checkers.generator.diagnostics import com.intellij.psi.PsiElement -import com.intellij.psi.PsiTypeElement import com.intellij.psi.impl.source.tree.LeafPsiElement import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.config.LanguageVersionSettings @@ -120,7 +119,7 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") { val NOT_A_SUPERTYPE by error() val SUPERCLASS_NOT_ACCESSIBLE_FROM_INTERFACE by error() val QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE by error { - parameter>("otherSuperType") + parameter("otherSuperType") } val SUPERTYPE_INITIALIZED_IN_INTERFACE by error() val INTERFACE_WITH_SUPERCLASS by error() @@ -370,7 +369,7 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") { val NON_VARARG_SPREAD by error() val ARGUMENT_PASSED_TWICE by error(PositioningStrategy.NAME_OF_NAMED_ARGUMENT) val TOO_MANY_ARGUMENTS by error { - parameter>("function") + parameter("function") } val NO_VALUE_FOR_PARAMETER by error(PositioningStrategy.VALUE_ARGUMENTS) { parameter("violatedParameter") @@ -482,7 +481,7 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") { val NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER by error { parameter("typeParameterName") - parameter>("typeParametersOwner") + parameter("typeParametersOwner") } val BOUND_ON_TYPE_ALIAS_PARAMETER_NOT_ALLOWED by error() @@ -540,7 +539,7 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") { val REFLECTION by object : DiagnosticGroup("Reflection") { val EXTENSION_IN_CLASS_REFERENCE_NOT_ALLOWED by error(PositioningStrategy.REFERENCE_BY_QUALIFIED) { - parameter>("referencedDeclaration") + parameter("referencedDeclaration") } val CALLABLE_REFERENCE_LHS_NOT_A_CLASS by error() val CALLABLE_REFERENCE_TO_ANNOTATION_CONSTRUCTOR by error(PositioningStrategy.REFERENCE_BY_QUALIFIED) @@ -559,51 +558,51 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") { val CANNOT_WEAKEN_ACCESS_PRIVILEGE by error(PositioningStrategy.VISIBILITY_MODIFIER) { parameter("overridingVisibility") - parameter>("overridden") + parameter("overridden") parameter("containingClassName") } val CANNOT_CHANGE_ACCESS_PRIVILEGE by error(PositioningStrategy.VISIBILITY_MODIFIER) { parameter("overridingVisibility") - parameter>("overridden") + parameter("overridden") parameter("containingClassName") } val OVERRIDING_FINAL_MEMBER by error(PositioningStrategy.OVERRIDE_MODIFIER) { - parameter>("overriddenDeclaration") + parameter("overriddenDeclaration") parameter("containingClassName") } val ABSTRACT_MEMBER_NOT_IMPLEMENTED by error(PositioningStrategy.DECLARATION_NAME) { - parameter>("classOrObject") - parameter>("missingDeclaration") + parameter("classOrObject") + parameter("missingDeclaration") } val ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED by error(PositioningStrategy.DECLARATION_NAME) { - parameter>("classOrObject") - parameter>("missingDeclaration") + parameter("classOrObject") + parameter("missingDeclaration") } val INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER by error(PositioningStrategy.DECLARATION_NAME) { - parameter>("classOrObject") - parameter>("invisibleDeclaration") + parameter("classOrObject") + parameter("invisibleDeclaration") } val INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_WARNING by warning(PositioningStrategy.DECLARATION_NAME) { - parameter>("classOrObject") - parameter>("invisibleDeclaration") + parameter("classOrObject") + parameter("invisibleDeclaration") } val MANY_IMPL_MEMBER_NOT_IMPLEMENTED by error(PositioningStrategy.DECLARATION_NAME) { - parameter>("classOrObject") - parameter>("missingDeclaration") + parameter("classOrObject") + parameter("missingDeclaration") } val MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED by error(PositioningStrategy.DECLARATION_NAME) { - parameter>("classOrObject") - parameter>("missingDeclaration") + parameter("classOrObject") + parameter("missingDeclaration") } val OVERRIDING_FINAL_MEMBER_BY_DELEGATION by error(PositioningStrategy.DECLARATION_NAME) { - parameter>("delegatedDeclaration") - parameter>("overriddenDeclaration") + parameter("delegatedDeclaration") + parameter("overriddenDeclaration") } val DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE by warning(PositioningStrategy.DECLARATION_NAME) { - parameter>("delegatedDeclaration") - parameter>("overriddenDeclaration") + parameter("delegatedDeclaration") + parameter("overriddenDeclaration") } val RETURN_TYPE_MISMATCH_ON_OVERRIDE by error(PositioningStrategy.DECLARATION_RETURN_TYPE) { @@ -653,7 +652,7 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") { val FUNCTIONS by object : DiagnosticGroup("Functions") { val ABSTRACT_FUNCTION_IN_NON_ABSTRACT_CLASS by error(PositioningStrategy.MODALITY_MODIFIER) { parameter("function") - parameter>("containingClass") + parameter("containingClass") } val ABSTRACT_FUNCTION_WITH_BODY by error(PositioningStrategy.MODALITY_MODIFIER) { parameter("function") @@ -697,7 +696,7 @@ object DIAGNOSTICS_LIST : DiagnosticList("FirErrors") { val PROPERTIES_AND_ACCESSORS by object : DiagnosticGroup("Properties & accessors") { val ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS by error(PositioningStrategy.MODALITY_MODIFIER) { parameter("property") - parameter>("containingClass") + parameter("containingClass") } val PRIVATE_PROPERTY_IN_INTERFACE by error(PositioningStrategy.VISIBILITY_MODIFIER) diff --git a/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/declaration/FirJvmExternalDeclarationChecker.kt b/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/declaration/FirJvmExternalDeclarationChecker.kt index ae41f34c5da..c50df920cf1 100644 --- a/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/declaration/FirJvmExternalDeclarationChecker.kt +++ b/compiler/fir/checkers/checkers.jvm/src/org/jetbrains/kotlin/fir/analysis/jvm/checkers/declaration/FirJvmExternalDeclarationChecker.kt @@ -17,14 +17,14 @@ import org.jetbrains.kotlin.fir.declarations.utils.isExternal import org.jetbrains.kotlin.lexer.KtTokens object FirJvmExternalDeclarationChecker : FirBasicDeclarationChecker() { - override fun check(declaration: FirDeclaration<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) { if (declaration !is FirStatusOwner) return if (!declaration.isExternal) return val source = declaration.source ?: return if (source.kind is FirFakeSourceElementKind) return // WRONG_MODIFIER_TARGET on external constructor is intentionally NOT covered in this checker. - if (declaration !is FirFunction<*>) { + if (declaration !is FirFunction) { val target = when (declaration) { is FirProperty -> "property" is FirRegularClass -> "class" diff --git a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerAliases.kt b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerAliases.kt index 3024e5bdb7f..ac8da7a91f7 100644 --- a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerAliases.kt +++ b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerAliases.kt @@ -22,14 +22,14 @@ import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.FirTypeAlias import org.jetbrains.kotlin.fir.declarations.FirTypeParameter -typealias FirBasicDeclarationChecker = FirDeclarationChecker> -typealias FirFunctionChecker = FirDeclarationChecker> +typealias FirBasicDeclarationChecker = FirDeclarationChecker +typealias FirFunctionChecker = FirDeclarationChecker typealias FirSimpleFunctionChecker = FirDeclarationChecker typealias FirPropertyChecker = FirDeclarationChecker -typealias FirClassChecker = FirDeclarationChecker> +typealias FirClassChecker = FirDeclarationChecker typealias FirRegularClassChecker = FirDeclarationChecker typealias FirConstructorChecker = FirDeclarationChecker typealias FirFileChecker = FirDeclarationChecker typealias FirTypeParameterChecker = FirDeclarationChecker -typealias FirAnnotatedDeclarationChecker = FirDeclarationChecker> +typealias FirAnnotatedDeclarationChecker = FirDeclarationChecker typealias FirTypeAliasChecker = FirDeclarationChecker diff --git a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt index d41e0963d54..ea8987a09eb 100644 --- a/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt +++ b/compiler/fir/checkers/gen/org/jetbrains/kotlin/fir/analysis/diagnostics/FirErrors.kt @@ -131,7 +131,7 @@ object FirErrors { val RECURSION_IN_SUPERTYPES by error0() val NOT_A_SUPERTYPE by error0() val SUPERCLASS_NOT_ACCESSIBLE_FROM_INTERFACE by error0() - val QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE by error1>() + val QUALIFIED_SUPERTYPE_EXTENDED_BY_OTHER_SUPERTYPE by error1() val SUPERTYPE_INITIALIZED_IN_INTERFACE by error0() val INTERFACE_WITH_SUPERCLASS by error0() val FINAL_SUPERTYPE by error0() @@ -269,7 +269,7 @@ object FirErrors { val NAMED_ARGUMENTS_NOT_ALLOWED by error1(SourceElementPositioningStrategies.NAME_OF_NAMED_ARGUMENT) val NON_VARARG_SPREAD by error0() val ARGUMENT_PASSED_TWICE by error0(SourceElementPositioningStrategies.NAME_OF_NAMED_ARGUMENT) - val TOO_MANY_ARGUMENTS by error1>() + val TOO_MANY_ARGUMENTS by error1() val NO_VALUE_FOR_PARAMETER by error1(SourceElementPositioningStrategies.VALUE_ARGUMENTS) val NAMED_PARAMETER_NOT_FOUND by error1(SourceElementPositioningStrategies.NAME_OF_NAMED_ARGUMENT) val ASSIGNMENT_TYPE_MISMATCH by error2() @@ -313,7 +313,7 @@ object FirErrors { val ONLY_ONE_CLASS_BOUND_ALLOWED by error0() val REPEATED_BOUND by error0() val CONFLICTING_UPPER_BOUNDS by error1() - val NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER by error2>() + val NAME_IN_CONSTRAINT_IS_NOT_A_TYPE_PARAMETER by error2() val BOUND_ON_TYPE_ALIAS_PARAMETER_NOT_ALLOWED by error0() val REIFIED_TYPE_PARAMETER_NO_INLINE by error0(SourceElementPositioningStrategies.REIFIED_MODIFIER) val TYPE_PARAMETERS_NOT_ALLOWED by error0(SourceElementPositioningStrategies.TYPE_PARAMETERS_LIST) @@ -330,7 +330,7 @@ object FirErrors { val SMARTCAST_IMPOSSIBLE by error3() // Reflection - val EXTENSION_IN_CLASS_REFERENCE_NOT_ALLOWED by error1>(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) + val EXTENSION_IN_CLASS_REFERENCE_NOT_ALLOWED by error1(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) val CALLABLE_REFERENCE_LHS_NOT_A_CLASS by error0() val CALLABLE_REFERENCE_TO_ANNOTATION_CONSTRUCTOR by error0(SourceElementPositioningStrategies.REFERENCE_BY_QUALIFIED) val CLASS_LITERAL_LHS_NOT_A_CLASS by error0() @@ -339,17 +339,17 @@ object FirErrors { // overrides val NOTHING_TO_OVERRIDE by error1(SourceElementPositioningStrategies.OVERRIDE_MODIFIER) - val CANNOT_WEAKEN_ACCESS_PRIVILEGE by error3, Name>(SourceElementPositioningStrategies.VISIBILITY_MODIFIER) - val CANNOT_CHANGE_ACCESS_PRIVILEGE by error3, Name>(SourceElementPositioningStrategies.VISIBILITY_MODIFIER) - val OVERRIDING_FINAL_MEMBER by error2, Name>(SourceElementPositioningStrategies.OVERRIDE_MODIFIER) - val ABSTRACT_MEMBER_NOT_IMPLEMENTED by error2, FirCallableDeclaration<*>>(SourceElementPositioningStrategies.DECLARATION_NAME) - val ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED by error2, FirCallableDeclaration<*>>(SourceElementPositioningStrategies.DECLARATION_NAME) - val INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER by error2, FirCallableDeclaration<*>>(SourceElementPositioningStrategies.DECLARATION_NAME) - val INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_WARNING by warning2, FirCallableDeclaration<*>>(SourceElementPositioningStrategies.DECLARATION_NAME) - val MANY_IMPL_MEMBER_NOT_IMPLEMENTED by error2, FirCallableDeclaration<*>>(SourceElementPositioningStrategies.DECLARATION_NAME) - val MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED by error2, FirCallableDeclaration<*>>(SourceElementPositioningStrategies.DECLARATION_NAME) - val OVERRIDING_FINAL_MEMBER_BY_DELEGATION by error2, FirCallableDeclaration<*>>(SourceElementPositioningStrategies.DECLARATION_NAME) - val DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE by warning2, FirCallableDeclaration<*>>(SourceElementPositioningStrategies.DECLARATION_NAME) + val CANNOT_WEAKEN_ACCESS_PRIVILEGE by error3(SourceElementPositioningStrategies.VISIBILITY_MODIFIER) + val CANNOT_CHANGE_ACCESS_PRIVILEGE by error3(SourceElementPositioningStrategies.VISIBILITY_MODIFIER) + val OVERRIDING_FINAL_MEMBER by error2(SourceElementPositioningStrategies.OVERRIDE_MODIFIER) + val ABSTRACT_MEMBER_NOT_IMPLEMENTED by error2(SourceElementPositioningStrategies.DECLARATION_NAME) + val ABSTRACT_CLASS_MEMBER_NOT_IMPLEMENTED by error2(SourceElementPositioningStrategies.DECLARATION_NAME) + val INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER by error2(SourceElementPositioningStrategies.DECLARATION_NAME) + val INVISIBLE_ABSTRACT_MEMBER_FROM_SUPER_WARNING by warning2(SourceElementPositioningStrategies.DECLARATION_NAME) + val MANY_IMPL_MEMBER_NOT_IMPLEMENTED by error2(SourceElementPositioningStrategies.DECLARATION_NAME) + val MANY_INTERFACES_MEMBER_NOT_IMPLEMENTED by error2(SourceElementPositioningStrategies.DECLARATION_NAME) + val OVERRIDING_FINAL_MEMBER_BY_DELEGATION by error2(SourceElementPositioningStrategies.DECLARATION_NAME) + val DELEGATED_MEMBER_HIDES_SUPERTYPE_OVERRIDE by warning2(SourceElementPositioningStrategies.DECLARATION_NAME) val RETURN_TYPE_MISMATCH_ON_OVERRIDE by error2(SourceElementPositioningStrategies.DECLARATION_RETURN_TYPE) val PROPERTY_TYPE_MISMATCH_ON_OVERRIDE by error2(SourceElementPositioningStrategies.DECLARATION_RETURN_TYPE) val VAR_TYPE_MISMATCH_ON_OVERRIDE by error2(SourceElementPositioningStrategies.DECLARATION_RETURN_TYPE) @@ -369,7 +369,7 @@ object FirErrors { val LOCAL_INTERFACE_NOT_ALLOWED by error1(SourceElementPositioningStrategies.DECLARATION_NAME) // Functions - val ABSTRACT_FUNCTION_IN_NON_ABSTRACT_CLASS by error2>(SourceElementPositioningStrategies.MODALITY_MODIFIER) + val ABSTRACT_FUNCTION_IN_NON_ABSTRACT_CLASS by error2(SourceElementPositioningStrategies.MODALITY_MODIFIER) val ABSTRACT_FUNCTION_WITH_BODY by error1(SourceElementPositioningStrategies.MODALITY_MODIFIER) val NON_ABSTRACT_FUNCTION_WITH_NO_BODY by error1(SourceElementPositioningStrategies.DECLARATION_SIGNATURE) val PRIVATE_FUNCTION_WITH_NO_BODY by error1(SourceElementPositioningStrategies.VISIBILITY_MODIFIER) @@ -392,7 +392,7 @@ object FirErrors { val FUN_INTERFACE_WITH_SUSPEND_FUNCTION by error0(SourceElementPositioningStrategies.FUN_INTERFACE) // Properties & accessors - val ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS by error2>(SourceElementPositioningStrategies.MODALITY_MODIFIER) + val ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS by error2(SourceElementPositioningStrategies.MODALITY_MODIFIER) val PRIVATE_PROPERTY_IN_INTERFACE by error0(SourceElementPositioningStrategies.VISIBILITY_MODIFIER) val ABSTRACT_PROPERTY_WITH_INITIALIZER by error0() val PROPERTY_INITIALIZER_IN_INTERFACE by error0() diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/CfaUtils.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/CfaUtils.kt index ab90e98b9de..2cc0ba446b6 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/CfaUtils.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/CfaUtils.kt @@ -74,7 +74,7 @@ class LocalPropertyAndCapturedWriteCollector private constructor() : ControlFlow // `false` if it is declared in a lambda or a local function (inside the currently visited function). private val symbols: MutableMap = mutableMapOf() - private val lambdaOrLocalFunctionStack: MutableList> = mutableListOf() + private val lambdaOrLocalFunctionStack: MutableList = mutableListOf() private val capturedWrites: MutableSet = mutableSetOf() override fun visitNode(node: CFGNode<*>) {} @@ -266,7 +266,7 @@ class DeclaredVariableCollector { val declaredVariablesPerElement: SetMultimap = setMultimapOf() fun enterCapturingStatement(statement: FirStatement): Set { - assert(statement is FirLoop || statement is FirClass<*> || statement is FirFunction<*>) + assert(statement is FirLoop || statement is FirClass || statement is FirFunction) if (statement !in declaredVariablesPerElement) { statement.accept(visitor, null) } @@ -274,7 +274,7 @@ class DeclaredVariableCollector { } fun exitCapturingStatement(statement: FirStatement) { - assert(statement is FirLoop || statement is FirClass<*> || statement is FirFunction<*>) + assert(statement is FirLoop || statement is FirClass || statement is FirFunction) declaredVariablesPerElement.removeKey(statement) } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/FirCallsEffectAnalyzer.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/FirCallsEffectAnalyzer.kt index 531f32ecb37..290ba6e5717 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/FirCallsEffectAnalyzer.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/FirCallsEffectAnalyzer.kt @@ -45,7 +45,7 @@ object FirCallsEffectAnalyzer : FirControlFlowChecker() { override fun analyze(graph: ControlFlowGraph, reporter: DiagnosticReporter, context: CheckerContext) { val session = context.session - val function = (graph.declaration as? FirFunction<*>) ?: return + val function = (graph.declaration as? FirFunction) ?: return if (function !is FirContractDescriptionOwner) return if (function.contractDescription.coneEffects?.any { it is ConeCallsEffectDeclaration } != true) return @@ -153,7 +153,7 @@ object FirCallsEffectAnalyzer : FirControlFlowChecker() { } } - private class CapturedLambdaFinder(val rootFunction: FirFunction<*>) : ControlFlowGraphVisitor() { + private class CapturedLambdaFinder(val rootFunction: FirFunction) : ControlFlowGraphVisitor() { override fun visitNode(node: CFGNode<*>, data: IllegalScopeContext) {} @@ -303,7 +303,7 @@ object FirCallsEffectAnalyzer : FirControlFlowChecker() { return this?.coneTypeSafe()?.isBuiltinFunctionalType(session) == true } - private val FirFunction<*>.contractDescription: FirContractDescription? + private val FirFunction.contractDescription: FirContractDescription? get() = (this as? FirContractDescriptionOwner)?.contractDescription private fun FirContractDescription?.getParameterCallsEffectDeclaration(index: Int): ConeCallsEffectDeclaration? { @@ -327,7 +327,7 @@ object FirCallsEffectAnalyzer : FirControlFlowChecker() { return getParameterCallsEffectDeclaration(index)?.kind } - private fun FirFunction<*>.isInPlaceLambda(): Boolean { + private fun FirFunction.isInPlaceLambda(): Boolean { return this is FirAnonymousFunction && this.isLambda && this.invocationKind != null } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/FirControlFlowAnalyzer.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/FirControlFlowAnalyzer.kt index cc68ca25142..117d2283ec0 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/FirControlFlowAnalyzer.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/FirControlFlowAnalyzer.kt @@ -25,17 +25,17 @@ class FirControlFlowAnalyzer( // Currently declaration in analyzeXXX is not used, but it may be useful in future @Suppress("UNUSED_PARAMETER") - fun analyzeClassInitializer(klass: FirClass<*>, graph: ControlFlowGraph, context: CheckerContext, reporter: DiagnosticReporter) { + fun analyzeClassInitializer(klass: FirClass, graph: ControlFlowGraph, context: CheckerContext, reporter: DiagnosticReporter) { if (graph.owner != null) return cfaCheckers.forEach { it.analyze(graph, reporter, context) } } @Suppress("UNUSED_PARAMETER") - fun analyzeFunction(function: FirFunction<*>, graph: ControlFlowGraph, context: CheckerContext, reporter: DiagnosticReporter) { + fun analyzeFunction(function: FirFunction, graph: ControlFlowGraph, context: CheckerContext, reporter: DiagnosticReporter) { if (graph.owner != null) return cfaCheckers.forEach { it.analyze(graph, reporter, context) } - if (context.containingDeclarations.any { it is FirProperty || it is FirFunction<*> }) return + if (context.containingDeclarations.any { it is FirProperty || it is FirFunction }) return runAssignmentCfaCheckers(graph, reporter, context) } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/FirReturnsImpliesAnalyzer.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/FirReturnsImpliesAnalyzer.kt index 36ed41ec604..a9c4e0d1b8b 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/FirReturnsImpliesAnalyzer.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/cfa/FirReturnsImpliesAnalyzer.kt @@ -36,7 +36,7 @@ import org.jetbrains.kotlin.utils.addIfNotNull object FirReturnsImpliesAnalyzer : FirControlFlowChecker() { override fun analyze(graph: ControlFlowGraph, reporter: DiagnosticReporter, context: CheckerContext) { - val function = graph.declaration as? FirFunction<*> ?: return + val function = graph.declaration as? FirFunction ?: return val graphRef = function.controlFlowGraphReference as FirControlFlowGraphReferenceImpl val dataFlowInfo = graphRef.dataFlowInfo if (function !is FirContractDescriptionOwner || dataFlowInfo == null) return @@ -72,7 +72,7 @@ object FirReturnsImpliesAnalyzer : FirControlFlowChecker() { private fun isWrongConditionOnNode( node: CFGNode<*>, effectDeclaration: ConeConditionalEffectDeclaration, - function: FirFunction<*>, + function: FirFunction, logicSystem: LogicSystem, dataFlowInfo: DataFlowInfo, context: CheckerContext @@ -150,7 +150,7 @@ object FirReturnsImpliesAnalyzer : FirControlFlowChecker() { } private fun ConeBooleanExpression.buildTypeStatements( - function: FirFunction<*>, + function: FirFunction, logicSystem: LogicSystem<*>, variableStorage: VariableStorage, flow: Flow, @@ -216,7 +216,7 @@ object FirReturnsImpliesAnalyzer : FirControlFlowChecker() { private val CheckerContext.containingProperty: FirProperty? get() = (containingDeclarations.asReversed().firstOrNull { it is FirProperty } as? FirProperty) - private fun FirFunction<*>.getParameterType(symbol: FirBasedSymbol<*>, context: CheckerContext): ConeKotlinType? { + private fun FirFunction.getParameterType(symbol: FirBasedSymbol<*>, context: CheckerContext): ConeKotlinType? { val typeRef = if (this.symbol == symbol) { if (symbol is FirPropertyAccessorSymbol) { context.containingProperty?.receiverTypeRef @@ -229,7 +229,7 @@ object FirReturnsImpliesAnalyzer : FirControlFlowChecker() { return typeRef?.coneType } - private fun FirFunction<*>.getParameterSymbol(index: Int, context: CheckerContext): FirBasedSymbol<*> { + private fun FirFunction.getParameterSymbol(index: Int, context: CheckerContext): FirBasedSymbol<*> { return if (index == -1) { if (symbol !is FirPropertyAccessorSymbol) { symbol diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/ConeTypeCompatibilityChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/ConeTypeCompatibilityChecker.kt index 53e593579dd..e97d1bd2a1c 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/ConeTypeCompatibilityChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/ConeTypeCompatibilityChecker.kt @@ -337,7 +337,7 @@ internal object ConeTypeCompatibilityChecker { private fun MutableMap.collect( ctx: ConeInferenceContext, - typeParameterOwner: FirClassLikeDeclaration<*>, + typeParameterOwner: FirClassLikeDeclaration, parameter: FirTypeParameterRef, boundTypeArgument: BoundTypeArgument, compatibilityUpperBound: Compatibility, @@ -365,28 +365,28 @@ internal object ConeTypeCompatibilityChecker { } } - private fun FirClassLikeDeclaration<*>.getSuperTypes(): List { + private fun FirClassLikeDeclaration.getSuperTypes(): List { return when (this) { is FirTypeAlias -> listOfNotNull(expandedTypeRef.coneTypeSafe()) - is FirClass<*> -> superTypeRefs.mapNotNull { it.coneTypeSafe() } + is FirClass -> superTypeRefs.mapNotNull { it.coneTypeSafe() } else -> emptyList() } } - private fun ConeClassLikeType.getClassLikeElement(ctx: ConeInferenceContext): FirClassLikeDeclaration<*>? = + private fun ConeClassLikeType.getClassLikeElement(ctx: ConeInferenceContext): FirClassLikeDeclaration? = ctx.symbolProvider.getSymbolByLookupTag(lookupTag)?.fir - private fun FirClassLikeDeclaration<*>.getTypeParameter(index: Int): FirTypeParameterRef? { + private fun FirClassLikeDeclaration.getTypeParameter(index: Int): FirTypeParameterRef? { return when (this) { is FirTypeAlias -> typeParameters[index] - is FirClass<*> -> typeParameters[index] + is FirClass -> typeParameters[index] else -> return null } } /** A class declaration and the arguments bound to the declared type parameters. */ private data class TypeArgumentMapping( - val typeParameterOwner: FirClassLikeDeclaration<*>, + val typeParameterOwner: FirClassLikeDeclaration, val mapping: Map ) @@ -408,11 +408,11 @@ internal object ConeTypeCompatibilityChecker { ctx: ConeInferenceContext ): FirClassWithSuperClasses? = when (val klass = ctx.symbolProvider.getSymbolByLookupTag(this)?.fir) { is FirTypeAlias -> klass.fullyExpandedClass(ctx.session)?.let { FirClassWithSuperClasses(it, ctx) } - is FirClass<*> -> FirClassWithSuperClasses(klass, ctx) + is FirClass -> FirClassWithSuperClasses(klass, ctx) else -> null } - private data class FirClassWithSuperClasses(val firClass: FirClass<*>, val ctx: ConeInferenceContext) { + private data class FirClassWithSuperClasses(val firClass: FirClass, val ctx: ConeInferenceContext) { val isInterface: Boolean get() = firClass.isInterface val superClasses: Set by lazy { @@ -454,7 +454,7 @@ internal object ConeTypeCompatibilityChecker { (firClass is FirRegularClass && (firClass.isData || firClass.isInline)) } - private val FirClass<*>.isFinal: Boolean + private val FirClass.isFinal: Boolean get() { return when (this) { is FirAnonymousObject -> true diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirAnnotationHelpers.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirAnnotationHelpers.kt index 8d4af689430..108128ef4e7 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirAnnotationHelpers.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirAnnotationHelpers.kt @@ -60,11 +60,11 @@ fun FirRegularClass.getAllowedAnnotationTargets(): Set { } } -fun FirAnnotatedDeclaration<*>.getRetentionAnnotation(): FirAnnotationCall? { +fun FirAnnotatedDeclaration.getRetentionAnnotation(): FirAnnotationCall? { return getAnnotationByFqName(StandardNames.FqNames.retention) } -fun FirAnnotatedDeclaration<*>.getTargetAnnotation(): FirAnnotationCall? { +fun FirAnnotatedDeclaration.getTargetAnnotation(): FirAnnotationCall? { return getAnnotationByFqName(StandardNames.FqNames.target) } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirConstChecks.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirConstChecks.kt index f20dd502d59..31a0adb9b14 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirConstChecks.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirConstChecks.kt @@ -189,7 +189,7 @@ internal fun checkConstantArguments( return null } -private fun FirTypedDeclaration<*>?.getReferencedClass(session: FirSession): FirDeclaration<*>? = +private fun FirTypedDeclaration?.getReferencedClass(session: FirSession): FirDeclaration? = this?.returnTypeRef ?.coneTypeSafe() ?.lookupTag diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirDeclarationInspector.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirDeclarationInspector.kt index 7df688c7458..bb6b85d6828 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirDeclarationInspector.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirDeclarationInspector.kt @@ -219,7 +219,7 @@ private val NO_NAME_PROVIDED = Name.special("") // explicitly. // - see tests with `fun () {}`. // you can't redeclare something that has no name. -private fun FirDeclaration<*>.isCollectable() = when (this) { +private fun FirDeclaration.isCollectable() = when (this) { is FirSimpleFunction -> source?.kind !is FirFakeSourceElementKind && name != NO_NAME_PROVIDED is FirRegularClass -> name != NO_NAME_PROVIDED else -> true @@ -231,10 +231,10 @@ private fun FirDeclaration<*>.isCollectable() = when (this) { open class FirDeclarationInspector( protected val presenter: FirDeclarationPresenter = FirDefaultDeclarationPresenter() ) { - val otherDeclarations = mutableMapOf>>() + val otherDeclarations = mutableMapOf>() val functionDeclarations = mutableMapOf>() - fun collect(declaration: FirDeclaration<*>) { + fun collect(declaration: FirDeclaration) { when { !declaration.isCollectable() -> {} declaration is FirSimpleFunction -> collectFunction(presenter.represent(declaration), declaration) @@ -244,7 +244,7 @@ open class FirDeclarationInspector( } } - protected open fun collectNonFunctionDeclaration(key: String, declaration: FirDeclaration<*>): MutableList> = + protected open fun collectNonFunctionDeclaration(key: String, declaration: FirDeclaration): MutableList = otherDeclarations.getOrPut(key) { mutableListOf() }.also { @@ -258,7 +258,7 @@ open class FirDeclarationInspector( it.add(declaration) } - fun contains(declaration: FirDeclaration<*>) = when (declaration) { + fun contains(declaration: FirDeclaration) = when (declaration) { is FirSimpleFunction -> presenter.represent(declaration) in functionDeclarations is FirRegularClass -> presenter.represent(declaration) in otherDeclarations is FirTypeAlias -> presenter.represent(declaration) in otherDeclarations diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirHelpers.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirHelpers.kt index e3d72c4afa2..53e12c62730 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirHelpers.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirHelpers.kt @@ -50,21 +50,21 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs private val INLINE_ONLY_ANNOTATION_CLASS_ID = ClassId.topLevel(FqName("kotlin.internal.InlineOnly")) -fun FirClass<*>.unsubstitutedScope(context: CheckerContext) = +fun FirClass.unsubstitutedScope(context: CheckerContext) = this.unsubstitutedScope(context.sessionHolder.session, context.sessionHolder.scopeSession, withForcedTypeCalculator = false) /** * Returns true if this is a supertype of other. */ -fun FirClass<*>.isSupertypeOf(other: FirClass<*>, session: FirSession): Boolean { +fun FirClass.isSupertypeOf(other: FirClass, session: FirSession): Boolean { /** * Hides additional parameters. */ - fun FirClass<*>.isSupertypeOf(other: FirClass<*>, exclude: MutableSet>): Boolean { + fun FirClass.isSupertypeOf(other: FirClass, exclude: MutableSet): Boolean { for (it in other.superTypeRefs) { val candidate = it.firClassLike(session) ?.followAllAlias(session) - ?.safeAs>() + ?.safeAs() ?: continue if (candidate in exclude) { @@ -92,7 +92,7 @@ fun FirClass<*>.isSupertypeOf(other: FirClass<*>, session: FirSession): Boolean * Returns the FirClass associated with this * or null of something goes wrong. */ -fun ConeClassLikeType.toClass(session: FirSession): FirClass<*>? { +fun ConeClassLikeType.toClass(session: FirSession): FirClass? { return lookupTag.toSymbol(session).safeAs>()?.fir } @@ -135,8 +135,8 @@ inline fun FirQualifiedAccessExpression.getDeclaration(): T? { * Returns the ClassLikeDeclaration where the Fir object has been defined * or null if no proper declaration has been found. */ -fun FirDeclaration<*>.getContainingClass(context: CheckerContext): FirClassLikeDeclaration<*>? = - this.safeAs>()?.containingClass()?.toSymbol(context.session)?.fir +fun FirDeclaration.getContainingClass(context: CheckerContext): FirClassLikeDeclaration? = + this.safeAs()?.containingClass()?.toSymbol(context.session)?.fir fun FirClassLikeSymbol<*>.outerClass(context: CheckerContext): FirClassLikeSymbol<*>? { if (this !is FirClassSymbol<*>) return null @@ -144,8 +144,8 @@ fun FirClassLikeSymbol<*>.outerClass(context: CheckerContext): FirClassLikeSymbo return context.session.symbolProvider.getClassLikeSymbolByFqName(outerClassId) } -fun FirClass<*>.outerClass(context: CheckerContext): FirClass<*>? { - return symbol.outerClass(context)?.fir as? FirClass<*> +fun FirClass.outerClass(context: CheckerContext): FirClass? { + return symbol.outerClass(context)?.fir as? FirClass } /** @@ -153,8 +153,8 @@ fun FirClass<*>.outerClass(context: CheckerContext): FirClass<*>? { * sequence of FirTypeAlias'es points to starting * with `this`. Or null if something goes wrong. */ -fun FirClassLikeDeclaration<*>.followAllAlias(session: FirSession): FirClassLikeDeclaration<*>? { - var it: FirClassLikeDeclaration<*>? = this +fun FirClassLikeDeclaration.followAllAlias(session: FirSession): FirClassLikeDeclaration? { + var it: FirClassLikeDeclaration? = this while (it is FirTypeAlias) { it = it.expandedTypeRef.firClassLike(session) @@ -168,13 +168,13 @@ fun FirClassLikeDeclaration<*>.followAllAlias(session: FirSession): FirClassLike * item like FirRegularClass or FirAnonymousObject * or null if no such item could be found. */ -fun CheckerContext.findClosestClassOrObject(): FirClass<*>? { +fun CheckerContext.findClosestClassOrObject(): FirClass? { for (it in containingDeclarations.asReversed()) { if ( it is FirRegularClass || it is FirAnonymousObject ) { - return it as FirClass<*> + return it as FirClass } } @@ -185,7 +185,7 @@ fun CheckerContext.findClosestClassOrObject(): FirClass<*>? { * Returns the list of functions that overridden by given */ fun FirSimpleFunction.overriddenFunctions( - containingClass: FirClass<*>, + containingClass: FirClass, context: CheckerContext ): List> { val firTypeScope = containingClass.unsubstitutedScope( @@ -225,7 +225,7 @@ fun KtModifierKeywordToken.toVisibilityOrNull(): Visibility? { /** * Returns the modality of the class */ -fun FirClass<*>.modality(): Modality? { +fun FirClass.modality(): Modality? { return when (this) { is FirRegularClass -> modality else -> Modality.FINAL @@ -258,14 +258,14 @@ fun FirStatusOwner.implicitModality(context: CheckerContext): Modality { && klass.classKind == ClassKind.INTERFACE && tree.visibilityModifier(source.lighterASTNode)?.tokenType != KtTokens.PRIVATE_KEYWORD ) { - require(this is FirDeclaration<*>) + require(this is FirDeclaration) return if (this.hasBody()) Modality.OPEN else Modality.ABSTRACT } return Modality.FINAL } -private fun FirDeclaration<*>.hasBody(): Boolean = when (this) { +private fun FirDeclaration.hasBody(): Boolean = when (this) { is FirSimpleFunction -> this.body != null && this.body !is FirEmptyExpressionBlock is FirProperty -> this.setter?.body !is FirEmptyExpressionBlock? || this.getter?.body !is FirEmptyExpressionBlock? else -> false @@ -275,12 +275,12 @@ private fun FirDeclaration<*>.hasBody(): Boolean = when (this) { * Finds any non-interface supertype and returns it * or null if couldn't find any. */ -fun FirClass<*>.findNonInterfaceSupertype(context: CheckerContext): FirTypeRef? { +fun FirClass.findNonInterfaceSupertype(context: CheckerContext): FirTypeRef? { for (superTypeRef in superTypeRefs) { val lookupTag = superTypeRef.coneType.safeAs()?.lookupTag ?: continue val fir = lookupTag.toSymbol(context.session) - ?.fir.safeAs>() + ?.fir.safeAs() ?: continue if (fir.classKind != ClassKind.INTERFACE) { @@ -381,7 +381,7 @@ private fun lowerThanBound(context: ConeInferenceContext, argument: ConeKotlinTy return false } -fun FirStatusOwner.isInlineOnly(): Boolean = isInline && (this as FirAnnotatedDeclaration<*>).hasAnnotation(INLINE_ONLY_ANNOTATION_CLASS_ID) +fun FirStatusOwner.isInlineOnly(): Boolean = isInline && (this as FirAnnotatedDeclaration).hasAnnotation(INLINE_ONLY_ANNOTATION_CLASS_ID) fun isSubtypeForTypeMismatch(context: ConeInferenceContext, subtype: ConeKotlinType, supertype: ConeKotlinType): Boolean { val subtypeFullyExpanded = subtype.fullyExpandedType(context.session) @@ -418,7 +418,7 @@ private fun isSubtypeOfForFunctionalTypeReturningUnit( return false } -fun FirCallableMemberDeclaration<*>.isVisibleInClass(parentClass: FirClass<*>): Boolean { +fun FirCallableMemberDeclaration.isVisibleInClass(parentClass: FirClass): Boolean { val classPackage = parentClass.symbol.classId.packageFqName if (visibility == Visibilities.Private || !visibility.visibleFromPackage(classPackage, symbol.callableId.packageName) @@ -435,7 +435,7 @@ fun FirCallableMemberDeclaration<*>.isVisibleInClass(parentClass: FirClass<*>): * * @param parentClass the contextual class for this query. */ -fun FirCallableMemberDeclaration<*>.getImplementationStatus(sessionHolder: SessionHolder, parentClass: FirClass<*>): ImplementationStatus { +fun FirCallableMemberDeclaration.getImplementationStatus(sessionHolder: SessionHolder, parentClass: FirClass): ImplementationStatus { val containingClass = getContainingClass(sessionHolder) val symbol = this.symbol if (symbol is FirIntersectionCallableSymbol) { @@ -510,8 +510,8 @@ private val FirSimpleFunction.matchesDataClassSyntheticMemberSignatures: Boolean (this.name == HASHCODE_NAME && matchesHashCodeSignature) || (this.name == OperatorNameConventions.TO_STRING && matchesToStringSignature) -private fun FirDeclaration<*>.getContainingClass(sessionHolder: SessionHolder): FirClassLikeDeclaration<*>? = - this.safeAs>()?.containingClass()?.toSymbol(sessionHolder.session)?.fir +private fun FirDeclaration.getContainingClass(sessionHolder: SessionHolder): FirClassLikeDeclaration? = + this.safeAs()?.containingClass()?.toSymbol(sessionHolder.session)?.fir // NB: we intentionally do not check return types private val FirSimpleFunction.matchesEqualsSignature: Boolean @@ -625,4 +625,4 @@ fun extractArgumentTypeRefAndSource(typeRef: FirTypeRef?, index: Int): FirTypeRe return null } -data class FirTypeRefSource(val typeRef: FirTypeRef?, val source: FirSourceElement?) \ No newline at end of file +data class FirTypeRefSource(val typeRef: FirTypeRef?, val source: FirSourceElement?) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirSinceKotlinHelpers.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirSinceKotlinHelpers.kt index 824517ca7e6..1c441dd275a 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirSinceKotlinHelpers.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/FirSinceKotlinHelpers.kt @@ -40,7 +40,7 @@ private data class FirSinceKotlinValue( val wasExperimentalMarkerClasses: List ) -fun FirAnnotatedDeclaration<*>.checkSinceKotlinVersionAccessibility(context: CheckerContext): FirSinceKotlinAccessibility { +fun FirAnnotatedDeclaration.checkSinceKotlinVersionAccessibility(context: CheckerContext): FirSinceKotlinAccessibility { val value = getOwnSinceKotlinVersion(context.session) val version = value?.apiVersion val languageVersionSettings = context.session.languageVersionSettings @@ -59,11 +59,11 @@ fun FirAnnotatedDeclaration<*>.checkSinceKotlinVersionAccessibility(context: Che return FirSinceKotlinAccessibility.NotAccessible(version) } -private fun FirAnnotatedDeclaration<*>.getOwnSinceKotlinVersion(session: FirSession): FirSinceKotlinValue? { +private fun FirAnnotatedDeclaration.getOwnSinceKotlinVersion(session: FirSession): FirSinceKotlinValue? { var result: FirSinceKotlinValue? = null // TODO: use-site targeted annotations - fun FirAnnotatedDeclaration<*>.consider() { + fun FirAnnotatedDeclaration.consider() { val sinceKotlinSingleArgument = getAnnotationByFqName(SINCE_KOTLIN_FQ_NAME)?.arguments?.singleOrNull() val apiVersion = ((sinceKotlinSingleArgument as? FirConstExpression<*>)?.value as? String)?.let(ApiVersion.Companion::parse) if (apiVersion != null) { @@ -90,7 +90,7 @@ private fun FirAnnotatedDeclaration<*>.getOwnSinceKotlinVersion(session: FirSess return result } -private fun FirAnnotatedDeclaration<*>.loadWasExperimentalMarkerClasses(): List { +private fun FirAnnotatedDeclaration.loadWasExperimentalMarkerClasses(): List { val wasExperimental = getAnnotationByFqName(OptInNames.WAS_EXPERIMENTAL_FQ_NAME) ?: return emptyList() val annotationClasses = wasExperimental.findArgumentByName(OptInNames.WAS_EXPERIMENTAL_ANNOTATION_CLASS) ?: return emptyList() return annotationClasses.extractClassesFromArgument() diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/context/CheckerContext.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/context/CheckerContext.kt index 168e32b2092..fdb7f15be2a 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/context/CheckerContext.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/context/CheckerContext.kt @@ -23,7 +23,7 @@ abstract class CheckerContext { // Context abstract val implicitReceiverStack: ImplicitReceiverStack - abstract val containingDeclarations: List> + abstract val containingDeclarations: List abstract val qualifiedAccessOrAnnotationCalls: List abstract val getClassCalls: List diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/context/PersistentCheckerContext.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/context/PersistentCheckerContext.kt index e1908b50aaa..79965372d36 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/context/PersistentCheckerContext.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/context/PersistentCheckerContext.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.name.Name class PersistentCheckerContext private constructor( override val implicitReceiverStack: PersistentImplicitReceiverStack, - override val containingDeclarations: PersistentList>, + override val containingDeclarations: PersistentList, override val qualifiedAccessOrAnnotationCalls: PersistentList, override val getClassCalls: PersistentList, override val sessionHolder: SessionHolder, @@ -58,7 +58,7 @@ class PersistentCheckerContext private constructor( ) } - fun addDeclaration(declaration: FirDeclaration<*>): PersistentCheckerContext { + fun addDeclaration(declaration: FirDeclaration): PersistentCheckerContext { return PersistentCheckerContext( implicitReceiverStack, containingDeclarations.add(declaration), diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAnnotationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAnnotationChecker.kt index d4cdaf44ef7..86b4003a72b 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAnnotationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAnnotationChecker.kt @@ -34,7 +34,7 @@ object FirAnnotationChecker : FirAnnotatedDeclarationChecker() { private val deprecatedSinceKotlinClassId = FqName("kotlin.DeprecatedSinceKotlin") override fun check( - declaration: FirAnnotatedDeclaration<*>, + declaration: FirAnnotatedDeclaration, context: CheckerContext, reporter: DiagnosticReporter ) { @@ -60,7 +60,7 @@ object FirAnnotationChecker : FirAnnotatedDeclarationChecker() { } private fun checkAnnotationTarget( - declaration: FirAnnotatedDeclaration<*>, + declaration: FirAnnotatedDeclaration, annotation: FirAnnotationCall, context: CheckerContext, reporter: DiagnosticReporter @@ -112,7 +112,7 @@ object FirAnnotationChecker : FirAnnotatedDeclarationChecker() { } private fun checkAnnotationUseSiteTarget( - annotated: FirAnnotatedDeclaration<*>, + annotated: FirAnnotatedDeclaration, annotation: FirAnnotationCall, target: AnnotationUseSiteTarget, context: CheckerContext, @@ -201,7 +201,7 @@ object FirAnnotationChecker : FirAnnotatedDeclarationChecker() { } } - private fun getActualTargetList(annotated: FirDeclaration<*>): AnnotationTargetList { + private fun getActualTargetList(annotated: FirDeclaration): AnnotationTargetList { return when (annotated) { is FirRegularClass -> { AnnotationTargetList( diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAnnotationClassDeclarationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAnnotationClassDeclarationChecker.kt index 3dbf7997bdd..344b3c18fb9 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAnnotationClassDeclarationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirAnnotationClassDeclarationChecker.kt @@ -44,7 +44,7 @@ object FirAnnotationClassDeclarationChecker : FirRegularClassChecker() { } } - private fun checkAnnotationClassMember(member: FirDeclaration<*>, context: CheckerContext, reporter: DiagnosticReporter) { + private fun checkAnnotationClassMember(member: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) { when { member is FirConstructor && member.isPrimary -> { for (parameter in member.valueParameters) { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirClassVarianceChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirClassVarianceChecker.kt index 0009fa917b2..14a26258e4a 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirClassVarianceChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirClassVarianceChecker.kt @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.types.checker.TypeCheckingProcedure object FirClassVarianceChecker : FirClassChecker() { - override fun check(declaration: FirClass<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirClass, context: CheckerContext, reporter: DiagnosticReporter) { checkTypeParameters(declaration.typeParameters, Variance.OUT_VARIANCE, context, reporter) for (superTypeRef in declaration.superTypeRefs) { @@ -39,14 +39,14 @@ object FirClassVarianceChecker : FirClassChecker() { checkTypeParameters(member.typeParameters, Variance.IN_VARIANCE, context, reporter) } - if (member is FirCallableDeclaration<*>) { + if (member is FirCallableDeclaration) { checkCallableDeclaration(member, context, reporter) } } } private fun checkCallableDeclaration( - member: FirCallableDeclaration<*>, + member: FirCallableDeclaration, context: CheckerContext, reporter: DiagnosticReporter ) { @@ -134,7 +134,7 @@ object FirClassVarianceChecker : FirClassChecker() { if (type is ConeClassLikeType) { val fullyExpandedType = type.fullyExpandedType(context.session) val declFir = fullyExpandedType.lookupTag.toSymbol(context.session)?.fir - if (declFir is FirClass<*>) { + if (declFir is FirClass) { for ((index, typeArgument) in fullyExpandedType.typeArguments.withIndex()) { val paramVariance = (declFir.typeParameters.getOrNull(index) as? FirTypeParameter)?.variance ?: continue diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirConflictsChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirConflictsChecker.kt index 9068a3e9c83..6d3c59319bb 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirConflictsChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirConflictsChecker.kt @@ -28,9 +28,9 @@ object FirConflictsChecker : FirBasicDeclarationChecker() { private class DeclarationInspector : FirDeclarationInspector() { - val declarationConflictingSymbols: HashMap, SmartSet>> = hashMapOf() + val declarationConflictingSymbols: HashMap>> = hashMapOf() - override fun collectNonFunctionDeclaration(key: String, declaration: FirDeclaration<*>): MutableList> = + override fun collectNonFunctionDeclaration(key: String, declaration: FirDeclaration): MutableList = super.collectNonFunctionDeclaration(key, declaration).also { collectLocalConflicts(declaration, it) } @@ -40,7 +40,7 @@ object FirConflictsChecker : FirBasicDeclarationChecker() { collectLocalConflicts(declaration, it) } - private fun collectLocalConflicts(declaration: FirDeclaration<*>, conflicting: List>) { + private fun collectLocalConflicts(declaration: FirDeclaration, conflicting: List) { val localConflicts = SmartSet.create>() for (otherDeclaration in conflicting) { if (otherDeclaration != declaration && !isExpectAndActual(declaration, otherDeclaration)) { @@ -51,7 +51,7 @@ object FirConflictsChecker : FirBasicDeclarationChecker() { declarationConflictingSymbols[declaration] = localConflicts } - private fun isExpectAndActual(declaration1: FirDeclaration<*>, declaration2: FirDeclaration<*>): Boolean { + private fun isExpectAndActual(declaration1: FirDeclaration, declaration2: FirDeclaration): Boolean { if (declaration1 !is FirStatusOwner) return false if (declaration2 !is FirStatusOwner) return false return (declaration1.status.isExpect && declaration2.status.isActual) || @@ -59,7 +59,7 @@ object FirConflictsChecker : FirBasicDeclarationChecker() { } private fun areCompatibleMainFunctions( - declaration1: FirDeclaration<*>, file1: FirFile, declaration2: FirDeclaration<*>, file2: FirFile? + declaration1: FirDeclaration, file1: FirFile, declaration2: FirDeclaration, file2: FirFile? ): Boolean { // TODO: proper main function detector if (declaration1 !is FirSimpleFunction || declaration2 !is FirSimpleFunction) return false @@ -68,7 +68,7 @@ object FirConflictsChecker : FirBasicDeclarationChecker() { } private fun collectExternalConflict( - declaration: FirDeclaration<*>, + declaration: FirDeclaration, declarationPresentation: String, containingFile: FirFile, conflictingSymbol: FirBasedSymbol<*>, @@ -97,7 +97,7 @@ object FirConflictsChecker : FirBasicDeclarationChecker() { } fun collectWithExternalConflicts( - declaration: FirDeclaration<*>, + declaration: FirDeclaration, containingFile: FirFile, session: FirSession, packageMemberScope: FirPackageMemberScope @@ -127,7 +127,7 @@ object FirConflictsChecker : FirBasicDeclarationChecker() { } } } - is FirVariable<*> -> { + is FirVariable -> { declarationName = declaration.name if (!declarationName.isSpecial) { packageMemberScope.processPropertiesByName(declarationName) { @@ -200,7 +200,7 @@ object FirConflictsChecker : FirBasicDeclarationChecker() { } } - override fun check(declaration: FirDeclaration<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) { val inspector = DeclarationInspector() when (declaration) { @@ -238,7 +238,7 @@ object FirConflictsChecker : FirBasicDeclarationChecker() { } } -private fun FirDeclarationPresenter.represent(declaration: FirDeclaration<*>): String? = +private fun FirDeclarationPresenter.represent(declaration: FirDeclaration): String? = when (declaration) { is FirSimpleFunction -> represent(declaration) is FirRegularClass -> represent(declaration) @@ -267,7 +267,7 @@ class FirNameConflictsTracker : FirNameConflictsTrackerComponent() { } } -private fun FirDeclaration<*>.onConstructors(action: (ctor: FirConstructor) -> Unit) { +private fun FirDeclaration.onConstructors(action: (ctor: FirConstructor) -> Unit) { class ClassConstructorVisitor : FirVisitorVoid() { override fun visitElement(element: FirElement) {} diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirConstructorAllowedChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirConstructorAllowedChecker.kt index 82c296e88ef..da990c99fe5 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirConstructorAllowedChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirConstructorAllowedChecker.kt @@ -14,14 +14,16 @@ import org.jetbrains.kotlin.fir.analysis.checkers.getModifierList import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirClass +import org.jetbrains.kotlin.fir.declarations.FirConstructor +import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.utils.modality import org.jetbrains.kotlin.fir.declarations.utils.visibility import org.jetbrains.kotlin.lexer.KtTokens object FirConstructorAllowedChecker : FirConstructorChecker() { override fun check(declaration: FirConstructor, context: CheckerContext, reporter: DiagnosticReporter) { - val containingClass = context.containingDeclarations.lastOrNull() as? FirClass<*> ?: return + val containingClass = context.containingDeclarations.lastOrNull() as? FirClass ?: return val source = declaration.source val elementType = source?.elementType if (elementType != KtNodeTypes.PRIMARY_CONSTRUCTOR && elementType != KtNodeTypes.SECONDARY_CONSTRUCTOR) { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirContractChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirContractChecker.kt index 87233a98f76..b474aa8467a 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirContractChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirContractChecker.kt @@ -18,7 +18,7 @@ object FirContractChecker : FirFunctionChecker() { // TODO: The message should vary. Migrate this to [ConeEffectExtractor] when creating fine-grained errors. private const val UNEXPECTED_CONSTRUCTION = "unexpected construction in contract description" - override fun check(declaration: FirFunction<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirFunction, context: CheckerContext, reporter: DiagnosticReporter) { if (declaration !is FirContractDescriptionOwner || declaration.contractDescription !is FirResolvedContractDescription ) { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirCyclicTypeBoundsChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirCyclicTypeBoundsChecker.kt index 3cd53b55be2..72cd1a0da11 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirCyclicTypeBoundsChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirCyclicTypeBoundsChecker.kt @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs object FirCyclicTypeBoundsChecker : FirBasicDeclarationChecker() { - override fun check(declaration: FirDeclaration<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) { if (declaration !is FirStatusOwner) return if (declaration is FirConstructor || declaration is FirTypeAlias) return diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationChecker.kt index c01f1e3bc0f..63ab25bb640 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationChecker.kt @@ -9,6 +9,6 @@ import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.declarations.FirDeclaration -abstract class FirDeclarationChecker> { +abstract class FirDeclarationChecker { abstract fun check(declaration: D, context: CheckerContext, reporter: DiagnosticReporter) } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerUtils.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerUtils.kt index 04592a3597a..851f5e3823c 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerUtils.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDeclarationCheckerUtils.kt @@ -184,7 +184,7 @@ private val FirProperty.hasAccessorImplementation: Boolean get() = (getter !is FirDefaultPropertyAccessor && getter?.hasBody == true) || (setter !is FirDefaultPropertyAccessor && setter?.hasBody == true) -internal val FirClass<*>.canHaveOpenMembers: Boolean get() = modality() != Modality.FINAL || classKind == ClassKind.ENUM_CLASS +internal val FirClass.canHaveOpenMembers: Boolean get() = modality() != Modality.FINAL || classKind == ClassKind.ENUM_CLASS internal fun FirRegularClass.isInlineOrValueClass(): Boolean { if (this.classKind != ClassKind.CLASS) return false @@ -192,14 +192,14 @@ internal fun FirRegularClass.isInlineOrValueClass(): Boolean { return isInline || hasModifier(KtTokens.VALUE_KEYWORD) } -internal val FirDeclaration<*>.isEnumEntryInitializer: Boolean +internal val FirDeclaration.isEnumEntryInitializer: Boolean get() { if (this !is FirConstructor || !this.isPrimary) return false return (containingClassAttr as? ConeClassLookupTagWithFixedSymbol)?.symbol?.fir?.classKind == ClassKind.ENUM_ENTRY } // contract: returns(true) implies (this is FirMemberDeclaration<*>) -internal val FirDeclaration<*>.isLocalMember: Boolean +internal val FirDeclaration.isLocalMember: Boolean get() = when (this) { is FirProperty -> this.isLocal is FirRegularClass -> this.isLocal @@ -207,7 +207,7 @@ internal val FirDeclaration<*>.isLocalMember: Boolean else -> false } -internal val FirCallableMemberDeclaration<*>.isExtensionMember: Boolean +internal val FirCallableMemberDeclaration.isExtensionMember: Boolean get() { return receiverTypeRef != null && dispatchReceiverType != null } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDestructuringDeclarationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDestructuringDeclarationChecker.kt index b8e50afe9bd..d8b924ce57d 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDestructuringDeclarationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirDestructuringDeclarationChecker.kt @@ -66,7 +66,7 @@ object FirDestructuringDeclarationChecker : FirPropertyChecker() { val originalDestructuringDeclarationOrInitializerSource = originalDestructuringDeclarationOrInitializer.source ?: return val originalDestructuringDeclarationType = when (originalDestructuringDeclarationOrInitializer) { - is FirVariable<*> -> originalDestructuringDeclarationOrInitializer.returnTypeRef.coneTypeSafe() + is FirVariable -> originalDestructuringDeclarationOrInitializer.returnTypeRef.coneTypeSafe() is FirExpression -> originalDestructuringDeclarationOrInitializer.typeRef.coneTypeSafe() else -> null } ?: return @@ -109,7 +109,7 @@ object FirDestructuringDeclarationChecker : FirPropertyChecker() { reference: FirErrorNamedReference, property: FirProperty, componentCall: FirComponentCall, - destructuringDeclaration: FirVariable<*>, + destructuringDeclaration: FirVariable, reporter: DiagnosticReporter, context: CheckerContext ) { @@ -181,6 +181,6 @@ object FirDestructuringDeclarationChecker : FirPropertyChecker() { else -> this } - private val FirQualifiedAccessExpression.resolvedVariable: FirVariable<*>? - get() = ((calleeReference as? FirResolvedNamedReference)?.resolvedSymbol as? FirVariableSymbol)?.fir as? FirVariable<*> + private val FirQualifiedAccessExpression.resolvedVariable: FirVariable? + get() = ((calleeReference as? FirResolvedNamedReference)?.resolvedSymbol as? FirVariableSymbol)?.fir as? FirVariable } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirExposedVisibilityDeclarationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirExposedVisibilityDeclarationChecker.kt index db78f540b52..fa19fe9b7cc 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirExposedVisibilityDeclarationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirExposedVisibilityDeclarationChecker.kt @@ -25,12 +25,12 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs // TODO: check why coneTypeSafe is necessary at some points inside object FirExposedVisibilityDeclarationChecker : FirBasicDeclarationChecker() { - override fun check(declaration: FirDeclaration<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) { when (declaration) { is FirAnonymousFunction -> return is FirTypeAlias -> checkTypeAlias(declaration, reporter, context) is FirProperty -> checkProperty(declaration, reporter, context) - is FirFunction<*> -> checkFunction(declaration, reporter, context) + is FirFunction -> checkFunction(declaration, reporter, context) is FirRegularClass -> checkClass(declaration, reporter, context) } } @@ -106,7 +106,7 @@ object FirExposedVisibilityDeclarationChecker : FirBasicDeclarationChecker() { } } - private fun checkFunction(declaration: FirFunction<*>, reporter: DiagnosticReporter, context: CheckerContext) { + private fun checkFunction(declaration: FirFunction, reporter: DiagnosticReporter, context: CheckerContext) { val functionVisibility = (declaration as FirStatusOwner).effectiveVisibility if (functionVisibility == EffectiveVisibility.Local) return @@ -141,7 +141,7 @@ object FirExposedVisibilityDeclarationChecker : FirBasicDeclarationChecker() { } } } - checkMemberReceiver(declaration.receiverTypeRef, declaration as? FirCallableMemberDeclaration<*>, reporter, context) + checkMemberReceiver(declaration.receiverTypeRef, declaration as? FirCallableMemberDeclaration, reporter, context) } private fun checkProperty(declaration: FirProperty, reporter: DiagnosticReporter, context: CheckerContext) { @@ -172,7 +172,7 @@ object FirExposedVisibilityDeclarationChecker : FirBasicDeclarationChecker() { private fun checkMemberReceiver( typeRef: FirTypeRef?, - memberDeclaration: FirCallableMemberDeclaration<*>?, + memberDeclaration: FirCallableMemberDeclaration?, reporter: DiagnosticReporter, context: CheckerContext ) { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirFunctionNameChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirFunctionNameChecker.kt index e9618274098..a25c55d0fc1 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirFunctionNameChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirFunctionNameChecker.kt @@ -20,7 +20,7 @@ object FirFunctionNameChecker : FirSimpleFunctionChecker() { val source = declaration.source if (source == null || source.kind is FirFakeSourceElementKind) return val containingDeclaration = context.containingDeclarations.lastOrNull() - val isNonLocal = containingDeclaration is FirFile || containingDeclaration is FirClass<*> + val isNonLocal = containingDeclaration is FirFile || containingDeclaration is FirClass if (declaration.name == SpecialNames.NO_NAME_PROVIDED && isNonLocal) { reporter.reportOn(source, FirErrors.FUNCTION_DECLARATION_WITH_NO_NAME, context) } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirFunctionParameterChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirFunctionParameterChecker.kt index 50e0ddefe30..e92692d1917 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirFunctionParameterChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirFunctionParameterChecker.kt @@ -11,7 +11,10 @@ import org.jetbrains.kotlin.fir.FirRealSourceElementKind import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.analysis.checkers.isInline import org.jetbrains.kotlin.fir.analysis.checkers.valOrVarKeyword -import org.jetbrains.kotlin.fir.analysis.diagnostics.* +import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter +import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors +import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn +import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOnWithSuppression import org.jetbrains.kotlin.fir.declarations.FirConstructor import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirValueParameter @@ -28,14 +31,14 @@ import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid import org.jetbrains.kotlin.types.AbstractTypeChecker object FirFunctionParameterChecker : FirFunctionChecker() { - override fun check(declaration: FirFunction<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirFunction, context: CheckerContext, reporter: DiagnosticReporter) { checkVarargParameters(declaration, context, reporter) checkParameterTypes(declaration, context, reporter) checkUninitializedParameter(declaration, context, reporter) checkValOrVarParameter(declaration, context, reporter) } - private fun checkParameterTypes(function: FirFunction<*>, context: CheckerContext, reporter: DiagnosticReporter) { + private fun checkParameterTypes(function: FirFunction, context: CheckerContext, reporter: DiagnosticReporter) { for (valueParameter in function.valueParameters) { val returnTypeRef = valueParameter.returnTypeRef if (returnTypeRef !is FirErrorTypeRef) continue @@ -53,7 +56,7 @@ object FirFunctionParameterChecker : FirFunctionChecker() { } } - private fun checkVarargParameters(function: FirFunction<*>, context: CheckerContext, reporter: DiagnosticReporter) { + private fun checkVarargParameters(function: FirFunction, context: CheckerContext, reporter: DiagnosticReporter) { val varargParameters = function.valueParameters.filter { it.isVararg } if (varargParameters.size > 1) { for (parameter in varargParameters) { @@ -79,7 +82,7 @@ object FirFunctionParameterChecker : FirFunctionChecker() { } } - private fun checkUninitializedParameter(function: FirFunction<*>, context: CheckerContext, reporter: DiagnosticReporter) { + private fun checkUninitializedParameter(function: FirFunction, context: CheckerContext, reporter: DiagnosticReporter) { for ((index, parameter) in function.valueParameters.withIndex()) { // Alas, CheckerContext.qualifiedAccesses stack is not available at this point. // Thus, manually visit default value expression and report the diagnostic on qualified accesses of interest. @@ -108,7 +111,7 @@ object FirFunctionParameterChecker : FirFunctionChecker() { } } - private fun checkValOrVarParameter(function: FirFunction<*>, context: CheckerContext, reporter: DiagnosticReporter) { + private fun checkValOrVarParameter(function: FirFunction, context: CheckerContext, reporter: DiagnosticReporter) { if (function is FirConstructor && function.isPrimary) { // `val/var` is valid for primary constructors, but not for secondary constructors return diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInfixFunctionDeclarationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInfixFunctionDeclarationChecker.kt index 714aba56a8c..4ce846e3146 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInfixFunctionDeclarationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInfixFunctionDeclarationChecker.kt @@ -9,10 +9,13 @@ import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirClass +import org.jetbrains.kotlin.fir.declarations.FirDeclaration +import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction +import org.jetbrains.kotlin.fir.declarations.FirStatusOwner object FirInfixFunctionDeclarationChecker : FirBasicDeclarationChecker() { - override fun check(declaration: FirDeclaration<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) { if ((declaration as? FirStatusOwner)?.status?.isInfix != true) return if (declaration is FirSimpleFunction) { if (declaration.valueParameters.size != 1 || !hasExtensionOrDispatchReceiver(declaration, context)) { @@ -28,6 +31,6 @@ object FirInfixFunctionDeclarationChecker : FirBasicDeclarationChecker() { context: CheckerContext ): Boolean { if (function.receiverTypeRef != null) return true - return context.containingDeclarations.lastOrNull() is FirClass<*> + return context.containingDeclarations.lastOrNull() is FirClass } } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInlineDeclarationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInlineDeclarationChecker.kt index d35f0c60306..e9fb03eddbf 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInlineDeclarationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirInlineDeclarationChecker.kt @@ -36,7 +36,7 @@ import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor import org.jetbrains.kotlin.util.OperatorNameConventions object FirInlineDeclarationChecker : FirFunctionChecker() { - override fun check(declaration: FirFunction<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirFunction, context: CheckerContext, reporter: DiagnosticReporter) { if (!declaration.isInline) return // local inline functions are prohibited if (declaration.isLocalMember) return @@ -47,7 +47,7 @@ object FirInlineDeclarationChecker : FirFunctionChecker() { } private fun checkInlineFunctionBody( - function: FirFunction<*>, + function: FirFunction, effectiveVisibility: EffectiveVisibility, context: CheckerContext, reporter: DiagnosticReporter @@ -70,7 +70,7 @@ object FirInlineDeclarationChecker : FirFunctionChecker() { } private class Visitor( - val inlineFunction: FirFunction<*>, + val inlineFunction: FirFunction, val inlineFunEffectiveVisibility: EffectiveVisibility, val inlinableParameters: List, val session: FirSession, @@ -175,7 +175,7 @@ object FirInlineDeclarationChecker : FirFunctionChecker() { ) { val source = qualifiedAccess.source ?: return if (targetSymbol == null) return - val targetFir = targetSymbol.fir as? FirCallableMemberDeclaration<*> + val targetFir = targetSymbol.fir as? FirCallableMemberDeclaration if (targetSymbol.fir in inlinableParameters) { if (!qualifiedAccess.partOfCall(context)) { @@ -199,7 +199,7 @@ object FirInlineDeclarationChecker : FirFunctionChecker() { private fun checkVisibilityAndAccess( accessExpression: FirQualifiedAccess, - calledDeclaration: FirCallableMemberDeclaration<*>?, + calledDeclaration: FirCallableMemberDeclaration?, source: FirSourceElement, context: CheckerContext ) { @@ -248,7 +248,7 @@ object FirInlineDeclarationChecker : FirFunctionChecker() { } private fun checkPrivateClassMemberAccess( - calledDeclaration: FirCallableMemberDeclaration<*>, + calledDeclaration: FirCallableMemberDeclaration, source: FirSourceElement, context: CheckerContext ) { @@ -266,7 +266,7 @@ object FirInlineDeclarationChecker : FirFunctionChecker() { } private fun checkSuperCalls( - calledDeclaration: FirCallableMemberDeclaration<*>, + calledDeclaration: FirCallableMemberDeclaration, callExpression: FirQualifiedAccess, context: CheckerContext ) { @@ -305,7 +305,7 @@ object FirInlineDeclarationChecker : FirFunctionChecker() { } } - private fun FirCallableMemberDeclaration<*>.isInsidePrivateClass(): Boolean { + private fun FirCallableMemberDeclaration.isInsidePrivateClass(): Boolean { val containingClass = this.containingClass()?.toSymbol(session)?.fir ?: return false val containingClassVisibility = when (containingClass) { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirKClassWithIncorrectTypeArgumentChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirKClassWithIncorrectTypeArgumentChecker.kt index 2e123a27ddb..f9a42911ed5 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirKClassWithIncorrectTypeArgumentChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirKClassWithIncorrectTypeArgumentChecker.kt @@ -10,7 +10,9 @@ import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration +import org.jetbrains.kotlin.fir.declarations.FirFile +import org.jetbrains.kotlin.fir.declarations.FirTypeParameter import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeTypeParameterInQualifiedAccess import org.jetbrains.kotlin.fir.resolve.inference.inferenceComponents import org.jetbrains.kotlin.fir.resolve.inference.isKClassType @@ -21,7 +23,7 @@ import org.jetbrains.kotlin.fir.types.* object FirKClassWithIncorrectTypeArgumentChecker : FirFileChecker() { override fun check(declaration: FirFile, context: CheckerContext, reporter: DiagnosticReporter) { for (topLevelDeclaration in declaration.declarations) { - if (topLevelDeclaration is FirCallableMemberDeclaration<*>) { + if (topLevelDeclaration is FirCallableMemberDeclaration) { checkTopLevelDeclaration(topLevelDeclaration, context, reporter) } } @@ -31,7 +33,7 @@ object FirKClassWithIncorrectTypeArgumentChecker : FirFileChecker() { // bad: fun test1() = T::class // okay: fun test2() = T::class private fun checkTopLevelDeclaration( - declaration: FirCallableMemberDeclaration<*>, + declaration: FirCallableMemberDeclaration, context: CheckerContext, reporter: DiagnosticReporter ) { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirModifierChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirModifierChecker.kt index 4cf01c2a3d3..eef80ff698f 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirModifierChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirModifierChecker.kt @@ -107,7 +107,7 @@ object FirModifierChecker : FirBasicDeclarationChecker() { secondModifier: FirModifier<*>, reporter: DiagnosticReporter, reportedNodes: MutableSet>, - owner: FirDeclaration<*>?, + owner: FirDeclaration?, context: CheckerContext ) { val firstToken = firstModifier.token @@ -126,7 +126,7 @@ object FirModifierChecker : FirBasicDeclarationChecker() { reporter.reportDeprecatedModifierPair(secondModifier, secondToken, firstToken, context) } CompatibilityType.INCOMPATIBLE, CompatibilityType.COMPATIBLE_FOR_CLASSES -> { - if (compatibilityType == CompatibilityType.COMPATIBLE_FOR_CLASSES && owner is FirClass<*>) { + if (compatibilityType == CompatibilityType.COMPATIBLE_FOR_CLASSES && owner is FirClass) { return } if (reportedNodes.add(firstModifier)) reporter.reportIncompatibleModifiers(firstModifier, firstToken, secondToken, context) @@ -137,7 +137,7 @@ object FirModifierChecker : FirBasicDeclarationChecker() { private fun checkModifiers( list: FirModifierList, - owner: FirDeclaration<*>, + owner: FirDeclaration, reporter: DiagnosticReporter, context: CheckerContext ) { @@ -156,17 +156,17 @@ object FirModifierChecker : FirBasicDeclarationChecker() { } } - private fun isDeclarationMappedToSourceCorrectly(declaration: FirDeclaration<*>, source: FirSourceElement): Boolean = + private fun isDeclarationMappedToSourceCorrectly(declaration: FirDeclaration, source: FirSourceElement): Boolean = when (source.elementType) { - KtNodeTypes.CLASS -> declaration is FirClass<*> - KtNodeTypes.OBJECT_DECLARATION -> declaration is FirClass<*> + KtNodeTypes.CLASS -> declaration is FirClass + KtNodeTypes.OBJECT_DECLARATION -> declaration is FirClass KtNodeTypes.PROPERTY -> declaration is FirProperty KtNodeTypes.VALUE_PARAMETER -> declaration is FirValueParameter // TODO more FIR-PSI relations possibly have to be added else -> true } - override fun check(declaration: FirDeclaration<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) { if (declaration is FirFile) return val source = declaration.source ?: return diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirNestedClassChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirNestedClassChecker.kt index 9f293c0266a..6e4670b628c 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirNestedClassChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirNestedClassChecker.kt @@ -10,7 +10,8 @@ import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors.NESTED_CLASS_NOT_ALLOWED import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirClass +import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.utils.isCompanion import org.jetbrains.kotlin.fir.declarations.utils.isInner import org.jetbrains.kotlin.fir.declarations.utils.isLocal @@ -29,7 +30,7 @@ object FirNestedClassChecker : FirRegularClassChecker() { reporter.reportOn(declaration.source, NESTED_CLASS_NOT_ALLOWED, declaration.description, context) } } - is FirClass<*> -> { + is FirClass -> { // Since 1.3, enum entries can contain inner classes only. // Companion objects are reported with code WRONG_MODIFIER_CONTAINING_DECLARATION instead if (containingDeclaration.classKind == ClassKind.ENUM_ENTRY && !declaration.isInner && !declaration.isCompanion) { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirNotImplementedOverrideChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirNotImplementedOverrideChecker.kt index be1a637bdbb..fceae0b20f4 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirNotImplementedOverrideChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirNotImplementedOverrideChecker.kt @@ -36,7 +36,7 @@ import org.jetbrains.kotlin.util.ImplementationStatus object FirNotImplementedOverrideChecker : FirClassChecker() { - override fun check(declaration: FirClass<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirClass, context: CheckerContext, reporter: DiagnosticReporter) { val source = declaration.source ?: return val sourceKind = source.kind if (sourceKind is FirFakeSourceElementKind && sourceKind != FirFakeSourceElementKind.EnumInitializer) return @@ -53,7 +53,7 @@ object FirNotImplementedOverrideChecker : FirClassChecker() { val invisibleSymbols = mutableListOf>() fun collectSymbol(symbol: FirCallableSymbol<*>) { - val fir = symbol.fir as? FirCallableMemberDeclaration<*> ?: return + val fir = symbol.fir as? FirCallableMemberDeclaration ?: return when (fir.getImplementationStatus(context.sessionHolder, declaration)) { ImplementationStatus.AMBIGUOUSLY_INHERITED -> notImplementedIntersectionSymbols.add(symbol) ImplementationStatus.NOT_IMPLEMENTED -> when { @@ -144,6 +144,6 @@ object FirNotImplementedOverrideChecker : FirClassChecker() { } } - private fun FirCallableDeclaration<*>.isFromInterfaceOrEnum(context: CheckerContext): Boolean = + private fun FirCallableDeclaration.isFromInterfaceOrEnum(context: CheckerContext): Boolean = (getContainingClass(context) as? FirRegularClass)?.let { it.isInterface || it.isEnumClass } == true } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOpenMemberChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOpenMemberChecker.kt index bec9222cfab..2f6ddfcb048 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOpenMemberChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOpenMemberChecker.kt @@ -21,10 +21,10 @@ import org.jetbrains.kotlin.fir.declarations.utils.isOpen import org.jetbrains.kotlin.lexer.KtTokens 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 for (memberDeclaration in declaration.declarations) { - if (memberDeclaration !is FirCallableMemberDeclaration<*> || + if (memberDeclaration !is FirCallableMemberDeclaration || // Marking a constructor `open` is an error covered by diagnostic code WRONG_MODIFIER_TARGET memberDeclaration is FirConstructor ) continue diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOverrideChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOverrideChecker.kt index 518df9218bd..546aa9491ac 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOverrideChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirOverrideChecker.kt @@ -34,7 +34,7 @@ import org.jetbrains.kotlin.types.AbstractTypeCheckerContext import org.jetbrains.kotlin.utils.addToStdlib.safeAs object FirOverrideChecker : FirClassChecker() { - override fun check(declaration: FirClass<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirClass, context: CheckerContext, reporter: DiagnosticReporter) { val typeCheckerContext = context.session.typeContext.newBaseTypeCheckerContext( errorTypesEqualToAnything = false, stubTypesEqualToAnything = false @@ -44,12 +44,12 @@ object FirOverrideChecker : FirClassChecker() { for (it in declaration.declarations) { if (it is FirSimpleFunction || it is FirProperty) { - checkMember(it as FirCallableMemberDeclaration<*>, reporter, typeCheckerContext, firTypeScope, context) + checkMember(it as FirCallableMemberDeclaration, reporter, typeCheckerContext, firTypeScope, context) } } } - private fun FirTypeScope.retrieveDirectOverriddenOf(member: FirCallableMemberDeclaration<*>): List> { + private fun FirTypeScope.retrieveDirectOverriddenOf(member: FirCallableMemberDeclaration): List> { return when (member) { is FirSimpleFunction -> { processFunctionsByName(member.name) {} @@ -64,8 +64,8 @@ object FirOverrideChecker : FirClassChecker() { } private fun ConeKotlinType.substituteAllTypeParameters( - overrideDeclaration: FirCallableMemberDeclaration<*>, - baseDeclaration: FirCallableDeclaration<*>, + overrideDeclaration: FirCallableMemberDeclaration, + baseDeclaration: FirCallableDeclaration, context: CheckerContext ): ConeKotlinType { if (overrideDeclaration.typeParameters.isEmpty()) { @@ -90,7 +90,7 @@ object FirOverrideChecker : FirClassChecker() { private fun checkModality( overriddenSymbols: List>, - ): FirCallableDeclaration<*>? { + ): FirCallableDeclaration? { for (overridden in overriddenSymbols) { if (overridden.fir !is FirStatusOwner) continue val modality = (overridden.fir as FirStatusOwner).status.modality @@ -109,7 +109,7 @@ object FirOverrideChecker : FirClassChecker() { return overriddenSymbols.find { (it.fir as? FirProperty)?.isVar == true }?.fir?.safeAs() } - private fun FirCallableMemberDeclaration<*>.checkVisibility( + private fun FirCallableMemberDeclaration.checkVisibility( reporter: DiagnosticReporter, overriddenSymbols: List>, context: CheckerContext @@ -135,7 +135,7 @@ object FirOverrideChecker : FirClassChecker() { } // See [OverrideResolver#isReturnTypeOkForOverride] - private fun FirCallableMemberDeclaration<*>.checkReturnType( + private fun FirCallableMemberDeclaration.checkReturnType( overriddenSymbols: List>, typeCheckerContext: AbstractTypeCheckerContext, context: CheckerContext, @@ -169,7 +169,7 @@ object FirOverrideChecker : FirClassChecker() { } private fun checkMember( - member: FirCallableMemberDeclaration<*>, + member: FirCallableMemberDeclaration, reporter: DiagnosticReporter, typeCheckerContext: AbstractTypeCheckerContext, firTypeScope: FirTypeScope, @@ -241,7 +241,7 @@ object FirOverrideChecker : FirClassChecker() { private fun DiagnosticReporter.reportOverridingFinalMember( overriding: FirStatusOwner, - overridden: FirCallableDeclaration<*>, + overridden: FirCallableDeclaration, context: CheckerContext ) { overridden.containingClass()?.let { containingClass -> @@ -259,7 +259,7 @@ object FirOverrideChecker : FirClassChecker() { private fun DiagnosticReporter.reportCannotWeakenAccessPrivilege( overriding: FirStatusOwner, - overridden: FirCallableDeclaration<*>, + overridden: FirCallableDeclaration, context: CheckerContext ) { val containingClass = overridden.containingClass() ?: return @@ -275,7 +275,7 @@ object FirOverrideChecker : FirClassChecker() { private fun DiagnosticReporter.reportCannotChangeAccessPrivilege( overriding: FirStatusOwner, - overridden: FirCallableDeclaration<*>, + overridden: FirCallableDeclaration, context: CheckerContext ) { val containingClass = overridden.containingClass() ?: return 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 95affa4c911..04b4a944246 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 @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.utils.addToStdlib.safeAs object FirProjectionRelationChecker : FirBasicDeclarationChecker() { - override fun check(declaration: FirDeclaration<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) { if (declaration is FirPropertyAccessor) { return } @@ -32,7 +32,7 @@ object FirProjectionRelationChecker : FirBasicDeclarationChecker() { } when (declaration) { - is FirClass<*> -> { + is FirClass -> { for (it in declaration.superTypeRefs) { checkTypeRef(it, context, reporter) } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirSealedSupertypeChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirSealedSupertypeChecker.kt index b3e1b396bb2..705626dab89 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirSealedSupertypeChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirSealedSupertypeChecker.kt @@ -10,7 +10,8 @@ import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirClass +import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.utils.classId import org.jetbrains.kotlin.fir.resolve.symbolProvider import org.jetbrains.kotlin.fir.types.classId @@ -18,7 +19,7 @@ import org.jetbrains.kotlin.fir.types.coneType import org.jetbrains.kotlin.utils.addToStdlib.safeAs object FirSealedSupertypeChecker : FirClassChecker() { - override fun check(declaration: FirClass<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirClass, context: CheckerContext, reporter: DiagnosticReporter) { // only the file declaration is present if (declaration.classId.isLocal) { checkLocalDeclaration(declaration, context, reporter) @@ -27,7 +28,7 @@ object FirSealedSupertypeChecker : FirClassChecker() { } } - private fun checkGlobalDeclaration(declaration: FirClass<*>, context: CheckerContext, reporter: DiagnosticReporter) { + private fun checkGlobalDeclaration(declaration: FirClass, context: CheckerContext, reporter: DiagnosticReporter) { for (it in declaration.superTypeRefs) { val classId = it.coneType.classId ?: continue @@ -46,7 +47,7 @@ object FirSealedSupertypeChecker : FirClassChecker() { } } - private fun checkLocalDeclaration(declaration: FirClass<*>, context: CheckerContext, reporter: DiagnosticReporter) { + private fun checkLocalDeclaration(declaration: FirClass, context: CheckerContext, reporter: DiagnosticReporter) { for (it in declaration.superTypeRefs) { val classId = it.coneType.classId ?: continue diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirSupertypesChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirSupertypesChecker.kt index 7861923ede4..c5cd1950166 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirSupertypesChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirSupertypesChecker.kt @@ -26,7 +26,7 @@ import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.utils.addToStdlib.safeAs object FirSupertypesChecker : FirClassChecker() { - override fun check(declaration: FirClass<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirClass, context: CheckerContext, reporter: DiagnosticReporter) { val isInterface = declaration.classKind == ClassKind.INTERFACE var nullableSupertypeReported = false var extensionFunctionSupertypeReported = false @@ -159,7 +159,7 @@ object FirSupertypesChecker : FirClassChecker() { } private fun checkDelegationNotToInterface( - declaration: FirClass<*>, + declaration: FirClass, context: CheckerContext, reporter: DiagnosticReporter ) { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirThrowableSubclassChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirThrowableSubclassChecker.kt index 892a024d815..9812af39a95 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirThrowableSubclassChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirThrowableSubclassChecker.kt @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.utils.superConeTypes import org.jetbrains.kotlin.fir.types.ConeClassErrorType object FirThrowableSubclassChecker : FirClassChecker() { - override fun check(declaration: FirClass<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirClass, context: CheckerContext, reporter: DiagnosticReporter) { if (!declaration.hasThrowableSupertype(context)) return @@ -35,12 +35,12 @@ object FirThrowableSubclassChecker : FirClassChecker() { } } - private fun FirClass<*>.hasThrowableSupertype(context: CheckerContext) = + private fun FirClass.hasThrowableSupertype(context: CheckerContext) = superConeTypes.any { it !is ConeClassErrorType && it.isSubtypeOfThrowable(context.session) } - private fun FirClass<*>.hasGenericOuterDeclaration(context: CheckerContext) = + private fun FirClass.hasGenericOuterDeclaration(context: CheckerContext) = classId.isLocal && context.containingDeclarations.anyIsGeneric() - private fun Collection>.anyIsGeneric() = + private fun Collection.anyIsGeneric() = any { it is FirTypeParameterRefsOwner && it.typeParameters.isNotEmpty() } } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirTypeConstraintsChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirTypeConstraintsChecker.kt index b80fc954fca..499f1d33429 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirTypeConstraintsChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirTypeConstraintsChecker.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.fir.declarations.utils.getDanglingTypeConstraintsOrE object FirTypeConstraintsChecker : FirBasicDeclarationChecker() { - override fun check(declaration: FirDeclaration<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) { if (declaration !is FirTypeParameterRefsOwner) return //basically we transfer errors, which were discovered in ast parsers diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirTypeParameterBoundsChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirTypeParameterBoundsChecker.kt index 55dd9fc9534..17a2245b0d8 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirTypeParameterBoundsChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirTypeParameterBoundsChecker.kt @@ -48,7 +48,7 @@ object FirTypeParameterBoundsChecker : FirTypeParameterChecker() { private fun checkFinalUpperBounds( declaration: FirTypeParameter, - containingDeclaration: FirDeclaration<*>, + containingDeclaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter ) { @@ -72,7 +72,7 @@ object FirTypeParameterBoundsChecker : FirTypeParameterChecker() { private fun checkTypeAliasBound( declaration: FirTypeParameter, - containingDeclaration: FirDeclaration<*>, + containingDeclaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter ) { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirUpperBoundViolatedDeclarationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirUpperBoundViolatedDeclarationChecker.kt index 888751d12bb..7e5d139ad79 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirUpperBoundViolatedDeclarationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/declaration/FirUpperBoundViolatedDeclarationChecker.kt @@ -12,8 +12,8 @@ import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.declarations.* object FirUpperBoundViolatedDeclarationChecker : FirBasicDeclarationChecker() { - override fun check(declaration: FirDeclaration<*>, context: CheckerContext, reporter: DiagnosticReporter) { - if (declaration is FirClass<*>) { + override fun check(declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) { + if (declaration is FirClass) { for (typeParameter in declaration.typeParameters) { if (typeParameter is FirTypeParameter) { for (bound in typeParameter.bounds) { @@ -27,7 +27,7 @@ object FirUpperBoundViolatedDeclarationChecker : FirBasicDeclarationChecker() { } } else if (declaration is FirTypeAlias) { checkUpperBoundViolated(declaration.expandedTypeRef, context, reporter, isIgnoreTypeParameters = true) - } else if (declaration is FirCallableDeclaration<*>) { + } else if (declaration is FirCallableDeclaration) { if (declaration.returnTypeRef.source?.kind !is FirFakeSourceElementKind) { checkUpperBoundViolated( declaration.returnTypeRef, context, reporter, diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirAbstractSuperCallChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirAbstractSuperCallChecker.kt index ebcbcedc0c8..b665759ab91 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirAbstractSuperCallChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirAbstractSuperCallChecker.kt @@ -33,7 +33,7 @@ object FirAbstractSuperCallChecker : FirQualifiedAccessExpressionChecker() { if (closestClass.classKind == ClassKind.CLASS) { // handles all the FirSimpleFunction/FirProperty/etc. - val item = expression.getDeclaration>() + val item = expression.getDeclaration() ?: return val declaration = item.getContainingClass(context).safeAs() diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirCallableReferenceChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirCallableReferenceChecker.kt index a0e0c3380f5..d9b97770334 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirCallableReferenceChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirCallableReferenceChecker.kt @@ -13,7 +13,10 @@ import org.jetbrains.kotlin.fir.analysis.checkers.declaration.isLocalMember import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.analysis.diagnostics.FirErrors import org.jetbrains.kotlin.fir.analysis.diagnostics.reportOn -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration +import org.jetbrains.kotlin.fir.declarations.FirConstructor +import org.jetbrains.kotlin.fir.declarations.FirProperty +import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess import org.jetbrains.kotlin.fir.expressions.FirGetClassCall import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression @@ -46,7 +49,7 @@ object FirCallableReferenceChecker : FirQualifiedAccessExpressionChecker() { if (referredDeclaration is FirConstructor && referredDeclaration.getContainingClass(context.session)?.classKind == ClassKind.ANNOTATION_CLASS) { reporter.reportOn(source, FirErrors.CALLABLE_REFERENCE_TO_ANNOTATION_CONSTRUCTOR, context) } - if ((referredDeclaration as? FirCallableMemberDeclaration<*>)?.isExtensionMember == true && + if ((referredDeclaration as? FirCallableMemberDeclaration)?.isExtensionMember == true && !referredDeclaration.isLocalMember ) { reporter.reportOn(source, FirErrors.EXTENSION_IN_CLASS_REFERENCE_NOT_ALLOWED, referredDeclaration, context) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirExpressionAnnotationChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirExpressionAnnotationChecker.kt index b5762f78e51..215d93d83d1 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirExpressionAnnotationChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirExpressionAnnotationChecker.kt @@ -22,7 +22,7 @@ object FirExpressionAnnotationChecker : FirBasicExpressionChecker() { override fun check(expression: FirStatement, context: CheckerContext, reporter: DiagnosticReporter) { // Declarations are checked separately // See KT-33658 about annotations on non-expression statements - if (expression is FirDeclaration<*> || + if (expression is FirDeclaration || expression !is FirExpression || expression is FirBlock && expression.source?.kind == FirFakeSourceElementKind.DesugaredForLoop ) return diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirNotASupertypeChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirNotASupertypeChecker.kt index bef499536fb..9426018775b 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirNotASupertypeChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirNotASupertypeChecker.kt @@ -38,10 +38,10 @@ object FirNotASupertypeChecker : FirQualifiedAccessExpressionChecker() { * item like FirRegularClass or FirAnonymousObject * or null if no such item could be found. */ - private fun CheckerContext.findClosestClass(label: String?): FirClass<*>? { + private fun CheckerContext.findClosestClass(label: String?): FirClass? { for (it in containingDeclarations.reversed()) { if (it is FirRegularClass || it is FirAnonymousObject) { - val firClass = it as FirClass<*> + val firClass = it as FirClass val className = firClass.symbol.classId.shortClassName if (label == null || (!className.isSpecial && className.identifier == label)) { return firClass diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirQualifiedSupertypeExtendedByOtherSupertypeChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirQualifiedSupertypeExtendedByOtherSupertypeChecker.kt index cfef085999e..69b68a0e5ba 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirQualifiedSupertypeExtendedByOtherSupertypeChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirQualifiedSupertypeExtendedByOtherSupertypeChecker.kt @@ -27,7 +27,7 @@ object FirQualifiedSupertypeExtendedByOtherSupertypeChecker : FirQualifiedAccess val explicitType = superReference.superTypeRef .firClassLike(context.session) - ?.followAllAlias(context.session).safeAs>() + ?.followAllAlias(context.session).safeAs() ?: return val surroundingType = context.findClosestClassOrObject() @@ -37,11 +37,11 @@ object FirQualifiedSupertypeExtendedByOtherSupertypeChecker : FirQualifiedAccess // have `explicitType` as their supertype or // equal to it var count = 0 - var candidate: FirClass<*>? = null + var candidate: FirClass? = null for (it in surroundingType.superTypeRefs) { val that = it.firClassLike(context.session) - ?.followAllAlias(context.session).safeAs>() + ?.followAllAlias(context.session).safeAs() ?: continue val isSupertype = explicitType.isSupertypeOf(that, context.session) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirReservedUnderscoreCheckers.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirReservedUnderscoreCheckers.kt index dfa67c230e7..babce44adcc 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirReservedUnderscoreCheckers.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirReservedUnderscoreCheckers.kt @@ -112,17 +112,17 @@ object FirReservedUnderscoreExpressionChecker : FirBasicExpressionChecker() { } object FirReservedUnderscoreDeclarationChecker : FirBasicDeclarationChecker() { - override fun check(declaration: FirDeclaration<*>, context: CheckerContext, reporter: DiagnosticReporter) { + override fun check(declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter) { if ( - declaration is FirClass<*> || - declaration is FirFunction<*> || + declaration is FirClass || + declaration is FirFunction || declaration is FirTypeParameter || declaration is FirProperty || declaration is FirTypeAlias ) { reportIfUnderscore(declaration, context, reporter) - if (declaration is FirFunction<*>) { + if (declaration is FirFunction) { for (parameter in declaration.valueParameters) { reportIfUnderscore( parameter, @@ -141,7 +141,7 @@ object FirReservedUnderscoreDeclarationChecker : FirBasicDeclarationChecker() { } private fun reportIfUnderscore( - declaration: FirDeclaration<*>, + declaration: FirDeclaration, context: CheckerContext, reporter: DiagnosticReporter, isSingleUnderscoreAllowed: Boolean = false @@ -160,7 +160,7 @@ private fun reportIfUnderscore( val returnOrReceiverTypeRef = when (declaration) { is FirValueParameter -> declaration.returnTypeRef.source - is FirFunction<*> -> declaration.receiverTypeRef?.source + is FirFunction -> declaration.receiverTypeRef?.source else -> null } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirReturnAllowedChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirReturnAllowedChecker.kt index fcb19009525..c639e6f50af 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirReturnAllowedChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirReturnAllowedChecker.kt @@ -27,7 +27,7 @@ object FirReturnAllowedChecker : FirReturnExpressionChecker() { } val containingDeclaration = context.containingDeclarations.last() - if (containingDeclaration is FirFunction<*> && containingDeclaration.body is FirSingleExpressionBlock) { + if (containingDeclaration is FirFunction && containingDeclaration.body is FirSingleExpressionBlock) { reporter.reportOn(source, FirErrors.RETURN_IN_FUNCTION_WITH_EXPRESSION_BODY, context) } } @@ -36,8 +36,8 @@ object FirReturnAllowedChecker : FirReturnExpressionChecker() { for (containingDeclaration in context.containingDeclarations.asReversed()) { when (containingDeclaration) { // return from member of local class or anonymous object - is FirClass<*> -> return false - is FirFunction<*> -> { + is FirClass -> return false + is FirFunction -> { when { containingDeclaration.symbol == targetSymbol -> return true containingDeclaration is FirAnonymousFunction -> { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirSuperNotAvailableChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirSuperNotAvailableChecker.kt index 691dad86008..54fbffc7655 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirSuperNotAvailableChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirSuperNotAvailableChecker.kt @@ -19,7 +19,7 @@ object FirSuperNotAvailableChecker : FirQualifiedAccessExpressionChecker() { if (expression.calleeReference.safeAs()?.hadExplicitTypeInSource() != true) return val isInsideClass = context.containingDeclarations.any { - it is FirClass<*> + it is FirClass } if (!isInsideClass) { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirSuperclassNotAccessibleFromInterfaceChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirSuperclassNotAccessibleFromInterfaceChecker.kt index 1d95901956f..7f3d88c0a0a 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirSuperclassNotAccessibleFromInterfaceChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/expression/FirSuperclassNotAccessibleFromInterfaceChecker.kt @@ -44,7 +44,7 @@ object FirSuperclassNotAccessibleFromInterfaceChecker : FirQualifiedAccessExpres * Returns the ClassLikeDeclaration where the function has been defined * or null if no proper declaration has been found. */ - private fun getClassLikeDeclaration(functionCall: FirQualifiedAccessExpression, context: CheckerContext): FirClassLikeDeclaration<*>? { + private fun getClassLikeDeclaration(functionCall: FirQualifiedAccessExpression, context: CheckerContext): FirClassLikeDeclaration? { return functionCall.calleeReference.safeAs()?.resolvedSymbol?.fir?.getContainingClass(context) } } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/RedundantModalityModifierSyntaxChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/RedundantModalityModifierSyntaxChecker.kt index a9c2390b771..124b65abcec 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/RedundantModalityModifierSyntaxChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/RedundantModalityModifierSyntaxChecker.kt @@ -22,13 +22,13 @@ import org.jetbrains.kotlin.fir.declarations.FirStatusOwner import org.jetbrains.kotlin.fir.declarations.utils.modality import org.jetbrains.kotlin.psi.KtDeclaration -object RedundantModalityModifierSyntaxChecker : FirDeclarationSyntaxChecker, KtDeclaration>() { +object RedundantModalityModifierSyntaxChecker : FirDeclarationSyntaxChecker() { - override fun isApplicable(element: FirDeclaration<*>, source: FirSourceElement): Boolean = + override fun isApplicable(element: FirDeclaration, source: FirSourceElement): Boolean = source.kind !is FirFakeSourceElementKind && element is FirStatusOwner override fun checkLightTree( - element: FirDeclaration<*>, + element: FirDeclaration, source: FirSourceElement, context: CheckerContext, reporter: DiagnosticReporter @@ -37,7 +37,7 @@ object RedundantModalityModifierSyntaxChecker : FirDeclarationSyntaxChecker)?.classKind == ClassKind.INTERFACE + && (context.containingDeclarations.last() as? FirClass)?.classKind == ClassKind.INTERFACE ) return if (source.treeStructure.modalityModifier(source.lighterASTNode) == null) return diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/RedundantVisibilityModifierSyntaxChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/RedundantVisibilityModifierSyntaxChecker.kt index c4148402a1d..b45a3b19193 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/RedundantVisibilityModifierSyntaxChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/extended/RedundantVisibilityModifierSyntaxChecker.kt @@ -24,10 +24,10 @@ import org.jetbrains.kotlin.fir.declarations.utils.visibility import org.jetbrains.kotlin.lexer.KtModifierKeywordToken import org.jetbrains.kotlin.psi.KtDeclaration -object RedundantVisibilityModifierSyntaxChecker : FirDeclarationSyntaxChecker, KtDeclaration>() { +object RedundantVisibilityModifierSyntaxChecker : FirDeclarationSyntaxChecker() { override fun checkLightTree( - element: FirDeclaration<*>, + element: FirDeclaration, source: FirSourceElement, context: CheckerContext, reporter: DiagnosticReporter @@ -43,7 +43,7 @@ object RedundantVisibilityModifierSyntaxChecker : FirDeclarationSyntaxChecker() - require(containingMemberDeclaration is FirDeclaration<*>?) + require(containingMemberDeclaration is FirDeclaration?) val redundantVisibility = when { explicitVisibility == implicitVisibility -> implicitVisibility @@ -62,7 +62,7 @@ object RedundantVisibilityModifierSyntaxChecker : FirDeclarationSyntaxChecker.implicitVisibility(context: CheckerContext): Visibility { + private fun FirDeclaration.implicitVisibility(context: CheckerContext): Visibility { return when { this is FirPropertyAccessor && isSetter && status.isOverride -> this.visibility @@ -83,7 +83,7 @@ object RedundantVisibilityModifierSyntaxChecker : FirDeclarationSyntaxChecker + && context.containingDeclarations.last() is FirClass && this.isOverride -> findFunctionVisibility(this, context) else -> Visibilities.DEFAULT_VISIBILITY @@ -107,7 +107,7 @@ object RedundantVisibilityModifierSyntaxChecker : FirDeclarationSyntaxChecker.visibility(): Visibility? { + private fun FirFunction.visibility(): Visibility? { (symbol.fir as? FirStatusOwner)?.visibility?.let { return it } diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/syntax/FirSyntaxChecker.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/syntax/FirSyntaxChecker.kt index 80af19e4f55..4c91d96c6c1 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/syntax/FirSyntaxChecker.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/checkers/syntax/FirSyntaxChecker.kt @@ -48,7 +48,7 @@ interface FirSyntaxChecker { fun checkLightTree(element: D, source: FirSourceElement, context: CheckerContext, reporter: DiagnosticReporter) } -abstract class FirDeclarationSyntaxChecker, P : PsiElement> : +abstract class FirDeclarationSyntaxChecker : FirDeclarationChecker(), FirSyntaxChecker { final override fun check(declaration: D, context: CheckerContext, reporter: DiagnosticReporter) { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollector.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollector.kt index fec61ddc3b9..117f4ce74ba 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollector.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollector.kt @@ -24,7 +24,7 @@ abstract class AbstractDiagnosticCollector( override val scopeSession: ScopeSession = ScopeSession(), protected val createComponents: (DiagnosticReporter) -> List, ) : SessionHolder { - fun collectDiagnostics(firDeclaration: FirDeclaration<*>, reporter: DiagnosticReporter) { + fun collectDiagnostics(firDeclaration: FirDeclaration, reporter: DiagnosticReporter) { val components = createComponents(reporter) val visitor = createVisitor(components) firDeclaration.accept(visitor, null) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollectorVisitor.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollectorVisitor.kt index 8d6f20b3611..5ebfe0ae923 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollectorVisitor.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/AbstractDiagnosticCollectorVisitor.kt @@ -24,8 +24,8 @@ abstract class AbstractDiagnosticCollectorVisitor( @set:PrivateForInline var context: PersistentCheckerContext, ) : FirDefaultVisitor() { - protected open fun shouldVisitDeclaration(declaration: FirDeclaration<*>) = true - protected open fun onDeclarationExit(declaration: FirDeclaration<*>) {} + protected open fun shouldVisitDeclaration(declaration: FirDeclaration) = true + protected open fun onDeclarationExit(declaration: FirDeclaration) {} protected open fun visitNestedElements(element: FirElement) { element.acceptChildren(this, null) @@ -64,7 +64,7 @@ abstract class AbstractDiagnosticCollectorVisitor( visitJump(continueExpression) } - private fun visitClassAndChildren(klass: FirClass<*>, type: ConeKotlinType) { + private fun visitClassAndChildren(klass: FirClass, type: ConeKotlinType) { val typeRef = buildResolvedTypeRef { this.type = type } @@ -204,7 +204,7 @@ abstract class AbstractDiagnosticCollectorVisitor( } protected inline fun visitWithDeclaration( - declaration: FirDeclaration<*>, + declaration: FirDeclaration, block: () -> Unit = { visitNestedElements(declaration) } ) { if (shouldVisitDeclaration(declaration)) { @@ -216,7 +216,7 @@ abstract class AbstractDiagnosticCollectorVisitor( } } - private fun visitWithDeclarationAndReceiver(declaration: FirDeclaration<*>, labelName: Name?, receiverTypeRef: FirTypeRef?) { + private fun visitWithDeclarationAndReceiver(declaration: FirDeclaration, labelName: Name?, receiverTypeRef: FirTypeRef?) { visitWithDeclaration(declaration) { withLabelAndReceiverType( labelName, @@ -265,7 +265,7 @@ abstract class AbstractDiagnosticCollectorVisitor( @OptIn(PrivateForInline::class) - inline fun withDeclaration(declaration: FirDeclaration<*>, block: () -> R): R { + inline fun withDeclaration(declaration: FirDeclaration, block: () -> R): R { val existingContext = context context = context.addDeclaration(declaration) try { @@ -279,7 +279,7 @@ abstract class AbstractDiagnosticCollectorVisitor( @OptIn(PrivateForInline::class) inline fun withLabelAndReceiverType( labelName: Name?, - owner: FirDeclaration<*>, + owner: FirDeclaration, type: ConeKotlinType?, block: () -> R ): R { diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ControlFlowAnalysisDiagnosticComponent.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ControlFlowAnalysisDiagnosticComponent.kt index 2bcd76e3162..a8873f9f435 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ControlFlowAnalysisDiagnosticComponent.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/ControlFlowAnalysisDiagnosticComponent.kt @@ -10,7 +10,6 @@ import org.jetbrains.kotlin.fir.analysis.cfa.FirControlFlowAnalyzer import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.analysis.checkers.declaration.DeclarationCheckers import org.jetbrains.kotlin.fir.analysis.checkersComponent -import org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector import org.jetbrains.kotlin.fir.analysis.diagnostics.DiagnosticReporter import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.references.FirControlFlowGraphReference @@ -33,8 +32,8 @@ class ControlFlowAnalysisDiagnosticComponent( visitClass(anonymousObject, anonymousObject.controlFlowGraphReference, data) } - private fun > visitClass( - klass: FirClass, + private fun visitClass( + klass: FirClass, controlFlowGraphReference: FirControlFlowGraphReference?, data: CheckerContext ) { @@ -50,7 +49,7 @@ class ControlFlowAnalysisDiagnosticComponent( // ------------------------------- Function ------------------------------- - override fun > visitFunction(function: FirFunction, data: CheckerContext) { + override fun visitFunction(function: FirFunction, data: CheckerContext) { val graph = function.controlFlowGraphReference?.controlFlowGraph ?: return controlFlowAnalyzer.analyzeFunction(function, graph, data, reporter) diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/DeclarationCheckersDiagnosticComponent.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/DeclarationCheckersDiagnosticComponent.kt index c763061e809..9d4cb8f7759 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/DeclarationCheckersDiagnosticComponent.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/collectors/components/DeclarationCheckersDiagnosticComponent.kt @@ -29,7 +29,7 @@ class DeclarationCheckersDiagnosticComponent( checkers.allPropertyCheckers.check(property, data, reporter) } - override fun > visitClass(klass: FirClass, data: CheckerContext) { + override fun visitClass(klass: FirClass, data: CheckerContext) { checkers.allClassCheckers.check(klass, data, reporter) } @@ -77,7 +77,7 @@ class DeclarationCheckersDiagnosticComponent( checkers.allBasicDeclarationCheckers.check(anonymousInitializer, data, reporter) } - private fun > Collection>.check( + private fun Collection>.check( declaration: D, context: CheckerContext, reporter: DiagnosticReporter diff --git a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticRenderers.kt b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticRenderers.kt index 9e8bc77d531..e1e6f1fac72 100644 --- a/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticRenderers.kt +++ b/compiler/fir/checkers/src/org/jetbrains/kotlin/fir/analysis/diagnostics/FirDiagnosticRenderers.kt @@ -60,7 +60,7 @@ object FirDiagnosticRenderers { val NAME = Renderer { element: FirElement -> when (element) { is FirStatusOwner -> DECLARATION_NAME.render(element) - is FirCallableDeclaration<*> -> element.symbol.callableId.callableName.asString() + is FirCallableDeclaration -> element.symbol.callableId.callableName.asString() else -> "???" } } @@ -83,7 +83,7 @@ object FirDiagnosticRenderers { name.asString() } - val RENDER_CLASS_OR_OBJECT = Renderer { firClass: FirClass<*> -> + val RENDER_CLASS_OR_OBJECT = Renderer { firClass: FirClass -> val name = firClass.classId.relativeClassName.asString() val classOrObject = if (firClass is FirRegularClass) "Class" else "Object" "$classOrObject $name" diff --git a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt index f0375ac3136..ce1fc6cd40b 100644 --- a/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt +++ b/compiler/fir/dump/src/org/jetbrains/kotlin/fir/dump/HtmlFirDump.kt @@ -378,12 +378,12 @@ class MultiModuleHtmlFirDump(private val outputRoot: File) { visitElement(regularClass) } - fun indexDeclaration(declaration: FirDeclaration<*>) { + fun indexDeclaration(declaration: FirDeclaration) { symbols[declaration.symbol] = location symbolIds[declaration.symbol] = symbolCounter++ } - override fun > visitVariable(variable: FirVariable) { + override fun visitVariable(variable: FirVariable) { indexDeclaration(variable) visitElement(variable) } @@ -919,7 +919,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver is FirEnumEntry -> generate(statusOwner) is FirRegularClass -> generate(statusOwner) is FirSimpleFunction -> generate(statusOwner) - is FirProperty -> if (statusOwner.isLocal) generate(statusOwner as FirVariable<*>) else generate(statusOwner) + is FirProperty -> if (statusOwner.isLocal) generate(statusOwner as FirVariable) else generate(statusOwner) is FirConstructor -> generate(statusOwner) is FirTypeAlias -> generate(statusOwner) else -> unsupported(statusOwner) @@ -962,7 +962,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver +"> " } - private fun FlowContent.generateReceiver(declaration: FirCallableDeclaration<*>) { + private fun FlowContent.generateReceiver(declaration: FirCallableDeclaration) { generateReceiver(declaration.receiverTypeRef) } @@ -1047,7 +1047,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver is FirWhenExpression -> generate(statement, isStatement = true) is FirTryExpression -> generate(statement, isStatement = true) is FirExpression -> iline { generate(statement) } - is FirVariable<*> -> iline { generate(statement) } + is FirVariable -> iline { generate(statement) } is FirVariableAssignment -> iline { generate(statement) } else -> unsupported(statement) } @@ -1072,7 +1072,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver } } - private fun FlowContent.generate(variable: FirVariable<*>) { + private fun FlowContent.generate(variable: FirVariable) { if (variable.isVal) { keyword("val ") } else { @@ -1112,7 +1112,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver } } - private fun FlowContent.describeVerbose(symbol: FirCallableSymbol<*>, fir: FirFunction<*>) { + private fun FlowContent.describeVerbose(symbol: FirCallableSymbol<*>, fir: FirFunction) { describeTypeParameters(fir) fir.receiverTypeRef?.let { @@ -1131,7 +1131,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver generate(fir.returnTypeRef) } - private fun FlowContent.describeVerbose(symbol: FirCallableSymbol<*>, fir: FirVariable<*>) { + private fun FlowContent.describeVerbose(symbol: FirCallableSymbol<*>, fir: FirVariable) { if (fir is FirTypeParametersOwner) describeTypeParameters(fir) fir.receiverTypeRef?.let { @@ -1684,7 +1684,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver } } - private fun FlowContent.generateDeclarations(declarations: List>) { + private fun FlowContent.generateDeclarations(declarations: List) { if (declarations.isNotEmpty()) { +" {" br @@ -1769,7 +1769,7 @@ class HtmlFirDump internal constructor(private var linkResolver: FirLinkResolver } } - private fun FlowContent.generate(declaration: FirDeclaration<*>) { + private fun FlowContent.generate(declaration: FirDeclaration) { when (declaration) { is FirAnonymousInitializer -> generate(declaration) is FirStatusOwner -> generate(declaration as FirStatusOwner) diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirJvmModuleVisibilityChecker.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirJvmModuleVisibilityChecker.kt index b9f4c606bd3..5b2c944073c 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirJvmModuleVisibilityChecker.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirJvmModuleVisibilityChecker.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.declarations.FirStatusOwner import org.jetbrains.kotlin.fir.moduleData class FirJvmModuleVisibilityChecker(private val session: FirSession) : FirModuleVisibilityChecker { - override fun isInFriendModule(declaration: T): Boolean where T : FirStatusOwner, T : FirDeclaration<*> { + override fun isInFriendModule(declaration: T): Boolean where T : FirStatusOwner, T : FirDeclaration { val useSiteModuleData = session.moduleData val declarationModuleData = declaration.moduleData return useSiteModuleData == declarationModuleData || declarationModuleData in useSiteModuleData.friendDependencies diff --git a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirJvmOverridesBackwardCompatibilityHelper.kt b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirJvmOverridesBackwardCompatibilityHelper.kt index 358a51410fc..cdf342df2a3 100644 --- a/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirJvmOverridesBackwardCompatibilityHelper.kt +++ b/compiler/fir/entrypoint/src/org/jetbrains/kotlin/fir/session/FirJvmOverridesBackwardCompatibilityHelper.kt @@ -11,7 +11,10 @@ import org.jetbrains.kotlin.fir.analysis.checkers.context.CheckerContext import org.jetbrains.kotlin.fir.analysis.checkers.toRegularClass import org.jetbrains.kotlin.fir.analysis.checkers.unsubstitutedScope import org.jetbrains.kotlin.fir.containingClass -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration +import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin +import org.jetbrains.kotlin.fir.declarations.FirProperty +import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.utils.isFinal import org.jetbrains.kotlin.fir.dispatchReceiverTypeOrNull import org.jetbrains.kotlin.fir.originalOrSelf @@ -50,7 +53,7 @@ object FirJvmOverridesBackwardCompatibilityHelper : FirOverridesBackwardCompatib visitedSymbols: MutableSet>, context: CheckerContext ): Boolean { - val fir = symbol.fir as? FirCallableMemberDeclaration<*> ?: return false + val fir = symbol.fir as? FirCallableMemberDeclaration ?: return false if (fir.isFinal) return false if (symbol in visitedSymbols) return true diff --git a/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt b/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt index 44b56fd54f9..f853d0fdaef 100644 --- a/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt +++ b/compiler/fir/fir-deserialization/src/org/jetbrains/kotlin/fir/deserialization/ClassDeserialization.kt @@ -24,7 +24,10 @@ import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCloneableSymbolProvide import org.jetbrains.kotlin.fir.resolve.providers.impl.FirCloneableSymbolProvider.Companion.CLONEABLE_CLASS_ID import org.jetbrains.kotlin.fir.scopes.FirScopeProvider import org.jetbrains.kotlin.fir.symbols.ConeTypeParameterLookupTag -import org.jetbrains.kotlin.fir.symbols.impl.* +import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl +import org.jetbrains.kotlin.fir.symbols.impl.FirEnumEntrySymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol import org.jetbrains.kotlin.fir.types.ConeAttributes import org.jetbrains.kotlin.fir.types.ConeClassLikeType import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef @@ -192,8 +195,8 @@ fun deserializeClassToSymbol( addCloneForArrayIfNeeded(classId, context.dispatchReceiver) addSerializableIfNeeded(classId) - declarations.sortWith(object : Comparator> { - override fun compare(a: FirDeclaration<*>, b: FirDeclaration<*>): Int { + declarations.sortWith(object : Comparator { + override fun compare(a: FirDeclaration, b: FirDeclaration): Int { // Reorder members based on their type and name only. // See FE 1.0's [DeserializedMemberScope#addMembers]. if (a is FirStatusOwner && b is FirStatusOwner) { diff --git a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirContractSerializer.kt b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirContractSerializer.kt index 035e997908f..837c14eab04 100644 --- a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirContractSerializer.kt +++ b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirContractSerializer.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.fir.serialization -import org.jetbrains.kotlin.contracts.description.* +import org.jetbrains.kotlin.contracts.description.EventOccurrencesRange import org.jetbrains.kotlin.fir.contracts.FirContractDescription import org.jetbrains.kotlin.fir.contracts.description.* import org.jetbrains.kotlin.fir.contracts.effects @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.metadata.deserialization.Flags class FirContractSerializer { fun serializeContractOfFunctionIfAny( - function: FirFunction<*>, + function: FirFunction, proto: ProtoBuf.Function.Builder, parentSerializer: FirElementSerializer ) { diff --git a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementAwareStringTable.kt b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementAwareStringTable.kt index 2d7581270c6..97b41f8d865 100644 --- a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementAwareStringTable.kt +++ b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementAwareStringTable.kt @@ -15,13 +15,13 @@ interface FirElementAwareStringTable : StringTable { fun getQualifiedClassNameIndex(classId: ClassId): Int = getQualifiedClassNameIndex(classId.asString(), classId.isLocal) - fun getFqNameIndex(classLikeDeclaration: FirClassLikeDeclaration<*>): Int { + fun getFqNameIndex(classLikeDeclaration: FirClassLikeDeclaration): Int { val classId = classLikeDeclaration.symbol.classId.takeIf { !it.isLocal } - ?: getLocalClassIdReplacement(classLikeDeclaration as FirClass<*>) + ?: getLocalClassIdReplacement(classLikeDeclaration as FirClass) ?: throw IllegalStateException("Cannot get FQ name of local class: ${classLikeDeclaration.render()}") return getQualifiedClassNameIndex(classId) } - fun getLocalClassIdReplacement(firClass: FirClass<*>): ClassId? = null + fun getLocalClassIdReplacement(firClass: FirClass): ClassId? = null } diff --git a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt index 574fcd192ca..2418a3535bd 100644 --- a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt +++ b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirElementSerializer.kt @@ -60,7 +60,7 @@ import org.jetbrains.kotlin.types.TypeApproximatorConfiguration class FirElementSerializer private constructor( private val session: FirSession, private val scopeSession: ScopeSession, - private val containingDeclaration: FirDeclaration<*>?, + private val containingDeclaration: FirDeclaration?, private val typeParameters: Interner, private val extension: FirSerializerExtension, private val typeTable: MutableTypeTable, @@ -96,7 +96,7 @@ class FirElementSerializer private constructor( return builder } - fun classProto(klass: FirClass<*>): ProtoBuf.Class.Builder { + fun classProto(klass: FirClass): ProtoBuf.Class.Builder { val builder = ProtoBuf.Class.newBuilder() val regularClass = klass as? FirRegularClass @@ -156,7 +156,7 @@ class FirElementSerializer private constructor( } } - val nestedClassifiers = klass.declarations.filterIsInstance>() + val nestedClassifiers = klass.declarations.filterIsInstance() for (nestedClassifier in nestedClassifiers) { if (nestedClassifier is FirTypeAlias) { typeAliasProto(nestedClassifier)?.let { builder.addTypeAlias(it) } @@ -218,13 +218,13 @@ class FirElementSerializer private constructor( } @OptIn(ExperimentalStdlibApi::class) - private fun FirClass<*>.declarations(): List> = buildList { + private fun FirClass.declarations(): List = buildList { val memberScope = defaultType().scope(session, scopeSession, FakeOverrideTypeCalculator.DoNothing) ?: error("Null scope for $this") fun addDeclarationIfNeeded(symbol: FirCallableSymbol<*>) { - val declaration = symbol.fir as? FirCallableMemberDeclaration<*> ?: return + val declaration = symbol.fir as? FirCallableMemberDeclaration ?: return if (declaration.isIntersectionOverride) { // This part is a kind of hack for case like // @@ -259,7 +259,7 @@ class FirElementSerializer private constructor( memberScope.processAllProperties(::addDeclarationIfNeeded) for (declaration in declarations) { - if (declaration is FirCallableMemberDeclaration<*> && declaration.isStatic) { + if (declaration is FirCallableMemberDeclaration && declaration.isStatic) { add(declaration) } } @@ -375,7 +375,7 @@ class FirElementSerializer private constructor( return builder } - fun functionProto(function: FirFunction<*>): ProtoBuf.Function.Builder? { + fun functionProto(function: FirFunction): ProtoBuf.Function.Builder? { if (!extension.shouldSerializeFunction(function)) return null val builder = ProtoBuf.Function.newBuilder() @@ -822,7 +822,7 @@ class FirElementSerializer private constructor( ) } - private fun createChildSerializer(declaration: FirDeclaration<*>): FirElementSerializer = + private fun createChildSerializer(declaration: FirDeclaration): FirElementSerializer = FirElementSerializer( session, scopeSession, declaration, Interner(typeParameters), extension, typeTable, versionRequirementTable, serializeTypeTableToFunction = false, @@ -834,18 +834,18 @@ class FirElementSerializer private constructor( private fun useTypeTable(): Boolean = extension.shouldUseTypeTable() - private fun FirDeclaration<*>.hasInlineClassTypesInSignature(): Boolean { + private fun FirDeclaration.hasInlineClassTypesInSignature(): Boolean { // TODO return false } - private fun FirCallableDeclaration<*>.isSuspendOrHasSuspendTypesInSignature(): Boolean { + private fun FirCallableDeclaration.isSuspendOrHasSuspendTypesInSignature(): Boolean { // TODO (types in signature) - return this is FirCallableMemberDeclaration<*> && this.isSuspend + return this is FirCallableMemberDeclaration && this.isSuspend } private fun writeVersionRequirementForInlineClasses( - klass: FirClass<*>, + klass: FirClass, builder: ProtoBuf.Class.Builder, versionRequirementTable: MutableVersionRequirementTable ) { @@ -937,7 +937,7 @@ class FirElementSerializer private constructor( return declaration.visibility.normalize() } - private fun getClassifierId(declaration: FirClassLikeDeclaration<*>): Int = + private fun getClassifierId(declaration: FirClassLikeDeclaration): Int = stringTable.getFqNameIndex(declaration) private fun getClassifierId(classId: ClassId): Int = @@ -982,7 +982,7 @@ class FirElementSerializer private constructor( fun create( session: FirSession, scopeSession: ScopeSession, - klass: FirClass<*>, + klass: FirClass, extension: FirSerializerExtension, parentSerializer: FirElementSerializer?, typeApproximator: AbstractTypeApproximator, diff --git a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirSerializerExtension.kt b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirSerializerExtension.kt index c7e0847fe98..e6c39407401 100644 --- a/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirSerializerExtension.kt +++ b/compiler/fir/fir-serialization/src/org/jetbrains/kotlin/fir/serialization/FirSerializerExtension.kt @@ -28,14 +28,14 @@ abstract class FirSerializerExtension { open fun shouldSerializeTypeAlias(typeAlias: FirTypeAlias): Boolean = true open fun shouldUseTypeTable(): Boolean = false open fun shouldUseNormalizedVisibility(): Boolean = false - open fun shouldSerializeFunction(function: FirFunction<*>): Boolean = false + open fun shouldSerializeFunction(function: FirFunction): Boolean = false open fun shouldSerializeProperty(property: FirProperty): Boolean = false open fun serializePackage(packageFqName: FqName, proto: ProtoBuf.Package.Builder) { } open fun serializeClass( - klass: FirClass<*>, + klass: FirClass, proto: ProtoBuf.Class.Builder, versionRequirementTable: MutableVersionRequirementTable, childSerializer: FirElementSerializer @@ -50,7 +50,7 @@ abstract class FirSerializerExtension { } open fun serializeFunction( - function: FirFunction<*>, + function: FirFunction, proto: ProtoBuf.Function.Builder, versionRequirementTable: MutableVersionRequirementTable?, childSerializer: FirElementSerializer @@ -91,7 +91,7 @@ abstract class FirSerializerExtension { get() = null interface ClassMembersProducer { - fun getCallableMembers(klass: FirClass<*>): Collection> + fun getCallableMembers(klass: FirClass): Collection } -} \ No newline at end of file +} diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmElementAwareStringTable.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmElementAwareStringTable.kt index 0734e6e0dec..416f38eb98e 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmElementAwareStringTable.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmElementAwareStringTable.kt @@ -21,7 +21,7 @@ class FirJvmElementAwareStringTable( private val components: Fir2IrComponents, nameResolver: JvmNameResolver? = null ) : JvmStringTable(nameResolver), FirElementAwareStringTable { - override fun getLocalClassIdReplacement(firClass: FirClass<*>): ClassId = + override fun getLocalClassIdReplacement(firClass: FirClass): ClassId = components.classifierStorage.getCachedIrClass(firClass)?.getLocalClassIdReplacement() ?: throw AssertionError("not a local class: ${firClass.symbol.classId}") @@ -33,4 +33,4 @@ class FirJvmElementAwareStringTable( ClassId(fqName.parent(), FqName.topLevel(fqName.shortName()), true) } } -} \ No newline at end of file +} diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmKotlinMangler.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmKotlinMangler.kt index c597d05f5bc..dc4621b2a2d 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmKotlinMangler.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmKotlinMangler.kt @@ -12,28 +12,28 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.signaturer.FirMangler @NoMutableState -class FirJvmKotlinMangler(private val session: FirSession) : AbstractKotlinMangler>(), FirMangler { +class FirJvmKotlinMangler(private val session: FirSession) : AbstractKotlinMangler(), FirMangler { - override val FirDeclaration<*>.mangleString: String + override val FirDeclaration.mangleString: String get() = getMangleComputer(MangleMode.FULL).computeMangle(this) - override val FirDeclaration<*>.signatureString: String + override val FirDeclaration.signatureString: String get() = getMangleComputer(MangleMode.SIGNATURE).computeMangle(this) - override val FirDeclaration<*>.fqnString: String + override val FirDeclaration.fqnString: String get() = getMangleComputer(MangleMode.FQNAME).computeMangle(this) - override fun FirDeclaration<*>.isExported(): Boolean = true + override fun FirDeclaration.isExported(): Boolean = true - override fun getExportChecker(): KotlinExportChecker> { - return object : KotlinExportChecker> { - override fun check(declaration: FirDeclaration<*>, type: SpecialDeclarationType): Boolean = true + override fun getExportChecker(): KotlinExportChecker { + return object : KotlinExportChecker { + override fun check(declaration: FirDeclaration, type: SpecialDeclarationType): Boolean = true - override fun FirDeclaration<*>.isPlatformSpecificExported(): Boolean = true + override fun FirDeclaration.isPlatformSpecificExported(): Boolean = true } } - override fun getMangleComputer(mode: MangleMode): KotlinMangleComputer> { + override fun getMangleComputer(mode: MangleMode): KotlinMangleComputer { return FirJvmMangleComputer(StringBuilder(256), mode, session) } } diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmMangleComputer.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmMangleComputer.kt index 31c3bc71c70..7115d6ec085 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmMangleComputer.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmMangleComputer.kt @@ -31,20 +31,20 @@ open class FirJvmMangleComputer( private val builder: StringBuilder, private val mode: MangleMode, private val session: FirSession -) : FirVisitor(), KotlinMangleComputer> { +) : FirVisitor(), KotlinMangleComputer { private val typeParameterContainer = ArrayList(4) private var isRealExpect = false - open fun FirFunction<*>.platformSpecificFunctionName(): String? = null + open fun FirFunction.platformSpecificFunctionName(): String? = null - open fun FirFunction<*>.platformSpecificSuffix(): String? = + open fun FirFunction.platformSpecificSuffix(): String? = if (this is FirSimpleFunction && name.asString() == "main") this@FirJvmMangleComputer.session.firProvider.getFirCallableContainerFile(symbol)?.name else null - open fun FirFunction<*>.specialValueParamPrefix(param: FirValueParameter): String = "" + open fun FirFunction.specialValueParamPrefix(param: FirValueParameter): String = "" private fun addReturnType(): Boolean = false @@ -81,10 +81,10 @@ open class FirJvmMangleComputer( } } - private fun FirDeclaration<*>.visitParent() { + private fun FirDeclaration.visitParent() { val (parentPackageFqName, parentClassId) = when (this) { - is FirCallableMemberDeclaration<*> -> this.containingClass()?.classId?.let { it.packageFqName to it } ?: return - is FirClassLikeDeclaration<*> -> this.symbol.classId.let { it.packageFqName to it.outerClassId } + is FirCallableMemberDeclaration -> this.containingClass()?.classId?.let { it.packageFqName to it } ?: return + is FirClassLikeDeclaration -> this.symbol.classId.let { it.packageFqName to it.outerClassId } else -> return } if (parentClassId != null && !parentClassId.isLocal) { @@ -100,7 +100,7 @@ open class FirJvmMangleComputer( } } - private fun FirDeclaration<*>.mangleSimpleDeclaration(name: String) { + private fun FirDeclaration.mangleSimpleDeclaration(name: String) { val l = builder.length visitParent() @@ -111,7 +111,7 @@ open class FirJvmMangleComputer( builder.appendName(name) } - private fun FirFunction<*>.mangleFunction(isCtor: Boolean, isStatic: Boolean, container: FirDeclaration<*>) { + private fun FirFunction.mangleFunction(isCtor: Boolean, isStatic: Boolean, container: FirDeclaration) { isRealExpect = isRealExpect || (this as? FirStatusOwner)?.isExpect == true @@ -138,7 +138,7 @@ open class FirJvmMangleComputer( mangleSignature(isCtor, isStatic) } - private fun FirFunction<*>.mangleSignature(isCtor: Boolean, isStatic: Boolean) { + private fun FirFunction.mangleSignature(isCtor: Boolean, isStatic: Boolean) { if (!mode.signature) { return } @@ -171,7 +171,7 @@ open class FirJvmMangleComputer( if (this in parent.typeParameters) { return parent } - if (parent is FirCallableDeclaration<*>) { + if (parent is FirCallableDeclaration) { val overriddenFir = parent.originalForSubstitutionOverride if (overriddenFir is FirTypeParametersOwner && this in overriddenFir.typeParameters) { return parent @@ -317,7 +317,7 @@ open class FirJvmMangleComputer( override fun visitConstructor(constructor: FirConstructor, data: Boolean) = constructor.mangleFunction(isCtor = true, isStatic = false, constructor) - override fun computeMangle(declaration: FirDeclaration<*>): String { + override fun computeMangle(declaration: FirDeclaration): String { declaration.accept(this, true) return builder.toString() } diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmSerializerExtension.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmSerializerExtension.kt index 1f461bb54a8..26e364acbb8 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmSerializerExtension.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirJvmSerializerExtension.kt @@ -59,7 +59,7 @@ class FirJvmSerializerExtension( private val jvmDefaultMode = state.jvmDefaultMode override fun shouldUseTypeTable(): Boolean = useTypeTable - override fun shouldSerializeFunction(function: FirFunction<*>): Boolean { + override fun shouldSerializeFunction(function: FirFunction): Boolean { return classBuilderMode != ClassBuilderMode.ABI || function !is FirSimpleFunction || function.visibility != Visibilities.Private } @@ -77,7 +77,7 @@ class FirJvmSerializerExtension( } override fun serializeClass( - klass: FirClass<*>, + klass: FirClass, proto: ProtoBuf.Class.Builder, versionRequirementTable: MutableVersionRequirementTable, childSerializer: FirElementSerializer @@ -103,7 +103,7 @@ class FirJvmSerializerExtension( // Interfaces which have @JvmDefault members somewhere in the hierarchy need the compiler 1.2.40+ // so that the generated bridges in subclasses would call the super members correctly private fun writeVersionRequirementForJvmDefaultIfNeeded( - klass: FirClass<*>, + klass: FirClass, builder: ProtoBuf.Class.Builder, versionRequirementTable: MutableVersionRequirementTable ) { @@ -182,7 +182,7 @@ class FirJvmSerializerExtension( } override fun serializeFunction( - function: FirFunction<*>, + function: FirFunction, proto: ProtoBuf.Function.Builder, versionRequirementTable: MutableVersionRequirementTable?, childSerializer: FirElementSerializer @@ -208,7 +208,7 @@ class FirJvmSerializerExtension( } } - private fun FirFunction<*>.needsInlineParameterNullCheckRequirement(): Boolean = + private fun FirFunction.needsInlineParameterNullCheckRequirement(): Boolean = this is FirSimpleFunction && isInline && !isSuspend && !isParamAssertionsDisabled && !Visibilities.isPrivate(visibility) && (valueParameters.any { it.returnTypeRef.coneType.isBuiltinFunctionalType(session) } || @@ -284,7 +284,7 @@ class FirJvmSerializerExtension( bindings.get(slice, key) ?: globalBindings.get(slice, key) private inner class SignatureSerializer { - fun methodSignature(function: FirFunction<*>?, method: Method): JvmProtoBuf.JvmMethodSignature? { + fun methodSignature(function: FirFunction?, method: Method): JvmProtoBuf.JvmMethodSignature? { val builder = JvmProtoBuf.JvmMethodSignature.newBuilder() if (function == null || (function as? FirSimpleFunction)?.name?.asString() != method.name) { builder.name = stringTable.getStringIndex(method.name) @@ -297,7 +297,7 @@ class FirJvmSerializerExtension( // We don't write those signatures which can be trivially reconstructed from already serialized data // TODO: make JvmStringTable implement NameResolver and use JvmProtoBufUtil#getJvmMethodSignature instead - private fun requiresSignature(function: FirFunction<*>, desc: String): Boolean { + private fun requiresSignature(function: FirFunction, desc: String): Boolean { val sb = StringBuilder() sb.append("(") val receiverTypeRef = function.receiverTypeRef @@ -375,9 +375,9 @@ class FirJvmSerializerExtension( } companion object { - val METHOD_FOR_FIR_FUNCTION = JvmSerializationBindings.SerializationMappingSlice.create, Method>() + val METHOD_FOR_FIR_FUNCTION = JvmSerializationBindings.SerializationMappingSlice.create() val FIELD_FOR_PROPERTY = JvmSerializationBindings.SerializationMappingSlice.create>() - val SYNTHETIC_METHOD_FOR_FIR_VARIABLE = JvmSerializationBindings.SerializationMappingSlice.create, Method>() + val SYNTHETIC_METHOD_FOR_FIR_VARIABLE = JvmSerializationBindings.SerializationMappingSlice.create() } } diff --git a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirMetadataSerializer.kt b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirMetadataSerializer.kt index 53362e92b9d..0ab6346027d 100644 --- a/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirMetadataSerializer.kt +++ b/compiler/fir/fir2ir/jvm-backend/src/org/jetbrains/kotlin/fir/backend/jvm/FirMetadataSerializer.kt @@ -75,7 +75,7 @@ class FirMetadataSerializer( } } - private fun FirFunction<*>.copyToFreeAnonymousFunction(): FirAnonymousFunction { + private fun FirFunction.copyToFreeAnonymousFunction(): FirAnonymousFunction { val function = this return buildAnonymousFunction { val typeParameterSet = function.typeParameters.filterIsInstanceTo(mutableSetOf()) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt index 958b80ea1e0..3e53875516c 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt @@ -30,10 +30,12 @@ import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticPropertySymbol import org.jetbrains.kotlin.fir.resolve.calls.originalConstructorIfTypeAlias import org.jetbrains.kotlin.fir.resolve.providers.FirProvider -import org.jetbrains.kotlin.fir.scopes.* +import org.jetbrains.kotlin.fir.scopes.FirTypeScope +import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.scopes.impl.delegatedWrapperData -import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol +import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope import org.jetbrains.kotlin.fir.symbols.AccessorSymbol +import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.ir.IrElement @@ -293,7 +295,7 @@ internal tailrec fun FirCallableSymbol<*>.unwrapCallRepresentative(root: FirCall } internal fun FirSimpleFunction.generateOverriddenFunctionSymbols( - containingClass: FirClass<*>, + containingClass: FirClass, session: FirSession, scopeSession: ScopeSession, declarationStorage: Fir2IrDeclarationStorage, @@ -321,7 +323,7 @@ internal fun FirSimpleFunction.generateOverriddenFunctionSymbols( fun FirTypeScope.processOverriddenFunctionsFromSuperClasses( functionSymbol: FirNamedFunctionSymbol, - containingClass: FirClass<*>, + containingClass: FirClass, processor: (FirNamedFunctionSymbol) -> ProcessorAction ): ProcessorAction = processDirectOverriddenFunctionsWithBaseScope(functionSymbol) { overridden, baseScope -> val unwrapped = @@ -337,7 +339,7 @@ fun FirTypeScope.processOverriddenFunctionsFromSuperClasses( fun FirTypeScope.processOverriddenPropertiesFromSuperClasses( propertySymbol: FirPropertySymbol, - containingClass: FirClass<*>, + containingClass: FirClass, processor: (FirPropertySymbol) -> ProcessorAction ): ProcessorAction = processDirectOverriddenPropertiesWithBaseScope(propertySymbol) { overridden, baseScope -> if (overridden.containingClass() == containingClass.symbol.toLookupTag()) { @@ -347,7 +349,7 @@ fun FirTypeScope.processOverriddenPropertiesFromSuperClasses( } } -private fun FirClass<*>.getSuperTypesAsIrClasses( +private fun FirClass.getSuperTypesAsIrClasses( declarationStorage: Fir2IrDeclarationStorage ): Set? { val irClass = @@ -357,7 +359,7 @@ private fun FirClass<*>.getSuperTypesAsIrClasses( } internal fun FirProperty.generateOverriddenPropertySymbols( - containingClass: FirClass<*>, + containingClass: FirClass, session: FirSession, scopeSession: ScopeSession, declarationStorage: Fir2IrDeclarationStorage, @@ -384,7 +386,7 @@ internal fun FirProperty.generateOverriddenPropertySymbols( } internal fun FirProperty.generateOverriddenAccessorSymbols( - containingClass: FirClass<*>, + containingClass: FirClass, isGetter: Boolean, session: FirSession, scopeSession: ScopeSession, @@ -463,7 +465,7 @@ internal fun IrDeclarationParent.declareThisReceiverParameter( this.parent = this@declareThisReceiverParameter } -fun FirClass<*>.irOrigin(firProvider: FirProvider): IrDeclarationOrigin = when { +fun FirClass.irOrigin(firProvider: FirProvider): IrDeclarationOrigin = when { firProvider.getFirClassifierContainerFileIfAny(symbol) != null -> IrDeclarationOrigin.DEFINED isJava -> IrDeclarationOrigin.IR_EXTERNAL_JAVA_DECLARATION_STUB else -> IrDeclarationOrigin.IR_EXTERNAL_DECLARATION_STUB diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt index a870f0651e2..25393cd1054 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrClassifierStorage.kt @@ -16,7 +16,10 @@ import org.jetbrains.kotlin.fir.lazy.Fir2IrLazyClass import org.jetbrains.kotlin.fir.resolve.firProvider import org.jetbrains.kotlin.fir.resolve.symbolProvider import org.jetbrains.kotlin.fir.resolve.toSymbol -import org.jetbrains.kotlin.fir.symbols.* +import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag +import org.jetbrains.kotlin.fir.symbols.Fir2IrClassSymbol +import org.jetbrains.kotlin.fir.symbols.Fir2IrEnumEntrySymbol +import org.jetbrains.kotlin.fir.symbols.Fir2IrTypeAliasSymbol import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl import org.jetbrains.kotlin.fir.symbols.impl.FirClassSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol @@ -118,14 +121,14 @@ class Fir2IrClassifierStorage( } } - private fun IrClass.declareTypeParameters(klass: FirClass<*>) { + private fun IrClass.declareTypeParameters(klass: FirClass) { if (klass is FirRegularClass) { preCacheTypeParameters(klass) setTypeParameters(klass) } } - private fun IrClass.declareSupertypes(klass: FirClass<*>) { + private fun IrClass.declareSupertypes(klass: FirClass) { superTypes = klass.superTypeRefs.map { superTypeRef -> superTypeRef.toIrType() } } @@ -133,13 +136,13 @@ class Fir2IrClassifierStorage( inlineClassRepresentation = computeInlineClassRepresentation(klass) } - private fun IrClass.declareSupertypesAndTypeParameters(klass: FirClass<*>): IrClass { + private fun IrClass.declareSupertypesAndTypeParameters(klass: FirClass): IrClass { declareTypeParameters(klass) declareSupertypes(klass) return this } - fun getCachedIrClass(klass: FirClass<*>): IrClass? { + fun getCachedIrClass(klass: FirClass): IrClass? { return if (klass is FirAnonymousObject || klass is FirRegularClass && klass.visibility == Visibilities.Local) { localStorage.getLocalClass(klass) } else { @@ -148,12 +151,12 @@ class Fir2IrClassifierStorage( } internal fun getCachedLocalClass(lookupTag: ConeClassLikeLookupTag): IrClass? { - return localStorage.getLocalClass(lookupTag.toSymbol(session)!!.fir as FirClass<*>) + return localStorage.getLocalClass(lookupTag.toSymbol(session)!!.fir as FirClass) } private fun FirRegularClass.enumClassModality(): Modality { return when { - declarations.any { it is FirCallableMemberDeclaration<*> && it.modality == Modality.ABSTRACT } -> { + declarations.any { it is FirCallableMemberDeclaration && it.modality == Modality.ABSTRACT } -> { Modality.ABSTRACT } declarations.any { it is FirEnumEntry && it.initializer != null } -> { @@ -165,7 +168,7 @@ class Fir2IrClassifierStorage( } } - private fun createIrClass(klass: FirClass<*>, parent: IrDeclarationParent? = null): IrClass { + private fun createIrClass(klass: FirClass, parent: IrDeclarationParent? = null): IrClass { // NB: klass can be either FirRegularClass or FirAnonymousObject if (klass is FirAnonymousObject) { return createIrAnonymousObject(klass, irParent = parent) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConversionScope.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConversionScope.kt index 50df0019ea9..77e5e0056d4 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConversionScope.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConversionScope.kt @@ -5,7 +5,10 @@ package org.jetbrains.kotlin.fir.backend -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirClass +import org.jetbrains.kotlin.fir.declarations.FirConstructor +import org.jetbrains.kotlin.fir.declarations.FirProperty +import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor import org.jetbrains.kotlin.fir.expressions.FirReturnExpression import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.util.parentClassOrNull @@ -13,7 +16,7 @@ import org.jetbrains.kotlin.ir.util.parentClassOrNull class Fir2IrConversionScope { private val parentStack = mutableListOf() - private val containingFirClassStack = mutableListOf>() + private val containingFirClassStack = mutableListOf() fun withParent(parent: T, f: T.() -> Unit): T { if (parent == null) return parent @@ -25,7 +28,7 @@ class Fir2IrConversionScope { fun containingFileIfAny(): IrFile? = parentStack.getOrNull(0) as? IrFile - fun withContainingFirClass(containingFirClass: FirClass<*>, f: () -> Unit) { + fun withContainingFirClass(containingFirClass: FirClass, f: () -> Unit) { containingFirClassStack += containingFirClass f() containingFirClassStack.removeAt(containingFirClassStack.size - 1) @@ -48,7 +51,7 @@ class Fir2IrConversionScope { return declaration } - fun containerFirClass(): FirClass<*>? = containingFirClassStack.lastOrNull() + fun containerFirClass(): FirClass? = containingFirClassStack.lastOrNull() private val functionStack = mutableListOf() diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt index b95e357049e..b6c75907662 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrConverter.kt @@ -164,7 +164,7 @@ class Fir2IrConverter( return irClass } - private fun delegatedMembers(irClass: IrClass): List> { + private fun delegatedMembers(irClass: IrClass): List { return irClass.declarations.filter { it.origin == IrDeclarationOrigin.DELEGATED_MEMBER }.mapNotNull { @@ -175,7 +175,7 @@ class Fir2IrConverter( // Sort declarations so that all non-synthetic declarations are before synthetic ones. // This is needed because converting synthetic fields for implementation delegation needs to know // existing declarations in the class to avoid adding redundant delegated members. - private fun syntheticPropertiesLast(declarations: List>): Iterable> { + private fun syntheticPropertiesLast(declarations: List): Iterable { return declarations.sortedBy { it !is FirField && it.isSynthetic } } @@ -199,8 +199,8 @@ class Fir2IrConverter( } private fun processMemberDeclaration( - declaration: FirDeclaration<*>, - containingClass: FirClass<*>?, + declaration: FirDeclaration, + containingClass: FirClass?, parent: IrDeclarationParent ): IrDeclaration? { val isLocal = containingClass != null && diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt index 62246326be2..ba88f0fdf99 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrDeclarationStorage.kt @@ -70,7 +70,7 @@ class Fir2IrDeclarationStorage( private val fileCache = ConcurrentHashMap() - private val functionCache = ConcurrentHashMap, IrSimpleFunction>() + private val functionCache = ConcurrentHashMap() private val constructorCache = ConcurrentHashMap() @@ -93,12 +93,12 @@ class Fir2IrDeclarationStorage( // so remember that in class B there's a fake override $2 for real $1. // // Thus we may obtain it by fakeOverridesInClass[ir(B)][fir(A::foo)] -> fir(B::foo) - private val fakeOverridesInClass = mutableMapOf, FirCallableDeclaration<*>>>() + private val fakeOverridesInClass = mutableMapOf>() // For pure fields (from Java) only private val fieldToPropertyCache = ConcurrentHashMap, IrProperty>() - private val delegatedReverseCache = ConcurrentHashMap>() + private val delegatedReverseCache = ConcurrentHashMap() private val fieldCache = ConcurrentHashMap() @@ -106,7 +106,7 @@ class Fir2IrDeclarationStorage( private val delegatedMemberGenerator = DelegatedMemberGenerator(components) - private fun areCompatible(firFunction: FirFunction<*>, irFunction: IrFunction): Boolean { + private fun areCompatible(firFunction: FirFunction, irFunction: IrFunction): Boolean { if (firFunction is FirSimpleFunction && irFunction is IrSimpleFunction) { if (irFunction.name != firFunction.name) return false } @@ -253,7 +253,7 @@ class Fir2IrDeclarationStorage( } } - internal fun findIrParent(callableDeclaration: FirCallableDeclaration<*>): IrDeclarationParent? { + internal fun findIrParent(callableDeclaration: FirCallableDeclaration): IrDeclarationParent? { val firBasedSymbol = callableDeclaration.symbol val callableId = firBasedSymbol.callableId return findIrParent(callableId.packageName, callableDeclaration.containingClass(), firBasedSymbol) @@ -295,7 +295,7 @@ class Fir2IrDeclarationStorage( } private fun T.declareParameters( - function: FirFunction<*>?, + function: FirFunction?, containingClass: IrClass?, isStatic: Boolean, // Can be not-null only for property accessors @@ -368,7 +368,7 @@ class Fir2IrDeclarationStorage( } private fun T.bindAndDeclareParameters( - function: FirFunction<*>?, + function: FirFunction?, irParent: IrDeclarationParent?, thisReceiverOwner: IrClass? = irParent as? IrClass, isStatic: Boolean, @@ -379,14 +379,14 @@ class Fir2IrDeclarationStorage( return this } - fun T.putParametersInScope(function: FirFunction<*>): T { + fun T.putParametersInScope(function: FirFunction): T { for ((firParameter, irParameter) in function.valueParameters.zip(valueParameters)) { localStorage.putParameter(firParameter, irParameter) } return this } - fun getCachedIrFunction(function: FirFunction<*>): IrSimpleFunction? = + fun getCachedIrFunction(function: FirFunction): IrSimpleFunction? = if (function is FirSimpleFunction) getCachedIrFunction(function) else localStorage.getLocalFunction(function) @@ -412,7 +412,7 @@ class Fir2IrDeclarationStorage( delegatedReverseCache[irFunction] = function } - fun originalDeclarationForDelegated(irDeclaration: IrDeclaration): FirDeclaration<*>? = delegatedReverseCache[irDeclaration] + fun originalDeclarationForDelegated(irDeclaration: IrDeclaration): FirDeclaration? = delegatedReverseCache[irDeclaration] internal fun declareIrSimpleFunction( signature: IdSignature?, @@ -435,7 +435,7 @@ class Fir2IrDeclarationStorage( } fun createIrFunction( - function: FirFunction<*>, + function: FirFunction, irParent: IrDeclarationParent?, thisReceiverOwner: IrClass? = irParent as? IrClass, origin: IrDeclarationOrigin = IrDeclarationOrigin.DEFINED, @@ -867,16 +867,16 @@ class Fir2IrDeclarationStorage( internal fun saveFakeOverrideInClass( irClass: IrClass, - originalDeclaration: FirCallableDeclaration<*>, - fakeOverride: FirCallableDeclaration<*> + originalDeclaration: FirCallableDeclaration, + fakeOverride: FirCallableDeclaration ) { fakeOverridesInClass.getOrPut(irClass, ::mutableMapOf)[originalDeclaration] = fakeOverride } fun getFakeOverrideInClass( irClass: IrClass, - callableDeclaration: FirCallableDeclaration<*> - ): FirCallableDeclaration<*>? { + callableDeclaration: FirCallableDeclaration + ): FirCallableDeclaration? { if (irClass is Fir2IrLazyClass) { irClass.getFakeOverridesByName(callableDeclaration.symbol.callableId.callableName) } @@ -885,7 +885,7 @@ class Fir2IrDeclarationStorage( fun getCachedIrField(field: FirField): IrField? = fieldCache[field] - fun createIrFieldAndDelegatedMembers(field: FirField, owner: FirClass<*>, irClass: IrClass): IrField { + fun createIrFieldAndDelegatedMembers(field: FirField, owner: FirClass, irClass: IrClass): IrField { val irField = createIrField(field, origin = IrDeclarationOrigin.DELEGATE) irField.setAndModifyParent(irClass) delegatedMemberGenerator.generate(irField, field, owner, irClass) @@ -968,7 +968,7 @@ class Fir2IrDeclarationStorage( ) fun createIrVariable( - variable: FirVariable<*>, + variable: FirVariable, irParent: IrDeclarationParent, givenOrigin: IrDeclarationOrigin? = null ): IrVariable = convertCatching(variable) { @@ -1145,7 +1145,7 @@ class Fir2IrDeclarationStorage( private inline fun < reified FS : FirCallableSymbol<*>, - reified F : FirCallableDeclaration<*>, + reified F : FirCallableDeclaration, I : IrSymbolOwner, > getIrCallableSymbol( firSymbol: FS, @@ -1235,7 +1235,7 @@ class Fir2IrDeclarationStorage( } } - private fun getIrVariableSymbol(firVariable: FirVariable<*>): IrVariableSymbol { + private fun getIrVariableSymbol(firVariable: FirVariable): IrVariableSymbol { return localStorage.getVariable(firVariable)?.symbol ?: run { throw IllegalArgumentException("Cannot find variable ${firVariable.render()} in local storage") @@ -1267,8 +1267,8 @@ class Fir2IrDeclarationStorage( } private fun IrMutableAnnotationContainer.convertAnnotationsFromLibrary(firAnnotationContainer: FirAnnotationContainer) { - if ((firAnnotationContainer as? FirDeclaration<*>)?.isFromLibrary == true || - (firAnnotationContainer is FirCallableMemberDeclaration<*> && firAnnotationContainer.isSubstitutionOrIntersectionOverride) + if ((firAnnotationContainer as? FirDeclaration)?.isFromLibrary == true || + (firAnnotationContainer is FirCallableMemberDeclaration && firAnnotationContainer.isSubstitutionOrIntersectionOverride) ) { annotationGenerator.generate(this, firAnnotationContainer) } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt index e8db6479639..8fd8ff57eec 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrImplicitCastInserter.kt @@ -6,8 +6,6 @@ package org.jetbrains.kotlin.fir.backend import org.jetbrains.kotlin.fir.FirElement -import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction -import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirTypeAlias import org.jetbrains.kotlin.fir.expressions.* @@ -28,7 +26,6 @@ import org.jetbrains.kotlin.ir.types.* import org.jetbrains.kotlin.ir.util.classId import org.jetbrains.kotlin.ir.util.parentAsClass import org.jetbrains.kotlin.types.AbstractTypeChecker -import org.jetbrains.kotlin.types.SmartcastStability class Fir2IrImplicitCastInserter( private val components: Fir2IrComponents @@ -295,7 +292,7 @@ class Fir2IrImplicitCastInserter( ): IrExpression { val referencedDeclaration = ((calleeReference as? FirResolvedNamedReference)?.resolvedSymbol as? FirCallableSymbol<*>)?.unwrapCallRepresentative() - ?.fir as? FirCallableMemberDeclaration<*> + ?.fir as? FirCallableMemberDeclaration val dispatchReceiverType = referencedDeclaration?.dispatchReceiverType as? ConeClassLikeType diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrLocalStorage.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrLocalStorage.kt index 4a3ae5f2515..93eef2aca44 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrLocalStorage.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrLocalStorage.kt @@ -7,13 +7,12 @@ package org.jetbrains.kotlin.fir.backend import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.ir.declarations.* -import org.jetbrains.kotlin.name.ClassId class Fir2IrLocalStorage { private val cacheStack = mutableListOf() - private val localClassCache = mutableMapOf, IrClass>() + private val localClassCache = mutableMapOf() fun enterCallable() { cacheStack += Fir2IrScopeCache() @@ -32,14 +31,14 @@ class Fir2IrLocalStorage { return null } - fun getVariable(variable: FirVariable<*>): IrVariable? = + fun getVariable(variable: FirVariable): IrVariable? = last { getVariable(variable) } - fun getLocalClass(localClass: FirClass<*>): IrClass? { + fun getLocalClass(localClass: FirClass): IrClass? { return localClassCache[localClass] } - fun getLocalFunction(localFunction: FirFunction<*>): IrSimpleFunction? = + fun getLocalFunction(localFunction: FirFunction): IrSimpleFunction? = last { getLocalFunction(localFunction) } fun getDelegatedProperty(property: FirProperty): IrLocalDelegatedProperty? = @@ -56,19 +55,19 @@ class Fir2IrLocalStorage { cacheStack.last().putParameter(firParameter, irParameter) } - fun putVariable(firVariable: FirVariable<*>, irVariable: IrVariable) { + fun putVariable(firVariable: FirVariable, irVariable: IrVariable) { cacheStack.last().putVariable(firVariable, irVariable) } - fun putLocalClass(firClass: FirClass<*>, irClass: IrClass) { + fun putLocalClass(firClass: FirClass, irClass: IrClass) { localClassCache[firClass] = irClass } - fun putLocalFunction(firFunction: FirFunction<*>, irFunction: IrSimpleFunction) { + fun putLocalFunction(firFunction: FirFunction, irFunction: IrSimpleFunction) { cacheStack.last().putLocalFunction(firFunction, irFunction) } fun putDelegatedProperty(firProperty: FirProperty, irProperty: IrLocalDelegatedProperty) { cacheStack.last().putDelegatedProperty(firProperty, irProperty) } -} \ No newline at end of file +} diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrScopeCache.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrScopeCache.kt index 5bcc1449caa..43b33317664 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrScopeCache.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrScopeCache.kt @@ -16,9 +16,9 @@ import org.jetbrains.kotlin.ir.declarations.IrVariable class Fir2IrScopeCache { private val parameterCache = mutableMapOf() - private val variableCache = mutableMapOf, IrVariable>() + private val variableCache = mutableMapOf() - private val localFunctionCache = mutableMapOf, IrSimpleFunction>() + private val localFunctionCache = mutableMapOf() private val delegatedPropertyCache = mutableMapOf() @@ -28,15 +28,15 @@ class Fir2IrScopeCache { parameterCache[firParameter] = irParameter } - fun getVariable(variable: FirVariable<*>): IrVariable? = variableCache[variable] + fun getVariable(variable: FirVariable): IrVariable? = variableCache[variable] - fun putVariable(firVariable: FirVariable<*>, irVariable: IrVariable) { + fun putVariable(firVariable: FirVariable, irVariable: IrVariable) { variableCache[firVariable] = irVariable } - fun getLocalFunction(localFunction: FirFunction<*>): IrSimpleFunction? = localFunctionCache[localFunction] + fun getLocalFunction(localFunction: FirFunction): IrSimpleFunction? = localFunctionCache[localFunction] - fun putLocalFunction(localFunction: FirFunction<*>, irFunction: IrSimpleFunction) { + fun putLocalFunction(localFunction: FirFunction, irFunction: IrSimpleFunction) { require(localFunction !is FirSimpleFunction || localFunction.visibility == Visibilities.Local) localFunctionCache[localFunction] = irFunction } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrSignatureComposer.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrSignatureComposer.kt index 38148a3a322..1e3789030a6 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrSignatureComposer.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrSignatureComposer.kt @@ -11,6 +11,6 @@ import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag import org.jetbrains.kotlin.ir.util.IdSignature interface Fir2IrSignatureComposer { - fun composeSignature(declaration: FirDeclaration<*>, containingClass: ConeClassLikeLookupTag? = null): IdSignature? + fun composeSignature(declaration: FirDeclaration, containingClass: ConeClassLikeLookupTag? = null): IdSignature? fun composeAccessorSignature(property: FirProperty, isSetter: Boolean, containingClass: ConeClassLikeLookupTag? = null): IdSignature? } diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt index 135add93017..cdc7d25ef5e 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/Fir2IrVisitor.kt @@ -90,7 +90,7 @@ class Fir2IrVisitor( } } - private fun FirDeclaration<*>.toIrDeclaration(): IrDeclaration = + private fun FirDeclaration.toIrDeclaration(): IrDeclaration = accept(this@Fir2IrVisitor, null) as IrDeclaration // ================================================================================== diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/FirMetadataSource.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/FirMetadataSource.kt index b037681579e..3332a0e89cf 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/FirMetadataSource.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/FirMetadataSource.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.ir.declarations.MetadataSource import org.jetbrains.kotlin.name.Name sealed class FirMetadataSource : MetadataSource { - abstract val fir: FirDeclaration<*> + abstract val fir: FirDeclaration val declarationSiteSession: FirSession get() = fir.moduleData.session @@ -28,9 +28,9 @@ sealed class FirMetadataSource : MetadataSource { class File(override val fir: FirFile) : FirMetadataSource(), MetadataSource.File - class Class(override val fir: FirClass<*>) : FirMetadataSource(), MetadataSource.Class + class Class(override val fir: FirClass) : FirMetadataSource(), MetadataSource.Class - class Function(override val fir: FirFunction<*>) : FirMetadataSource(), MetadataSource.Function + class Function(override val fir: FirFunction) : FirMetadataSource(), MetadataSource.Function class Property(override val fir: FirProperty) : FirMetadataSource(), MetadataSource.Property { override val isConst: Boolean get() = fir.isConst diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AdapterGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AdapterGenerator.kt index 66f1f07d67c..7db0c354ea2 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AdapterGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/AdapterGenerator.kt @@ -11,7 +11,9 @@ import org.jetbrains.kotlin.fir.backend.Fir2IrComponents import org.jetbrains.kotlin.fir.backend.Fir2IrConversionScope import org.jetbrains.kotlin.fir.backend.FirMetadataSource import org.jetbrains.kotlin.fir.backend.convertWithOffsets -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirFunction +import org.jetbrains.kotlin.fir.declarations.FirStatusOwner +import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.declarations.utils.* import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression @@ -170,7 +172,7 @@ internal class AdapterGenerator( callableReferenceAccess: FirCallableReferenceAccess, startOffset: Int, endOffset: Int, - firAdaptee: FirFunction<*>, + firAdaptee: FirFunction, adaptee: IrFunction, type: IrSimpleType, boundDispatchReceiver: IrExpression?, @@ -260,7 +262,7 @@ internal class AdapterGenerator( private fun createAdapteeCallForCallableReference( callableReferenceAccess: FirCallableReferenceAccess, - firAdaptee: FirFunction<*>, + firAdaptee: FirFunction, adapteeSymbol: IrFunctionSymbol, adapterFunction: IrFunction, boundDispatchReceiver: IrExpression?, diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt index 81f94af09c8..40ea4f9a09d 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/CallAndReferenceGenerator.kt @@ -39,7 +39,9 @@ import org.jetbrains.kotlin.ir.expressions.impl.* import org.jetbrains.kotlin.ir.symbols.* import org.jetbrains.kotlin.ir.symbols.impl.IrFieldSymbolImpl import org.jetbrains.kotlin.ir.types.* -import org.jetbrains.kotlin.ir.util.* +import org.jetbrains.kotlin.ir.util.isFunctionTypeOrSubtype +import org.jetbrains.kotlin.ir.util.isInterface +import org.jetbrains.kotlin.ir.util.render import org.jetbrains.kotlin.psi2ir.generators.hasNoSideEffects import org.jetbrains.kotlin.types.AbstractTypeChecker @@ -388,7 +390,7 @@ class CallAndReferenceGenerator( this.declarationStorage.getIrConstructorSymbol(it) } ?: run { // Fallback for FirReferencePlaceholderForResolvedAnnotations from jar - val fir = coneType.lookupTag.toSymbol(session)?.fir as? FirClass<*> + val fir = coneType.lookupTag.toSymbol(session)?.fir as? FirClass var constructorSymbol: FirConstructorSymbol? = null fir?.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = true)?.processDeclaredConstructors { if (it.fir.isPrimary && constructorSymbol == null) { @@ -463,7 +465,7 @@ class CallAndReferenceGenerator( } } - private fun FirFunctionCall.buildSubstitutorByCalledFunction(function: FirFunction<*>?): ConeSubstitutor? { + private fun FirFunctionCall.buildSubstitutorByCalledFunction(function: FirFunction?): ConeSubstitutor? { if (function == null) return null val map = mutableMapOf() for ((index, typeParameter) in function.typeParameters.withIndex()) { diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt index 701f996dc4f..fbdf63e1bac 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/ClassMemberGenerator.kt @@ -45,7 +45,7 @@ internal class ClassMemberGenerator( private fun applyParentFromStackTo(declaration: T): T = conversionScope.applyParentFromStackTo(declaration) - fun convertClassContent(irClass: IrClass, klass: FirClass<*>) { + fun convertClassContent(irClass: IrClass, klass: FirClass) { declarationStorage.enterScope(irClass) conversionScope.withClass(irClass) { val primaryConstructor = klass.primaryConstructor @@ -82,7 +82,7 @@ internal class ClassMemberGenerator( declarationStorage.leaveScope(irClass) } - fun convertFunctionContent(irFunction: T, firFunction: FirFunction<*>?, containingClass: FirClass<*>?): T { + fun convertFunctionContent(irFunction: T, firFunction: FirFunction?, containingClass: FirClass?): T { conversionScope.withParent(irFunction) { if (firFunction != null) { if (irFunction !is IrConstructor || !irFunction.isPrimary) { @@ -155,7 +155,7 @@ internal class ClassMemberGenerator( return irFunction } - fun convertPropertyContent(irProperty: IrProperty, property: FirProperty, containingClass: FirClass<*>?): IrProperty { + fun convertPropertyContent(irProperty: IrProperty, property: FirProperty, containingClass: FirClass?): IrProperty { val initializer = property.initializer val delegate = property.delegate val propertyType = property.returnTypeRef.toIrType() @@ -229,7 +229,7 @@ internal class ClassMemberGenerator( propertyType: IrType, isDefault: Boolean, isGetter: Boolean, - containingClass: FirClass<*>? + containingClass: FirClass? ) { conversionScope.withFunction(this) { applyParentFromStackTo(this) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DataClassMembersGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DataClassMembersGenerator.kt index 11ae8d6406d..7d26cace35f 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DataClassMembersGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DataClassMembersGenerator.kt @@ -62,10 +62,10 @@ import org.jetbrains.kotlin.util.OperatorNameConventions.TO_STRING @OptIn(ObsoleteDescriptorBasedAPI::class) class DataClassMembersGenerator(val components: Fir2IrComponents) { - fun generateInlineClassMembers(klass: FirClass<*>, irClass: IrClass): List> = + fun generateInlineClassMembers(klass: FirClass, irClass: IrClass): List = MyDataClassMethodsGenerator(irClass, klass.symbol.toLookupTag(), IrDeclarationOrigin.GENERATED_INLINE_CLASS_MEMBER).generate(klass) - fun generateDataClassMembers(klass: FirClass<*>, irClass: IrClass): List> = + fun generateDataClassMembers(klass: FirClass, irClass: IrClass): List = MyDataClassMethodsGenerator(irClass, klass.symbol.toLookupTag(), IrDeclarationOrigin.GENERATED_DATA_CLASS_MEMBER).generate(klass) fun generateDataClassComponentBody(irFunction: IrFunction, lookupTag: ConeClassLikeLookupTag) = @@ -179,14 +179,14 @@ class DataClassMembersGenerator(val components: Fir2IrComponents) { (this.name == HASHCODE_NAME && matchesHashCodeSignature) || (this.name == TO_STRING && matchesToStringSignature) - fun generate(klass: FirClass<*>): List> { + fun generate(klass: FirClass): List { val propertyParametersCount = irClass.primaryConstructor?.explicitParameters?.size ?: 0 val properties = irClass.properties.filter { it.backingField != null }.take(propertyParametersCount).toList() if (properties.isEmpty()) { return emptyList() } - val result = mutableListOf>() + val result = mutableListOf() val contributedFunctionsInThisType = klass.declarations.mapNotNull { if (it is FirSimpleFunction && it.matchesDataClassSyntheticMemberSignatures) { diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt index e08f12d3b1a..c16deea4144 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/DelegatedMemberGenerator.kt @@ -5,19 +5,26 @@ package org.jetbrains.kotlin.fir.backend.generators -import org.jetbrains.kotlin.fir.* -import org.jetbrains.kotlin.fir.backend.* -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.backend.Fir2IrComponents +import org.jetbrains.kotlin.fir.backend.generateOverriddenAccessorSymbols +import org.jetbrains.kotlin.fir.backend.generateOverriddenFunctionSymbols +import org.jetbrains.kotlin.fir.backend.generateOverriddenPropertySymbols +import org.jetbrains.kotlin.fir.declarations.FirClass +import org.jetbrains.kotlin.fir.declarations.FirField +import org.jetbrains.kotlin.fir.declarations.FirProperty +import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction +import org.jetbrains.kotlin.fir.isJavaDefault import org.jetbrains.kotlin.fir.scopes.* import org.jetbrains.kotlin.fir.scopes.impl.unwrapDelegateTarget -import org.jetbrains.kotlin.fir.symbols.impl.* +import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol import org.jetbrains.kotlin.ir.declarations.* import org.jetbrains.kotlin.ir.expressions.IrBlockBody import org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl import org.jetbrains.kotlin.ir.expressions.impl.IrGetFieldImpl import org.jetbrains.kotlin.ir.expressions.impl.IrGetValueImpl import org.jetbrains.kotlin.ir.expressions.impl.IrReturnImpl -import org.jetbrains.kotlin.ir.types.* +import org.jetbrains.kotlin.ir.types.isNothing +import org.jetbrains.kotlin.ir.types.isUnit /** * A generator for delegated members from implementation by delegation. @@ -31,7 +38,7 @@ internal class DelegatedMemberGenerator( ) : Fir2IrComponents by components { // Generate delegated members for [subClass]. The synthetic field [irField] has the super interface type. - fun generate(irField: IrField, firField: FirField, firSubClass: FirClass<*>, subClass: IrClass) { + fun generate(irField: IrField, firField: FirField, firSubClass: FirClass, subClass: IrClass) { val subClassLookupTag = firSubClass.symbol.toLookupTag() val subClassScope = firSubClass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = true) @@ -79,7 +86,7 @@ internal class DelegatedMemberGenerator( private fun generateDelegatedFunction( subClass: IrClass, - firSubClass: FirClass<*>, + firSubClass: FirClass, irField: IrField, superFunction: IrSimpleFunction, delegateOverride: FirSimpleFunction @@ -151,7 +158,7 @@ internal class DelegatedMemberGenerator( private fun generateDelegatedProperty( subClass: IrClass, - firSubClass: FirClass<*>, + firSubClass: FirClass, irField: IrField, superProperty: IrProperty, firDelegateProperty: FirProperty diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt index a921a7432ff..3c35bc7f8d6 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/generators/FakeOverrideGenerator.kt @@ -7,7 +7,10 @@ package org.jetbrains.kotlin.fir.backend.generators import org.jetbrains.kotlin.descriptors.Visibilities import org.jetbrains.kotlin.fir.* -import org.jetbrains.kotlin.fir.backend.* +import org.jetbrains.kotlin.fir.backend.Fir2IrComponents +import org.jetbrains.kotlin.fir.backend.Fir2IrConversionScope +import org.jetbrains.kotlin.fir.backend.Fir2IrDeclarationStorage +import org.jetbrains.kotlin.fir.backend.unwrapSubstitutionAndIntersectionOverrides import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.utils.allowsToHaveFakeOverride import org.jetbrains.kotlin.fir.declarations.utils.isExpect @@ -15,9 +18,12 @@ import org.jetbrains.kotlin.fir.declarations.utils.isLocal import org.jetbrains.kotlin.fir.declarations.utils.visibility import org.jetbrains.kotlin.fir.resolve.defaultType import org.jetbrains.kotlin.fir.resolve.toSymbol -import org.jetbrains.kotlin.fir.scopes.* +import org.jetbrains.kotlin.fir.scopes.FirTypeScope +import org.jetbrains.kotlin.fir.scopes.getDirectOverriddenFunctions +import org.jetbrains.kotlin.fir.scopes.getDirectOverriddenProperties import org.jetbrains.kotlin.fir.scopes.impl.FirFakeOverrideGenerator import org.jetbrains.kotlin.fir.scopes.impl.delegatedWrapperData +import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol @@ -49,7 +55,7 @@ class FakeOverrideGenerator( return conversionScope.withProperty(this, firProperty = null, f) } - private fun FirCallableMemberDeclaration<*>.allowsToHaveFakeOverrideIn(klass: FirClass<*>): Boolean { + private fun FirCallableMemberDeclaration.allowsToHaveFakeOverrideIn(klass: FirClass): Boolean { if (!allowsToHaveFakeOverride) return false if (this.visibility != JavaDescriptorVisibilities.PACKAGE_VISIBILITY) return true return this.symbol.callableId.packageName == klass.symbol.classId.packageFqName @@ -63,18 +69,18 @@ class FakeOverrideGenerator( } } - fun IrClass.addFakeOverrides(klass: FirClass<*>, declarations: Collection>) { + fun IrClass.addFakeOverrides(klass: FirClass, declarations: Collection) { this.declarations += getFakeOverrides( klass, declarations ) } - fun IrClass.getFakeOverrides(klass: FirClass<*>, realDeclarations: Collection>): List { + fun IrClass.getFakeOverrides(klass: FirClass, realDeclarations: Collection): List { val result = mutableListOf() val useSiteMemberScope = klass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = true) val superTypesCallableNames = useSiteMemberScope.getCallableNames() - val realDeclarationSymbols = realDeclarations.mapTo(mutableSetOf(), FirDeclaration<*>::symbol) + val realDeclarationSymbols = realDeclarations.mapTo(mutableSetOf(), FirDeclaration::symbol) for (name in superTypesCallableNames) { generateFakeOverridesForName(this, useSiteMemberScope, name, klass, result, realDeclarationSymbols) @@ -86,7 +92,7 @@ class FakeOverrideGenerator( fun generateFakeOverridesForName( irClass: IrClass, name: Name, - firClass: FirClass<*> + firClass: FirClass ): List = buildList { val useSiteMemberScope = firClass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = true) generateFakeOverridesForName( @@ -100,7 +106,7 @@ class FakeOverrideGenerator( irClass: IrClass, useSiteMemberScope: FirTypeScope, name: Name, - firClass: FirClass<*>, + firClass: FirClass, result: MutableList, realDeclarationSymbols: Set> ) { @@ -156,7 +162,7 @@ class FakeOverrideGenerator( } internal fun calcBaseSymbolsForFakeOverrideFunction( - klass: FirClass<*>, + klass: FirClass, fakeOverride: IrSimpleFunction, originalSymbol: FirNamedFunctionSymbol, ) { @@ -174,8 +180,8 @@ class FakeOverrideGenerator( private fun FirCallableSymbol<*>.shouldHaveComputedBaseSymbolsForClass(classLookupTag: ConeClassLikeLookupTag): Boolean = fir.origin.fromSupertypes && dispatchReceiverClassOrNull() == classLookupTag - private inline fun , reified S : FirCallableSymbol, reified I : IrDeclaration> createFakeOverriddenIfNeeded( - klass: FirClass<*>, + private inline fun , reified I : IrDeclaration> createFakeOverriddenIfNeeded( + klass: FirClass, irClass: IrClass, isLocal: Boolean, originalSymbol: FirCallableSymbol<*>, @@ -312,7 +318,7 @@ class FakeOverrideGenerator( irProducer: (F) -> S ): List { val overriddenContainingClass = - overridden.containingClass()?.toSymbol(session)?.fir as? FirClass<*> ?: return emptyList() + overridden.containingClass()?.toSymbol(session)?.fir as? FirClass ?: return emptyList() val overriddenContainingIrClass = declarationStorage.classifierStorage.getIrClassSymbol(overriddenContainingClass.symbol).owner as? IrClass diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/AbstractFir2IrLazyFunction.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/AbstractFir2IrLazyFunction.kt index 66d8cdb1078..f6508fa9c61 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/AbstractFir2IrLazyFunction.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/AbstractFir2IrLazyFunction.kt @@ -10,7 +10,8 @@ import org.jetbrains.kotlin.descriptors.FunctionDescriptor import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.fir.backend.Fir2IrComponents import org.jetbrains.kotlin.fir.backend.declareThisReceiverParameter -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration +import org.jetbrains.kotlin.fir.declarations.hasAnnotation import org.jetbrains.kotlin.fir.declarations.utils.* import org.jetbrains.kotlin.fir.symbols.Fir2IrSimpleFunctionSymbol import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI @@ -28,7 +29,7 @@ import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.resolve.annotations.JVM_STATIC_ANNOTATION_FQ_NAME import kotlin.properties.ReadWriteProperty -abstract class AbstractFir2IrLazyFunction>( +abstract class AbstractFir2IrLazyFunction( components: Fir2IrComponents, override val startOffset: Int, override val endOffset: Int, @@ -86,7 +87,7 @@ abstract class AbstractFir2IrLazyFunction>( protected fun shouldHaveDispatchReceiver( containingClass: IrClass, - staticOwner: FirCallableMemberDeclaration<*> + staticOwner: FirCallableMemberDeclaration ): Boolean { return !staticOwner.isStatic && (!containingClass.isObject || containingClass.isCompanion || !staticOwner.hasAnnotation(JVM_STATIC_CLASS_ID)) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyPropertyAccessor.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyPropertyAccessor.kt index d1fb5f66689..d8309b58e25 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyPropertyAccessor.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazyPropertyAccessor.kt @@ -9,7 +9,10 @@ import org.jetbrains.kotlin.fir.backend.ConversionTypeContext import org.jetbrains.kotlin.fir.backend.Fir2IrComponents import org.jetbrains.kotlin.fir.backend.generateOverriddenAccessorSymbols import org.jetbrains.kotlin.fir.backend.toIrType -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration +import org.jetbrains.kotlin.fir.declarations.FirProperty +import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor +import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticPropertyAccessor import org.jetbrains.kotlin.fir.declarations.utils.isInline import org.jetbrains.kotlin.fir.symbols.Fir2IrSimpleFunctionSymbol @@ -35,12 +38,12 @@ class Fir2IrLazyPropertyAccessor( firParentClass: FirRegularClass, symbol: Fir2IrSimpleFunctionSymbol, isFakeOverride: Boolean -) : AbstractFir2IrLazyFunction>(components, startOffset, endOffset, origin, symbol, isFakeOverride) { +) : AbstractFir2IrLazyFunction(components, startOffset, endOffset, origin, symbol, isFakeOverride) { init { symbol.bind(this) } - override val fir: FirCallableMemberDeclaration<*> + override val fir: FirCallableMemberDeclaration get() = firAccessor ?: firParentProperty // TODO: investigate why some deserialized properties are inline diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt index 09bd60679e0..81c4015b9af 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/lazy/Fir2IrLazySimpleFunction.kt @@ -5,11 +5,18 @@ package org.jetbrains.kotlin.fir.lazy -import org.jetbrains.kotlin.fir.backend.* -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.backend.Fir2IrComponents +import org.jetbrains.kotlin.fir.backend.generateOverriddenFunctionSymbols +import org.jetbrains.kotlin.fir.backend.toIrType +import org.jetbrains.kotlin.fir.declarations.FirFunction +import org.jetbrains.kotlin.fir.declarations.FirRegularClass +import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.initialSignatureAttr import org.jetbrains.kotlin.fir.symbols.Fir2IrSimpleFunctionSymbol -import org.jetbrains.kotlin.ir.declarations.* +import org.jetbrains.kotlin.ir.declarations.IrClass +import org.jetbrains.kotlin.ir.declarations.IrDeclarationOrigin +import org.jetbrains.kotlin.ir.declarations.IrFunction +import org.jetbrains.kotlin.ir.declarations.IrValueParameter import org.jetbrains.kotlin.ir.declarations.lazy.lazyVar import org.jetbrains.kotlin.ir.expressions.IrConstructorCall import org.jetbrains.kotlin.ir.symbols.IrSimpleFunctionSymbol @@ -79,7 +86,7 @@ class Fir2IrLazySimpleFunction( } override val initialSignatureFunction: IrFunction? by lazy { - (fir.initialSignatureAttr as? FirFunction<*>)?.symbol?.let { declarationStorage.getIrFunctionSymbol(it).owner } + (fir.initialSignatureAttr as? FirFunction)?.symbol?.let { declarationStorage.getIrFunctionSymbol(it).owner } } override val containerSource: DeserializedContainerSource? diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt index 361f63a0d40..1d92af91e78 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirBasedSignatureComposer.kt @@ -59,10 +59,10 @@ 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 FirRegularClass && declaration.classId.isLocal) return null - if (declaration is FirCallableMemberDeclaration<*>) { + if (declaration is FirCallableMemberDeclaration) { if (declaration.visibility == Visibilities.Local) 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 ) } - is FirCallableMemberDeclaration<*> -> { + is FirCallableMemberDeclaration -> { if (declaration.visibility == Visibilities.Private) return null val containingClassId = containingClass?.classId diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirMangler.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirMangler.kt index 881e34f25f2..cf147902df0 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirMangler.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/signaturer/FirMangler.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.signaturer import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.ir.util.KotlinMangler -interface FirMangler : KotlinMangler> { +interface FirMangler : KotlinMangler { override val manglerName: String get() = "Fir" } diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaVisibilityChecker.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaVisibilityChecker.kt index bc11a4607b4..a2943697f1c 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaVisibilityChecker.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/FirJavaVisibilityChecker.kt @@ -22,7 +22,7 @@ object FirJavaVisibilityChecker : FirVisibilityChecker() { declarationVisibility: Visibility, symbol: FirBasedSymbol<*>, useSiteFile: FirFile, - containingDeclarations: List>, + containingDeclarations: List, dispatchReceiver: ReceiverValue?, session: FirSession ): Boolean { diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt index fa6d26d5aab..85039b63e62 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaScopeProvider.kt @@ -7,24 +7,28 @@ package org.jetbrains.kotlin.fir.java import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirClass +import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.utils.classId import org.jetbrains.kotlin.fir.declarations.utils.isJava import org.jetbrains.kotlin.fir.declarations.utils.superConeTypes import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass import org.jetbrains.kotlin.fir.java.scopes.* import org.jetbrains.kotlin.fir.resolve.* -import org.jetbrains.kotlin.fir.scopes.* +import org.jetbrains.kotlin.fir.scopes.FirScope +import org.jetbrains.kotlin.fir.scopes.FirScopeProvider +import org.jetbrains.kotlin.fir.scopes.FirTypeScope import org.jetbrains.kotlin.fir.scopes.impl.* -import org.jetbrains.kotlin.name.StandardClassIds +import org.jetbrains.kotlin.fir.scopes.scopeForSupertype import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol +import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.utils.DFS class JavaScopeProvider( val symbolProvider: JavaSymbolProvider ) : FirScopeProvider() { override fun getUseSiteMemberScope( - klass: FirClass<*>, + klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession ): FirTypeScope { @@ -106,7 +110,7 @@ class JavaScopeProvider( } override fun getStaticMemberScopeForCallables( - klass: FirClass<*>, + klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession ): FirScope? { @@ -115,7 +119,7 @@ class JavaScopeProvider( } private fun getStaticMemberScopeForCallables( - klass: FirClass<*>, + klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession, visitedClasses: MutableSet @@ -190,7 +194,7 @@ class JavaScopeProvider( return result } - override fun getNestedClassifierScope(klass: FirClass<*>, useSiteSession: FirSession, scopeSession: ScopeSession): FirScope? { + override fun getNestedClassifierScope(klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession): FirScope? { return lazyNestedClassifierScope( klass.classId, (klass as FirJavaClass).existingNestedClassifierNames, diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt index 2f912048a8e..447e1b9f470 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/JavaSymbolProvider.kt @@ -374,7 +374,7 @@ class JavaSymbolProvider( classId: ClassId, javaTypeParameterStack: JavaTypeParameterStack, dispatchReceiver: ConeClassLikeType - ): FirDeclaration<*> { + ): FirDeclaration { val fieldName = javaField.name val fieldId = CallableId(classId.packageFqName, classId.relativeClassName, fieldName) val returnType = javaField.type diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt index 79f78bf5d9d..1d0916ddb91 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaClass.kt @@ -37,7 +37,7 @@ class FirJavaClass @FirImplementationDetail internal constructor( override val annotations: MutableList, override var status: FirDeclarationStatus, override val classKind: ClassKind, - override val declarations: MutableList>, + override val declarations: MutableList, override val scopeProvider: FirScopeProvider, override val symbol: FirRegularClassSymbol, override val superTypeRefs: MutableList, @@ -132,7 +132,7 @@ internal class FirJavaClassBuilder : FirRegularClassBuilder(), FirAnnotationCont override var resolvePhase: FirResolvePhase = FirResolvePhase.RAW_FIR override val annotations: MutableList = mutableListOf() override val typeParameters: MutableList = mutableListOf() - override val declarations: MutableList> = mutableListOf() + override val declarations: MutableList = mutableListOf() override val superTypeRefs: MutableList = mutableListOf() diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt index 0e8418dd1f6..41a1b808f7c 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/declarations/FirJavaField.kt @@ -153,7 +153,7 @@ internal class FirJavaFieldBuilder : FirFieldBuilder() { return FirJavaField( source, moduleData, - symbol as FirFieldSymbol, + symbol, name, resolvePhase, returnTypeRef, diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt index e1cffad1ef6..d7e73562b61 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/enhancement/SignatureEnhancement.kt @@ -40,7 +40,7 @@ import org.jetbrains.kotlin.utils.addToStdlib.safeAs class FirSignatureEnhancement( private val owner: FirRegularClass, private val session: FirSession, - private val overridden: FirSimpleFunction.() -> List> + private val overridden: FirSimpleFunction.() -> List ) { /* * FirSignatureEnhancement may be created with library session which doesn't have single module data, @@ -171,7 +171,7 @@ class FirSignatureEnhancement( } private fun enhanceMethod( - firMethod: FirFunction<*>, + firMethod: FirFunction, methodId: CallableId, name: Name? ): FirFunctionSymbol<*> { @@ -304,7 +304,7 @@ class FirSignatureEnhancement( private fun enhanceReceiverType( ownerFunction: FirJavaMethod, - overriddenMembers: List>, + overriddenMembers: List, memberContext: FirJavaEnhancementContext ): FirResolvedTypeRef { val signatureParts = ownerFunction.partsForValueParameter( @@ -319,8 +319,8 @@ class FirSignatureEnhancement( } private fun enhanceValueParameterType( - ownerFunction: FirFunction<*>, - overriddenMembers: List>, + ownerFunction: FirFunction, + overriddenMembers: List, hasReceiver: Boolean, memberContext: FirJavaEnhancementContext, predefinedEnhancementInfo: PredefinedFunctionEnhancementInfo?, @@ -346,8 +346,8 @@ class FirSignatureEnhancement( } private fun enhanceReturnType( - owner: FirCallableMemberDeclaration<*>, - overriddenMembers: List>, + owner: FirCallableMemberDeclaration, + overriddenMembers: List, memberContext: FirJavaEnhancementContext, predefinedEnhancementInfo: PredefinedFunctionEnhancementInfo? ): FirResolvedTypeRef { @@ -368,37 +368,37 @@ class FirSignatureEnhancement( } private sealed class TypeInSignature { - abstract fun getTypeRef(member: FirCallableMemberDeclaration<*>): FirTypeRef + abstract fun getTypeRef(member: FirCallableMemberDeclaration): FirTypeRef object Return : TypeInSignature() { - override fun getTypeRef(member: FirCallableMemberDeclaration<*>): FirTypeRef = member.returnTypeRef + override fun getTypeRef(member: FirCallableMemberDeclaration): FirTypeRef = member.returnTypeRef } object Receiver : TypeInSignature() { - override fun getTypeRef(member: FirCallableMemberDeclaration<*>): FirTypeRef { + override fun getTypeRef(member: FirCallableMemberDeclaration): FirTypeRef { if (member is FirJavaMethod) return member.valueParameters[0].returnTypeRef return member.receiverTypeRef!! } } class ValueParameter(val hasReceiver: Boolean, val index: Int) : TypeInSignature() { - override fun getTypeRef(member: FirCallableMemberDeclaration<*>): FirTypeRef { + override fun getTypeRef(member: FirCallableMemberDeclaration): FirTypeRef { if (hasReceiver && member is FirJavaMethod) { return member.valueParameters[index + 1].returnTypeRef } - return (member as FirFunction<*>).valueParameters[index].returnTypeRef + return (member as FirFunction).valueParameters[index].returnTypeRef } } } - private fun FirFunction<*>.partsForValueParameter( + private fun FirFunction.partsForValueParameter( typeQualifierResolver: FirAnnotationTypeQualifierResolver, - overriddenMembers: List>, + overriddenMembers: List, // TODO: investigate if it's really can be a null (check properties' with extension overrides in Java) parameterContainer: FirAnnotationContainer?, methodContext: FirJavaEnhancementContext, typeInSignature: TypeInSignature - ): EnhancementSignatureParts = (this as FirCallableMemberDeclaration<*>).parts( + ): EnhancementSignatureParts = (this as FirCallableMemberDeclaration).parts( typeQualifierResolver, overriddenMembers, parameterContainer, false, @@ -409,9 +409,9 @@ class FirSignatureEnhancement( typeInSignature ) - private fun FirCallableMemberDeclaration<*>.parts( + private fun FirCallableMemberDeclaration.parts( typeQualifierResolver: FirAnnotationTypeQualifierResolver, - overriddenMembers: List>, + overriddenMembers: List, typeContainer: FirAnnotationContainer?, isCovariant: Boolean, containerContext: FirJavaEnhancementContext, diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassMembersEnhancementScope.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassMembersEnhancementScope.kt index 81db4df3827..aa6be1946a3 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassMembersEnhancementScope.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassMembersEnhancementScope.kt @@ -14,7 +14,6 @@ import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.scopes.FirTypeScope import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.symbols.impl.* -import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.name.Name class JavaClassMembersEnhancementScope( @@ -65,14 +64,14 @@ class JavaClassMembersEnhancementScope( return super.processFunctionsByName(name, processor) } - private fun FirCallableMemberDeclaration<*>.overriddenMembers(name: Name): List> { + private fun FirCallableMemberDeclaration.overriddenMembers(name: Name): List { val backMap = overrideBindCache.getOrPut(name) { useSiteMemberScope .overrideByBase .toList() .groupBy({ (_, key) -> key }, { (value) -> value }) } - return backMap[this.symbol]?.map { it.fir as FirCallableMemberDeclaration<*> } ?: emptyList() + return backMap[this.symbol]?.map { it.fir as FirCallableMemberDeclaration } ?: emptyList() } override fun processClassifiersByNameWithSubstitution(name: Name, processor: (FirClassifierSymbol<*>, ConeSubstitutor) -> Unit) { diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt index 77b372c83b4..d38f7d33c43 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaClassUseSiteMemberScope.kt @@ -13,7 +13,9 @@ import org.jetbrains.kotlin.fir.declarations.synthetic.buildSyntheticProperty import org.jetbrains.kotlin.fir.declarations.utils.isInterface import org.jetbrains.kotlin.fir.declarations.utils.modality import org.jetbrains.kotlin.fir.declarations.utils.superConeTypes -import org.jetbrains.kotlin.fir.java.declarations.* +import org.jetbrains.kotlin.fir.java.declarations.FirJavaClass +import org.jetbrains.kotlin.fir.java.declarations.buildJavaMethodCopy +import org.jetbrains.kotlin.fir.java.declarations.buildJavaValueParameterCopy import org.jetbrains.kotlin.fir.java.toConeKotlinTypeProbablyFlexible import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.scopes.* @@ -385,11 +387,11 @@ class JavaClassUseSiteMemberScope( } } - private fun FirFunction<*>.computeJvmSignature(): String? { + private fun FirFunction.computeJvmSignature(): String? { return computeJvmSignature { it.toConeKotlinTypeProbablyFlexible(session, typeParameterStack) } } - private fun FirFunction<*>.computeJvmDescriptor(customName: String? = null, includeReturnType: Boolean = false): String { + private fun FirFunction.computeJvmDescriptor(customName: String? = null, includeReturnType: Boolean = false): String { return computeJvmDescriptor(customName, includeReturnType) { it.toConeKotlinTypeProbablyFlexible( session, diff --git a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt index 725965b8696..219ecf66a85 100644 --- a/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt +++ b/compiler/fir/java/src/org/jetbrains/kotlin/fir/java/scopes/JavaOverrideChecker.kt @@ -7,7 +7,10 @@ package org.jetbrains.kotlin.fir.java.scopes import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration +import org.jetbrains.kotlin.fir.declarations.FirProperty +import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction +import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef import org.jetbrains.kotlin.fir.declarations.utils.isStatic import org.jetbrains.kotlin.fir.declarations.utils.modality import org.jetbrains.kotlin.fir.java.JavaTypeParameterStack @@ -17,9 +20,9 @@ import org.jetbrains.kotlin.fir.resolve.fullyExpandedType import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap import org.jetbrains.kotlin.fir.scopes.impl.FirAbstractOverrideChecker -import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.types.* +import org.jetbrains.kotlin.name.StandardClassIds class JavaOverrideChecker internal constructor( private val session: FirSession, @@ -98,7 +101,7 @@ class JavaOverrideChecker internal constructor( argument is ConeKotlinTypeProjection && argument.type.isTypeParameterDependent() } - private fun FirCallableMemberDeclaration<*>.isTypeParameterDependent(): Boolean = + private fun FirCallableMemberDeclaration.isTypeParameterDependent(): Boolean = typeParameters.isNotEmpty() || returnTypeRef.isTypeParameterDependent() || receiverTypeRef.isTypeParameterDependent() || this is FirSimpleFunction && valueParameters.any { it.returnTypeRef.isTypeParameterDependent() } @@ -124,7 +127,7 @@ class JavaOverrideChecker internal constructor( } } - private fun FirCallableMemberDeclaration<*>.extractTypeParametersTo(result: MutableCollection) { + private fun FirCallableMemberDeclaration.extractTypeParametersTo(result: MutableCollection) { result += typeParameters returnTypeRef.extractTypeParametersTo(result) receiverTypeRef?.extractTypeParametersTo(result) @@ -134,8 +137,8 @@ class JavaOverrideChecker internal constructor( } override fun buildTypeParametersSubstitutorIfCompatible( - overrideCandidate: FirCallableMemberDeclaration<*>, - baseDeclaration: FirCallableMemberDeclaration<*> + overrideCandidate: FirCallableMemberDeclaration, + baseDeclaration: FirCallableMemberDeclaration ): ConeSubstitutor { if (!overrideCandidate.isTypeParameterDependent() && !baseDeclaration.isTypeParameterDependent()) { return ConeSubstitutor.Empty @@ -159,7 +162,7 @@ class JavaOverrideChecker internal constructor( } } - override fun isOverriddenProperty(overrideCandidate: FirCallableMemberDeclaration<*>, baseDeclaration: FirProperty): Boolean { + override fun isOverriddenProperty(overrideCandidate: FirCallableMemberDeclaration, baseDeclaration: FirProperty): Boolean { if (baseDeclaration.modality == Modality.FINAL) return false val receiverTypeRef = baseDeclaration.receiverTypeRef return when (overrideCandidate) { diff --git a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/resolve/FirJavaClassMapper.kt b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/resolve/FirJavaClassMapper.kt index 44b5cffa088..8fcf04f2499 100644 --- a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/resolve/FirJavaClassMapper.kt +++ b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/resolve/FirJavaClassMapper.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.declarations.FirRegularClass @NoMutableState class FirJavaClassMapper(private val session: FirSession) : FirPlatformClassMapper() { - override fun getCorrespondingPlatformClass(declaration: FirClassLikeDeclaration<*>): FirRegularClass? { + override fun getCorrespondingPlatformClass(declaration: FirClassLikeDeclaration): FirRegularClass? { val javaClassId = JavaToKotlinClassMap.mapKotlinToJava(declaration.symbol.classId.asSingleFqName().toUnsafe()) return javaClassId?.let { session.symbolProvider.getClassLikeSymbolByFqName(it)?.fir } as? FirRegularClass } diff --git a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/resolve/calls/jvm/ConeEquivalentCallConflictResolver.kt b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/resolve/calls/jvm/ConeEquivalentCallConflictResolver.kt index 6a8a5170f02..c116bceaff7 100644 --- a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/resolve/calls/jvm/ConeEquivalentCallConflictResolver.kt +++ b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/resolve/calls/jvm/ConeEquivalentCallConflictResolver.kt @@ -6,7 +6,10 @@ package org.jetbrains.kotlin.fir.resolve.calls.jvm import org.jetbrains.kotlin.fir.containingClass -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration +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.resolve.calls.AbstractConeCallConflictResolver import org.jetbrains.kotlin.fir.resolve.calls.Candidate @@ -33,10 +36,10 @@ class ConeEquivalentCallConflictResolver( val result = mutableSetOf() outerLoop@ for (myCandidate in candidates) { val me = myCandidate.symbol.fir - if (me is FirCallableMemberDeclaration<*> && me.symbol.containingClass() == null) { + if (me is FirCallableMemberDeclaration && me.symbol.containingClass() == null) { for (otherCandidate in result) { val other = otherCandidate.symbol.fir - if (other is FirCallableMemberDeclaration<*> && other.symbol.containingClass() == null) { + if (other is FirCallableMemberDeclaration && other.symbol.containingClass() == null) { if (areEquivalentTopLevelCallables(me, myCandidate, other, otherCandidate)) { continue@outerLoop } @@ -49,9 +52,9 @@ class ConeEquivalentCallConflictResolver( } private fun areEquivalentTopLevelCallables( - first: FirCallableMemberDeclaration<*>, + first: FirCallableMemberDeclaration, firstCandidate: Candidate, - second: FirCallableMemberDeclaration<*>, + second: FirCallableMemberDeclaration, secondCandidate: Candidate ): Boolean { if (first.symbol.callableId != second.symbol.callableId) return false @@ -65,11 +68,11 @@ class ConeEquivalentCallConflictResolver( compareCallsByUsedArguments(secondSignature, firstSignature, false) } - private fun createFlatSignature(call: Candidate, declaration: FirCallableMemberDeclaration<*>): FlatSignature { + private fun createFlatSignature(call: Candidate, declaration: FirCallableMemberDeclaration): FlatSignature { return when (declaration) { is FirSimpleFunction -> createFlatSignature(call, declaration) is FirConstructor -> createFlatSignature(call, declaration) - is FirVariable<*> -> createFlatSignature(call, declaration) + is FirVariable -> createFlatSignature(call, declaration) else -> error("Not supported: $declaration") } } diff --git a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/resolve/scopes/JvmMappedScopes.kt b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/resolve/scopes/JvmMappedScopes.kt index 01fbd339d10..293554ad4bc 100644 --- a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/resolve/scopes/JvmMappedScopes.kt +++ b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/resolve/scopes/JvmMappedScopes.kt @@ -10,7 +10,10 @@ import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.utils.classId -import org.jetbrains.kotlin.fir.resolve.* +import org.jetbrains.kotlin.fir.resolve.ScopeSession +import org.jetbrains.kotlin.fir.resolve.constructType +import org.jetbrains.kotlin.fir.resolve.symbolProvider +import org.jetbrains.kotlin.fir.resolve.wrapSubstitutionScopeIfNeed import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.scopes.jvm.JvmMappedScope import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope @@ -19,7 +22,7 @@ import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl fun wrapScopeWithJvmMapped( - klass: FirClass<*>, + klass: FirClass, declaredMemberScope: FirScope, useSiteSession: FirSession, scopeSession: ScopeSession diff --git a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/DescriptorUtils.kt b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/DescriptorUtils.kt index 7b3a27d3323..fa406b1541d 100644 --- a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/DescriptorUtils.kt +++ b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/DescriptorUtils.kt @@ -7,10 +7,8 @@ package org.jetbrains.kotlin.fir.scopes.jvm import org.jetbrains.kotlin.builtins.jvm.JavaToKotlinClassMap import org.jetbrains.kotlin.fir.containingClass -import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction -import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.impl.FirImplicitAnyTypeRef import org.jetbrains.kotlin.fir.types.impl.FirImplicitNullableAnyTypeRef @@ -19,14 +17,15 @@ import org.jetbrains.kotlin.load.java.structure.JavaPrimitiveType import org.jetbrains.kotlin.load.kotlin.SignatureBuildingComponents import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName +import org.jetbrains.kotlin.name.StandardClassIds -fun FirFunction<*>.computeJvmSignature(typeConversion: (FirTypeRef) -> ConeKotlinType? = FirTypeRef::coneTypeSafe): String? { +fun FirFunction.computeJvmSignature(typeConversion: (FirTypeRef) -> ConeKotlinType? = FirTypeRef::coneTypeSafe): String? { val containingClass = containingClass() ?: return null return SignatureBuildingComponents.signature(containingClass.classId, computeJvmDescriptor(typeConversion = typeConversion)) } -fun FirFunction<*>.computeJvmDescriptor( +fun FirFunction.computeJvmDescriptor( customName: String? = null, includeReturnType: Boolean = true, typeConversion: (FirTypeRef) -> ConeKotlinType? = FirTypeRef::coneTypeSafe diff --git a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/JvmMappedScope.kt b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/JvmMappedScope.kt index d49e6fb9ce3..cdaa9b18374 100644 --- a/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/JvmMappedScope.kt +++ b/compiler/fir/jvm/src/org/jetbrains/kotlin/fir/scopes/jvm/JvmMappedScope.kt @@ -24,7 +24,7 @@ import org.jetbrains.kotlin.name.Name class JvmMappedScope( private val session: FirSession, - private val firKotlinClass: FirClass<*>, + private val firKotlinClass: FirClass, private val firJavaClass: FirRegularClass, private val declaredMemberScope: FirScope, private val javaMappedClassUseSiteScope: FirTypeScope, diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ConverterUtil.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ConverterUtil.kt index d04c1459110..271c1dc6f78 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ConverterUtil.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ConverterUtil.kt @@ -7,7 +7,6 @@ package org.jetbrains.kotlin.fir.lightTree.converter import com.intellij.lang.LighterASTNode import com.intellij.psi.tree.IElementType -import com.intellij.psi.tree.TokenSet import org.jetbrains.kotlin.KtNodeType import org.jetbrains.kotlin.KtNodeTypes.* import org.jetbrains.kotlin.descriptors.Modality @@ -107,7 +106,7 @@ inline fun isClassLocal(classNode: LighterASTNode, getParent: LighterASTNode.() fun generateDestructuringBlock( moduleData: FirModuleData, multiDeclaration: DestructuringDeclaration, - container: FirVariable<*>, + container: FirVariable, tmpVariable: Boolean ): FirBlock { return buildBlock { diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt index ad39a857e8e..64347654384 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt @@ -88,7 +88,7 @@ class DeclarationsConverter( val fileAnnotationList = mutableListOf() val importList = mutableListOf() - val firDeclarationList = mutableListOf>() + val firDeclarationList = mutableListOf() context.packageFqName = FqName.ROOT file.forEachChildren { when (it.tokenType) { @@ -96,7 +96,7 @@ class DeclarationsConverter( PACKAGE_DIRECTIVE -> context.packageFqName = convertPackageName(it) IMPORT_LIST -> importList += convertImportDirectives(it) CLASS -> firDeclarationList += convertClass(it) - FUN -> firDeclarationList += convertFunctionDeclaration(it) as FirDeclaration<*> + FUN -> firDeclarationList += convertFunctionDeclaration(it) as FirDeclaration PROPERTY -> firDeclarationList += convertPropertyDeclaration(it) TYPEALIAS -> firDeclarationList += convertTypeAlias(it) OBJECT_DECLARATION -> firDeclarationList += convertClass(it) @@ -359,7 +359,7 @@ class DeclarationsConverter( /** * @see org.jetbrains.kotlin.parsing.KotlinParsing.parseClassOrObject */ - private fun convertClass(classNode: LighterASTNode): FirDeclaration<*> { + private fun convertClass(classNode: LighterASTNode): FirDeclaration { var modifiers = Modifier() var classKind: ClassKind = ClassKind.CLASS //TODO var identifier: String? = null @@ -731,12 +731,12 @@ class DeclarationsConverter( * @see org.jetbrains.kotlin.parsing.KotlinParsing.parseClassBody * @see org.jetbrains.kotlin.parsing.KotlinParsing.parseEnumClassBody */ - private fun convertClassBody(classBody: LighterASTNode, classWrapper: ClassWrapper): List> { + private fun convertClassBody(classBody: LighterASTNode, classWrapper: ClassWrapper): List { return classBody.forEachChildrenReturnList { node, container -> when (node.tokenType) { ENUM_ENTRY -> container += convertEnumEntry(node, classWrapper) CLASS -> container += convertClass(node) - FUN -> container += convertFunctionDeclaration(node, classWrapper) as FirDeclaration<*> + FUN -> container += convertFunctionDeclaration(node, classWrapper) as FirDeclaration PROPERTY -> container += convertPropertyDeclaration(node, classWrapper) TYPEALIAS -> container += convertTypeAlias(node) OBJECT_DECLARATION -> container += convertClass(node) @@ -827,7 +827,7 @@ class DeclarationsConverter( * @see org.jetbrains.kotlin.parsing.KotlinParsing.parseMemberDeclarationRest * at INIT keyword */ - private fun convertAnonymousInitializer(anonymousInitializer: LighterASTNode): FirDeclaration<*> { + private fun convertAnonymousInitializer(anonymousInitializer: LighterASTNode): FirDeclaration { var firBlock: FirBlock? = null anonymousInitializer.forEachChildren { when (it.tokenType) { @@ -950,7 +950,7 @@ class DeclarationsConverter( /** * @see org.jetbrains.kotlin.parsing.KotlinParsing.parseTypeAlias */ - private fun convertTypeAlias(typeAlias: LighterASTNode): FirDeclaration<*> { + private fun convertTypeAlias(typeAlias: LighterASTNode): FirDeclaration { var modifiers = Modifier() var identifier: String? = null lateinit var firType: FirTypeRef @@ -986,7 +986,7 @@ class DeclarationsConverter( /** * @see org.jetbrains.kotlin.parsing.KotlinParsing.parseProperty */ - fun convertPropertyDeclaration(property: LighterASTNode, classWrapper: ClassWrapper? = null): FirDeclaration<*> { + fun convertPropertyDeclaration(property: LighterASTNode, classWrapper: ClassWrapper? = null): FirDeclaration { var modifiers = Modifier() var identifier: String? = null val firTypeParameters = mutableListOf() @@ -1141,7 +1141,7 @@ class DeclarationsConverter( */ private fun convertDestructingDeclaration(destructingDeclaration: LighterASTNode): DestructuringDeclaration { var isVar = false - val entries = mutableListOf?>() + val entries = mutableListOf() val source = destructingDeclaration.toFirSourceElement() var firExpression: FirExpression = buildErrorExpression(null, ConeSimpleDiagnostic("Initializer required for destructuring declaration", DiagnosticKind.Syntax)) @@ -1160,7 +1160,7 @@ class DeclarationsConverter( /** * @see org.jetbrains.kotlin.parsing.KotlinParsing.parseMultiDeclarationName */ - private fun convertDestructingDeclarationEntry(entry: LighterASTNode): FirVariable<*>? { + private fun convertDestructingDeclarationEntry(entry: LighterASTNode): FirVariable? { var modifiers = Modifier() var identifier: String? = null var firType: FirTypeRef? = null @@ -1992,7 +1992,7 @@ class DeclarationsConverter( typeParameters: List, typeConstraints: List, to: T - ) where T : FirDeclaration, T : FirTypeParameterRefsOwner { + ) where T : FirDeclaration, T : FirTypeParameterRefsOwner { val typeParamNames = typeParameters.map { it.name }.toSet() val result = typeConstraints.mapNotNull { constraint -> val name = constraint.identifier.nameAsSafeName() diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt index 5e91c773cf7..9103b8b256f 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt @@ -641,12 +641,12 @@ class ExpressionsConverter( */ private fun convertWhenExpression(whenExpression: LighterASTNode): FirExpression { var subjectExpression: FirExpression? = null - var subjectVariable: FirVariable<*>? = null + var subjectVariable: FirVariable? = null val whenEntryNodes = mutableListOf() val whenEntries = mutableListOf() whenExpression.forEachChildren { when (it.tokenType) { - PROPERTY -> subjectVariable = (declarationsConverter.convertPropertyDeclaration(it) as FirVariable<*>).let { variable -> + PROPERTY -> subjectVariable = (declarationsConverter.convertPropertyDeclaration(it) as FirVariable).let { variable -> buildProperty { source = it.toFirSourceElement() origin = FirDeclarationOrigin.Source diff --git a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/DestructuringDeclaration.kt b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/DestructuringDeclaration.kt index b8cc1b003a9..3650e693047 100644 --- a/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/DestructuringDeclaration.kt +++ b/compiler/fir/raw-fir/light-tree2fir/src/org/jetbrains/kotlin/fir/lightTree/fir/DestructuringDeclaration.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.lightTree.converter.generateDestructuringBlock data class DestructuringDeclaration( val isVar: Boolean, - val entries: List?>, + val entries: List, val initializer: FirExpression, val source: FirSourceElement ) { diff --git a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/PsiConversionUtils.kt b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/PsiConversionUtils.kt index d4c247b6303..c80c10e1361 100644 --- a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/PsiConversionUtils.kt +++ b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/PsiConversionUtils.kt @@ -84,7 +84,7 @@ internal fun Array.toFirWhenCondition( internal fun generateDestructuringBlock( moduleData: FirModuleData, multiDeclaration: KtDestructuringDeclaration, - container: FirVariable<*>, + container: FirVariable, tmpVariable: Boolean, extractAnnotationsTo: KtAnnotated.(FirAnnotationContainerBuilder) -> Unit, toFirOrImplicitTypeRef: KtTypeReference?.() -> FirTypeRef, diff --git a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt index 3da7b2aa64a..1d244a5ea7b 100644 --- a/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt +++ b/compiler/fir/raw-fir/psi2fir/src/org/jetbrains/kotlin/fir/builder/RawFirBuilder.kt @@ -56,7 +56,7 @@ open class RawFirBuilder( private val stubMode get() = mode == RawFirBuilderMode.STUBS - protected open fun bindFunctionTarget(target: FirFunctionTarget, function: FirFunction<*>) = target.bind(function) + protected open fun bindFunctionTarget(target: FirFunctionTarget, function: FirFunction) = target.bind(function) var mode: RawFirBuilderMode = builderMode private set @@ -219,7 +219,7 @@ open class RawFirBuilder( owner: KtClassOrObject, ownerClassBuilder: FirClassBuilder, ownerTypeParameters: List - ): FirDeclaration<*> { + ): FirDeclaration { return when (this) { is KtSecondaryConstructor -> { disabledLazyMode { @@ -515,7 +515,7 @@ open class RawFirBuilder( } } - private fun KtTypeParameterListOwner.fillDanglingConstraintsTo(to: T) where T : FirDeclaration, T : FirTypeParameterRefsOwner { + private fun KtTypeParameterListOwner.fillDanglingConstraintsTo(to: T) where T : FirDeclaration, T : FirTypeParameterRefsOwner { val typeParamNames = typeParameters.mapNotNull { it.nameAsName }.toSet() val result = typeConstraints.mapNotNull { constraint -> constraint.subjectTypeParameterName?.getReferencedNameAsName()?.let { name -> @@ -731,7 +731,7 @@ open class RawFirBuilder( } } for (declaration in file.declarations) { - declarations += declaration.convert>() + declarations += declaration.convert() } } } @@ -739,7 +739,7 @@ open class RawFirBuilder( private fun KtEnumEntry.toFirEnumEntry( delegatedEnumSelfTypeRef: FirResolvedTypeRef, ownerClassHasDefaultConstructor: Boolean - ): FirDeclaration<*> { + ): FirDeclaration { val ktEnumEntry = this@toFirEnumEntry return buildEnumEntry { source = toFirSourceElement() diff --git a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderTotalKotlinTestCase.kt b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderTotalKotlinTestCase.kt index 65eb73a6962..a839cecc4fa 100644 --- a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderTotalKotlinTestCase.kt +++ b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderTotalKotlinTestCase.kt @@ -113,7 +113,7 @@ class RawFirBuilderTotalKotlinTestCase : AbstractRawFirBuilderTestCase() { // errorDeclaration.psi?.let { println(it) } // } - override fun > visitDeclaration(declaration: FirDeclaration) { + override fun visitDeclaration(declaration: FirDeclaration) { normalDeclarations++ declaration.acceptChildren(this) } diff --git a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/StubFirScopeProvider.kt b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/StubFirScopeProvider.kt index 78020732fd4..adcb46730d1 100644 --- a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/StubFirScopeProvider.kt +++ b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/StubFirScopeProvider.kt @@ -8,13 +8,13 @@ package org.jetbrains.kotlin.fir.builder import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.scopes.FirTypeScope import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.scopes.FirScopeProvider +import org.jetbrains.kotlin.fir.scopes.FirTypeScope object StubFirScopeProvider : FirScopeProvider() { override fun getUseSiteMemberScope( - klass: FirClass<*>, + klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession ): FirTypeScope { @@ -22,14 +22,14 @@ object StubFirScopeProvider : FirScopeProvider() { } override fun getStaticMemberScopeForCallables( - klass: FirClass<*>, + klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession ): FirScope? { return null } - override fun getNestedClassifierScope(klass: FirClass<*>, useSiteSession: FirSession, scopeSession: ScopeSession): FirScope? { + override fun getNestedClassifierScope(klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession): FirScope? { return null } } diff --git a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt index 2e3849f60f9..01d10e84743 100644 --- a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt +++ b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/BaseFirBuilder.kt @@ -1168,12 +1168,12 @@ abstract class BaseFirBuilder(val baseSession: FirSession, val context: Conte } } - protected fun FirCallableDeclaration<*>.initContainingClassAttr() { + protected fun FirCallableDeclaration.initContainingClassAttr() { val currentDispatchReceiverType = currentDispatchReceiverType() ?: return containingClassAttr = currentDispatchReceiverType.lookupTag } - private fun FirVariable<*>.toQualifiedAccess(): FirQualifiedAccessExpression = buildQualifiedAccessExpression { + private fun FirVariable.toQualifiedAccess(): FirQualifiedAccessExpression = buildQualifiedAccessExpression { calleeReference = buildResolvedNamedReference { source = this@toQualifiedAccess.source name = this@toQualifiedAccess.name diff --git a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt index 88ac9138da7..2f84efb7fea 100644 --- a/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt +++ b/compiler/fir/raw-fir/raw-fir.common/src/org/jetbrains/kotlin/fir/builder/ConversionUtils.kt @@ -261,7 +261,7 @@ fun generateAccessExpression( } } -fun generateResolvedAccessExpression(source: FirSourceElement?, variable: FirVariable<*>): FirQualifiedAccessExpression = +fun generateResolvedAccessExpression(source: FirSourceElement?, variable: FirVariable): FirQualifiedAccessExpression = buildQualifiedAccessExpression { this.source = source calleeReference = buildResolvedNamedReference { @@ -273,7 +273,7 @@ fun generateResolvedAccessExpression(source: FirSourceElement?, variable: FirVar fun generateTemporaryVariable( moduleData: FirModuleData, source: FirSourceElement?, name: Name, initializer: FirExpression, typeRef: FirTypeRef? = null, -): FirVariable<*> = +): FirVariable = buildProperty { this.source = source this.moduleData = moduleData @@ -291,7 +291,7 @@ fun generateTemporaryVariable( fun generateTemporaryVariable( moduleData: FirModuleData, source: FirSourceElement?, specialName: String, initializer: FirExpression, -): FirVariable<*> = generateTemporaryVariable(moduleData, source, Name.special("<$specialName>"), initializer) +): FirVariable = generateTemporaryVariable(moduleData, source, Name.special("<$specialName>"), initializer) val FirClassBuilder.ownerRegularOrAnonymousObjectSymbol get() = when (this) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt index 3490af91eb4..748e0de40b0 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/FirVisibilityChecker.kt @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName interface FirModuleVisibilityChecker : FirSessionComponent { - fun isInFriendModule(declaration: T): Boolean where T : FirStatusOwner, T : FirDeclaration<*> + fun isInFriendModule(declaration: T): Boolean where T : FirStatusOwner, T : FirDeclaration } abstract class FirVisibilityChecker : FirSessionComponent { @@ -35,7 +35,7 @@ abstract class FirVisibilityChecker : FirSessionComponent { declarationVisibility: Visibility, symbol: FirBasedSymbol<*>, useSiteFile: FirFile, - containingDeclarations: List>, + containingDeclarations: List, dispatchReceiver: ReceiverValue?, session: FirSession ): Boolean { @@ -47,7 +47,7 @@ abstract class FirVisibilityChecker : FirSessionComponent { declaration: FirStatusOwner, candidate: Candidate ): Boolean { - if (declaration is FirCallableDeclaration<*> && (declaration.isIntersectionOverride || declaration.isSubstitutionOverride)) { + if (declaration is FirCallableDeclaration && (declaration.isIntersectionOverride || declaration.isSubstitutionOverride)) { @Suppress("UNCHECKED_CAST") return isVisible(declaration.originalIfFakeOverride() as FirStatusOwner, candidate) } @@ -64,10 +64,10 @@ abstract class FirVisibilityChecker : FirSessionComponent { declaration: FirStatusOwner, session: FirSession, useSiteFile: FirFile, - containingDeclarations: List>, + containingDeclarations: List, dispatchReceiver: ReceiverValue? ): Boolean { - require(declaration is FirDeclaration<*>) + require(declaration is FirDeclaration) val provider = session.firProvider val symbol = declaration.symbol return when (declaration.visibility) { @@ -126,13 +126,13 @@ abstract class FirVisibilityChecker : FirSessionComponent { declarationVisibility: Visibility, symbol: FirBasedSymbol<*>, useSiteFile: FirFile, - containingDeclarations: List>, + containingDeclarations: List, dispatchReceiver: ReceiverValue?, session: FirSession ): Boolean private fun canSeePrivateMemberOf( - containingDeclarationOfUseSite: List>, + containingDeclarationOfUseSite: List, ownerId: ClassId, session: FirSession ): Boolean { @@ -141,7 +141,7 @@ abstract class FirVisibilityChecker : FirSessionComponent { } for (declaration in containingDeclarationOfUseSite) { - if (declaration !is FirClass<*>) continue + if (declaration !is FirClass) continue val boundSymbol = declaration.symbol if (boundSymbol.classId.isSame(ownerId)) { return true @@ -163,7 +163,7 @@ abstract class FirVisibilityChecker : FirSessionComponent { } private fun canSeeProtectedMemberOf( - containingUseSiteClass: FirClass<*>, + containingUseSiteClass: FirClass, dispatchReceiver: ReceiverValue?, ownerId: ClassId, session: FirSession ): Boolean { @@ -175,7 +175,7 @@ abstract class FirVisibilityChecker : FirSessionComponent { return containingUseSiteClass.isSubClass(ownerId, session) } - private fun FirClass<*>.isSubClass(ownerId: ClassId, session: FirSession): Boolean { + private fun FirClass.isSubClass(ownerId: ClassId, session: FirSession): Boolean { if (classId.isSame(ownerId)) return true return lookupSuperTypes(this, lookupInterfaces = true, deep = true, session).any { superType -> @@ -197,14 +197,14 @@ abstract class FirVisibilityChecker : FirSessionComponent { } protected fun canSeeProtectedMemberOf( - containingDeclarationOfUseSite: List>, + containingDeclarationOfUseSite: List, dispatchReceiver: ReceiverValue?, ownerId: ClassId, session: FirSession ): Boolean { if (canSeePrivateMemberOf(containingDeclarationOfUseSite, ownerId, session)) return true for (containingDeclaration in containingDeclarationOfUseSite) { - if (containingDeclaration !is FirClass<*>) continue + if (containingDeclaration !is FirClass) continue val boundSymbol = containingDeclaration.symbol if (canSeeProtectedMemberOf(boundSymbol.fir, dispatchReceiver, ownerId, session)) return true } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/SessionUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/SessionUtils.kt index d9753548330..7540d9b2a22 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/SessionUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/SessionUtils.kt @@ -23,7 +23,7 @@ val FirSession.typeContext: ConeInferenceContext * Returns the list of functions that overridden by given */ fun FirSimpleFunction.lowestVisibilityAmongOverrides( - containingClass: FirClass<*>, + containingClass: FirClass, session: FirSession, scopeSession: ScopeSession ): Visibility { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/declarations/FirAnnotationUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/declarations/FirAnnotationUtils.kt index 1e504d1d1af..2701eedf413 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/declarations/FirAnnotationUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/declarations/FirAnnotationUtils.kt @@ -85,6 +85,6 @@ private val USE_SITE_TARGET_NAME_MAP = mapOf( private val DEFAULT_USE_SITE_TARGETS: Set = USE_SITE_TARGET_NAME_MAP.values.fold(setOf()) { a, b -> a + b } - setOf(AnnotationUseSiteTarget.FILE) -fun FirAnnotatedDeclaration<*>.hasAnnotation(classId: ClassId): Boolean { +fun FirAnnotatedDeclaration.hasAnnotation(classId: ClassId): Boolean { return annotations.any { it.toAnnotationClassId() == classId } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/declarations/FirVersionRequirementsTableKey.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/declarations/FirVersionRequirementsTableKey.kt index 294e4df2621..b3742196f76 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/declarations/FirVersionRequirementsTableKey.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/declarations/FirVersionRequirementsTableKey.kt @@ -9,4 +9,4 @@ import org.jetbrains.kotlin.metadata.deserialization.VersionRequirementTable object FirVersionRequirementsTableKey : FirDeclarationDataKey() -var FirDeclaration<*>.versionRequirementsTable: VersionRequirementTable? by FirDeclarationDataRegistry.data(FirVersionRequirementsTableKey) +var FirDeclaration.versionRequirementsTable: VersionRequirementTable? by FirDeclarationDataRegistry.data(FirVersionRequirementsTableKey) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirDeclarationGenerationExtension.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirDeclarationGenerationExtension.kt index 3efab82dfd9..b7e93f3d89c 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirDeclarationGenerationExtension.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirDeclarationGenerationExtension.kt @@ -27,18 +27,18 @@ abstract class FirDeclarationGenerationExtension(session: FirSession) : FirPredi final override val extensionType: KClass = FirDeclarationGenerationExtension::class abstract fun generateClasses( - annotatedDeclaration: FirDeclaration<*>, - owners: List> + annotatedDeclaration: FirDeclaration, + owners: List ): List> - abstract fun generateMembersForGeneratedClass(generatedClass: GeneratedClass): List> + abstract fun generateMembersForGeneratedClass(generatedClass: GeneratedClass): List abstract fun generateMembers( - annotatedDeclaration: FirDeclaration<*>, - owners: List> + annotatedDeclaration: FirDeclaration, + owners: List ): List> - data class GeneratedDeclaration>(val newDeclaration: T, val owner: FirAnnotatedDeclaration<*>) + data class GeneratedDeclaration(val newDeclaration: T, val owner: FirAnnotatedDeclaration) fun interface Factory : FirExtension.Factory } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirPredicateBasedProvider.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirPredicateBasedProvider.kt index f1e9389caf8..2938013dfd5 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirPredicateBasedProvider.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirPredicateBasedProvider.kt @@ -23,30 +23,30 @@ abstract class FirPredicateBasedProvider : FirSessionComponent { } } - abstract fun getSymbolsByPredicate(predicate: DeclarationPredicate): List> + abstract fun getSymbolsByPredicate(predicate: DeclarationPredicate): List abstract fun getSymbolsByPredicate( - declarations: Collection>, + declarations: Collection, predicate: DeclarationPredicate - ): List> + ): List abstract fun getSymbolsWithOwnersByPredicate( predicate: DeclarationPredicate - ): List, List>>> + ): List>> abstract fun getSymbolsWithOwnersByPredicate( - declarations: Collection>, + declarations: Collection, predicate: DeclarationPredicate - ): List, List>>> + ): List>> - abstract fun getOwnersOfDeclaration(declaration: FirAnnotatedDeclaration<*>): List>? + abstract fun getOwnersOfDeclaration(declaration: FirAnnotatedDeclaration): List? abstract fun fileHasPluginAnnotations(file: FirFile): Boolean - abstract fun registerAnnotatedDeclaration(declaration: FirAnnotatedDeclaration<*>, owners: PersistentList>) - abstract fun registerGeneratedDeclaration(declaration: FirAnnotatedDeclaration<*>, owner: FirAnnotatedDeclaration<*>) + abstract fun registerAnnotatedDeclaration(declaration: FirAnnotatedDeclaration, owners: PersistentList) + abstract fun registerGeneratedDeclaration(declaration: FirAnnotatedDeclaration, owner: FirAnnotatedDeclaration) - abstract fun matches(predicate: DeclarationPredicate, declaration: FirAnnotatedDeclaration<*>): Boolean + abstract fun matches(predicate: DeclarationPredicate, declaration: FirAnnotatedDeclaration): Boolean } @NoMutableState @@ -54,7 +54,7 @@ private class FirPredicateBasedProviderImpl(private val session: FirSession) : F private val registeredPluginAnnotations = session.registeredPluginAnnotations private val cache = Cache() - override fun getSymbolsByPredicate(predicate: DeclarationPredicate): List> { + override fun getSymbolsByPredicate(predicate: DeclarationPredicate): List { val annotations = registeredPluginAnnotations.getAnnotationsForPredicate(predicate) if (annotations.isEmpty()) return emptyList() val declarations = annotations.flatMapTo(mutableSetOf()) { cache.declarationByAnnotation[it] + cache.declarationsUnderAnnotated[it] } @@ -62,24 +62,24 @@ private class FirPredicateBasedProviderImpl(private val session: FirSession) : F } override fun getSymbolsByPredicate( - declarations: Collection>, + declarations: Collection, predicate: DeclarationPredicate - ): List> { + ): List { return declarations.filter { matches(predicate, it) } } - override fun getSymbolsWithOwnersByPredicate(predicate: DeclarationPredicate): List, List>>> { + override fun getSymbolsWithOwnersByPredicate(predicate: DeclarationPredicate): List>> { return getSymbolsByPredicate(predicate).zipWithParents() } override fun getSymbolsWithOwnersByPredicate( - declarations: Collection>, + declarations: Collection, predicate: DeclarationPredicate - ): List, List>>> { + ): List>> { return getSymbolsByPredicate(declarations, predicate).zipWithParents() } - private fun List>.zipWithParents(): List, List>>> { + private fun List.zipWithParents(): List>> { return this.map { it to cache.ownersForDeclaration.getValue(it) } } @@ -87,7 +87,7 @@ private class FirPredicateBasedProviderImpl(private val session: FirSession) : F return file in cache.filesWithPluginAnnotations } - override fun registerAnnotatedDeclaration(declaration: FirAnnotatedDeclaration<*>, owners: PersistentList>) { + override fun registerAnnotatedDeclaration(declaration: FirAnnotatedDeclaration, owners: PersistentList) { cache.ownersForDeclaration[declaration] = owners registerOwnersDeclarations(declaration, owners) @@ -101,16 +101,16 @@ private class FirPredicateBasedProviderImpl(private val session: FirSession) : F cache.filesWithPluginAnnotations += file } - override fun getOwnersOfDeclaration(declaration: FirAnnotatedDeclaration<*>): List>? { + override fun getOwnersOfDeclaration(declaration: FirAnnotatedDeclaration): List? { return cache.ownersForDeclaration[declaration] } - override fun registerGeneratedDeclaration(declaration: FirAnnotatedDeclaration<*>, owner: FirAnnotatedDeclaration<*>) { + override fun registerGeneratedDeclaration(declaration: FirAnnotatedDeclaration, owner: FirAnnotatedDeclaration) { val owners = cache.ownersForDeclaration.getValue(owner).add(owner) registerAnnotatedDeclaration(declaration, owners) } - private fun registerOwnersDeclarations(declaration: FirAnnotatedDeclaration<*>, owners: PersistentList>) { + private fun registerOwnersDeclarations(declaration: FirAnnotatedDeclaration, owners: PersistentList) { val lastOwner = owners.lastOrNull() ?: return val annotationsFromLastOwner = cache.annotationsOfDeclaration[lastOwner] val annotationsFromPreviousOwners = cache.parentAnnotationsOfDeclaration[lastOwner] @@ -122,53 +122,53 @@ private class FirPredicateBasedProviderImpl(private val session: FirSession) : F // ---------------------------------- Matching ---------------------------------- - override fun matches(predicate: DeclarationPredicate, declaration: FirAnnotatedDeclaration<*>): Boolean { + override fun matches(predicate: DeclarationPredicate, declaration: FirAnnotatedDeclaration): Boolean { return predicate.accept(matcher, declaration) } private val matcher = Matcher() - private inner class Matcher : DeclarationPredicateVisitor>() { - override fun visitPredicate(predicate: DeclarationPredicate, data: FirAnnotatedDeclaration<*>): Boolean { + private inner class Matcher : DeclarationPredicateVisitor() { + override fun visitPredicate(predicate: DeclarationPredicate, data: FirAnnotatedDeclaration): Boolean { throw IllegalStateException("Should not be there") } - override fun visitAny(predicate: DeclarationPredicate.Any, data: FirAnnotatedDeclaration<*>): Boolean { + override fun visitAny(predicate: DeclarationPredicate.Any, data: FirAnnotatedDeclaration): Boolean { return true } - override fun visitAnd(predicate: DeclarationPredicate.And, data: FirAnnotatedDeclaration<*>): Boolean { + override fun visitAnd(predicate: DeclarationPredicate.And, data: FirAnnotatedDeclaration): Boolean { return predicate.a.accept(this, data) && predicate.b.accept(this, data) } - override fun visitOr(predicate: DeclarationPredicate.Or, data: FirAnnotatedDeclaration<*>): Boolean { + override fun visitOr(predicate: DeclarationPredicate.Or, data: FirAnnotatedDeclaration): Boolean { return predicate.a.accept(this, data) || predicate.b.accept(this, data) } - override fun visitAnnotatedWith(predicate: AnnotatedWith, data: FirAnnotatedDeclaration<*>): Boolean { + override fun visitAnnotatedWith(predicate: AnnotatedWith, data: FirAnnotatedDeclaration): Boolean { return matchWith(data, predicate.annotations) } - override fun visitUnderAnnotatedWith(predicate: UnderAnnotatedWith, data: FirAnnotatedDeclaration<*>): Boolean { + override fun visitUnderAnnotatedWith(predicate: UnderAnnotatedWith, data: FirAnnotatedDeclaration): Boolean { return matchUnder(data, predicate.annotations) } - override fun visitAnnotatedWithMeta(predicate: AnnotatedWithMeta, data: FirAnnotatedDeclaration<*>): Boolean { + override fun visitAnnotatedWithMeta(predicate: AnnotatedWithMeta, data: FirAnnotatedDeclaration): Boolean { return matchWith(data, predicate.userDefinedAnnotations) } - override fun visitUnderMetaAnnotated(predicate: UnderMetaAnnotated, data: FirAnnotatedDeclaration<*>): Boolean { + override fun visitUnderMetaAnnotated(predicate: UnderMetaAnnotated, data: FirAnnotatedDeclaration): Boolean { return matchUnder(data, predicate.userDefinedAnnotations) } private val MetaAnnotated.userDefinedAnnotations: Set get() = metaAnnotations.flatMapTo(mutableSetOf()) { registeredPluginAnnotations.getAnnotationsWithMetaAnnotation(it) } - private fun matchWith(declaration: FirAnnotatedDeclaration<*>, annotations: Set): Boolean { + private fun matchWith(declaration: FirAnnotatedDeclaration, annotations: Set): Boolean { return cache.annotationsOfDeclaration[declaration].any { it in annotations } } - private fun matchUnder(declaration: FirAnnotatedDeclaration<*>, annotations: Set): Boolean { + private fun matchUnder(declaration: FirAnnotatedDeclaration, annotations: Set): Boolean { return cache.parentAnnotationsOfDeclaration[declaration].any { it in annotations } } } @@ -176,13 +176,13 @@ private class FirPredicateBasedProviderImpl(private val session: FirSession) : F // ---------------------------------- Cache ---------------------------------- private class Cache { - val declarationByAnnotation: Multimap> = LinkedHashMultimap.create() - val annotationsOfDeclaration: LinkedHashMultimap, AnnotationFqn> = LinkedHashMultimap.create() + val declarationByAnnotation: Multimap = LinkedHashMultimap.create() + val annotationsOfDeclaration: LinkedHashMultimap = LinkedHashMultimap.create() - val declarationsUnderAnnotated: Multimap> = LinkedHashMultimap.create() - val parentAnnotationsOfDeclaration: LinkedHashMultimap, AnnotationFqn> = LinkedHashMultimap.create() + val declarationsUnderAnnotated: Multimap = LinkedHashMultimap.create() + val parentAnnotationsOfDeclaration: LinkedHashMultimap = LinkedHashMultimap.create() - val ownersForDeclaration: MutableMap, PersistentList>> = mutableMapOf() + val ownersForDeclaration: MutableMap> = mutableMapOf() val filesWithPluginAnnotations: MutableSet = mutableSetOf() } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirStatusTransformerExtension.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirStatusTransformerExtension.kt index 9f5bb32b00a..1630d77c9d3 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirStatusTransformerExtension.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirStatusTransformerExtension.kt @@ -25,8 +25,8 @@ abstract class FirStatusTransformerExtension(session: FirSession) : FirPredicate final override val extensionType: KClass = FirStatusTransformerExtension::class abstract fun transformStatus( - declaration: FirDeclaration<*>, - owners: List>, + declaration: FirDeclaration, + owners: List, status: FirDeclarationStatus ): FirDeclarationStatus diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirSupertypeGenerationExtension.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirSupertypeGenerationExtension.kt index 02e2e8b2394..b14f8aaa517 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirSupertypeGenerationExtension.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/extensions/FirSupertypeGenerationExtension.kt @@ -22,7 +22,7 @@ abstract class FirSupertypeGenerationExtension(session: FirSession) : FirPredica override val extensionType: KClass = FirSupertypeGenerationExtension::class abstract fun computeAdditionalSupertypes( - classLikeDeclaration: FirClassLikeDeclaration<*>, + classLikeDeclaration: FirClassLikeDeclaration, resolvedSupertypes: List ): List diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/BodyResolveComponents.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/BodyResolveComponents.kt index cc86d3f4d14..5ea256f6f0a 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/BodyResolveComponents.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/BodyResolveComponents.kt @@ -45,7 +45,7 @@ data class SessionHolderImpl(override val session: FirSession, override val scop abstract class BodyResolveComponents : SessionHolder { abstract val returnTypeCalculator: ReturnTypeCalculator abstract val implicitReceiverStack: ImplicitReceiverStack - abstract val containingDeclarations: List> + abstract val containingDeclarations: List abstract val fileImportsScope: List abstract val towerDataElements: List abstract val towerDataContext: FirTowerDataContext @@ -53,7 +53,7 @@ abstract class BodyResolveComponents : SessionHolder { abstract val noExpectedType: FirTypeRef abstract val symbolProvider: FirSymbolProvider abstract val file: FirFile - abstract val container: FirDeclaration<*> + abstract val container: FirDeclaration abstract val resolutionStageRunner: ResolutionStageRunner abstract val samResolver: FirSamResolver abstract val callResolver: FirCallResolver @@ -211,22 +211,22 @@ data class ImplicitReceivers( fun SessionHolder.collectImplicitReceivers( type: ConeKotlinType?, - owner: FirDeclaration<*> + owner: FirDeclaration ): ImplicitReceivers { if (type == null) return ImplicitReceivers(null, emptyList()) val implicitCompanionValues = mutableListOf>() val implicitReceiverValue = when (owner) { - is FirClass<*> -> { + is FirClass -> { val towerElementsForClass = collectTowerDataElementsForClass(owner, type) implicitCompanionValues.addAll(towerElementsForClass.implicitCompanionValues) towerElementsForClass.thisReceiver } - is FirFunction<*> -> { + is FirFunction -> { ImplicitExtensionReceiverValue(owner.symbol, type, session, scopeSession) } - is FirVariable<*> -> { + is FirVariable -> { ImplicitExtensionReceiverValue(owner.symbol, type, session, scopeSession) } else -> { @@ -236,7 +236,7 @@ fun SessionHolder.collectImplicitReceivers( return ImplicitReceivers(implicitReceiverValue, implicitCompanionValues) } -fun SessionHolder.collectTowerDataElementsForClass(owner: FirClass<*>, defaultType: ConeKotlinType): TowerElementsForClass { +fun SessionHolder.collectTowerDataElementsForClass(owner: FirClass, defaultType: ConeKotlinType): TowerElementsForClass { val allImplicitCompanionValues = mutableListOf>() val companionObject = (owner as? FirRegularClass)?.companionObject @@ -279,7 +279,7 @@ fun SessionHolder.collectTowerDataElementsForClass(owner: FirClass<*>, defaultTy ) } -private fun FirClass<*>.staticScope(sessionHolder: SessionHolder) = +private fun FirClass.staticScope(sessionHolder: SessionHolder) = scopeProvider.getStaticScope(this, sessionHolder.session, sessionHolder.scopeSession) class TowerElementsForClass( diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirDefaultParametersResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirDefaultParametersResolver.kt index bc4ae62c53f..ae297e86879 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirDefaultParametersResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirDefaultParametersResolver.kt @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol class FirDefaultParametersResolver : FirSessionComponent { fun declaresDefaultValue( valueParameter: FirValueParameter, - function: FirFunction<*>, + function: FirFunction, originScope: FirScope?, index: Int, ): Boolean { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirPlatformClassMapper.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirPlatformClassMapper.kt index 01d8666813a..4dd13c29bc9 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirPlatformClassMapper.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/FirPlatformClassMapper.kt @@ -14,12 +14,12 @@ import org.jetbrains.kotlin.fir.declarations.FirRegularClass abstract class FirPlatformClassMapper : FirSessionComponent { @NoMutableState object Default : FirPlatformClassMapper() { - override fun getCorrespondingPlatformClass(declaration: FirClassLikeDeclaration<*>): FirRegularClass? { + override fun getCorrespondingPlatformClass(declaration: FirClassLikeDeclaration): FirRegularClass? { return null } } - abstract fun getCorrespondingPlatformClass(declaration: FirClassLikeDeclaration<*>): FirRegularClass? + abstract fun getCorrespondingPlatformClass(declaration: FirClassLikeDeclaration): FirRegularClass? } val FirSession.platformClassMapper: FirPlatformClassMapper by FirSession.sessionComponentAccessor() 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 029e9bc79e2..5354b0921d5 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 @@ -46,7 +46,7 @@ import org.jetbrains.kotlin.types.SmartcastStability fun List.toTypeProjections(): Array = asReversed().flatMap { it.typeArgumentList.typeArguments.map { typeArgument -> typeArgument.toConeTypeProjection() } }.toTypedArray() -fun FirFunction<*>.constructFunctionalTypeRef(isSuspend: Boolean = false): FirResolvedTypeRef { +fun FirFunction.constructFunctionalTypeRef(isSuspend: Boolean = false): FirResolvedTypeRef { val receiverTypeRef = when (this) { is FirSimpleFunction -> receiverTypeRef is FirAnonymousFunction -> receiverTypeRef @@ -60,7 +60,7 @@ fun FirFunction<*>.constructFunctionalTypeRef(isSuspend: Boolean = false): FirRe ) ) } - val rawReturnType = (this as FirTypedDeclaration<*>).returnTypeRef.coneType + val rawReturnType = (this as FirTypedDeclaration).returnTypeRef.coneType val functionalType = createFunctionalType(parameters, receiverTypeRef?.coneType, rawReturnType, isSuspend = isSuspend) @@ -156,7 +156,7 @@ internal fun typeForReifiedParameterReference(parameterReferenceBuilder: FirReso return resultType.resolvedTypeFromPrototype(typeParameterSymbol.constructType(emptyArray(), false)) } -internal fun typeForQualifierByDeclaration(declaration: FirDeclaration<*>, resultType: FirTypeRef, session: FirSession): FirTypeRef? { +internal fun typeForQualifierByDeclaration(declaration: FirDeclaration, resultType: FirTypeRef, session: FirSession): FirTypeRef? { if (declaration is FirTypeAlias) { val expandedDeclaration = declaration.expandedConeType?.lookupTag?.toSymbol(session)?.fir ?: return null return typeForQualifierByDeclaration(expandedDeclaration, resultType, session) @@ -401,11 +401,11 @@ private fun initialTypeOfCandidate(candidate: Candidate, typeRef: FirResolvedTyp return candidate.substitutor.substituteOrSelf(typeRef.type) } -fun FirCallableDeclaration<*>.getContainingClass(session: FirSession): FirRegularClass? = this.containingClassAttr?.let { lookupTag -> +fun FirCallableDeclaration.getContainingClass(session: FirSession): FirRegularClass? = this.containingClassAttr?.let { lookupTag -> session.symbolProvider.getSymbolByLookupTag(lookupTag)?.fir as? FirRegularClass } -fun FirFunction<*>.getAsForbiddenNamedArgumentsTarget(session: FirSession): ForbiddenNamedArgumentsTarget? { +fun FirFunction.getAsForbiddenNamedArgumentsTarget(session: FirSession): ForbiddenNamedArgumentsTarget? { if (this is FirConstructor && this.isPrimary) { this.getContainingClass(session)?.let { containingClass -> if (containingClass.classKind == ClassKind.ANNOTATION_CLASS) { @@ -446,4 +446,4 @@ fun FirFunction<*>.getAsForbiddenNamedArgumentsTarget(session: FirSession): Forb // TODO: handle functions with non-stable parameter names, see also // org.jetbrains.kotlin.fir.serialization.FirElementSerializer.functionProto // org.jetbrains.kotlin.fir.serialization.FirElementSerializer.constructorProto -fun FirFunction<*>.getHasStableParameterNames(session: FirSession): Boolean = getAsForbiddenNamedArgumentsTarget(session) == null +fun FirFunction.getHasStableParameterNames(session: FirSession): Boolean = getAsForbiddenNamedArgumentsTarget(session) == null diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SamResolution.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SamResolution.kt index 6a79340163d..fb3a7fdf71e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SamResolution.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SamResolution.kt @@ -38,7 +38,7 @@ import org.jetbrains.kotlin.types.Variance abstract class FirSamResolver { abstract fun getFunctionTypeForPossibleSamType(type: ConeKotlinType): ConeKotlinType? - abstract fun shouldRunSamConversionForFunction(firFunction: FirFunction<*>): Boolean + abstract fun shouldRunSamConversionForFunction(firFunction: FirFunction): Boolean abstract fun getSamConstructor(firRegularClass: FirRegularClass): FirSimpleFunction? } @@ -230,7 +230,7 @@ class FirSamResolverImpl( } as? ConeLookupTagBasedType } - override fun shouldRunSamConversionForFunction(firFunction: FirFunction<*>): Boolean { + override fun shouldRunSamConversionForFunction(firFunction: FirFunction): Boolean { // TODO: properly support, see org.jetbrains.kotlin.load.java.sam.JvmSamConversionTransformer.shouldRunSamConversionForFunction return true } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt index 46c5841c6a5..364507f20b1 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt @@ -14,8 +14,8 @@ import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcast import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap import org.jetbrains.kotlin.fir.resolve.transformers.ensureResolved import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator -import org.jetbrains.kotlin.fir.scopes.FirUnstableSmartcastTypeScope import org.jetbrains.kotlin.fir.scopes.FirTypeScope +import org.jetbrains.kotlin.fir.scopes.FirUnstableSmartcastTypeScope import org.jetbrains.kotlin.fir.scopes.impl.FirScopeWithFakeOverrideTypeCalculator import org.jetbrains.kotlin.fir.scopes.impl.FirStandardOverrideChecker import org.jetbrains.kotlin.fir.scopes.impl.FirTypeIntersectionScope @@ -27,7 +27,6 @@ import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl import org.jetbrains.kotlin.name.ClassId -import org.jetbrains.kotlin.types.SmartcastStability fun FirExpressionWithSmartcast.smartcastScope( useSiteSession: FirSession, @@ -62,7 +61,7 @@ private fun ConeKotlinType.scope(useSiteSession: FirSession, scopeSession: Scope is ConeKotlinErrorType -> null is ConeClassLikeType -> { val fullyExpandedType = fullyExpandedType(useSiteSession) - val fir = fullyExpandedType.lookupTag.toSymbol(useSiteSession)?.fir as? FirClass<*> ?: return null + val fir = fullyExpandedType.lookupTag.toSymbol(useSiteSession)?.fir as? FirClass ?: return null fir.symbol.ensureResolved(requiredPhase, useSiteSession) @@ -97,7 +96,7 @@ private fun ConeKotlinType.scope(useSiteSession: FirSession, scopeSession: Scope } -fun FirClass<*>.defaultType(): ConeClassLikeType = +fun FirClass.defaultType(): ConeClassLikeType = when (this) { is FirRegularClass -> defaultType() is FirAnonymousObject -> defaultType() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt index 1652e9e8e26..bb33980b2c5 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/SupertypeUtils.kt @@ -26,11 +26,11 @@ import org.jetbrains.kotlin.utils.SmartList import org.jetbrains.kotlin.utils.SmartSet abstract class SupertypeSupplier { - abstract fun forClass(firClass: FirClass<*>, useSiteSession: FirSession): List + abstract fun forClass(firClass: FirClass, useSiteSession: FirSession): List abstract fun expansionForTypeAlias(typeAlias: FirTypeAlias, useSiteSession: FirSession): ConeClassLikeType? object Default : SupertypeSupplier() { - override fun forClass(firClass: FirClass<*>, useSiteSession: FirSession): List { + override fun forClass(firClass: FirClass, useSiteSession: FirSession): List { if (!firClass.isLocal) { // for local classes the phase may not be updated till that moment firClass.ensureResolved(FirResolvePhase.SUPER_TYPES, useSiteSession) @@ -46,7 +46,7 @@ abstract class SupertypeSupplier { } fun lookupSuperTypes( - klass: FirClass<*>, + klass: FirClass, lookupInterfaces: Boolean, deep: Boolean, useSiteSession: FirSession, @@ -58,7 +58,7 @@ fun lookupSuperTypes( } } -fun FirClass<*>.isThereLoopInSupertypes(session: FirSession): Boolean { +fun FirClass.isThereLoopInSupertypes(session: FirSession): Boolean { val visitedSymbols: MutableSet> = SmartSet.create() val inProcess: MutableSet> = mutableSetOf() @@ -72,7 +72,7 @@ fun FirClass<*>.isThereLoopInSupertypes(session: FirSession): Boolean { } when (val fir = current.fir) { - is FirClass<*> -> { + is FirClass -> { fir.superConeTypes.forEach { it.lookupTag.toSymbol(session)?.let(::dfs) } @@ -142,7 +142,7 @@ fun createSubstitution( fun ConeClassLikeType.wrapSubstitutionScopeIfNeed( session: FirSession, useSiteMemberScope: FirTypeScope, - declaration: FirClassLikeDeclaration<*>, + declaration: FirClassLikeDeclaration, builder: ScopeSession, derivedClass: FirRegularClass ): FirTypeScope { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/AbstractConeCallConflictResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/AbstractConeCallConflictResolver.kt index 01a4bd5e6cc..befe5990eaa 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/AbstractConeCallConflictResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/AbstractConeCallConflictResolver.kt @@ -100,14 +100,14 @@ abstract class AbstractConeCallConflictResolver( return when (val declaration = call.symbol.fir) { is FirSimpleFunction -> createFlatSignature(call, declaration) is FirConstructor -> createFlatSignature(call, declaration) - is FirVariable<*> -> createFlatSignature(call, declaration) - is FirClass<*> -> createFlatSignature(call, declaration) + is FirVariable -> createFlatSignature(call, declaration) + is FirClass -> createFlatSignature(call, declaration) is FirTypeAlias -> createFlatSignature(call, declaration) else -> error("Not supported: $declaration") } } - protected fun createFlatSignature(call: Candidate, variable: FirVariable<*>): FlatSignature { + protected fun createFlatSignature(call: Candidate, variable: FirVariable): FlatSignature { return FlatSignature( call, (variable as? FirProperty)?.typeParameters?.map { it.symbol.toLookupTag() }.orEmpty(), @@ -155,14 +155,14 @@ abstract class AbstractConeCallConflictResolver( private fun computeParameterTypes( call: Candidate, - function: FirFunction<*> + function: FirFunction ): List { return listOfNotNull(function.receiverTypeRef?.coneType) + (call.resultingTypeForCallableReference?.typeArguments?.map { it as ConeKotlinType } ?: call.argumentMapping?.map { it.value.argumentType() }.orEmpty()) } - private fun createFlatSignature(call: Candidate, klass: FirClassLikeDeclaration<*>): FlatSignature { + private fun createFlatSignature(call: Candidate, klass: FirClassLikeDeclaration): FlatSignature { return FlatSignature( call, (klass as? FirTypeParameterRefsOwner)?.typeParameters?.map { it.symbol.toLookupTag() }.orEmpty(), 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 33ca6a93dd0..276d5a2e813 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 @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir.resolve.calls import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirValueParameter import org.jetbrains.kotlin.fir.expressions.* @@ -487,7 +486,7 @@ private fun Candidate.getExpectedTypeWithSAMConversion( ): ConeKotlinType? { if (candidateExpectedType.isBuiltinFunctionalType(session)) return null // TODO: if (!callComponents.languageVersionSettings.supportsFeature(LanguageFeature.SamConversionPerArgument)) return null - val firFunction = symbol.fir as? FirFunction<*> ?: return null + val firFunction = symbol.fir as? FirFunction ?: return null if (!context.bodyResolveComponents.samResolver.shouldRunSamConversionForFunction(firFunction)) return null // TODO: resolvedCall.registerArgumentWithSamConversion(argument, SamConversionDescription(convertedTypeByOriginal, convertedTypeByCandidate!!)) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallableReferenceResolution.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallableReferenceResolution.kt index 023c1dbd6b7..1dc1ca70bc7 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallableReferenceResolution.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/CallableReferenceResolution.kt @@ -42,7 +42,7 @@ internal object CheckCallableReferenceExpectedType : CheckerStage() { else -> null } - val fir: FirCallableDeclaration<*> = candidate.symbol.fir + val fir: FirCallableDeclaration = candidate.symbol.fir val (rawResultingType, callableReferenceAdaptation) = buildReflectionType(fir, resultingReceiverType, candidate, context) val resultingType = candidate.substitutor.substituteOrSelf(rawResultingType) @@ -63,7 +63,7 @@ internal object CheckCallableReferenceExpectedType : CheckerStage() { } val declarationReceiverType: ConeKotlinType? = - (fir as? FirCallableMemberDeclaration<*>)?.receiverTypeRef?.coneType + (fir as? FirCallableMemberDeclaration)?.receiverTypeRef?.coneType ?.let(candidate.substitutor::substituteOrSelf) if (resultingReceiverType != null && declarationReceiverType != null) { @@ -89,7 +89,7 @@ internal object CheckCallableReferenceExpectedType : CheckerStage() { } private fun buildReflectionType( - fir: FirCallableDeclaration<*>, + fir: FirCallableDeclaration, receiverType: ConeKotlinType?, candidate: Candidate, context: ResolutionContext @@ -153,7 +153,7 @@ private fun CallableReferenceAdaptation?.needCompatibilityResolveForCallableRefe private fun BodyResolveComponents.getCallableReferenceAdaptation( session: FirSession, - function: FirFunction<*>, + function: FirFunction, expectedType: ConeKotlinType?, unboundReceiverCount: Int ): CallableReferenceAdaptation? { @@ -291,7 +291,7 @@ private enum class VarargMappingState { UNMAPPED, MAPPED_WITH_PLAIN_ARGS, MAPPED_WITH_ARRAY } -private fun FirFunction<*>.indexOf(valueParameter: FirValueParameter): Int = valueParameters.indexOf(valueParameter) +private fun FirFunction.indexOf(valueParameter: FirValueParameter): Int = valueParameters.indexOf(valueParameter) val ConeKotlinType.isUnitOrFlexibleUnit: Boolean get() { @@ -320,7 +320,7 @@ private val FirExpression.index: Int } private fun createFakeArgumentsForReference( - function: FirFunction<*>, + function: FirFunction, expectedArgumentCount: Int, inputTypes: List, unboundReceiverCount: Int @@ -390,7 +390,7 @@ fun ConeKotlinType.isKCallableType(): Boolean { } private fun createKPropertyType( - propertyOrField: FirVariable<*>, + propertyOrField: FirVariable, receiverType: ConeKotlinType?, returnTypeRef: FirResolvedTypeRef, candidate: Candidate, @@ -403,7 +403,7 @@ private fun createKPropertyType( ) } -private fun FirVariable<*>.canBeMutableReference(candidate: Candidate): Boolean { +private fun FirVariable.canBeMutableReference(candidate: Candidate): Boolean { if (!isVar) return false if (this is FirField) return true val original = this.unwrapFakeOverrides() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Candidate.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Candidate.kt index 98f7b149440..f1725de1062 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Candidate.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/Candidate.kt @@ -48,7 +48,7 @@ data class CallInfo( val typeArguments: List, val session: FirSession, val containingFile: FirFile, - val containingDeclarations: List>, + val containingDeclarations: List, val candidateForCommonInvokeReceiver: Candidate? = null, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt index 6b1874dfd87..08387f1edb0 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ConstructorProcessing.kt @@ -190,7 +190,7 @@ private fun processConstructors( } else basicScope } is FirClassSymbol -> { - val firClass = matchedSymbol.fir as FirClass<*> + val firClass = matchedSymbol.fir as FirClass if (firClass.classKind == ClassKind.INTERFACE) null else firClass.scopeForClass( substitutor, session, bodyResolveComponents.scopeSession diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirArgumentsToParametersMapper.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirArgumentsToParametersMapper.kt index f67a47e1fac..79cd6e60de4 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirArgumentsToParametersMapper.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirArgumentsToParametersMapper.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.fir.resolve.calls import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.resolve.ForbiddenNamedArgumentsTarget import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.FirValueParameter @@ -17,10 +16,11 @@ import org.jetbrains.kotlin.fir.expressions.FirNamedArgumentExpression import org.jetbrains.kotlin.fir.expressions.FirSpreadArgumentExpression import org.jetbrains.kotlin.fir.expressions.builder.buildNamedArgumentExpression import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents -import org.jetbrains.kotlin.fir.resolve.getAsForbiddenNamedArgumentsTarget import org.jetbrains.kotlin.fir.resolve.defaultParameterResolver +import org.jetbrains.kotlin.fir.resolve.getAsForbiddenNamedArgumentsTarget import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.resolve.ForbiddenNamedArgumentsTarget import kotlin.collections.component1 import kotlin.collections.component2 import kotlin.collections.set @@ -55,7 +55,7 @@ private val EmptyArgumentMapping = ArgumentMapping(linkedMapOf(), emptyList()) fun BodyResolveComponents.mapArguments( arguments: List, - function: FirFunction<*>, + function: FirFunction, originScope: FirScope?, ): ArgumentMapping { if (arguments.isEmpty() && function.valueParameters.isEmpty()) { @@ -109,7 +109,7 @@ fun BodyResolveComponents.mapArguments( private class FirCallArgumentsProcessor( private val useSiteSession: FirSession, - private val function: FirFunction<*>, + private val function: FirFunction, private val bodyResolveComponents: BodyResolveComponents, private val originScope: FirScope?, ) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/QualifierReceiver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/QualifierReceiver.kt index 0f9a5336a51..f6108f67961 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/QualifierReceiver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/QualifierReceiver.kt @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.fir.scopes.impl.FirPackageMemberScope import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol -fun FirClassLikeDeclaration<*>.fullyExpandedClass(useSiteSession: FirSession): FirRegularClass? { +fun FirClassLikeDeclaration.fullyExpandedClass(useSiteSession: FirSession): FirRegularClass? { if (this is FirTypeAlias) return this.expandedConeType?.lookupTag?.toSymbol(useSiteSession)?.fir?.fullyExpandedClass(useSiteSession) if (this is FirRegularClass) return this error("Not supported: $this") diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionDiagnostic.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionDiagnostic.kt index 3a7f9658e10..d42eece5a01 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionDiagnostic.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/ResolutionDiagnostic.kt @@ -26,12 +26,12 @@ class MixingNamedAndPositionArguments(override val argument: FirExpression) : In class TooManyArguments( val argument: FirExpression, - val function: FirFunction<*> + val function: FirFunction ) : ResolutionDiagnostic(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR) class NamedArgumentNotAllowed( override val argument: FirExpression, - val function: FirFunction<*>, + val function: FirFunction, val forbiddenNamedArgumentsTarget: ForbiddenNamedArgumentsTarget ) : InapplicableArgumentDiagnostic() @@ -50,12 +50,12 @@ class NonVarargSpread(override val argument: FirExpression) : InapplicableArgume class NoValueForParameter( val valueParameter: FirValueParameter, - val function: FirFunction<*> + val function: FirFunction ) : ResolutionDiagnostic(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR) class NameNotFound( val argument: FirNamedArgumentExpression, - val function: FirFunction<*> + val function: FirFunction ) : ResolutionDiagnostic(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR) object InapplicableCandidate : ResolutionDiagnostic(INAPPLICABLE) @@ -93,4 +93,4 @@ class ManyLambdaExpressionArguments( ) : ResolutionDiagnostic(INAPPLICABLE_ARGUMENTS_MAPPING_ERROR) class InfixCallOfNonInfixFunction(val function: FirNamedFunctionSymbol) : ResolutionDiagnostic(INAPPLICABLE_MODIFIER) -class OperatorCallOfNonOperatorFunction(val function: FirNamedFunctionSymbol) : ResolutionDiagnostic(INAPPLICABLE_MODIFIER) \ No newline at end of file +class OperatorCallOfNonOperatorFunction(val function: FirNamedFunctionSymbol) : ResolutionDiagnostic(INAPPLICABLE_MODIFIER) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/SuperCalls.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/SuperCalls.kt index 58971a1f25b..ca75d58353e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/SuperCalls.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/SuperCalls.kt @@ -18,7 +18,6 @@ import org.jetbrains.kotlin.fir.resolve.BodyResolveComponents import org.jetbrains.kotlin.fir.resolve.scope import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator -import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.types.ConeClassLikeType @@ -27,6 +26,7 @@ import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.unwrapFakeOverrides import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.types.AbstractTypeChecker import org.jetbrains.kotlin.utils.SmartList import org.jetbrains.kotlin.utils.addIfNotNull @@ -89,7 +89,7 @@ private fun BodyResolveComponents.resolveSupertypesByPropertyName(supertypes: Co private inline fun BodyResolveComponents.resolveSupertypesByMembers( supertypes: Collection, allowNonConcreteMembers: Boolean, - getMembers: (ConeKotlinType) -> Collection> + getMembers: (ConeKotlinType) -> Collection ): Collection { val typesWithConcreteMembers = SmartList() val typesWithNonConcreteMembers = SmartList() @@ -121,7 +121,7 @@ private inline fun BodyResolveComponents.resolveSupertypesByMembers( } @OptIn(ExperimentalStdlibApi::class) -private fun BodyResolveComponents.getFunctionMembers(type: ConeKotlinType, name: Name): Collection> = +private fun BodyResolveComponents.getFunctionMembers(type: ConeKotlinType, name: Name): Collection = buildList { type.scope(session, scopeSession, FakeOverrideTypeCalculator.DoNothing)?.processFunctionsByName(name) { add(it.fir) @@ -129,7 +129,7 @@ private fun BodyResolveComponents.getFunctionMembers(type: ConeKotlinType, name: } @OptIn(ExperimentalStdlibApi::class) -private fun BodyResolveComponents.getPropertyMembers(type: ConeKotlinType, name: Name): Collection> = +private fun BodyResolveComponents.getPropertyMembers(type: ConeKotlinType, name: Name): Collection = buildList { type.scope(session, scopeSession, FakeOverrideTypeCalculator.DoNothing)?.processPropertiesByName(name) { 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: FirCallableMemberDeclaration): Boolean { // "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. diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirDataFlowAnalyzer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirDataFlowAnalyzer.kt index f6be5fb70f7..f5cc0760ea6 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirDataFlowAnalyzer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirDataFlowAnalyzer.kt @@ -213,7 +213,7 @@ abstract class FirDataFlowAnalyzer( // ----------------------------------- Named function ----------------------------------- - fun enterFunction(function: FirFunction<*>) { + fun enterFunction(function: FirFunction) { if (function is FirAnonymousFunction) { enterAnonymousFunction(function) return @@ -226,7 +226,7 @@ abstract class FirDataFlowAnalyzer( functionEnterNode.mergeIncomingFlow(shouldForkFlow = previousNode != null) } - fun exitFunction(function: FirFunction<*>): FirControlFlowGraphReference { + fun exitFunction(function: FirFunction): FirControlFlowGraphReference { if (function is FirAnonymousFunction) { return exitAnonymousFunction(function) } @@ -297,7 +297,7 @@ abstract class FirDataFlowAnalyzer( } fun exitRegularClass(klass: FirRegularClass): ControlFlowGraph { - if (klass.isLocal && components.container !is FirClass<*>) return exitLocalClass(klass) + if (klass.isLocal && components.container !is FirClass) return exitLocalClass(klass) return graphBuilder.exitClass(klass) } @@ -1337,10 +1337,10 @@ abstract class FirDataFlowAnalyzer( // ------------------------------------------------------ Utils ------------------------------------------------------ - private fun getOrCreateLocalVariableAssignmentAnalyzer(firFunction: FirFunction<*>): FirLocalVariableAssignmentAnalyzer? { + private fun getOrCreateLocalVariableAssignmentAnalyzer(firFunction: FirFunction): FirLocalVariableAssignmentAnalyzer? { // Only return analyzer for nested functions so that we won't waste time on functions that don't contain any lambda or local // function. - val rootFunction = components.containingDeclarations.firstIsInstanceOrNull>() ?: return null + val rootFunction = components.containingDeclarations.firstIsInstanceOrNull() ?: return null if (rootFunction == firFunction) return null return context.firLocalVariableAssignmentAnalyzer ?: FirLocalVariableAssignmentAnalyzer.analyzeFunction(rootFunction).also { context.firLocalVariableAssignmentAnalyzer = it diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirLocalVariableAssignmentAnalyzer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirLocalVariableAssignmentAnalyzer.kt index cdb67925e1e..671fb35f1a3 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirLocalVariableAssignmentAnalyzer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/FirLocalVariableAssignmentAnalyzer.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.name.Name * queries after the traversal is done. **/ internal class FirLocalVariableAssignmentAnalyzer( - private val assignedLocalVariablesByFunction: Map, AssignedLocalVariables> + private val assignedLocalVariablesByFunction: Map ) { /** * Stack storing concurrent lambda arguments for the current visited anonymous function. For example @@ -80,7 +80,7 @@ internal class FirLocalVariableAssignmentAnalyzer( ephemeralConcurrentlyAssignedLocalVariables.clear() } - fun enterLocalFunction(function: FirFunction<*>) { + fun enterLocalFunction(function: FirFunction) { val eventOccurrencesRange: EventOccurrencesRange? = (function as? FirAnonymousFunction)?.invocationKind // carry on concurrently modified variables from the current scope val concurrentlyAssignedLocalVariables = concurrentlyAssignedLocalVariablesStack.last().toMutableSet() @@ -108,7 +108,7 @@ internal class FirLocalVariableAssignmentAnalyzer( } } - fun exitLocalFunction(function: FirFunction<*>) { + fun exitLocalFunction(function: FirFunction) { val eventOccurrencesRange: EventOccurrencesRange? = (function as? FirAnonymousFunction)?.invocationKind concurrentlyAssignedLocalVariablesStack.removeLast() when (eventOccurrencesRange) { @@ -210,14 +210,14 @@ internal class FirLocalVariableAssignmentAnalyzer( * By the way, since local variables are not resolved at this point, we manually track local variable declarations and resolve them along * the way so that shadowed names are handled correctly. */ - fun analyzeFunction(rootFunction: FirFunction<*>): FirLocalVariableAssignmentAnalyzer { + fun analyzeFunction(rootFunction: FirFunction): FirLocalVariableAssignmentAnalyzer { return FirLocalVariableAssignmentAnalyzer(computeAssignedLocalVariables(rootFunction)) } /** * Computes a mini CFG and returns the map tracking assigned local variables at each potentially concurrent local/lambda function. */ - private fun computeAssignedLocalVariables(firFunction: FirFunction<*>): Map, AssignedLocalVariables> { + private fun computeAssignedLocalVariables(firFunction: FirFunction): Map { val startFlow = MiniFlow.start() val data = MiniCfgBuilder.MiniCfgData(startFlow) MiniCfgBuilder().visitElement(firFunction, data) @@ -253,7 +253,7 @@ internal class FirLocalVariableAssignmentAnalyzer( handleFunctionFork(simpleFunction, data) } - private fun handleFunctionFork(function: FirFunction<*>, data: MiniCfgData) { + private fun handleFunctionFork(function: FirFunction, data: MiniCfgData) { val currentFlow = data.flow ?: return val functionFork = currentFlow.fork() data.flow = functionFork @@ -350,11 +350,11 @@ internal class FirLocalVariableAssignmentAnalyzer( class MiniCfgData(var flow: MiniFlow?) { val variableDeclarations: ArrayDeque> = ArrayDeque(listOf(mutableMapOf())) - val localFunctionToAssignedLocalVariables: MutableMap, AssignedLocalVariables> = mutableMapOf() + val localFunctionToAssignedLocalVariables: MutableMap = mutableMapOf() fun resolveLocalVariable(name: Name): FirProperty? { return variableDeclarations.asReversed().firstNotNullOfOrNull { it[name] } } } } } -} \ No newline at end of file +} diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/PreliminaryLoopVisitor.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/PreliminaryLoopVisitor.kt index 24ae60422c2..da63de0ce91 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/PreliminaryLoopVisitor.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/PreliminaryLoopVisitor.kt @@ -18,7 +18,7 @@ class PreliminaryLoopVisitor { private val reassignedVariablesPerElement: SetMultimap = setMultimapOf() fun enterCapturingStatement(statement: FirStatement): Set { - assert(statement is FirLoop || statement is FirClass<*> || statement is FirFunction<*>) + assert(statement is FirLoop || statement is FirClass || statement is FirFunction) if (statement !in reassignedVariablesPerElement) { statement.accept(visitor, null) } @@ -26,7 +26,7 @@ class PreliminaryLoopVisitor { } fun exitCapturingStatement(statement: FirStatement) { - assert(statement is FirLoop || statement is FirClass<*> || statement is FirFunction<*>) + assert(statement is FirLoop || statement is FirClass || statement is FirFunction) reassignedVariablesPerElement.removeKey(statement) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/Stack.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/Stack.kt index 0a6dbcba7c3..c0b353f8c61 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/Stack.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/Stack.kt @@ -76,12 +76,12 @@ class SymbolBasedNodeStorage> : Stack() where T : FirElemen override fun top(): N = stack.top() override fun pop(): N = stack.pop().also { - map.remove((it.fir as FirDeclaration<*>).symbol) + map.remove((it.fir as FirDeclaration).symbol) } override fun push(value: N) { stack.push(value) - map[(value.fir as FirDeclaration<*>).symbol] = value + map[(value.fir as FirDeclaration).symbol] = value } operator fun get(key: FirBasedSymbol<*>): N? { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/CFGNode.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/CFGNode.kt index 85d5b449da8..469d5bbca1e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/CFGNode.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/CFGNode.kt @@ -160,17 +160,17 @@ sealed class CFGNodeWithCfgOwner(owner: Contro // ----------------------------------- Named function ----------------------------------- -class FunctionEnterNode(owner: ControlFlowGraph, override val fir: FirFunction<*>, level: Int, id: Int) : CFGNode>(owner, level, id), EnterNodeMarker { +class FunctionEnterNode(owner: ControlFlowGraph, override val fir: FirFunction, level: Int, id: Int) : CFGNode(owner, level, id), EnterNodeMarker { override fun accept(visitor: ControlFlowGraphVisitor, data: D): R { return visitor.visitFunctionEnterNode(this, data) } } -class FunctionExitNode(owner: ControlFlowGraph, override val fir: FirFunction<*>, level: Int, id: Int) : CFGNode>(owner, level, id), ExitNodeMarker { +class FunctionExitNode(owner: ControlFlowGraph, override val fir: FirFunction, level: Int, id: Int) : CFGNode(owner, level, id), ExitNodeMarker { override fun accept(visitor: ControlFlowGraphVisitor, data: D): R { return visitor.visitFunctionExitNode(this, data) } } -class LocalFunctionDeclarationNode(owner: ControlFlowGraph, override val fir: FirFunction<*>, level: Int, id: Int) : CFGNodeWithCfgOwner>(owner, level, id) { +class LocalFunctionDeclarationNode(owner: ControlFlowGraph, override val fir: FirFunction, level: Int, id: Int) : CFGNodeWithCfgOwner(owner, level, id) { override fun accept(visitor: ControlFlowGraphVisitor, data: D): R { return visitor.visitLocalFunctionDeclarationNode(this, data) } @@ -225,7 +225,7 @@ class AnonymousFunctionExpressionExitNode(owner: ControlFlowGraph, override val // ----------------------------------- Classes ----------------------------------- -class ClassEnterNode(owner: ControlFlowGraph, override val fir: FirClass<*>, level: Int, id: Int) : CFGNode>(owner, level, id), EnterNodeMarker { +class ClassEnterNode(owner: ControlFlowGraph, override val fir: FirClass, level: Int, id: Int) : CFGNode(owner, level, id), EnterNodeMarker { init { owner.enterNode = this } @@ -235,7 +235,7 @@ class ClassEnterNode(owner: ControlFlowGraph, override val fir: FirClass<*>, lev } } -class ClassExitNode(owner: ControlFlowGraph, override val fir: FirClass<*>, level: Int, id: Int) : CFGNode>(owner, level, id), ExitNodeMarker { +class ClassExitNode(owner: ControlFlowGraph, override val fir: FirClass, level: Int, id: Int) : CFGNode(owner, level, id), ExitNodeMarker { init { owner.exitNode = this } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/CFGNodeRenderer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/CFGNodeRenderer.kt index ad20ec08176..03602ed1349 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/CFGNodeRenderer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/CFGNodeRenderer.kt @@ -137,7 +137,7 @@ private val CfgRenderMode = FirRenderer.RenderMode( renderAnnotation = false, ) -private fun FirFunction<*>.name(): String = when (this) { +private fun FirFunction.name(): String = when (this) { is FirSimpleFunction -> name.asString() is FirAnonymousFunction -> "anonymousFunction" is FirConstructor -> "" diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraph.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraph.kt index 2cbd27fdc5a..ed489e40eda 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraph.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraph.kt @@ -8,7 +8,7 @@ package org.jetbrains.kotlin.fir.resolve.dfa.cfg import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol -class ControlFlowGraph(val declaration: FirDeclaration<*>?, val name: String, val kind: Kind) { +class ControlFlowGraph(val declaration: FirDeclaration?, val name: String, val kind: Kind) { private var _nodes: MutableList> = mutableListOf() val nodes: List> diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt index 46ace5d1bbf..b600ca5393e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphBuilder.kt @@ -64,7 +64,7 @@ class ControlFlowGraphBuilder { // ----------------------------------- Node caches ----------------------------------- - private val exitTargetsForReturn: SymbolBasedNodeStorage, FunctionExitNode> = SymbolBasedNodeStorage() + private val exitTargetsForReturn: SymbolBasedNodeStorage = SymbolBasedNodeStorage() private val exitTargetsForTry: Stack> = stackOf() private val exitsOfAnonymousFunctions: MutableMap, FunctionExitNode> = mutableMapOf() private val enterToLocalClassesMembers: MutableMap, CFGNode<*>?> = mutableMapOf() @@ -167,7 +167,7 @@ class ControlFlowGraphBuilder { // ----------------------------------- Regular function ----------------------------------- - fun enterFunction(function: FirFunction<*>): Triple?> { + fun enterFunction(function: FirFunction): Triple?> { require(function !is FirAnonymousFunction) val name = when (function) { is FirSimpleFunction -> function.name.asString() @@ -214,7 +214,7 @@ class ControlFlowGraphBuilder { return Triple(enterNode, localFunctionNode, previousNode) } - fun exitFunction(function: FirFunction<*>): Pair { + fun exitFunction(function: FirFunction): Pair { require(function !is FirAnonymousFunction) val exitNode = exitTargetsForReturn.pop() popAndAddEdge(exitNode) @@ -377,7 +377,7 @@ class ControlFlowGraphBuilder { popGraph() } - fun exitClass(klass: FirClass<*>): ControlFlowGraph { + fun exitClass(klass: FirClass): ControlFlowGraph { exitClass() val name = when (klass) { is FirAnonymousObject -> "" @@ -413,13 +413,13 @@ class ControlFlowGraphBuilder { return popGraph() } - fun prepareForLocalClassMembers(members: Collection>) { + fun prepareForLocalClassMembers(members: Collection) { members.forEachMember { enterToLocalClassesMembers[it.symbol] = lastNodes.topOrNull() } } - fun cleanAfterForLocalClassMembers(members: Collection>) { + fun cleanAfterForLocalClassMembers(members: Collection) { members.forEachMember { enterToLocalClassesMembers.remove(it.symbol) } @@ -458,8 +458,8 @@ class ControlFlowGraphBuilder { } } - fun visitLocalClassFunctions(klass: FirClass<*>, node: CFGNodeWithCfgOwner<*>) { - klass.declarations.filterIsInstance>().forEach { function -> + fun visitLocalClassFunctions(klass: FirClass, node: CFGNodeWithCfgOwner<*>) { + klass.declarations.filterIsInstance().forEach { function -> val functionGraph = function.controlFlowGraphReference?.controlFlowGraph if (functionGraph != null && functionGraph.owner == null) { addEdge(node, functionGraph.enterNode, preferredKind = EdgeKind.CfgForward) @@ -1362,7 +1362,7 @@ class ControlFlowGraphBuilder { // ----------------------------------- Utils ----------------------------------- - private inline fun Collection>.forEachMember(block: (FirDeclaration<*>) -> Unit) { + private inline fun Collection.forEachMember(block: (FirDeclaration) -> Unit) { for (member in this) { for (callableDeclaration in member.unwrap()) { block(callableDeclaration) @@ -1370,9 +1370,9 @@ class ControlFlowGraphBuilder { } } - private fun FirDeclaration<*>.unwrap(): List> = + private fun FirDeclaration.unwrap(): List = when (this) { - is FirFunction<*>, is FirAnonymousInitializer -> listOf(this) + is FirFunction, is FirAnonymousInitializer -> listOf(this) is FirProperty -> listOfNotNull(this.getter, this.setter, this) else -> emptyList() } @@ -1384,4 +1384,4 @@ class ControlFlowGraphBuilder { } -fun FirDeclaration<*>?.isLocalClassOrAnonymousObject() = ((this as? FirRegularClass)?.isLocal == true) || this is FirAnonymousObject +fun FirDeclaration?.isLocalClassOrAnonymousObject() = ((this as? FirRegularClass)?.isLocal == true) || this is FirAnonymousObject diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphNodeBuilder.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphNodeBuilder.kt index 150dd6612ba..2a650d0f849 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphNodeBuilder.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/cfg/ControlFlowGraphNodeBuilder.kt @@ -64,17 +64,17 @@ fun ControlFlowGraphBuilder.createFieldInitializerExitNode(fir: FirField): Field fun ControlFlowGraphBuilder.createFieldInitializerEnterNode(fir: FirField): FieldInitializerEnterNode = FieldInitializerEnterNode(currentGraph, fir, levelCounter, createId()) -fun ControlFlowGraphBuilder.createFunctionEnterNode(fir: FirFunction<*>): FunctionEnterNode = +fun ControlFlowGraphBuilder.createFunctionEnterNode(fir: FirFunction): FunctionEnterNode = FunctionEnterNode(currentGraph, fir, levelCounter, createId()).also { currentGraph.enterNode = it } -fun ControlFlowGraphBuilder.createFunctionExitNode(fir: FirFunction<*>): FunctionExitNode = +fun ControlFlowGraphBuilder.createFunctionExitNode(fir: FirFunction): FunctionExitNode = FunctionExitNode(currentGraph, fir, levelCounter, createId()).also { currentGraph.exitNode = it } -fun ControlFlowGraphBuilder.createLocalFunctionDeclarationNode(fir: FirFunction<*>): LocalFunctionDeclarationNode = +fun ControlFlowGraphBuilder.createLocalFunctionDeclarationNode(fir: FirFunction): LocalFunctionDeclarationNode = LocalFunctionDeclarationNode(currentGraph, fir, levelCounter, createId()) fun ControlFlowGraphBuilder.createBinaryOrEnterNode(fir: FirBinaryLogicExpression): BinaryOrEnterNode = @@ -233,10 +233,10 @@ fun ControlFlowGraphBuilder.createAnonymousObjectExpressionExitNode(fir: FirAnon fun ControlFlowGraphBuilder.createUnionFunctionCallArgumentsNode(fir: FirElement): UnionFunctionCallArgumentsNode = UnionFunctionCallArgumentsNode(currentGraph, fir, levelCounter, createId()) -fun ControlFlowGraphBuilder.createClassEnterNode(fir: FirClass<*>): ClassEnterNode = +fun ControlFlowGraphBuilder.createClassEnterNode(fir: FirClass): ClassEnterNode = ClassEnterNode(currentGraph, fir, levelCounter, createId()) -fun ControlFlowGraphBuilder.createClassExitNode(fir: FirClass<*>): ClassExitNode = +fun ControlFlowGraphBuilder.createClassExitNode(fir: FirClass): ClassExitNode = ClassExitNode(currentGraph, fir, levelCounter, createId()) fun ControlFlowGraphBuilder.createLocalClassExitNode(fir: FirRegularClass): LocalClassExitNode = diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/util.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/util.kt index fe4cfe9b541..12c5b65b90b 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/util.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/dfa/util.kt @@ -95,7 +95,7 @@ internal val FirExpression.coneType: ConeKotlinType internal val FirElement.symbol: FirBasedSymbol<*>? get() = when (this) { is FirResolvable -> symbol - is FirDeclaration<*> -> symbol + is FirDeclaration -> symbol is FirWhenSubjectExpression -> whenRef.value.subject?.symbol is FirSafeCallExpression -> regularQualifiedAccess.symbol else -> null diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/FirDiagnostics.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/FirDiagnostics.kt index 4e042667a06..42491290520 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/FirDiagnostics.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/diagnostics/FirDiagnostics.kt @@ -113,7 +113,7 @@ class ConeInstanceAccessBeforeSuperCall(val target: String) : ConeDiagnostic() { override val reason: String get() = "Cannot access ''${target}'' before superclass constructor has been called" } -class ConeUnsupportedCallableReferenceTarget(val fir: FirCallableDeclaration<*>) : ConeDiagnostic() { +class ConeUnsupportedCallableReferenceTarget(val fir: FirCallableDeclaration) : ConeDiagnostic() { override val reason: String get() = "Unsupported declaration for callable reference: ${fir.render()}" } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirBuilderInferenceSession.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirBuilderInferenceSession.kt index 43a7a2ce815..be0d8010fc9 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirBuilderInferenceSession.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirBuilderInferenceSession.kt @@ -273,4 +273,4 @@ class FirStubTypeTransformer( private val BUILDER_INFERENCE_ANNOTATION_CLASS_ID = ClassId.topLevel(BUILDER_INFERENCE_ANNOTATION_FQ_NAME) fun FirElement.hasBuilderInferenceAnnotation(): Boolean = - (this as? FirAnnotatedDeclaration<*>)?.hasAnnotation(BUILDER_INFERENCE_ANNOTATION_CLASS_ID) == true + (this as? FirAnnotatedDeclaration)?.hasAnnotation(BUILDER_INFERENCE_ANNOTATION_CLASS_ID) == true diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirCallCompleter.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirCallCompleter.kt index c4c01d951e9..842770f4811 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirCallCompleter.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirCallCompleter.kt @@ -308,7 +308,7 @@ private fun Candidate.isFunctionForExpectTypeFromCastFeature(): Boolean { // Expect type is only being added to calls in a position of cast argument: foo() as R // And that call should be resolved to something materialize()-like: it returns its single generic parameter and doesn't have value parameters // fun materialize(): T -fun FirFunction<*>.isFunctionForExpectTypeFromCastFeature(): Boolean { +fun FirFunction.isFunctionForExpectTypeFromCastFeature(): Boolean { val typeParameter = typeParameters.singleOrNull() ?: return false val returnType = returnTypeRef.coneTypeSafe() ?: return false diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirDelegatedPropertyInferenceSession.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirDelegatedPropertyInferenceSession.kt index 1b16527233d..989aadc7f8a 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirDelegatedPropertyInferenceSession.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/FirDelegatedPropertyInferenceSession.kt @@ -138,7 +138,7 @@ class FirDelegatedPropertyInferenceSession( ?: when (val container = components.container) { is FirRegularClass -> container.defaultType() is FirAnonymousObject -> container.defaultType() - is FirCallableMemberDeclaration<*> -> container.dispatchReceiverType + is FirCallableMemberDeclaration -> container.dispatchReceiverType else -> null } ?: components.session.builtinTypes.nullableNothingType.type val valueParameterForThis = (symbol as? FirFunctionSymbol<*>)?.fir?.valueParameters?.firstOrNull() ?: return diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/InferenceUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/InferenceUtils.kt index 89c62e03e76..2691f6762fd 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/InferenceUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/inference/InferenceUtils.kt @@ -6,13 +6,14 @@ package org.jetbrains.kotlin.fir.resolve.inference import org.jetbrains.kotlin.builtins.functions.FunctionClassKind -import org.jetbrains.kotlin.fir.* +import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction import org.jetbrains.kotlin.fir.declarations.FirClass import org.jetbrains.kotlin.fir.diagnostics.ConeSimpleDiagnostic import org.jetbrains.kotlin.fir.diagnostics.DiagnosticKind import org.jetbrains.kotlin.fir.expressions.FirReturnExpression import org.jetbrains.kotlin.fir.expressions.impl.FirUnitExpression +import org.jetbrains.kotlin.fir.originalForSubstitutionOverride import org.jetbrains.kotlin.fir.resolve.* import org.jetbrains.kotlin.fir.resolve.calls.Candidate import org.jetbrains.kotlin.fir.scopes.FakeOverrideTypeCalculator @@ -20,13 +21,14 @@ import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.scopes.processOverriddenFunctions import org.jetbrains.kotlin.fir.scopes.unsubstitutedScope import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag -import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.fir.symbols.impl.ConeClassLikeLookupTagImpl import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol +import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.name.ClassId +import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.types.AbstractTypeChecker import org.jetbrains.kotlin.util.OperatorNameConventions import kotlin.contracts.ExperimentalContracts @@ -154,7 +156,7 @@ fun ConeKotlinType.findSubtypeOfNonSuspendFunctionalType(session: FirSession, ex fun ConeClassLikeType.findBaseInvokeSymbol(session: FirSession, scopeSession: ScopeSession): FirNamedFunctionSymbol? { require(this.isBuiltinFunctionalType(session)) - val functionN = (lookupTag.toSymbol(session)?.fir as? FirClass<*>) ?: return null + val functionN = (lookupTag.toSymbol(session)?.fir as? FirClass) ?: return null var baseInvokeSymbol: FirNamedFunctionSymbol? = null functionN.unsubstitutedScope( session, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/FirProvider.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/FirProvider.kt index bb6ed8ac2ad..abf1650f7c4 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/FirProvider.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/FirProvider.kt @@ -24,7 +24,7 @@ abstract class FirProvider : FirSessionComponent { open val isPhasedFirAllowed: Boolean get() = false - abstract fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration<*>? + abstract fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration? abstract fun getFirClassifierContainerFile(fqName: ClassId): FirFile @@ -41,10 +41,10 @@ abstract class FirProvider : FirSessionComponent { abstract fun getFirFilesByPackage(fqName: FqName): List @FirProviderInternals - abstract fun recordGeneratedClass(owner: FirAnnotatedDeclaration<*>, klass: FirRegularClass) + abstract fun recordGeneratedClass(owner: FirAnnotatedDeclaration, klass: FirRegularClass) @FirProviderInternals - abstract fun recordGeneratedMember(owner: FirAnnotatedDeclaration<*>, klass: FirDeclaration<*>) + abstract fun recordGeneratedMember(owner: FirAnnotatedDeclaration, klass: FirDeclaration) abstract fun getClassNamesInPackage(fqName: FqName): Set } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirLibrarySessionProvider.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirLibrarySessionProvider.kt index 895734a8984..f62a20be2d2 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirLibrarySessionProvider.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirLibrarySessionProvider.kt @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.name.Name class FirLibrarySessionProvider( override val symbolProvider: FirSymbolProvider ) : FirProvider() { - override fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration<*>? = + override fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration? = symbolProvider.getClassLikeSymbolByFqName(classId)?.fir override fun getFirClassifierContainerFile(fqName: ClassId): FirFile = shouldNotBeCalled() @@ -27,10 +27,10 @@ class FirLibrarySessionProvider( override fun getFirFilesByPackage(fqName: FqName): List = emptyList() @FirProviderInternals - override fun recordGeneratedClass(owner: FirAnnotatedDeclaration<*>, klass: FirRegularClass) = shouldNotBeCalled() + override fun recordGeneratedClass(owner: FirAnnotatedDeclaration, klass: FirRegularClass) = shouldNotBeCalled() @FirProviderInternals - override fun recordGeneratedMember(owner: FirAnnotatedDeclaration<*>, klass: FirDeclaration<*>) = shouldNotBeCalled() + override fun recordGeneratedMember(owner: FirAnnotatedDeclaration, klass: FirDeclaration) = shouldNotBeCalled() override fun getClassNamesInPackage(fqName: FqName): Set = shouldNotBeCalled() diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirProviderImpl.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirProviderImpl.kt index d8bd47c5608..df7e10d4dea 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirProviderImpl.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/providers/impl/FirProviderImpl.kt @@ -78,16 +78,16 @@ class FirProviderImpl(val session: FirSession, val kotlinScopeProvider: FirKotli } @FirProviderInternals - override fun recordGeneratedClass(owner: FirAnnotatedDeclaration<*>, klass: FirRegularClass) { + override fun recordGeneratedClass(owner: FirAnnotatedDeclaration, klass: FirRegularClass) { klass.accept(FirRecorder, FirRecorderData(state, owner.file, session.nameConflictsTracker)) } @FirProviderInternals - override fun recordGeneratedMember(owner: FirAnnotatedDeclaration<*>, klass: FirDeclaration<*>) { + override fun recordGeneratedMember(owner: FirAnnotatedDeclaration, klass: FirDeclaration) { klass.accept(FirRecorder, FirRecorderData(state, owner.file, session.nameConflictsTracker)) } - private val FirAnnotatedDeclaration<*>.file: FirFile + private val FirAnnotatedDeclaration.file: FirFile get() = when (this) { is FirFile -> this is FirRegularClass -> getFirClassifierContainerFile(this.symbol.classId) @@ -139,7 +139,7 @@ class FirProviderImpl(val session: FirSession, val kotlinScopeProvider: FirKotli data.state.callableContainerMap[symbol] = data.file } - private inline fun , S : FirCallableSymbol> registerCallable( + private inline fun > registerCallable( symbol: S, data: FirRecorderData, map: MutableMap> @@ -176,7 +176,7 @@ class FirProviderImpl(val session: FirSession, val kotlinScopeProvider: FirKotli private class State { val fileMap = mutableMapOf>() - val classifierMap = mutableMapOf>() + val classifierMap = mutableMapOf() val classifierContainerFileMap = mutableMapOf() val classesInPackage = mutableMapOf>() val functionMap = mutableMapOf>() @@ -208,7 +208,7 @@ class FirProviderImpl(val session: FirSession, val kotlinScopeProvider: FirKotli return state.fileMap[fqName].orEmpty() } - override fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration<*>? { + override fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration? { require(!classId.isLocal) { "Local $classId should never be used to find its corresponding classifier" } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirAbstractPhaseTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirAbstractPhaseTransformer.kt index 8a6127c53fb..7a6d26487d5 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirAbstractPhaseTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirAbstractPhaseTransformer.kt @@ -34,7 +34,7 @@ abstract class FirAbstractPhaseTransformer( return super.transformFile(file, data) } - override fun > transformDeclaration(declaration: FirDeclaration, data: D): FirDeclaration { + override fun transformDeclaration(declaration: FirDeclaration, data: D): FirDeclaration { if (declaration.resolvePhase < transformerPhase) { declaration.replaceResolvePhase(transformerPhase) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirAbstractTreeTransformerWithSuperTypes.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirAbstractTreeTransformerWithSuperTypes.kt index 4b9dffeb633..a49578b307d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirAbstractTreeTransformerWithSuperTypes.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirAbstractTreeTransformerWithSuperTypes.kt @@ -32,7 +32,7 @@ abstract class FirAbstractTreeTransformerWithSuperTypes( protected val scopes = mutableListOf() protected val towerScope = FirCompositeScope(scopes.asReversed()) - protected open fun needReplacePhase(firDeclaration: FirDeclaration<*>): Boolean = transformerPhase > firDeclaration.resolvePhase + protected open fun needReplacePhase(firDeclaration: FirDeclaration): Boolean = transformerPhase > firDeclaration.resolvePhase protected inline fun withScopeCleanup(crossinline l: () -> T): T { val sizeBefore = scopes.size @@ -46,7 +46,7 @@ abstract class FirAbstractTreeTransformerWithSuperTypes( } protected fun resolveNestedClassesSupertypes( - firClass: FirClass<*>, + firClass: FirClass, data: Any? ): FirStatement { if (needReplacePhase(firClass)) { @@ -84,7 +84,7 @@ abstract class FirAbstractTreeTransformerWithSuperTypes( // Note that annotations are still visited here // again, although there's no need in it - transformDeclarationContent(firClass, data) as FirClass<*> + transformDeclarationContent(firClass, data) as FirClass } } @@ -94,7 +94,7 @@ abstract class FirAbstractTreeTransformerWithSuperTypes( } } - open fun transformDeclarationContent(declaration: FirDeclaration<*>, data: Any?): FirDeclaration<*> { + open fun transformDeclarationContent(declaration: FirDeclaration, data: Any?): FirDeclaration { return transformElement(declaration, data) } } 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 315de5833a8..6c1ed0a5984 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 @@ -498,7 +498,7 @@ class FirCallCompletionResultsWriterTransformer( private fun computeTypeArgumentTypes( candidate: Candidate, ): List { - val declaration = candidate.symbol.fir as? FirCallableMemberDeclaration<*> ?: return emptyList() + val declaration = candidate.symbol.fir as? FirCallableMemberDeclaration ?: return emptyList() return declaration.typeParameters.map { ConeTypeParameterTypeImpl(it.symbol.toLookupTag(), false) } .map { candidate.substitutor.substituteOrSelf(it) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt index a6fa6d8a030..9cfb5c8264e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolveTransformer.kt @@ -36,7 +36,7 @@ class FirStatusResolveProcessor( } } -fun > F.runStatusResolveForLocalClass( +fun F.runStatusResolveForLocalClass( session: FirSession, scopeSession: ScopeSession, scopesForLocalClass: List, @@ -55,10 +55,10 @@ fun > F.runStatusResolveForLocalClass( } abstract class ResolvedStatusCalculator { - abstract fun tryCalculateResolvedStatus(declaration: FirCallableMemberDeclaration<*>): FirResolvedDeclarationStatus + abstract fun tryCalculateResolvedStatus(declaration: FirCallableMemberDeclaration): FirResolvedDeclarationStatus object Default : ResolvedStatusCalculator() { - override fun tryCalculateResolvedStatus(declaration: FirCallableMemberDeclaration<*>): FirResolvedDeclarationStatus { + override fun tryCalculateResolvedStatus(declaration: FirCallableMemberDeclaration): FirResolvedDeclarationStatus { val status = declaration.status require(status is FirResolvedDeclarationStatus) { "Status of ${declaration.render()} is unresolved" @@ -72,7 +72,7 @@ open class FirStatusResolveTransformer( session: FirSession, scopeSession: ScopeSession, statusComputationSession: StatusComputationSession, - designationMapForLocalClasses: Map, FirClassLikeDeclaration<*>?> = mapOf(), + designationMapForLocalClasses: Map = mapOf(), scopeForLocalClass: FirScope? = null, ) : AbstractFirStatusResolveTransformer( session, @@ -81,14 +81,14 @@ open class FirStatusResolveTransformer( designationMapForLocalClasses, scopeForLocalClass ) { - override fun FirDeclaration<*>.needResolveMembers(): Boolean { + override fun FirDeclaration.needResolveMembers(): Boolean { if (this is FirRegularClass) { return statusComputationSession[this] != StatusComputationSession.StatusComputationStatus.Computed } return true } - override fun FirDeclaration<*>.needResolveNestedClassifiers(): Boolean { + override fun FirDeclaration.needResolveNestedClassifiers(): Boolean { return true } @@ -113,10 +113,10 @@ open class FirStatusResolveTransformer( open class FirDesignatedStatusResolveTransformer( session: FirSession, scopeSession: ScopeSession, - private val designation: Iterator>, - private val targetClass: FirClassLikeDeclaration<*>, + private val designation: Iterator, + private val targetClass: FirClassLikeDeclaration, statusComputationSession: StatusComputationSession, - designationMapForLocalClasses: Map, FirClassLikeDeclaration<*>?>, + designationMapForLocalClasses: Map, scopeForLocalClass: FirScope?, ) : AbstractFirStatusResolveTransformer( session, @@ -125,10 +125,10 @@ open class FirDesignatedStatusResolveTransformer( designationMapForLocalClasses, scopeForLocalClass ) { - private var currentElement: FirDeclaration<*>? = null + private var currentElement: FirDeclaration? = null private var classLocated = false - private fun shouldSkipClass(declaration: FirDeclaration<*>): Boolean { + private fun shouldSkipClass(declaration: FirDeclaration): Boolean { if (classLocated) return declaration != targetClass if (currentElement == null && designation.hasNext()) { currentElement = designation.next() @@ -143,11 +143,11 @@ open class FirDesignatedStatusResolveTransformer( return !result } - override fun FirDeclaration<*>.needResolveMembers(): Boolean { + override fun FirDeclaration.needResolveMembers(): Boolean { return classLocated } - override fun FirDeclaration<*>.needResolveNestedClassifiers(): Boolean { + override fun FirDeclaration.needResolveNestedClassifiers(): Boolean { return !classLocated } @@ -182,11 +182,11 @@ open class FirDesignatedStatusResolveTransformer( } sealed class StatusComputationSession { - abstract operator fun get(klass: FirClass<*>): StatusComputationStatus + abstract operator fun get(klass: FirClass): StatusComputationStatus - abstract fun startComputing(klass: FirClass<*>): StatusComputationStatus - abstract fun endComputing(klass: FirClass<*>) - abstract fun computeOnlyClassStatus(klass: FirClass<*>) + abstract fun startComputing(klass: FirClass): StatusComputationStatus + abstract fun endComputing(klass: FirClass) + abstract fun computeOnlyClassStatus(klass: FirClass) enum class StatusComputationStatus(val requiresComputation: Boolean) { NotComputed(true), @@ -196,20 +196,20 @@ sealed class StatusComputationSession { } class Regular : StatusComputationSession() { - private val statusMap = mutableMapOf, StatusComputationStatus>() + private val statusMap = mutableMapOf() .withDefault { StatusComputationStatus.NotComputed } - override fun get(klass: FirClass<*>): StatusComputationStatus = statusMap.getValue(klass) + override fun get(klass: FirClass): StatusComputationStatus = statusMap.getValue(klass) - override fun startComputing(klass: FirClass<*>): StatusComputationStatus { + override fun startComputing(klass: FirClass): StatusComputationStatus { return statusMap.getOrPut(klass) { StatusComputationStatus.Computing } } - override fun endComputing(klass: FirClass<*>) { + override fun endComputing(klass: FirClass) { statusMap[klass] = StatusComputationStatus.Computed } - override fun computeOnlyClassStatus(klass: FirClass<*>) { + override fun computeOnlyClassStatus(klass: FirClass) { val existedStatus = statusMap.getValue(klass) if (existedStatus < StatusComputationStatus.ComputedOnlyClassStatus) { statusMap[klass] = StatusComputationStatus.ComputedOnlyClassStatus @@ -217,23 +217,23 @@ sealed class StatusComputationSession { } } - class ForLocalClassResolution(private val localClasses: Set>) : StatusComputationSession() { + class ForLocalClassResolution(private val localClasses: Set) : StatusComputationSession() { private val delegate = Regular() - override fun get(klass: FirClass<*>): StatusComputationStatus { + override fun get(klass: FirClass): StatusComputationStatus { if (klass !in localClasses) return StatusComputationStatus.Computed return delegate[klass] } - override fun startComputing(klass: FirClass<*>): StatusComputationStatus { + override fun startComputing(klass: FirClass): StatusComputationStatus { return delegate.startComputing(klass) } - override fun endComputing(klass: FirClass<*>) { + override fun endComputing(klass: FirClass) { delegate.endComputing(klass) } - override fun computeOnlyClassStatus(klass: FirClass<*>) { + override fun computeOnlyClassStatus(klass: FirClass) { delegate.computeOnlyClassStatus(klass) } } @@ -243,18 +243,18 @@ abstract class AbstractFirStatusResolveTransformer( final override val session: FirSession, val scopeSession: ScopeSession, protected val statusComputationSession: StatusComputationSession, - protected val designationMapForLocalClasses: Map, FirClassLikeDeclaration<*>?>, + protected val designationMapForLocalClasses: Map, private val scopeForLocalClass: FirScope? ) : FirAbstractTreeTransformer(phase = FirResolvePhase.STATUS) { - protected val classes = mutableListOf>() + protected val classes = mutableListOf() protected val statusResolver = FirStatusResolver(session, scopeSession) - protected val containingClass: FirClass<*>? get() = classes.lastOrNull() + protected val containingClass: FirClass? get() = classes.lastOrNull() - protected abstract fun FirDeclaration<*>.needResolveMembers(): Boolean - protected abstract fun FirDeclaration<*>.needResolveNestedClassifiers(): Boolean + protected abstract fun FirDeclaration.needResolveMembers(): Boolean + protected abstract fun FirDeclaration.needResolveNestedClassifiers(): Boolean - protected open fun needReplacePhase(firDeclaration: FirDeclaration<*>): Boolean = transformerPhase > firDeclaration.resolvePhase + protected open fun needReplacePhase(firDeclaration: FirDeclaration): Boolean = transformerPhase > firDeclaration.resolvePhase override fun transformFile(file: FirFile, data: FirResolvedDeclarationStatus?): FirFile { if (needReplacePhase(file)) { @@ -272,26 +272,26 @@ abstract class AbstractFirStatusResolveTransformer( } protected inline fun storeClass( - klass: FirClass<*>, - computeResult: () -> FirDeclaration<*> - ): FirDeclaration<*> { + klass: FirClass, + computeResult: () -> FirDeclaration + ): FirDeclaration { classes += klass val result = computeResult() classes.removeAt(classes.lastIndex) return result } - override fun > transformDeclaration( - declaration: FirDeclaration, + override fun transformDeclaration( + declaration: FirDeclaration, data: FirResolvedDeclarationStatus? - ): FirDeclaration { + ): FirDeclaration { if (needReplacePhase(declaration)) { declaration.replaceResolvePhase(transformerPhase) } return when (declaration) { - is FirCallableDeclaration<*> -> { + is FirCallableDeclaration -> { when (declaration) { - is FirFunction<*> -> { + is FirFunction -> { for (valueParameter in declaration.valueParameters) { transformValueParameter(valueParameter, data) } @@ -328,9 +328,9 @@ abstract class AbstractFirStatusResolveTransformer( } open fun transformDeclarationContent( - declaration: FirDeclaration<*>, + declaration: FirDeclaration, data: FirResolvedDeclarationStatus? - ): FirDeclaration<*> { + ): FirDeclaration { val declarations = when (declaration) { is FirRegularClass -> declaration.declarations @@ -340,7 +340,7 @@ abstract class AbstractFirStatusResolveTransformer( } if (declaration.needResolveMembers()) { - val members = declarations.filter { it !is FirClassLikeDeclaration<*> } + val members = declarations.filter { it !is FirClassLikeDeclaration } members.forEach { member -> if (needReplacePhase(member)) { member.replaceResolvePhase(transformerPhase) @@ -349,7 +349,7 @@ abstract class AbstractFirStatusResolveTransformer( members.forEach { member -> member.transformSingle(this, data) } } if (declaration.needResolveNestedClassifiers()) { - val members = declarations.filterIsInstance>() + val members = declarations.filterIsInstance() for (klass in members) { klass.transformSingle(this, data) } @@ -358,8 +358,8 @@ abstract class AbstractFirStatusResolveTransformer( } @Suppress("UNCHECKED_CAST") - override fun > transformClass( - klass: FirClass, + override fun transformClass( + klass: FirClass, data: FirResolvedDeclarationStatus? ): FirStatement { return storeClass(klass) { @@ -418,13 +418,13 @@ abstract class AbstractFirStatusResolveTransformer( } val symbol = regularClass.symbol val designation = if (regularClass.isLocal) buildList { - var klass: FirClassLikeDeclaration<*> = regularClass + var klass: FirClassLikeDeclaration = regularClass while (true) { this.add(klass) klass = designationMapForLocalClasses[klass]?.takeIf { it !is FirAnonymousObject } ?: break } reverse() - } else buildList> { + } else buildList { val outerClasses = generateSequence(symbol.classId) { classId -> classId.outerClassId }.mapTo(mutableListOf()) { firProvider.getFirClassifierByFqName(it) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolver.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolver.kt index 6cd25abac7e..d165f4ac833 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolver.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirStatusResolver.kt @@ -41,8 +41,8 @@ class FirStatusResolver( } fun resolveStatus( - declaration: FirDeclaration<*>, - containingClass: FirClass<*>?, + declaration: FirDeclaration, + containingClass: FirClass?, containingProperty: FirProperty?, isLocal: Boolean ): FirResolvedDeclarationStatus { @@ -59,7 +59,7 @@ class FirStatusResolver( } @OptIn(ExperimentalStdlibApi::class) - fun resolveStatus(property: FirProperty, containingClass: FirClass<*>?, isLocal: Boolean): FirResolvedDeclarationStatus { + fun resolveStatus(property: FirProperty, containingClass: FirClass?, isLocal: Boolean): FirResolvedDeclarationStatus { return resolveStatus(property, property.status, containingClass, null, isLocal) l@{ if (containingClass == null) return@l emptyList() @Suppress("RemoveExplicitTypeArguments") // Workaround for KT-42175 @@ -77,11 +77,11 @@ class FirStatusResolver( } @OptIn(ExperimentalStdlibApi::class) - fun resolveStatus(function: FirSimpleFunction, containingClass: FirClass<*>?, isLocal: Boolean): FirResolvedDeclarationStatus { + fun resolveStatus(function: FirSimpleFunction, containingClass: FirClass?, isLocal: Boolean): FirResolvedDeclarationStatus { return resolveStatus(function, function.status, containingClass, null, isLocal) l@{ if (containingClass == null) return@l emptyList() @Suppress("RemoveExplicitTypeArguments") // Workaround for KT-42175 - buildList> { + buildList { val scope = containingClass.unsubstitutedScope(session, scopeSession, withForcedTypeCalculator = false) val symbol = function.symbol scope.processFunctionsByName(function.name) {} @@ -97,7 +97,7 @@ class FirStatusResolver( fun resolveStatus( regularClass: FirRegularClass, - containingClass: FirClass<*>?, + containingClass: FirClass?, isLocal: Boolean ): FirResolvedDeclarationStatus { return resolveStatus(regularClass, regularClass.status, containingClass, null, isLocal) { emptyList() } @@ -105,7 +105,7 @@ class FirStatusResolver( fun resolveStatus( typeAlias: FirTypeAlias, - containingClass: FirClass<*>?, + containingClass: FirClass?, isLocal: Boolean ): FirResolvedDeclarationStatus { return resolveStatus(typeAlias, typeAlias.status, containingClass, null, isLocal) { emptyList() } @@ -113,29 +113,29 @@ class FirStatusResolver( fun resolveStatus( propertyAccessor: FirPropertyAccessor, - containingClass: FirClass<*>?, + containingClass: FirClass?, containingProperty: FirProperty?, isLocal: Boolean ): FirResolvedDeclarationStatus { return resolveStatus(propertyAccessor, propertyAccessor.status, containingClass, containingProperty, isLocal) { emptyList() } } - fun resolveStatus(constructor: FirConstructor, containingClass: FirClass<*>?, isLocal: Boolean): FirResolvedDeclarationStatus { + fun resolveStatus(constructor: FirConstructor, containingClass: FirClass?, isLocal: Boolean): FirResolvedDeclarationStatus { return resolveStatus(constructor, constructor.status, containingClass, null, isLocal) { emptyList() } } - fun resolveStatus(field: FirField, containingClass: FirClass<*>?, isLocal: Boolean): FirResolvedDeclarationStatus { + fun resolveStatus(field: FirField, containingClass: FirClass?, isLocal: Boolean): FirResolvedDeclarationStatus { return resolveStatus(field, field.status, containingClass, null, isLocal) { emptyList() } } - fun resolveStatus(enumEntry: FirEnumEntry, containingClass: FirClass<*>?, isLocal: Boolean): FirResolvedDeclarationStatus { + fun resolveStatus(enumEntry: FirEnumEntry, containingClass: FirClass?, isLocal: Boolean): FirResolvedDeclarationStatus { return resolveStatus(enumEntry, enumEntry.status, containingClass, null, isLocal) { emptyList() } } private inline fun resolveStatus( - declaration: FirDeclaration<*>, + declaration: FirDeclaration, status: FirDeclarationStatus, - containingClass: FirClass<*>?, + containingClass: FirClass?, containingProperty: FirProperty?, isLocal: Boolean, overriddenExtractor: () -> List @@ -175,13 +175,13 @@ class FirStatusResolver( else -> EffectiveVisibility.Public } val selfEffectiveVisibility = visibility.toEffectiveVisibility( - containingClass?.symbol?.toLookupTag(), forClass = declaration is FirClass<*> + containingClass?.symbol?.toLookupTag(), forClass = declaration is FirClass ) val effectiveVisibility = parentEffectiveVisibility.lowerBound(selfEffectiveVisibility, session.typeContext) val annotations = ((containingProperty ?: declaration) as? FirAnnotatedDeclaration)?.annotations ?: emptyList() if (annotations.any { it.typeRef.coneTypeSafe()?.lookupTag?.classId == StandardClassIds.PublishedApi }) { val publishedApiSelfEffectiveVisibility = visibility.toEffectiveVisibility( - containingClass?.symbol?.toLookupTag(), forClass = declaration is FirClass<*>, ownerIsPublishedApi = true + containingClass?.symbol?.toLookupTag(), forClass = declaration is FirClass, ownerIsPublishedApi = true ) val parentPublishedEffectiveVisibility = when { containingProperty != null -> containingProperty.publishedApiEffectiveVisibility @@ -198,8 +198,8 @@ class FirStatusResolver( } private fun resolveVisibility( - declaration: FirDeclaration<*>, - containingClass: FirClass<*>?, + declaration: FirDeclaration, + containingClass: FirClass?, containingProperty: FirProperty?, overriddenStatuses: List ): Visibility { @@ -216,18 +216,18 @@ class FirStatusResolver( ?: fallbackVisibility } - private fun FirClass<*>.hasPrivateConstructor(): Boolean { + private fun FirClass.hasPrivateConstructor(): Boolean { val classKind = classKind return classKind == ClassKind.ENUM_CLASS || classKind == ClassKind.ENUM_ENTRY || modality == Modality.SEALED || this is FirAnonymousObject } private fun resolveModality( - declaration: FirDeclaration<*>, - containingClass: FirClass<*>?, + declaration: FirDeclaration, + containingClass: FirClass?, ): Modality { return when (declaration) { is FirRegularClass -> if (declaration.classKind == ClassKind.INTERFACE) Modality.ABSTRACT else Modality.FINAL - is FirCallableMemberDeclaration<*> -> { + is FirCallableMemberDeclaration -> { when { containingClass == null -> Modality.FINAL containingClass.classKind == ClassKind.INTERFACE -> { @@ -251,14 +251,14 @@ class FirStatusResolver( } } -private val > FirClass.modality: Modality? +private val FirClass.modality: Modality? get() = when (this) { is FirRegularClass -> status.modality is FirAnonymousObject -> Modality.FINAL else -> error("Unknown kind of class: ${this::class}") } -private fun FirDeclaration<*>.hasOwnBodyOrAccessorBody(): Boolean { +private fun FirDeclaration.hasOwnBodyOrAccessorBody(): Boolean { return when (this) { is FirSimpleFunction -> this.body != null is FirProperty -> this.initializer != null || this.getter?.body != null || this.setter?.body != null @@ -267,4 +267,4 @@ private fun FirDeclaration<*>.hasOwnBodyOrAccessorBody(): Boolean { } private object PublishedApiEffectiveVisibilityKey : FirDeclarationDataKey() -var FirDeclaration<*>.publishedApiEffectiveVisibility: EffectiveVisibility? by FirDeclarationDataRegistry.data(PublishedApiEffectiveVisibilityKey) +var FirDeclaration.publishedApiEffectiveVisibility: EffectiveVisibility? by FirDeclarationDataRegistry.data(PublishedApiEffectiveVisibilityKey) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt index 4dea1bb6cd8..6c87026f9af 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypesResolution.kt @@ -52,7 +52,7 @@ class FirSupertypeResolverProcessor(session: FirSession, scopeSession: ScopeSess */ interface FirProviderInterceptor { fun getFirClassifierContainerFileIfAny(symbol: FirClassLikeSymbol<*>): FirFile? - fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration<*>? + fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration? } open class FirSupertypeResolverTransformer( @@ -76,7 +76,7 @@ open class FirSupertypeResolverTransformer( } } -fun > F.runSupertypeResolvePhaseForLocalClass( +fun F.runSupertypeResolvePhaseForLocalClass( session: FirSession, scopeSession: ScopeSession, currentScopeList: List, @@ -105,10 +105,10 @@ open class FirApplySupertypesTransformer( return element } - protected open fun needReplacePhase(firDeclaration: FirDeclaration<*>): Boolean = FirResolvePhase.SUPER_TYPES > firDeclaration.resolvePhase + protected open fun needReplacePhase(firDeclaration: FirDeclaration): Boolean = FirResolvePhase.SUPER_TYPES > firDeclaration.resolvePhase - protected open fun transformDeclarationContent(declaration: FirDeclaration<*>, data: Any?): FirDeclaration<*> { - return declaration.transformChildren(this, null) as FirDeclaration<*> + protected open fun transformDeclarationContent(declaration: FirDeclaration, data: Any?): FirDeclaration { + return declaration.transformChildren(this, null) as FirDeclaration } override fun transformFile(file: FirFile, data: Any?): FirFile { @@ -125,7 +125,7 @@ open class FirApplySupertypesTransformer( return transformDeclarationContent(regularClass, null) as FirRegularClass } - private fun applyResolvedSupertypesToClass(firClass: FirClass<*>) { + private fun applyResolvedSupertypesToClass(firClass: FirClass) { if (firClass.superTypeRefs.any { it !is FirResolvedTypeRef }) { val supertypeRefs = getResolvedSupertypeRefs(firClass) @@ -143,7 +143,7 @@ open class FirApplySupertypesTransformer( return anonymousObject.transformChildren(this, data) as FirAnonymousObject } - private fun getResolvedSupertypeRefs(classLikeDeclaration: FirClassLikeDeclaration<*>): List { + private fun getResolvedSupertypeRefs(classLikeDeclaration: FirClassLikeDeclaration): List { val status = supertypeComputationSession.getSupertypesComputationStatus(classLikeDeclaration) require(status is SupertypeComputationStatus.Computed) { "Unexpected status at FirApplySupertypesTransformer: $status for ${classLikeDeclaration.symbol.classId}" @@ -173,13 +173,13 @@ open class FirApplySupertypesTransformer( } } -private fun FirClassLikeDeclaration<*>.typeParametersScope(): FirScope? { +private fun FirClassLikeDeclaration.typeParametersScope(): FirScope? { if (this !is FirStatusOwner || typeParameters.isEmpty()) return null return FirMemberTypeParameterScope(this) } private fun createScopesForNestedClasses( - klass: FirClass<*>, + klass: FirClass, session: FirSession, scopeSession: ScopeSession, supertypeComputationSession: SupertypeComputationSession @@ -220,7 +220,7 @@ open class FirSupertypeResolverVisitor( if (firProviderInterceptor != null) firProviderInterceptor.getFirClassifierContainerFileIfAny(symbol) else session.firProvider.getFirClassifierContainerFileIfAny(symbol.classId) - private fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration<*>? = + private fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration? = if (firProviderInterceptor != null) firProviderInterceptor.getFirClassifierByFqName(classId) else session.firProvider.getFirClassifierByFqName(classId) @@ -232,7 +232,7 @@ open class FirSupertypeResolverVisitor( } } - private fun prepareScopeForNestedClasses(klass: FirClass<*>): ScopePersistentList { + private fun prepareScopeForNestedClasses(klass: FirClass): ScopePersistentList { return supertypeComputationSession.getOrPutScopeForNestedClasses(klass) { val scopes = prepareScopes(klass) @@ -242,9 +242,9 @@ open class FirSupertypeResolverVisitor( } private fun resolveAllSupertypes( - classLikeDeclaration: FirClassLikeDeclaration<*>, + classLikeDeclaration: FirClassLikeDeclaration, supertypeRefs: List, - visited: MutableSet> = mutableSetOf() + visited: MutableSet = mutableSetOf() ) { if (!visited.add(classLikeDeclaration)) return val supertypes = @@ -257,13 +257,13 @@ open class FirSupertypeResolverVisitor( } } - private fun FirClassLikeDeclaration<*>.supertypeRefs() = when (this) { + private fun FirClassLikeDeclaration.supertypeRefs() = when (this) { is FirRegularClass -> superTypeRefs is FirTypeAlias -> listOf(expandedTypeRef) else -> emptyList() } - private fun prepareScopes(classLikeDeclaration: FirClassLikeDeclaration<*>): PersistentList { + private fun prepareScopes(classLikeDeclaration: FirClassLikeDeclaration): PersistentList { val classId = classLikeDeclaration.symbol.classId val result = when { @@ -275,7 +275,7 @@ open class FirSupertypeResolverVisitor( val parent = localClassesNavigationInfo.parentForClass[classLikeDeclaration] when { - parent != null && parent is FirClass<*> -> prepareScopeForNestedClasses(parent) + parent != null && parent is FirClass -> prepareScopeForNestedClasses(parent) else -> scopeForLocalClass ?: return persistentListOf() } } @@ -290,7 +290,7 @@ open class FirSupertypeResolverVisitor( } private fun resolveSpecificClassLikeSupertypes( - classLikeDeclaration: FirClassLikeDeclaration<*>, + classLikeDeclaration: FirClassLikeDeclaration, resolveSuperTypeRefs: (FirTransformer, FirScope) -> List ): List { when (val status = supertypeComputationSession.getSupertypesComputationStatus(classLikeDeclaration)) { @@ -314,7 +314,7 @@ open class FirSupertypeResolverVisitor( return resolvedTypesRefs } - open fun visitDeclarationContent(declaration: FirDeclaration<*>, data: Any?) { + open fun visitDeclarationContent(declaration: FirDeclaration, data: Any?) { declaration.acceptChildren(this, null) } @@ -329,7 +329,7 @@ open class FirSupertypeResolverVisitor( } fun resolveSpecificClassLikeSupertypes( - classLikeDeclaration: FirClassLikeDeclaration<*>, + classLikeDeclaration: FirClassLikeDeclaration, supertypeRefs: List ): List { return resolveSpecificClassLikeSupertypes(classLikeDeclaration) { transformer, scope -> @@ -373,7 +373,7 @@ open class FirSupertypeResolverVisitor( private fun List.createCopy(): List = ArrayList(this) - private fun addSupertypesFromExtensions(klass: FirClassLikeDeclaration<*>, supertypeRefs: MutableList) { + private fun addSupertypesFromExtensions(klass: FirClassLikeDeclaration, supertypeRefs: MutableList) { if (supertypeGenerationExtensions.isEmpty()) return val provider = session.predicateBasedProvider for (extension in supertypeGenerationExtensions) { @@ -431,11 +431,11 @@ private fun createErrorTypeRef(fir: FirElement, message: String, kind: Diagnosti class SupertypeComputationSession { private val fileScopesMap = hashMapOf() - private val scopesForNestedClassesMap = hashMapOf, ScopePersistentList>() - val supertypeStatusMap = linkedMapOf, SupertypeComputationStatus>() + private val scopesForNestedClassesMap = hashMapOf() + val supertypeStatusMap = linkedMapOf() val supertypesSupplier: SupertypeSupplier = object : SupertypeSupplier() { - override fun forClass(firClass: FirClass<*>, useSiteSession: FirSession): List { + override fun forClass(firClass: FirClass, useSiteSession: FirSession): List { if (firClass.resolvePhase > FirResolvePhase.SUPER_TYPES) return firClass.superConeTypes return (getSupertypesComputationStatus(firClass) as? SupertypeComputationStatus.Computed)?.supertypeRefs?.mapNotNull { it.coneTypeSafe() @@ -450,16 +450,16 @@ class SupertypeComputationSession { } } - fun getSupertypesComputationStatus(classLikeDeclaration: FirClassLikeDeclaration<*>): SupertypeComputationStatus = + fun getSupertypesComputationStatus(classLikeDeclaration: FirClassLikeDeclaration): SupertypeComputationStatus = supertypeStatusMap[classLikeDeclaration] ?: SupertypeComputationStatus.NotComputed fun getOrPutFileScope(file: FirFile, scope: () -> ScopePersistentList): ScopePersistentList = fileScopesMap.getOrPut(file) { scope() } - fun getOrPutScopeForNestedClasses(klass: FirClass<*>, scope: () -> ScopePersistentList): ScopePersistentList = + fun getOrPutScopeForNestedClasses(klass: FirClass, scope: () -> ScopePersistentList): ScopePersistentList = scopesForNestedClassesMap.getOrPut(klass) { scope() } - fun startComputingSupertypes(classLikeDeclaration: FirClassLikeDeclaration<*>) { + fun startComputingSupertypes(classLikeDeclaration: FirClassLikeDeclaration) { require(supertypeStatusMap[classLikeDeclaration] == null) { "Unexpected in startComputingSupertypes supertype status for $classLikeDeclaration: ${supertypeStatusMap[classLikeDeclaration]}" } @@ -467,7 +467,7 @@ class SupertypeComputationSession { supertypeStatusMap[classLikeDeclaration] = SupertypeComputationStatus.Computing } - fun storeSupertypes(classLikeDeclaration: FirClassLikeDeclaration<*>, resolvedTypesRefs: List) { + fun storeSupertypes(classLikeDeclaration: FirClassLikeDeclaration, resolvedTypesRefs: List) { require(supertypeStatusMap[classLikeDeclaration] is SupertypeComputationStatus.Computing) { "Unexpected in storeSupertypes supertype status for $classLikeDeclaration: ${supertypeStatusMap[classLikeDeclaration]}" } @@ -476,15 +476,15 @@ class SupertypeComputationSession { newClassifiersForBreakingLoops.add(classLikeDeclaration) } - private val newClassifiersForBreakingLoops = mutableListOf>() + private val newClassifiersForBreakingLoops = mutableListOf() fun breakLoops(session: FirSession) { - val visitedClassLikeDecls = mutableSetOf>() - val loopedClassLikeDecls = mutableSetOf>() - val path = mutableListOf>() - val pathSet = mutableSetOf>() + val visitedClassLikeDecls = mutableSetOf() + val loopedClassLikeDecls = mutableSetOf() + val path = mutableListOf() + val pathSet = mutableSetOf() - fun checkIsInLoop(classLikeDecl: FirClassLikeDeclaration<*>?) { + fun checkIsInLoop(classLikeDecl: FirClassLikeDeclaration?) { if (classLikeDecl == null) return val supertypeRefs: List @@ -571,7 +571,7 @@ class SupertypeComputationSession { } } -fun FirTypeRef.firClassLike(session: FirSession): FirClassLikeDeclaration<*>? { +fun FirTypeRef.firClassLike(session: FirSession): FirClassLikeDeclaration? { val type = coneTypeSafe() ?: return null return type.lookupTag.toSymbol(session)?.fir } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt index 088ef752acd..cb50e6f1af6 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirTypeResolveTransformer.kt @@ -28,7 +28,7 @@ class FirTypeResolveProcessor( override val transformer = FirTypeResolveTransformer(session, scopeSession) } -fun > F.runTypeResolvePhaseForLocalClass( +fun F.runTypeResolvePhaseForLocalClass( session: FirSession, scopeSession: ScopeSession, currentScopeList: List, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/PhaseUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/PhaseUtils.kt index 53dc9ecfda0..5553a442ff6 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/PhaseUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/PhaseUtils.kt @@ -27,7 +27,7 @@ fun FirBasedSymbol<*>.ensureResolved( phaseManager.ensureResolved(this, requiredPhase) } -fun FirDeclaration<*>.ensureResolved( +fun FirDeclaration.ensureResolved( requiredPhase: FirResolvePhase, useSiteSession: FirSession, ) { @@ -40,7 +40,7 @@ fun FirBasedSymbol<*>.ensureResolvedForCalls( if (fir.resolvePhase >= FirResolvePhase.DECLARATIONS) return // val requiredPhase = when (fir) { -// is FirFunction<*>, is FirProperty -> FirResolvePhase.CONTRACTS +// is FirFunction, is FirProperty -> FirResolvePhase.CONTRACTS // else -> FirResolvePhase.STATUS // } // diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ReturnTypeCalculator.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ReturnTypeCalculator.kt index d53196a57f2..0489f4ceaa1 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ReturnTypeCalculator.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/ReturnTypeCalculator.kt @@ -14,11 +14,11 @@ import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef import org.jetbrains.kotlin.fir.types.builder.buildErrorTypeRef interface ReturnTypeCalculator { - fun tryCalculateReturnType(declaration: FirTypedDeclaration<*>): FirResolvedTypeRef + fun tryCalculateReturnType(declaration: FirTypedDeclaration): FirResolvedTypeRef } class ReturnTypeCalculatorForFullBodyResolve : ReturnTypeCalculator { - override fun tryCalculateReturnType(declaration: FirTypedDeclaration<*>): FirResolvedTypeRef { + override fun tryCalculateReturnType(declaration: FirTypedDeclaration): FirResolvedTypeRef { val returnTypeRef = declaration.returnTypeRef if (returnTypeRef is FirResolvedTypeRef) return returnTypeRef if (declaration.origin.fromSupertypes) { 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 5ca7533290c..c5718751af9 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 @@ -98,7 +98,7 @@ internal fun FirValueParameter.transformVarargTypeToArrayType() { } } -internal fun FirTypedDeclaration<*>.transformTypeToArrayType() { +internal fun FirTypedDeclaration.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/BodyResolveContext.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/BodyResolveContext.kt index 5297944e969..1de5026af7f 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/BodyResolveContext.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/BodyResolveContext.kt @@ -43,7 +43,7 @@ import org.jetbrains.kotlin.name.Name class BodyResolveContext( val returnTypeCalculator: ReturnTypeCalculator, val dataFlowAnalyzerContext: DataFlowAnalyzerContext, - val targetedLocalClasses: Set> = emptySet(), + val targetedLocalClasses: Set = emptySet(), val outerLocalClassForNested: MutableMap, FirClassLikeSymbol<*>> = mutableMapOf() ) { val fileImportsScope: MutableList = mutableListOf() @@ -74,12 +74,12 @@ class BodyResolveContext( get() = towerDataContextsForClassParts.towerDataContextForCallableReferences @set:PrivateForInline - var containers: MutableList> = mutableListOf() + var containers: MutableList = mutableListOf() @set:PrivateForInline var containingClass: FirRegularClass? = null - val containerIfAny: FirDeclaration<*>? + val containerIfAny: FirDeclaration? get() = containers.lastOrNull() @set:PrivateForInline @@ -108,7 +108,7 @@ class BodyResolveContext( } @PrivateForInline - inline fun withContainer(declaration: FirDeclaration<*>, f: () -> T): T { + inline fun withContainer(declaration: FirDeclaration, f: () -> T): T { containers.add(declaration) return try { f() @@ -204,7 +204,7 @@ class BodyResolveContext( @PrivateForInline private inline fun withLabelAndReceiverType( labelName: Name?, - owner: FirCallableDeclaration<*>, + owner: FirCallableDeclaration, type: ConeKotlinType?, holder: SessionHolder, f: () -> T @@ -272,12 +272,12 @@ class BodyResolveContext( @OptIn(PrivateForInline::class) fun storeClassIfNotNested(klass: FirRegularClass) { - if (containerIfAny is FirClass<*>) return + if (containerIfAny is FirClass) return updateLastScope { storeClass(klass) } } @OptIn(PrivateForInline::class) - fun storeVariable(variable: FirVariable<*>) { + fun storeVariable(variable: FirVariable) { updateLastScope { storeVariable(variable) } } @@ -315,7 +315,7 @@ class BodyResolveContext( @OptIn(PrivateForInline::class) fun createSnapshotForLocalClasses( returnTypeCalculator: ReturnTypeCalculator, - targetedLocalClasses: Set> + targetedLocalClasses: Set ): BodyResolveContext = BodyResolveContext(returnTypeCalculator, dataFlowAnalyzerContext, targetedLocalClasses, outerLocalClassForNested).apply { file = this@BodyResolveContext.file @@ -386,7 +386,7 @@ class BodyResolveContext( } fun withScopesForClass( - owner: FirClass<*>, + owner: FirClass, holder: SessionHolder, f: () -> T ): T { @@ -447,7 +447,7 @@ class BodyResolveContext( } private fun FirConstructor.scopesWithPrimaryConstructorParameters( - ownerClass: FirClass<*> + ownerClass: FirClass ): Pair { var parameterScope = FirLocalScope() var allScope = FirLocalScope() @@ -467,7 +467,7 @@ class BodyResolveContext( simpleFunction: FirSimpleFunction, f: () -> T ): T { - if (containerIfAny !is FirClass<*>) { + if (containerIfAny !is FirClass) { storeFunction(simpleFunction) } @@ -478,7 +478,7 @@ class BodyResolveContext( @OptIn(PrivateForInline::class) fun forFunctionBody( - function: FirFunction<*>, + function: FirFunction, holder: SessionHolder, f: () -> T ): T { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirAbstractBodyResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirAbstractBodyResolveTransformer.kt index 7f04dd6059e..c686ceb4ccc 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirAbstractBodyResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirAbstractBodyResolveTransformer.kt @@ -43,9 +43,9 @@ abstract class FirAbstractBodyResolveTransformer(phase: FirResolvePhase) : FirAb final override val session: FirSession get() = components.session - protected open fun needReplacePhase(firDeclaration: FirDeclaration<*>): Boolean = transformerPhase > firDeclaration.resolvePhase + protected open fun needReplacePhase(firDeclaration: FirDeclaration): Boolean = transformerPhase > firDeclaration.resolvePhase - fun replaceDeclarationResolvePhaseIfNeeded(firDeclaration: FirDeclaration<*>, newResolvePhase: FirResolvePhase) { + fun replaceDeclarationResolvePhaseIfNeeded(firDeclaration: FirDeclaration, newResolvePhase: FirResolvePhase) { if (needReplacePhase(firDeclaration) && newResolvePhase > firDeclaration.resolvePhase) { firDeclaration.replaceResolvePhase(newResolvePhase) } @@ -100,9 +100,9 @@ abstract class FirAbstractBodyResolveTransformer(phase: FirResolvePhase) : FirAb override val file: FirFile get() = context.file override val implicitReceiverStack: ImplicitReceiverStack get() = context.implicitReceiverStack - override val containingDeclarations: List> get() = context.containers + override val containingDeclarations: List get() = context.containers override val returnTypeCalculator: ReturnTypeCalculator get() = context.returnTypeCalculator - override val container: FirDeclaration<*> get() = context.containerIfAny!! + override val container: FirDeclaration get() = context.containerIfAny!! override val noExpectedType: FirTypeRef = buildImplicitTypeRef() override val symbolProvider: FirSymbolProvider = session.symbolProvider diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirArrayOfCallTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirArrayOfCallTransformer.kt index 776be642af7..9a055a2aeb8 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirArrayOfCallTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirArrayOfCallTransformer.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.types.isArrayType internal class FirArrayOfCallTransformer { private val FirFunctionCall.isArrayOfCall: Boolean get() { - val function: FirCallableDeclaration<*> = getOriginalFunction() ?: return false + val function: FirCallableDeclaration = getOriginalFunction() ?: return false return function is FirSimpleFunction && function.returnTypeRef.isArrayType && isArrayOf(function, arguments) && @@ -67,11 +67,11 @@ internal class FirArrayOfCallTransformer { } } -private fun FirFunctionCall.getOriginalFunction(): FirCallableDeclaration<*>? { +private fun FirFunctionCall.getOriginalFunction(): FirCallableDeclaration? { val symbol: FirBasedSymbol<*>? = when (val reference = calleeReference) { is FirResolvedNamedReference -> reference.resolvedSymbol is FirNamedReferenceWithCandidate -> reference.candidateSymbol else -> null } - return symbol?.fir as? FirCallableDeclaration<*> + return symbol?.fir as? FirCallableDeclaration } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformer.kt index dda1d9a5527..2a7013aa985 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirBodyResolveTransformer.kt @@ -231,13 +231,13 @@ open class FirBodyResolveTransformer( // ------------------------------------- Declarations ------------------------------------- - override fun > transformDeclaration(declaration: FirDeclaration, data: ResolutionMode): FirDeclaration { + override fun transformDeclaration(declaration: FirDeclaration, data: ResolutionMode): FirDeclaration { return declarationsTransformer.transformDeclaration(declaration, data) } open fun transformDeclarationContent( - declaration: FirDeclaration<*>, data: ResolutionMode - ): FirDeclaration<*> { + declaration: FirDeclaration, data: ResolutionMode + ): FirDeclaration { return transformElement(declaration, data) } @@ -285,8 +285,8 @@ open class FirBodyResolveTransformer( return declarationsTransformer.transformSimpleFunction(simpleFunction, data) } - override fun > transformFunction( - function: FirFunction, + override fun transformFunction( + function: FirFunction, data: ResolutionMode ): FirStatement { return declarationsTransformer.transformFunction(function, data) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt index 9a597d60ff3..224a3768791 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirDeclarationsResolveTransformer.kt @@ -49,7 +49,7 @@ import org.jetbrains.kotlin.name.Name open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransformer) : FirPartialBodyResolveTransformer(transformer) { private val statusResolver: FirStatusResolver = FirStatusResolver(session, scopeSession) - private fun FirDeclaration<*>.visibilityForApproximation(): Visibility { + private fun FirDeclaration.visibilityForApproximation(): Visibility { if (this !is FirStatusOwner) return Visibilities.Local val container = context.containers.getOrNull(context.containers.size - 2) val containerVisibility = @@ -69,7 +69,7 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor } } - private fun transformDeclarationContent(declaration: FirDeclaration<*>, data: ResolutionMode): FirDeclaration<*> { + private fun transformDeclarationContent(declaration: FirDeclaration, data: ResolutionMode): FirDeclaration { transformer.firTowerDataContextCollector?.addDeclarationContext(declaration, context.towerDataContext) transformer.replaceDeclarationResolvePhaseIfNeeded(declaration, transformerPhase) return transformer.transformDeclarationContent(declaration, data) @@ -82,10 +82,10 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor return ((data as? ResolutionMode.WithStatus)?.status ?: declarationStatus) } - private fun prepareSignatureForBodyResolve(callableMember: FirCallableMemberDeclaration<*>) { + private fun prepareSignatureForBodyResolve(callableMember: FirCallableMemberDeclaration) { callableMember.transformReturnTypeRef(transformer, ResolutionMode.ContextIndependent) callableMember.transformReceiverTypeRef(transformer, ResolutionMode.ContextIndependent) - if (callableMember is FirFunction<*>) { + if (callableMember is FirFunction) { callableMember.valueParameters.forEach { it.transformReturnTypeRef(transformer, ResolutionMode.ContextIndependent) it.transformVarargTypeToArrayType() @@ -342,8 +342,8 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor } } - private fun FirDeclaration<*>.resolveStatus( - containingClass: FirClass<*>? = null, + private fun FirDeclaration.resolveStatus( + containingClass: FirClass? = null, containingProperty: FirProperty? = null, ): FirDeclarationStatus { val containingDeclaration = context.containerIfAny @@ -487,7 +487,7 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor val containingDeclaration = context.containerIfAny return context.withSimpleFunction(simpleFunction) { // TODO: I think it worth creating something like runAllPhasesForLocalFunction - if (containingDeclaration != null && containingDeclaration !is FirClass<*>) { + if (containingDeclaration != null && containingDeclaration !is FirClass) { // For class members everything should be already prepared prepareSignatureForBodyResolve(simpleFunction) simpleFunction.transformStatus(this, simpleFunction.resolveStatus().mode()) @@ -500,7 +500,7 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor } } - private fun > transformFunctionWithGivenSignature( + private fun transformFunctionWithGivenSignature( function: F, resolutionMode: ResolutionMode, ): F { @@ -534,8 +534,8 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor return result } - override fun > transformFunction( - function: FirFunction, + override fun transformFunction( + function: FirFunction, data: ResolutionMode ): FirStatement { val functionIsNotAnalyzed = transformerPhase != function.resolvePhase @@ -545,7 +545,7 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor @Suppress("UNCHECKED_CAST") return transformDeclarationContent(function, data).also { if (functionIsNotAnalyzed) { - val result = it as FirFunction<*> + val result = it as FirFunction val controlFlowGraphReference = dataFlowAnalyzer.exitFunction(result) result.replaceControlFlowGraphReference(controlFlowGraphReference) } @@ -807,7 +807,7 @@ open class FirDeclarationsResolveTransformer(transformer: FirBodyResolveTransfor return this } - private fun storeVariableReturnType(variable: FirVariable<*>) { + private fun storeVariableReturnType(variable: FirVariable) { val initializer = variable.initializer if (variable.returnTypeRef is FirImplicitTypeRef) { val resultType = when { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt index f1b93cd8374..518f4975bbb 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt @@ -524,7 +524,7 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform } private fun ConeClassLikeType.inheritTypeArguments( - base: FirClassLikeDeclaration<*>, + base: FirClassLikeDeclaration, arguments: Array ): Array? { val firClass = lookupTag.toSymbol(session)?.fir ?: return null @@ -533,14 +533,14 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform base -> arguments is FirTypeAlias -> firClass.inheritTypeArguments(firClass.expandedTypeRef, base, arguments) // TODO: if many supertypes, check consistency - is FirClass<*> -> firClass.superTypeRefs.mapNotNull { firClass.inheritTypeArguments(it, base, arguments) }.firstOrNull() + is FirClass -> firClass.superTypeRefs.mapNotNull { firClass.inheritTypeArguments(it, base, arguments) }.firstOrNull() else -> null } } private fun FirTypeParameterRefsOwner.inheritTypeArguments( typeRef: FirTypeRef, - base: FirClassLikeDeclaration<*>, + base: FirClassLikeDeclaration, arguments: Array ): Array? { val type = typeRef.coneTypeSafe() ?: return null @@ -911,7 +911,7 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform is FirResolvedNamedReference, is FirErrorNamedReference -> return delegatedConstructorCall } val containers = components.context.containers - val containingClass = containers[containers.lastIndex - 1] as FirClass<*> + val containingClass = containers[containers.lastIndex - 1] as FirClass val containingConstructor = containers.last() as FirConstructor if (delegatedConstructorCall.isSuper && delegatedConstructorCall.constructedTypeRef is FirImplicitTypeRef) { val superClass = containingClass.superTypeRefs.firstOrNull { 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 83d471ec4d5..834b6985977 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 @@ -57,7 +57,7 @@ class FirImplicitTypeBodyResolveTransformerAdapter(session: FirSession, scopeSes } } -fun > F.runContractAndBodiesResolutionForLocalClass( +fun F.runContractAndBodiesResolutionForLocalClass( components: FirAbstractBodyResolveTransformer.BodyResolveTransformerComponents, resolutionMode: ResolutionMode, localClassesNavigationInfo: LocalClassesNavigationInfo, @@ -155,7 +155,7 @@ open class FirImplicitAwareBodyResolveTransformer( } } - private fun > computeCachedTransformationResult( + private fun computeCachedTransformationResult( member: D, transform: () -> D ): D { @@ -188,7 +188,7 @@ private class ReturnTypeCalculatorWithJump( private val session: FirSession, private val scopeSession: ScopeSession, val implicitBodyResolveComputationSession: ImplicitBodyResolveComputationSession, - val designationMapForLocalClasses: Map, List>> = mapOf(), + val designationMapForLocalClasses: Map> = mapOf(), val createTransformer: ( designation: Iterator, session: FirSession, @@ -201,7 +201,7 @@ private class ReturnTypeCalculatorWithJump( var outerBodyResolveContext: BodyResolveContext? = null - override fun tryCalculateReturnType(declaration: FirTypedDeclaration<*>): FirResolvedTypeRef { + override fun tryCalculateReturnType(declaration: FirTypedDeclaration): FirResolvedTypeRef { if (declaration is FirValueParameter && declaration.returnTypeRef is FirImplicitTypeRef) { // TODO? declaration.transformReturnTypeRef( @@ -215,7 +215,7 @@ private class ReturnTypeCalculatorWithJump( val returnTypeRef = declaration.returnTypeRef if (returnTypeRef is FirResolvedTypeRef) return returnTypeRef - require(declaration is FirCallableMemberDeclaration<*>) { "${declaration::class}: ${declaration.render()}" } + require(declaration is FirCallableMemberDeclaration) { "${declaration::class}: ${declaration.render()}" } if (declaration is FirSyntheticProperty) { return tryCalculateReturnType(declaration.getter.delegate) @@ -246,7 +246,7 @@ private class ReturnTypeCalculatorWithJump( } } - private fun computeReturnTypeRef(declaration: FirCallableMemberDeclaration<*>): FirResolvedTypeRef { + private fun computeReturnTypeRef(declaration: FirCallableMemberDeclaration): FirResolvedTypeRef { val symbol = declaration.symbol val provider = session.firProvider @@ -281,7 +281,7 @@ private class ReturnTypeCalculatorWithJump( designation.first().transform(transformer, ResolutionMode.ContextDependent) - val transformedDeclaration = transformer.lastResult as? FirCallableMemberDeclaration<*> + val transformedDeclaration = transformer.lastResult as? FirCallableMemberDeclaration ?: error("Unexpected lastResult: ${transformer.lastResult?.render()}") val newReturnTypeRef = transformedDeclaration.returnTypeRef @@ -308,9 +308,9 @@ open class FirDesignatedBodyResolveTransformerForReturnTypeCalculator( ) { var lastResult: FirElement? = null - override fun transformDeclarationContent(declaration: FirDeclaration<*>, data: ResolutionMode): FirDeclaration<*> { + override fun transformDeclarationContent(declaration: FirDeclaration, data: ResolutionMode): FirDeclaration { if (designation.hasNext()) { - val result = designation.next().transform, ResolutionMode>(this, data) + val result = designation.next().transform(this, data) if (!designation.hasNext() && lastResult == null) { lastResult = result } @@ -344,7 +344,7 @@ class ImplicitBodyResolveComputationSession { fun storeResult( symbol: FirCallableSymbol<*>, - transformedDeclaration: FirCallableMemberDeclaration<*> + transformedDeclaration: FirCallableMemberDeclaration ) { require(implicitBodyResolveStatusMap[symbol] == ImplicitBodyResolveComputationStatus.Computing) { "Unexpected static in storeResult for $symbol: ${implicitBodyResolveStatusMap[symbol]}" @@ -365,6 +365,6 @@ internal sealed class ImplicitBodyResolveComputationStatus { class Computed( val resolvedTypeRef: FirResolvedTypeRef, - val transformedDeclaration: FirCallableMemberDeclaration<*> + val transformedDeclaration: FirCallableMemberDeclaration ) : ImplicitBodyResolveComputationStatus() } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirTowerDataContextCollector.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirTowerDataContextCollector.kt index b2a617d55e7..88fd3d16e43 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirTowerDataContextCollector.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirTowerDataContextCollector.kt @@ -16,5 +16,5 @@ import org.jetbrains.kotlin.fir.resolve.FirTowerDataContext interface FirTowerDataContextCollector { fun addFileContext(file: FirFile, context: FirTowerDataContext) fun addStatementContext(statement: FirStatement, context: FirTowerDataContext) - fun addDeclarationContext(declaration: FirDeclaration<*>, context: FirTowerDataContext) + fun addDeclarationContext(declaration: FirDeclaration, context: FirTowerDataContext) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/LocalClassesNavigation.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/LocalClassesNavigation.kt index e38f4fad0a9..4a723f95953 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/LocalClassesNavigation.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/LocalClassesNavigation.kt @@ -12,18 +12,18 @@ import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitor import org.jetbrains.kotlin.utils.keysToMap class LocalClassesNavigationInfo( - val parentForClass: Map, FirClassLikeDeclaration<*>?>, - private val parentClassForFunction: Map, FirClassLikeDeclaration<*>>, - val allMembers: List> + val parentForClass: Map, + private val parentClassForFunction: Map, + val allMembers: List ) { - val designationMap: Map, List>> by lazy { + val designationMap: Map> by lazy { parentClassForFunction.keys.keysToMap { pathForCallable(it) } } - private fun pathForCallable(callableMemberDeclaration: FirCallableMemberDeclaration<*>): List> { - val result = mutableListOf>() + private fun pathForCallable(callableMemberDeclaration: FirCallableMemberDeclaration): List { + val result = mutableListOf() var current = parentClassForFunction[callableMemberDeclaration] while (current != null) { @@ -35,7 +35,7 @@ class LocalClassesNavigationInfo( } } -fun FirClassLikeDeclaration<*>.collectLocalClassesNavigationInfo(): LocalClassesNavigationInfo = +fun FirClassLikeDeclaration.collectLocalClassesNavigationInfo(): LocalClassesNavigationInfo = NavigationInfoVisitor().run { this@collectLocalClassesNavigationInfo.accept(this@run, null) @@ -43,10 +43,10 @@ fun FirClassLikeDeclaration<*>.collectLocalClassesNavigationInfo(): LocalClasses } private class NavigationInfoVisitor : FirDefaultVisitor() { - val resultingMap: MutableMap, FirClassLikeDeclaration<*>> = mutableMapOf() - val parentForClass: MutableMap, FirClassLikeDeclaration<*>?> = mutableMapOf() - val allMembers: MutableList> = mutableListOf() - private val currentPath: MutableList> = mutableListOf() + val resultingMap: MutableMap = mutableMapOf() + val parentForClass: MutableMap = mutableMapOf() + val allMembers: MutableList = mutableListOf() + private val currentPath: MutableList = mutableListOf() override fun visitElement(element: FirElement, data: Any?) {} @@ -58,7 +58,7 @@ private class NavigationInfoVisitor : FirDefaultVisitor() { visitClass(anonymousObject, null) } - override fun > visitClass(klass: FirClass, data: Any?) { + override fun visitClass(klass: FirClass, data: Any?) { parentForClass[klass] = currentPath.lastOrNull() currentPath.add(klass) @@ -79,8 +79,8 @@ private class NavigationInfoVisitor : FirDefaultVisitor() { visitCallableMemberDeclaration(constructor, null) } - override fun > visitCallableMemberDeclaration( - callableMemberDeclaration: FirCallableMemberDeclaration, + override fun visitCallableMemberDeclaration( + callableMemberDeclaration: FirCallableMemberDeclaration, data: Any? ) { allMembers += callableMemberDeclaration diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/LocalClassesResolution.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/LocalClassesResolution.kt index bb0da604937..7d976bfc690 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/LocalClassesResolution.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/LocalClassesResolution.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.fir.resolve.transformers.runSupertypeResolvePhaseFor import org.jetbrains.kotlin.fir.resolve.transformers.runTypeResolvePhaseForLocalClass import org.jetbrains.kotlin.fir.scopes.impl.createCurrentScopeList -fun > F.runAllPhasesForLocalClass( +fun F.runAllPhasesForLocalClass( transformer: FirAbstractBodyResolveTransformer, components: FirAbstractBodyResolveTransformer.BodyResolveTransformerComponents, resolutionMode: ResolutionMode, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/ConeEffectExtractor.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/ConeEffectExtractor.kt index f2a1242c32d..ec48f54fed3 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/ConeEffectExtractor.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/ConeEffectExtractor.kt @@ -150,7 +150,7 @@ class ConeEffectExtractor( } } - private fun FirContractDescriptionOwner.isAccessorOf(declaration: FirDeclaration<*>): Boolean { + private fun FirContractDescriptionOwner.isAccessorOf(declaration: FirDeclaration): Boolean { return declaration is FirProperty && (declaration.getter == this || declaration.setter == this) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/FirContractResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/FirContractResolveTransformer.kt index 7a5c0876306..f6c703c830e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/FirContractResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/FirContractResolveTransformer.kt @@ -59,7 +59,7 @@ open class FirContractResolveTransformer( return simpleFunction } val containingDeclaration = context.containerIfAny - if (containingDeclaration != null && containingDeclaration !is FirClass<*>) { + if (containingDeclaration != null && containingDeclaration !is FirClass) { simpleFunction.replaceReturnTypeRef( simpleFunction.returnTypeRef.errorTypeFromPrototype( ConeContractDescriptionError("Local function can not be used in contract description") @@ -224,7 +224,7 @@ open class FirContractResolveTransformer( } } - open fun transformDeclarationContent(firClass: FirClass<*>, data: ResolutionMode) { + open fun transformDeclarationContent(firClass: FirClass, data: ResolutionMode) { firClass.transformDeclarations(this, data) } @@ -275,7 +275,7 @@ open class FirContractResolveTransformer( private val FirContractDescriptionOwner.hasContractToResolve: Boolean get() = contractDescription is FirLegacyRawContractDescription || contractDescription is FirRawContractDescription - private fun FirDeclaration<*>.updatePhase() { + private fun FirDeclaration.updatePhase() { transformer.replaceDeclarationResolvePhaseIfNeeded(this, FirResolvePhase.CONTRACTS) } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/FirContractResolveTransformerAdapter.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/FirContractResolveTransformerAdapter.kt index 8062e276b59..9461bbb22c9 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/FirContractResolveTransformerAdapter.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/contracts/FirContractResolveTransformerAdapter.kt @@ -35,11 +35,11 @@ class FirContractResolveTransformerAdapter(session: FirSession, scopeSession: Sc } } -fun > F.runContractResolveForLocalClass( +fun F.runContractResolveForLocalClass( session: FirSession, scopeSession: ScopeSession, outerBodyResolveContext: BodyResolveContext, - targetedClasses: Set> + targetedClasses: Set ): F { val newContext = outerBodyResolveContext.createSnapshotForLocalClasses( ReturnTypeCalculatorForFullBodyResolve(), diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAbstractAnnotationResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAbstractAnnotationResolveTransformer.kt index 509ba998354..dbdb121a9a5 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAbstractAnnotationResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirAbstractAnnotationResolveTransformer.kt @@ -42,7 +42,6 @@ internal abstract class FirAbstractAnnotationResolveTransformer( regularClass: FirRegularClass, data: D ): FirStatement { - @Suppress("UNCHECKED_CAST") return transformAnnotatedDeclaration(regularClass, data).also { val state = beforeChildren(regularClass) regularClass.transformDeclarations(this, data) @@ -78,7 +77,6 @@ internal abstract class FirAbstractAnnotationResolveTransformer( valueParameter: FirValueParameter, data: D ): FirStatement { - @Suppress("UNCHECKED_CAST") return transformAnnotatedDeclaration(valueParameter, data) as FirStatement } @@ -87,16 +85,14 @@ internal abstract class FirAbstractAnnotationResolveTransformer( } override fun transformTypeRef(typeRef: FirTypeRef, data: D): FirTypeRef { - @Suppress("UNCHECKED_CAST") return transformAnnotationContainer(typeRef, data) as FirTypeRef } - override fun > transformAnnotatedDeclaration( - annotatedDeclaration: FirAnnotatedDeclaration, + override fun transformAnnotatedDeclaration( + annotatedDeclaration: FirAnnotatedDeclaration, data: D - ): FirAnnotatedDeclaration { - @Suppress("UNCHECKED_CAST") - return transformAnnotationContainer(annotatedDeclaration, data) as FirAnnotatedDeclaration + ): FirAnnotatedDeclaration { + return transformAnnotationContainer(annotatedDeclaration, data) as FirAnnotatedDeclaration } override fun transformAnnotationContainer( @@ -110,7 +106,7 @@ internal abstract class FirAbstractAnnotationResolveTransformer( return element } - protected open fun beforeChildren(declaration: FirAnnotatedDeclaration<*>): S? { + protected open fun beforeChildren(declaration: FirAnnotatedDeclaration): S? { return null } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirGlobalClassGenerationProcessor.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirGlobalClassGenerationProcessor.kt index dcd657df1e3..6a65e84920d 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirGlobalClassGenerationProcessor.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirGlobalClassGenerationProcessor.kt @@ -37,7 +37,7 @@ class FirGlobalClassGenerationProcessor( } private fun generateClasses( - declarations: List, List>>>, + declarations: List>>, extension: FirDeclarationGenerationExtension, ): List { val newClasses = mutableListOf() @@ -50,8 +50,8 @@ class FirGlobalClassGenerationProcessor( @OptIn(FirProviderInternals::class) private fun generateClass( extension: FirDeclarationGenerationExtension, - declaration: FirAnnotatedDeclaration<*>, - owners: List>, + declaration: FirAnnotatedDeclaration, + owners: List, newClasses: MutableList ) { val generatedClasses = extension.generateClasses(declaration, owners) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirGlobalExtensionStatusProcessor.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirGlobalExtensionStatusProcessor.kt index a4694476cc6..319b91a14fb 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirGlobalExtensionStatusProcessor.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirGlobalExtensionStatusProcessor.kt @@ -51,7 +51,7 @@ class FirTransformerBasedExtensionStatusProcessor( private fun FirStatusOwner.updateStatus() { if (extensions.isEmpty()) return - val owners = predicateBasedProvider.getOwnersOfDeclaration(this as FirAnnotatedDeclaration<*>) + val owners = predicateBasedProvider.getOwnersOfDeclaration(this as FirAnnotatedDeclaration) requireNotNull(owners) var status = this.status for (extension in extensions) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirPluginAnnotationsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirPluginAnnotationsResolveTransformer.kt index ed92bcdf9da..8c6e7c12f38 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirPluginAnnotationsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/FirPluginAnnotationsResolveTransformer.kt @@ -85,22 +85,22 @@ private class FirPartialImportResolveTransformer( private class FirAnnotationResolveTransformer( session: FirSession, scopeSession: ScopeSession -) : FirAbstractAnnotationResolveTransformer, PersistentList>>(session, scopeSession) { +) : FirAbstractAnnotationResolveTransformer, PersistentList>(session, scopeSession) { var metaAnnotations: Set = emptySet() private val typeResolverTransformer: FirSpecificTypeResolverTransformer = FirSpecificTypeResolverTransformer( session, errorTypeAsResolved = false ) - private var owners: PersistentList> = persistentListOf() + private var owners: PersistentList = persistentListOf() - override fun beforeChildren(declaration: FirAnnotatedDeclaration<*>): PersistentList> { + override fun beforeChildren(declaration: FirAnnotatedDeclaration): PersistentList { val current = owners owners = owners.add(declaration) return current } - override fun afterChildren(state: PersistentList>?) { + override fun afterChildren(state: PersistentList?) { requireNotNull(state) owners = state } @@ -126,10 +126,10 @@ private class FirAnnotationResolveTransformer( } } - override fun > transformAnnotatedDeclaration( - annotatedDeclaration: FirAnnotatedDeclaration, + override fun transformAnnotatedDeclaration( + annotatedDeclaration: FirAnnotatedDeclaration, data: Multimap - ): FirAnnotatedDeclaration { + ): FirAnnotatedDeclaration { return super.transformAnnotatedDeclaration(annotatedDeclaration, data).also { session.predicateBasedProvider.registerAnnotatedDeclaration(annotatedDeclaration, owners) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/GeneratedClassIndex.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/GeneratedClassIndex.kt index 12577023982..5079609b074 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/GeneratedClassIndex.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/plugin/GeneratedClassIndex.kt @@ -14,7 +14,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.FirPluginKey import org.jetbrains.kotlin.fir.declarations.FirRegularClass -data class GeneratedClass(val klass: FirRegularClass, val owner: FirAnnotatedDeclaration<*>) +data class GeneratedClass(val klass: FirRegularClass, val owner: FirAnnotatedDeclaration) abstract class GeneratedClassIndex : FirSessionComponent { companion object { @@ -23,7 +23,7 @@ abstract class GeneratedClassIndex : FirSessionComponent { } } - abstract fun registerClass(klass: FirRegularClass, owner: FirAnnotatedDeclaration<*>) + abstract fun registerClass(klass: FirRegularClass, owner: FirAnnotatedDeclaration) abstract operator fun get(key: FirPluginKey): List } @@ -33,7 +33,7 @@ val FirSession.generatedClassIndex: GeneratedClassIndex by FirSession.sessionCom private class GeneratedClassIndexImpl : GeneratedClassIndex() { private val index: ArrayListMultimap = ArrayListMultimap.create() - override fun registerClass(klass: FirRegularClass, owner: FirAnnotatedDeclaration<*>) { + override fun registerClass(klass: FirRegularClass, owner: FirAnnotatedDeclaration) { val key = (klass.origin as FirDeclarationOrigin.Plugin).key index.put(key, GeneratedClass(klass, owner)) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/FakeOverrideTypeCalculator.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/FakeOverrideTypeCalculator.kt index 098afdeba2b..4e5e9bff7e1 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/FakeOverrideTypeCalculator.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/FakeOverrideTypeCalculator.kt @@ -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: FirTypedDeclaration): FirTypeRef object DoNothing : FakeOverrideTypeCalculator() { - override fun computeReturnType(declaration: FirTypedDeclaration<*>): FirTypeRef { + override fun computeReturnType(declaration: FirTypedDeclaration): FirTypeRef { return declaration.returnTypeRef } } object Forced : FakeOverrideTypeCalculator() { - override fun computeReturnType(declaration: FirTypedDeclaration<*>): FirResolvedTypeRef { + override fun computeReturnType(declaration: FirTypedDeclaration): FirResolvedTypeRef { (declaration.returnTypeRef as? FirResolvedTypeRef)?.let { return it } val (substitutor, baseSymbol) = declaration.attributes.fakeOverrideSubstitution ?: error("") val baseDeclaration = baseSymbol.fir as FirTypedDeclaration diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/FirKotlinScopeProvider.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/FirKotlinScopeProvider.kt index 4e0b8bee661..200b23fabac 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/FirKotlinScopeProvider.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/FirKotlinScopeProvider.kt @@ -7,7 +7,10 @@ package org.jetbrains.kotlin.fir.scopes import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirClass +import org.jetbrains.kotlin.fir.declarations.FirField +import org.jetbrains.kotlin.fir.declarations.FirRegularClass +import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.utils.isExpect import org.jetbrains.kotlin.fir.declarations.utils.isSynthetic import org.jetbrains.kotlin.fir.resolve.* @@ -15,22 +18,22 @@ import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap import org.jetbrains.kotlin.fir.resolve.transformers.ensureResolved import org.jetbrains.kotlin.fir.scopes.impl.* -import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.types.* +import org.jetbrains.kotlin.name.CallableId class FirKotlinScopeProvider( val declaredMemberScopeDecorator: ( - klass: FirClass<*>, + klass: FirClass, declaredMemberScope: FirScope, useSiteSession: FirSession, scopeSession: ScopeSession ) -> FirScope = { _, declaredMemberScope, _, _ -> declaredMemberScope } ) : FirScopeProvider() { override fun getUseSiteMemberScope( - klass: FirClass<*>, + klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession ): FirTypeScope { @@ -56,7 +59,7 @@ class FirKotlinScopeProvider( } override fun getStaticMemberScopeForCallables( - klass: FirClass<*>, + klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession ): FirScope? { @@ -66,7 +69,7 @@ class FirKotlinScopeProvider( } } - override fun getNestedClassifierScope(klass: FirClass<*>, useSiteSession: FirSession, scopeSession: ScopeSession): FirScope? { + override fun getNestedClassifierScope(klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession): FirScope? { return useSiteSession.nestedClassifierScope(klass) } } @@ -74,11 +77,11 @@ class FirKotlinScopeProvider( data class ConeSubstitutionScopeKey( val lookupTag: ConeClassLikeLookupTag, val isFromExpectClass: Boolean, val substitutor: ConeSubstitutor -) : ScopeSessionKey, FirClassSubstitutionScope>() +) : ScopeSessionKey() data class DelegatedMemberScopeKey(val callableId: CallableId) : ScopeSessionKey() -fun FirClass<*>.unsubstitutedScope( +fun FirClass.unsubstitutedScope( useSiteSession: FirSession, scopeSession: ScopeSession, withForcedTypeCalculator: Boolean @@ -88,7 +91,7 @@ fun FirClass<*>.unsubstitutedScope( return scope } -fun FirClass<*>.scopeForClass( +fun FirClass.scopeForClass( substitutor: ConeSubstitutor, useSiteSession: FirSession, scopeSession: ScopeSession @@ -103,7 +106,7 @@ fun FirClass<*>.scopeForClass( fun ConeKotlinType.scopeForSupertype( useSiteSession: FirSession, scopeSession: ScopeSession, - subClass: FirClass<*>, + subClass: FirClass, declaredMemberScope: FirScope, delegateFields: List?, ): FirTypeScope? { @@ -134,12 +137,12 @@ private fun substitutor(symbol: FirRegularClassSymbol, type: ConeClassLikeType, return substitutorByMap(originalSubstitution, useSiteSession) } -fun FirClass<*>.scopeForSupertype( +fun FirClass.scopeForSupertype( substitutor: ConeSubstitutor, useSiteSession: FirSession, scopeSession: ScopeSession, delegateField: FirField?, - subClass: FirClass<*>, + subClass: FirClass, declaredMemberScope: FirScope, ): FirTypeScope = scopeForClassImpl( substitutor, @@ -158,12 +161,12 @@ fun FirClass<*>.scopeForSupertype( } } -private fun FirClass<*>.scopeForClassImpl( +private fun FirClass.scopeForClassImpl( substitutor: ConeSubstitutor, useSiteSession: FirSession, scopeSession: ScopeSession, skipPrivateMembers: Boolean, - classFirDispatchReceiver: FirClass<*>, + classFirDispatchReceiver: FirClass, isFromExpectClass: Boolean ): FirTypeScope { val basicScope = unsubstitutedScope(useSiteSession, scopeSession, withForcedTypeCalculator = false) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/FirOverrideChecker.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/FirOverrideChecker.kt index 3bcb2944871..8a7aa6b8fb3 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/FirOverrideChecker.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/FirOverrideChecker.kt @@ -16,7 +16,7 @@ interface FirOverrideChecker { ): Boolean fun isOverriddenProperty( - overrideCandidate: FirCallableMemberDeclaration<*>, // NB: in Java it can be a function which overrides accessor + overrideCandidate: FirCallableMemberDeclaration, // NB: in Java it can be a function which overrides accessor baseDeclaration: FirProperty ): Boolean -} \ No newline at end of file +} diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/AbstractFirOverrideScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/AbstractFirOverrideScope.kt index b4fcb7a8610..abefcecf7ef 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/AbstractFirOverrideScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/AbstractFirOverrideScope.kt @@ -25,13 +25,13 @@ abstract class AbstractFirOverrideScope( return overrideChecker.isOverriddenFunction(overrideCandidate, baseDeclaration) } - private fun isOverriddenProperty(overrideCandidate: FirCallableMemberDeclaration<*>, baseDeclaration: FirProperty): Boolean { + private fun isOverriddenProperty(overrideCandidate: FirCallableMemberDeclaration, baseDeclaration: FirProperty): Boolean { return overrideChecker.isOverriddenProperty(overrideCandidate, baseDeclaration) } protected fun similarFunctionsOrBothProperties( - overrideCandidate: FirCallableMemberDeclaration<*>, - baseDeclaration: FirCallableMemberDeclaration<*> + overrideCandidate: FirCallableMemberDeclaration, + baseDeclaration: FirCallableMemberDeclaration ): Boolean { return when (overrideCandidate) { is FirSimpleFunction -> when (baseDeclaration) { @@ -50,9 +50,9 @@ abstract class AbstractFirOverrideScope( protected open fun FirCallableSymbol<*>.getOverridden(overrideCandidates: Set>): FirCallableSymbol<*>? { if (overrideByBase.containsKey(this)) return overrideByBase[this] - val baseDeclaration = (this as FirBasedSymbol<*>).fir as FirCallableMemberDeclaration<*> + val baseDeclaration = (this as FirBasedSymbol<*>).fir as FirCallableMemberDeclaration val override = overrideCandidates.firstOrNull { - val overrideCandidate = (it as FirBasedSymbol<*>).fir as FirCallableMemberDeclaration<*> + val overrideCandidate = (it as FirBasedSymbol<*>).fir as FirCallableMemberDeclaration baseDeclaration.modality != Modality.FINAL && similarFunctionsOrBothProperties(overrideCandidate, baseDeclaration) } // TODO: two or more overrides for one fun? overrideByBase[this] = override diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirAbstractOverrideChecker.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirAbstractOverrideChecker.kt index 0a0dc99806a..332f8ebb22c 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirAbstractOverrideChecker.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirAbstractOverrideChecker.kt @@ -6,24 +6,23 @@ package org.jetbrains.kotlin.fir.scopes.impl import org.jetbrains.kotlin.fir.FirSession -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap import org.jetbrains.kotlin.fir.scopes.FirOverrideChecker -import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl abstract class FirAbstractOverrideChecker : FirOverrideChecker { protected abstract fun buildTypeParametersSubstitutorIfCompatible( - overrideCandidate: FirCallableMemberDeclaration<*>, - baseDeclaration: FirCallableMemberDeclaration<*> + overrideCandidate: FirCallableMemberDeclaration, + baseDeclaration: FirCallableMemberDeclaration ): ConeSubstitutor? } fun buildSubstitutorForOverridesCheck( - overrideCandidate: FirCallableMemberDeclaration<*>, - baseDeclaration: FirCallableMemberDeclaration<*>, + overrideCandidate: FirCallableMemberDeclaration, + baseDeclaration: FirCallableMemberDeclaration, useSiteSession: FirSession ): ConeSubstitutor? { if (overrideCandidate.typeParameters.size != baseDeclaration.typeParameters.size) return null diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassDeclaredMemberScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassDeclaredMemberScope.kt index 4b713da745a..2f722279f91 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassDeclaredMemberScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassDeclaredMemberScope.kt @@ -19,7 +19,7 @@ import org.jetbrains.kotlin.name.Name class FirClassDeclaredMemberScope( val useSiteSession: FirSession, - klass: FirClass<*>, + klass: FirClass, useLazyNestedClassifierScope: Boolean = false, existingNames: List? = null, symbolProvider: FirSymbolProvider? = null @@ -34,10 +34,10 @@ class FirClassDeclaredMemberScope( val result = mutableMapOf>>() loop@ for (declaration in klass.declarations) { when (declaration) { - is FirCallableMemberDeclaration<*> -> { + is FirCallableMemberDeclaration -> { val name = when (declaration) { is FirConstructor -> CONSTRUCTOR_NAME - is FirVariable<*> -> if (declaration.isSynthetic) continue@loop else declaration.name + is FirVariable -> if (declaration.isSynthetic) continue@loop else declaration.name is FirSimpleFunction -> declaration.name else -> continue@loop } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt index 10d871e5492..5847204a1bb 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt @@ -6,17 +6,25 @@ package org.jetbrains.kotlin.fir.scopes.impl import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.fir.* -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.FirSession +import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration +import org.jetbrains.kotlin.fir.declarations.FirTypeParameter +import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef +import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRefsOwner import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty import org.jetbrains.kotlin.fir.declarations.utils.visibility +import org.jetbrains.kotlin.fir.dispatchReceiverClassOrNull +import org.jetbrains.kotlin.fir.originalForSubstitutionOverride import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.resolve.substitution.chain import org.jetbrains.kotlin.fir.scopes.FakeOverrideSubstitution import org.jetbrains.kotlin.fir.scopes.FirTypeScope import org.jetbrains.kotlin.fir.scopes.ProcessorAction import org.jetbrains.kotlin.fir.symbols.impl.* -import org.jetbrains.kotlin.fir.types.* +import org.jetbrains.kotlin.fir.types.ConeClassLikeType +import org.jetbrains.kotlin.fir.types.ConeKotlinType +import org.jetbrains.kotlin.fir.types.coneType +import org.jetbrains.kotlin.fir.types.coneTypeSafe import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.utils.addToStdlib.runIf @@ -203,7 +211,7 @@ class FirClassSubstitutionScope( val fakeOverrideSubstitution: FakeOverrideSubstitution? ) - private fun createSubstitutedData(member: FirCallableMemberDeclaration<*>): SubstitutedData { + private fun createSubstitutedData(member: FirCallableMemberDeclaration): SubstitutedData { val (newTypeParameters, substitutor) = FirFakeOverrideGenerator.createNewTypeParametersAndSubstitutor( session, member as FirTypeParameterRefsOwner, diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirDeclaredMemberScopeProvider.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirDeclaredMemberScopeProvider.kt index a81001734de..9bc2fcd49d5 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirDeclaredMemberScopeProvider.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirDeclaredMemberScopeProvider.kt @@ -19,10 +19,10 @@ import org.jetbrains.kotlin.utils.getOrPutNullable @ThreadSafeMutableState class FirDeclaredMemberScopeProvider(val useSiteSession: FirSession) : FirSessionComponent { - private val declaredMemberCache = mutableMapOf, FirClassDeclaredMemberScope>() - private val nestedClassifierCache = mutableMapOf, FirNestedClassifierScope?>() + private val declaredMemberCache = mutableMapOf() + private val nestedClassifierCache = mutableMapOf() - fun getClassByClassId(classId: ClassId): FirClass<*>? { + fun getClassByClassId(classId: ClassId): FirClass? { for ((clazz, _) in declaredMemberCache) { if (clazz.classId.packageFqName == classId.packageFqName && clazz.classId.relativeClassName == classId.relativeClassName @@ -41,7 +41,7 @@ class FirDeclaredMemberScopeProvider(val useSiteSession: FirSession) : FirSessio } fun declaredMemberScope( - klass: FirClass<*>, + klass: FirClass, useLazyNestedClassifierScope: Boolean, existingNames: List?, symbolProvider: FirSymbolProvider? @@ -51,20 +51,20 @@ class FirDeclaredMemberScopeProvider(val useSiteSession: FirSession) : FirSessio } } - fun nestedClassifierScope(klass: FirClass<*>): FirNestedClassifierScope? { + fun nestedClassifierScope(klass: FirClass): FirNestedClassifierScope? { return nestedClassifierCache.getOrPutNullable(klass) { FirNestedClassifierScope(klass, useSiteSession).takeUnless { it.isEmpty() } } } } -fun FirSession.declaredMemberScope(klass: FirClass<*>): FirClassDeclaredMemberScope { +fun FirSession.declaredMemberScope(klass: FirClass): FirClassDeclaredMemberScope { return declaredMemberScopeProvider .declaredMemberScope(klass, useLazyNestedClassifierScope = false, existingNames = null, symbolProvider = null) } fun FirSession.declaredMemberScopeWithLazyNestedScope( - klass: FirClass<*>, + klass: FirClass, existingNames: List, symbolProvider: FirSymbolProvider ): FirScope { @@ -72,7 +72,7 @@ fun FirSession.declaredMemberScopeWithLazyNestedScope( .declaredMemberScope(klass, useLazyNestedClassifierScope = true, existingNames = existingNames, symbolProvider = symbolProvider) } -fun FirSession.nestedClassifierScope(klass: FirClass<*>): FirNestedClassifierScope? { +fun FirSession.nestedClassifierScope(klass: FirClass): FirNestedClassifierScope? { return declaredMemberScopeProvider .nestedClassifierScope(klass) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirDelegatedMemberScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirDelegatedMemberScope.kt index 31bff6684ee..7b493f92ab0 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirDelegatedMemberScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirDelegatedMemberScope.kt @@ -17,19 +17,22 @@ import org.jetbrains.kotlin.fir.originalForSubstitutionOverride import org.jetbrains.kotlin.fir.resolve.defaultType import org.jetbrains.kotlin.fir.scopes.* import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag -import org.jetbrains.kotlin.name.StandardClassIds -import org.jetbrains.kotlin.fir.symbols.impl.* +import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol import org.jetbrains.kotlin.fir.types.ConeClassLikeType import org.jetbrains.kotlin.fir.types.ConeFlexibleType import org.jetbrains.kotlin.fir.types.coneType import org.jetbrains.kotlin.fir.types.isMarkedNullable import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name +import org.jetbrains.kotlin.name.StandardClassIds class FirDelegatedMemberScope( private val useSiteScope: FirTypeScope, private val session: FirSession, - private val containingClass: FirClass<*>, + private val containingClass: FirClass, private val delegateField: FirField, private val declaredMemberScope: FirScope, ) : FirTypeScope() { @@ -140,7 +143,7 @@ class FirDelegatedMemberScope( noinline processor: (D, FirTypeScope) -> ProcessorAction, processDirectOverriddenCallablesWithBaseScope: FirTypeScope.(D, ((D, FirTypeScope) -> ProcessorAction)) -> ProcessorAction, ): ProcessorAction { - val wrappedData = (symbol.fir as? FirCallableMemberDeclaration<*>)?.delegatedWrapperData + val wrappedData = (symbol.fir as? FirCallableMemberDeclaration)?.delegatedWrapperData return when { wrappedData == null || wrappedData.containingClass != containingClass.symbol.toLookupTag() -> { useSiteScope.processDirectOverriddenCallablesWithBaseScope(symbol, processor) @@ -159,19 +162,19 @@ class FirDelegatedMemberScope( } private object DelegatedWrapperDataKey : FirDeclarationDataKey() -class DelegatedWrapperData>( +class DelegatedWrapperData( val wrapped: D, val containingClass: ConeClassLikeLookupTag, val delegateField: FirField, ) -var > +var D.delegatedWrapperData: DelegatedWrapperData? by FirDeclarationDataRegistry.data(DelegatedWrapperDataKey) -inline fun , reified D : FirCallableMemberDeclaration> S.unwrapDelegateTarget( +inline fun , reified D : FirCallableMemberDeclaration> S.unwrapDelegateTarget( subClassLookupTag: ConeClassLikeLookupTag, noinline directOverridden: S.() -> List, firField: FirField, - firSubClass: FirClass<*>, + firSubClass: FirClass, ): D? { val unwrappedIntersectionSymbol = this.unwrapIntersectionOverride(directOverridden) ?: return null diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt index 597d0842d51..3cb6361cb0b 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirFakeOverrideGenerator.kt @@ -160,7 +160,7 @@ object FirFakeOverrideGenerator { private fun FirFunctionBuilder.configureAnnotationsTypeParametersAndSignature( useSiteSession: FirSession, - baseFunction: FirFunction<*>, + baseFunction: FirFunction, newParameterTypes: List?, newTypeParameters: List?, newReceiverType: ConeKotlinType?, @@ -187,7 +187,7 @@ object FirFakeOverrideGenerator { } val symbol = baseFunction.symbol val (copiedReceiverType, possibleReturnType) = substituteReceiverAndReturnType( - baseFunction as FirCallableMemberDeclaration<*>, newReceiverType, newReturnType, substitutor + baseFunction as FirCallableMemberDeclaration, newReceiverType, newReturnType, substitutor ) val (copiedReturnType, newFakeOverrideSubstitution) = when (possibleReturnType) { is Maybe.Value -> possibleReturnType.value to null @@ -216,7 +216,7 @@ object FirFakeOverrideGenerator { } private fun FirFunctionBuilder.configureAnnotationsAndSignature( - baseFunction: FirFunction<*>, + baseFunction: FirFunction, newParameterTypes: List?, newReceiverType: ConeKotlinType?, newReturnType: ConeKotlinType?, @@ -348,7 +348,7 @@ object FirFakeOverrideGenerator { } private fun substituteReceiverAndReturnType( - baseCallable: FirCallableMemberDeclaration<*>, + baseCallable: FirCallableMemberDeclaration, newReceiverType: ConeKotlinType?, newReturnType: ConeKotlinType?, substitutor: ConeSubstitutor diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirLocalScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirLocalScope.kt index fd89cf77da7..95a45f133cc 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirLocalScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirLocalScope.kt @@ -12,11 +12,14 @@ import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.FirRegularClass import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction import org.jetbrains.kotlin.fir.declarations.FirVariable -import org.jetbrains.kotlin.fir.util.PersistentMultimap import org.jetbrains.kotlin.fir.resolve.substitution.ConeSubstitutor import org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScope import org.jetbrains.kotlin.fir.scopes.FirScope -import org.jetbrains.kotlin.fir.symbols.impl.* +import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol +import org.jetbrains.kotlin.fir.util.PersistentMultimap import org.jetbrains.kotlin.name.Name class FirLocalScope private constructor( @@ -38,7 +41,7 @@ class FirLocalScope private constructor( ) } - fun storeVariable(variable: FirVariable<*>): FirLocalScope { + fun storeVariable(variable: FirVariable): FirLocalScope { return FirLocalScope( properties.put(variable.name, variable.symbol), functions, classes ) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirNestedClassifierScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirNestedClassifierScope.kt index 4d70b80af2f..f8a7fb8fa64 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirNestedClassifierScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirNestedClassifierScope.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.impl.ConeTypeParameterTypeImpl import org.jetbrains.kotlin.name.Name -class FirNestedClassifierScope(val klass: FirClass<*>, val useSiteSession: FirSession) : FirScope(), FirContainingNamesAwareScope { +class FirNestedClassifierScope(val klass: FirClass, val useSiteSession: FirSession) : FirScope(), FirContainingNamesAwareScope { private val classIndex: Map = run { val result = mutableMapOf() for (declaration in klass.declarations) { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirObjectImportedCallableScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirObjectImportedCallableScope.kt index 4e29e149e3c..ed16b92273e 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirObjectImportedCallableScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirObjectImportedCallableScope.kt @@ -5,14 +5,19 @@ package org.jetbrains.kotlin.fir.scopes.impl -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration +import org.jetbrains.kotlin.fir.declarations.FirDeclarationDataKey +import org.jetbrains.kotlin.fir.declarations.FirDeclarationDataRegistry +import org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin import org.jetbrains.kotlin.fir.declarations.builder.buildPropertyCopy import org.jetbrains.kotlin.fir.declarations.builder.buildSimpleFunctionCopy import org.jetbrains.kotlin.fir.scopes.FirContainingNamesAwareScope import org.jetbrains.kotlin.fir.scopes.FirScope import org.jetbrains.kotlin.fir.scopes.FirTypeScope +import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol import org.jetbrains.kotlin.name.CallableId -import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.Name @@ -58,10 +63,10 @@ class FirObjectImportedCallableScope( private object ImportedFromObjectClassIdKey : FirDeclarationDataKey() -class ImportedFromObjectData>( +class ImportedFromObjectData( val objectClassId: ClassId, val original: D, ) -var > +var D.importedFromObjectData: ImportedFromObjectData? by FirDeclarationDataRegistry.data(ImportedFromObjectClassIdKey) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirScopeWithFakeOverrideTypeCalculator.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirScopeWithFakeOverrideTypeCalculator.kt index 4f42f4736ed..18ed5665305 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirScopeWithFakeOverrideTypeCalculator.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirScopeWithFakeOverrideTypeCalculator.kt @@ -74,8 +74,8 @@ class FirScopeWithFakeOverrideTypeCalculator( return delegate.getClassifierNames() } - private fun updateReturnType(declaration: FirTypedDeclaration<*>) { - if (declaration !is FirCallableMemberDeclaration<*>) return + private fun updateReturnType(declaration: FirTypedDeclaration) { + if (declaration !is FirCallableMemberDeclaration) return if (declaration.isSubstitutionOverride || declaration.isIntersectionOverride) { fakeOverrideTypeCalculator.computeReturnType(declaration) } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirStandardOverrideChecker.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirStandardOverrideChecker.kt index 6f126136d21..2fd9d8cd663 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirStandardOverrideChecker.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirStandardOverrideChecker.kt @@ -95,8 +95,8 @@ class FirStandardOverrideChecker(private val session: FirSession) : FirAbstractO } override fun buildTypeParametersSubstitutorIfCompatible( - overrideCandidate: FirCallableMemberDeclaration<*>, - baseDeclaration: FirCallableMemberDeclaration<*> + overrideCandidate: FirCallableMemberDeclaration, + baseDeclaration: FirCallableMemberDeclaration ): ConeSubstitutor? { val substitutor = buildSubstitutorForOverridesCheck(overrideCandidate, baseDeclaration, session) ?: return null if ( @@ -133,7 +133,7 @@ class FirStandardOverrideChecker(private val session: FirSession) : FirAbstractO } override fun isOverriddenProperty( - overrideCandidate: FirCallableMemberDeclaration<*>, + overrideCandidate: FirCallableMemberDeclaration, baseDeclaration: FirProperty ): Boolean { if (Visibilities.isPrivate(baseDeclaration.visibility)) return false diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirStaticScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirStaticScope.kt index af5db2401a2..931f761f93f 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirStaticScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirStaticScope.kt @@ -33,7 +33,7 @@ class FirStaticScope(private val delegateScope: FirScope) : FirScope(), FirConta override fun processPropertiesByName(name: Name, processor: (FirVariableSymbol<*>) -> Unit) { delegateScope.processPropertiesByName(name) { - if ((it.fir as? FirCallableMemberDeclaration<*>)?.isStatic == true) { + if ((it.fir as? FirCallableMemberDeclaration)?.isStatic == true) { processor(it) } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt index 7c4766cd9a6..813ccf6d73b 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirTypeIntersectionScope.kt @@ -140,7 +140,7 @@ class FirTypeIntersectionScope private constructor( return true } - private inline fun > D.unwrapSubstitutionOverrides(): D { + private inline fun D.unwrapSubstitutionOverrides(): D { var current = this do { @@ -398,7 +398,7 @@ class FirTypeIntersectionScope private constructor( ): Boolean { val aFir = a.fir val bFir = b.fir - if (aFir !is FirCallableMemberDeclaration<*> || bFir !is FirCallableMemberDeclaration<*>) return false + if (aFir !is FirCallableMemberDeclaration || bFir !is FirCallableMemberDeclaration) return false val substitutor = buildSubstitutorForOverridesCheck(aFir, bFir, session) ?: return false // NB: these lines throw CCE in modularized tests when changed to just .coneType (FirImplicitTypeRef) @@ -435,8 +435,8 @@ class FirTypeIntersectionScope private constructor( } val result = Visibilities.compare( - (member.member.fir as FirCallableMemberDeclaration<*>).status.visibility, - (candidate.member.fir as FirCallableMemberDeclaration<*>).status.visibility + (member.member.fir as FirCallableMemberDeclaration).status.visibility, + (candidate.member.fir as FirCallableMemberDeclaration).status.visibility ) if (result != null && result < 0) { member = candidate @@ -453,7 +453,7 @@ class FirTypeIntersectionScope private constructor( val iterator = members.iterator() - val overrideCandidate = overrider.member.fir as FirCallableMemberDeclaration<*> + val overrideCandidate = overrider.member.fir as FirCallableMemberDeclaration while (iterator.hasNext()) { val next = iterator.next() if (next == overrider) { @@ -461,7 +461,7 @@ class FirTypeIntersectionScope private constructor( continue } - if (similarFunctionsOrBothProperties(overrideCandidate, next.member.fir as FirCallableMemberDeclaration<*>)) { + if (similarFunctionsOrBothProperties(overrideCandidate, next.member.fir as FirCallableMemberDeclaration)) { result.add(next) iterator.remove() } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt index 2d9d778e82d..9b91f292d39 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/ConeTypeContext.kt @@ -23,14 +23,16 @@ import org.jetbrains.kotlin.fir.resolve.substitution.substitutorByMap import org.jetbrains.kotlin.fir.resolve.toSymbol import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.firUnsafe import org.jetbrains.kotlin.fir.resolve.transformers.ensureResolved -import org.jetbrains.kotlin.fir.symbols.* +import org.jetbrains.kotlin.fir.symbols.ConeClassLikeLookupTag +import org.jetbrains.kotlin.fir.symbols.ConeTypeParameterLookupTag import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqNameUnsafe import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.StandardClassIds import org.jetbrains.kotlin.types.AbstractTypeCheckerContext -import org.jetbrains.kotlin.types.AbstractTypeCheckerContext.SupertypesPolicy.* +import org.jetbrains.kotlin.types.AbstractTypeCheckerContext.SupertypesPolicy.DoCustomTransform +import org.jetbrains.kotlin.types.AbstractTypeCheckerContext.SupertypesPolicy.LowerIfFlexible import org.jetbrains.kotlin.types.TypeSystemCommonBackendContext import org.jetbrains.kotlin.types.model.* @@ -562,7 +564,7 @@ class ConeTypeCheckerContext( if (type.argumentsCount() == 0) return LowerIfFlexible require(type is ConeKotlinType) val declaration = when (type) { - is ConeClassLikeType -> type.lookupTag.toSymbol(session)?.firUnsafe>() + is ConeClassLikeType -> type.lookupTag.toSymbol(session)?.firUnsafe() else -> null } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/FirCorrespondingSupertypesCache.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/FirCorrespondingSupertypesCache.kt index 51d12a4428a..ab9da8c0b4b 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/FirCorrespondingSupertypesCache.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/types/FirCorrespondingSupertypesCache.kt @@ -18,7 +18,6 @@ import org.jetbrains.kotlin.types.AbstractTypeCheckerContext import org.jetbrains.kotlin.types.model.CaptureStatus import org.jetbrains.kotlin.types.model.SimpleTypeMarker import org.jetbrains.kotlin.types.model.TypeConstructorMarker -import org.jetbrains.kotlin.types.model.TypeSystemContext @ThreadSafeMutableState class FirCorrespondingSupertypesCache(private val session: FirSession) : FirSessionComponent { @@ -60,7 +59,7 @@ class FirCorrespondingSupertypesCache(private val session: FirSession) : FirSess ): Map>? { val resultingMap = HashMap>() - val subtypeFirClass: FirClassLikeDeclaration<*> = subtypeLookupTag.toSymbol(session)?.fir ?: return null + val subtypeFirClass: FirClassLikeDeclaration = subtypeLookupTag.toSymbol(session)?.fir ?: return null val defaultType = subtypeLookupTag.constructClassType( (subtypeFirClass as? FirTypeParameterRefsOwner)?.typeParameters?.map { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnnotatedDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnnotatedDeclaration.kt index 6b05e48e071..c725596dd95 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnnotatedDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnnotatedDeclaration.kt @@ -18,9 +18,9 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -sealed class FirAnnotatedDeclaration> : FirDeclaration(), FirAnnotationContainer { +sealed class FirAnnotatedDeclaration : FirDeclaration(), FirAnnotationContainer { abstract override val source: FirSourceElement? - abstract override val symbol: FirBasedSymbol + abstract override val symbol: FirBasedSymbol abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase abstract override val origin: FirDeclarationOrigin @@ -35,5 +35,5 @@ sealed class FirAnnotatedDeclaration> : FirDeclar abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) - abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirAnnotatedDeclaration + abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirAnnotatedDeclaration } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt index 4edca2a56ef..6c582b7da53 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousFunction.kt @@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirAnonymousFunction : FirFunction(), FirTypeParametersOwner { +abstract class FirAnonymousFunction : FirFunction(), FirTypeParametersOwner { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousInitializer.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousInitializer.kt index 4446aed5c4c..d1efda5d328 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousInitializer.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousInitializer.kt @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirAnonymousInitializer : FirDeclaration(), FirControlFlowGraphOwner { +abstract class FirAnonymousInitializer : FirDeclaration(), FirControlFlowGraphOwner { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt index a58705c6d2d..8cbfbc22e27 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirAnonymousObject.kt @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirAnonymousObject : FirClass(), FirControlFlowGraphOwner { +abstract class FirAnonymousObject : FirClass(), FirControlFlowGraphOwner { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase @@ -30,7 +30,7 @@ abstract class FirAnonymousObject : FirClass(), FirControlFl abstract override val typeParameters: List abstract override val classKind: ClassKind abstract override val superTypeRefs: List - abstract override val declarations: List> + abstract override val declarations: List abstract override val annotations: List abstract override val scopeProvider: FirScopeProvider abstract override val controlFlowGraphReference: FirControlFlowGraphReference? 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 c8539dec985..14dc10c8dfd 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 @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -sealed class FirCallableDeclaration> : FirTypedDeclaration() { +sealed class FirCallableDeclaration : FirTypedDeclaration() { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase @@ -27,7 +27,7 @@ sealed class FirCallableDeclaration> : FirTypedDec abstract override val annotations: List abstract override val returnTypeRef: FirTypeRef abstract val receiverTypeRef: FirTypeRef? - abstract override val symbol: FirCallableSymbol + abstract override val symbol: FirCallableSymbol override fun accept(visitor: FirVisitor, data: D): R = visitor.visitCallableDeclaration(this, data) @@ -41,9 +41,9 @@ sealed class FirCallableDeclaration> : FirTypedDec abstract fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) - abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirCallableDeclaration + abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirCallableDeclaration - abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirCallableDeclaration + abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirCallableDeclaration - abstract fun transformReceiverTypeRef(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/FirCallableMemberDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableMemberDeclaration.kt index 6ae8061ef83..0d6f723032a 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableMemberDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirCallableMemberDeclaration.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -sealed class FirCallableMemberDeclaration> : FirCallableDeclaration(), FirStatusOwner { +sealed class FirCallableMemberDeclaration : FirCallableDeclaration(), FirStatusOwner { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase @@ -29,7 +29,7 @@ sealed class FirCallableMemberDeclaration> : abstract override val annotations: List abstract override val returnTypeRef: FirTypeRef abstract override val receiverTypeRef: FirTypeRef? - abstract override val symbol: FirCallableSymbol + abstract override val symbol: FirCallableSymbol abstract override val typeParameters: List abstract override val status: FirDeclarationStatus abstract val containerSource: DeserializedContainerSource? @@ -47,13 +47,13 @@ sealed class FirCallableMemberDeclaration> : abstract override fun replaceReceiverTypeRef(newReceiverTypeRef: FirTypeRef?) - abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirCallableMemberDeclaration + abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirCallableMemberDeclaration - abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirCallableMemberDeclaration + abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirCallableMemberDeclaration - abstract override fun transformReceiverTypeRef(transformer: FirTransformer, data: D): FirCallableMemberDeclaration + abstract override fun transformReceiverTypeRef(transformer: FirTransformer, data: D): FirCallableMemberDeclaration - abstract override fun transformTypeParameters(transformer: FirTransformer, data: D): FirCallableMemberDeclaration + abstract override fun transformTypeParameters(transformer: FirTransformer, data: D): FirCallableMemberDeclaration - abstract override fun transformStatus(transformer: FirTransformer, data: D): FirCallableMemberDeclaration + abstract override fun transformStatus(transformer: FirTransformer, data: D): FirCallableMemberDeclaration } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClass.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClass.kt index d3ad9836f0e..298916224f8 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClass.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClass.kt @@ -21,17 +21,17 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -sealed class FirClass> : FirClassLikeDeclaration(), FirStatement, FirTypeParameterRefsOwner { +sealed class FirClass : FirClassLikeDeclaration(), FirStatement, FirTypeParameterRefsOwner { 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 typeParameters: List - abstract override val symbol: FirClassSymbol + abstract override val symbol: FirClassSymbol abstract val classKind: ClassKind abstract val superTypeRefs: List - abstract val declarations: List> + abstract val declarations: List abstract override val annotations: List abstract val scopeProvider: FirScopeProvider @@ -45,11 +45,11 @@ sealed class FirClass> : FirClassLikeDeclaration(), FirStatem abstract fun replaceSuperTypeRefs(newSuperTypeRefs: List) - abstract override fun transformTypeParameters(transformer: FirTransformer, data: D): FirClass + abstract override fun transformTypeParameters(transformer: FirTransformer, data: D): FirClass - abstract fun transformSuperTypeRefs(transformer: FirTransformer, data: D): FirClass + abstract fun transformSuperTypeRefs(transformer: FirTransformer, data: D): FirClass - abstract fun transformDeclarations(transformer: FirTransformer, data: D): FirClass + abstract fun transformDeclarations(transformer: FirTransformer, data: D): FirClass - abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirClass + abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirClass } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClassLikeDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClassLikeDeclaration.kt index 4a81b9de526..b6c5d72b3bc 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClassLikeDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirClassLikeDeclaration.kt @@ -18,14 +18,14 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -sealed class FirClassLikeDeclaration> : FirAnnotatedDeclaration(), FirStatement { +sealed class FirClassLikeDeclaration : FirAnnotatedDeclaration(), FirStatement { 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 - abstract override val symbol: FirClassLikeSymbol + abstract override val symbol: FirClassLikeSymbol override fun accept(visitor: FirVisitor, data: D): R = visitor.visitClassLikeDeclaration(this, data) @@ -35,5 +35,5 @@ sealed class FirClassLikeDeclaration> : FirAnnota abstract override fun replaceResolvePhase(newResolvePhase: FirResolvePhase) - abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirClassLikeDeclaration + abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirClassLikeDeclaration } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt index b1ab03718c8..58752506984 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirConstructor.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirConstructor : FirFunction(), FirTypeParameterRefsOwner { +abstract class FirConstructor : FirFunction(), FirTypeParameterRefsOwner { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirDeclaration.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirDeclaration.kt index c430ccbfcf7..e4ee6e93831 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirDeclaration.kt @@ -17,9 +17,9 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -sealed class FirDeclaration> : FirPureAbstractElement(), FirElement { +sealed class FirDeclaration : FirPureAbstractElement(), FirElement { abstract override val source: FirSourceElement? - abstract val symbol: FirBasedSymbol + abstract val symbol: FirBasedSymbol abstract val moduleData: FirModuleData abstract val resolvePhase: FirResolvePhase abstract val origin: FirDeclarationOrigin diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt index 8a6c156de20..b7a614328aa 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirEnumEntry.kt @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirEnumEntry : FirVariable() { +abstract class FirEnumEntry : FirVariable() { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt index c791ac2538f..be52131865d 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorFunction.kt @@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirErrorFunction : FirFunction(), FirDiagnosticHolder { +abstract class FirErrorFunction : FirFunction(), FirDiagnosticHolder { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt index 71f5cdb741c..b936bb14661 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirErrorProperty.kt @@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirErrorProperty : FirVariable(), FirDiagnosticHolder { +abstract class FirErrorProperty : FirVariable(), FirDiagnosticHolder { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt index af7c2c9999b..ea72dbe0b87 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirField.kt @@ -10,7 +10,7 @@ import org.jetbrains.kotlin.fir.FirModuleData import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression -import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.name.Name @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirField : FirVariable() { +abstract class FirField : FirVariable() { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase @@ -35,7 +35,6 @@ abstract class FirField : FirVariable() { abstract override val containerSource: DeserializedContainerSource? abstract override val dispatchReceiverType: ConeKotlinType? abstract override val name: Name - abstract override val symbol: FirVariableSymbol abstract override val initializer: FirExpression? abstract override val delegate: FirExpression? abstract override val isVar: Boolean @@ -43,6 +42,7 @@ abstract class FirField : FirVariable() { abstract override val getter: FirPropertyAccessor? abstract override val setter: FirPropertyAccessor? abstract override val annotations: List + abstract override val symbol: FirFieldSymbol override fun accept(visitor: FirVisitor, data: D): R = visitor.visitField(this, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFile.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFile.kt index 83c9d014d16..c0a4f89cf10 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFile.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFile.kt @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirFile : FirAnnotatedDeclaration() { +abstract class FirFile : FirAnnotatedDeclaration() { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase @@ -26,7 +26,7 @@ abstract class FirFile : FirAnnotatedDeclaration() { abstract override val attributes: FirDeclarationAttributes abstract override val annotations: List abstract val imports: List - abstract val declarations: List> + abstract val declarations: List abstract val name: String abstract val packageFqName: FqName abstract override val symbol: FirFileSymbol diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt index 132b72fc109..cbaf2d422db 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirFunction.kt @@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -sealed class FirFunction> : FirCallableMemberDeclaration(), FirTargetElement, FirControlFlowGraphOwner, FirStatement { +sealed class FirFunction : FirCallableMemberDeclaration(), FirTargetElement, FirControlFlowGraphOwner, FirStatement { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase @@ -38,7 +38,7 @@ sealed class FirFunction> : FirCallableMemberDeclaration() abstract override val containerSource: DeserializedContainerSource? abstract override val dispatchReceiverType: ConeKotlinType? abstract override val controlFlowGraphReference: FirControlFlowGraphReference? - abstract override val symbol: FirFunctionSymbol + abstract override val symbol: FirFunctionSymbol abstract val valueParameters: List abstract val body: FirBlock? @@ -60,17 +60,17 @@ sealed class FirFunction> : FirCallableMemberDeclaration() abstract fun replaceBody(newBody: FirBlock?) - abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirFunction + abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirFunction - abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirFunction + abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirFunction - abstract override fun transformReceiverTypeRef(transformer: FirTransformer, data: D): FirFunction + abstract override fun transformReceiverTypeRef(transformer: FirTransformer, data: D): FirFunction - abstract override fun transformTypeParameters(transformer: FirTransformer, data: D): FirFunction + abstract override fun transformTypeParameters(transformer: FirTransformer, data: D): FirFunction - abstract override fun transformStatus(transformer: FirTransformer, data: D): FirFunction + abstract override fun transformStatus(transformer: FirTransformer, data: D): FirFunction - abstract fun transformValueParameters(transformer: FirTransformer, data: D): FirFunction + abstract fun transformValueParameters(transformer: FirTransformer, data: D): FirFunction - abstract fun transformBody(transformer: FirTransformer, data: D): FirFunction + abstract fun transformBody(transformer: FirTransformer, data: D): FirFunction } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt index 7ea5bcf11e1..1522e6a4ee1 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirProperty.kt @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirProperty : FirVariable(), FirTypeParametersOwner, FirControlFlowGraphOwner { +abstract class FirProperty : FirVariable(), FirTypeParametersOwner, FirControlFlowGraphOwner { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt index ced893f9f02..cfdd39cd2b4 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirPropertyAccessor.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirPropertyAccessor : FirFunction(), FirContractDescriptionOwner, FirTypeParametersOwner { +abstract class FirPropertyAccessor : FirFunction(), FirContractDescriptionOwner, FirTypeParametersOwner { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt index ff33754ca56..d4e0ce9531e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirRegularClass.kt @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirRegularClass : FirClass(), FirStatusOwner, FirControlFlowGraphOwner { +abstract class FirRegularClass : FirClass(), FirStatusOwner, FirControlFlowGraphOwner { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase @@ -30,7 +30,7 @@ abstract class FirRegularClass : FirClass(), FirStatusOwner, Fi abstract override val attributes: FirDeclarationAttributes abstract override val typeParameters: List abstract override val classKind: ClassKind - abstract override val declarations: List> + abstract override val declarations: List abstract override val annotations: List abstract override val scopeProvider: FirScopeProvider abstract override val status: FirDeclarationStatus diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt index 3cc2ec5dc87..8683ed7bf20 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirSimpleFunction.kt @@ -24,7 +24,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirSimpleFunction : FirFunction(), FirContractDescriptionOwner, FirTypeParametersOwner { +abstract class FirSimpleFunction : FirFunction(), FirContractDescriptionOwner, FirTypeParametersOwner { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeAlias.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeAlias.kt index bcb3a61231d..2f560e98461 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeAlias.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeAlias.kt @@ -19,7 +19,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirTypeAlias : FirClassLikeDeclaration(), FirStatusOwner, FirTypeParametersOwner { +abstract class FirTypeAlias : FirClassLikeDeclaration(), FirStatusOwner, FirTypeParametersOwner { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParameter.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParameter.kt index 345f7044e2a..c74bdd015e0 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParameter.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypeParameter.kt @@ -20,7 +20,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirTypeParameter : FirTypeParameterRef, FirAnnotatedDeclaration() { +abstract class FirTypeParameter : FirTypeParameterRef, FirAnnotatedDeclaration() { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase 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 index 87edf784fc1..fee6d90bb4b 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypedDeclaration.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirTypedDeclaration.kt @@ -18,9 +18,9 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -sealed class FirTypedDeclaration> : FirAnnotatedDeclaration() { +sealed class FirTypedDeclaration : FirAnnotatedDeclaration() { abstract override val source: FirSourceElement? - abstract override val symbol: FirBasedSymbol + abstract override val symbol: FirBasedSymbol abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase abstract override val origin: FirDeclarationOrigin @@ -38,7 +38,7 @@ sealed class FirTypedDeclaration> : FirAnnotatedDecla abstract fun replaceReturnTypeRef(newReturnTypeRef: FirTypeRef) - abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirTypedDeclaration + abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirTypedDeclaration - abstract fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirTypedDeclaration + abstract fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirTypedDeclaration } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt index 1475b9d96d3..7a448a284ab 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirValueParameter.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirValueParameter : FirVariable(), FirControlFlowGraphOwner { +abstract class FirValueParameter : FirVariable(), FirControlFlowGraphOwner { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt index 1b4da072eb9..461e79932a0 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/FirVariable.kt @@ -23,7 +23,7 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -sealed class FirVariable> : FirCallableMemberDeclaration(), FirStatement { +sealed class FirVariable : FirCallableMemberDeclaration(), FirStatement { abstract override val source: FirSourceElement? abstract override val moduleData: FirModuleData abstract override val resolvePhase: FirResolvePhase @@ -36,7 +36,7 @@ sealed class FirVariable> : FirCallableMemberDeclaration() abstract override val containerSource: DeserializedContainerSource? abstract override val dispatchReceiverType: ConeKotlinType? abstract val name: Name - abstract override val symbol: FirVariableSymbol + abstract override val symbol: FirVariableSymbol abstract val initializer: FirExpression? abstract val delegate: FirExpression? abstract val isVar: Boolean @@ -59,23 +59,23 @@ sealed class FirVariable> : FirCallableMemberDeclaration() abstract fun replaceInitializer(newInitializer: FirExpression?) - abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirVariable + abstract override fun transformReturnTypeRef(transformer: FirTransformer, data: D): FirVariable - abstract override fun transformReceiverTypeRef(transformer: FirTransformer, data: D): FirVariable + abstract override fun transformReceiverTypeRef(transformer: FirTransformer, data: D): FirVariable - abstract override fun transformTypeParameters(transformer: FirTransformer, data: D): FirVariable + abstract override fun transformTypeParameters(transformer: FirTransformer, data: D): FirVariable - abstract override fun transformStatus(transformer: FirTransformer, data: D): FirVariable + abstract override fun transformStatus(transformer: FirTransformer, data: D): FirVariable - abstract fun transformInitializer(transformer: FirTransformer, data: D): FirVariable + abstract fun transformInitializer(transformer: FirTransformer, data: D): FirVariable - abstract fun transformDelegate(transformer: FirTransformer, data: D): FirVariable + abstract fun transformDelegate(transformer: FirTransformer, data: D): FirVariable - abstract fun transformGetter(transformer: FirTransformer, data: D): FirVariable + abstract fun transformGetter(transformer: FirTransformer, data: D): FirVariable - abstract fun transformSetter(transformer: FirTransformer, data: D): FirVariable + abstract fun transformSetter(transformer: FirTransformer, data: D): FirVariable - abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirVariable + abstract override fun transformAnnotations(transformer: FirTransformer, data: D): FirVariable - abstract fun transformOtherChildren(transformer: FirTransformer, data: D): FirVariable + abstract fun transformOtherChildren(transformer: FirTransformer, data: D): FirVariable } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt index 9cb52c578a0..86ed6346613 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirAnonymousObjectBuilder.kt @@ -42,7 +42,7 @@ class FirAnonymousObjectBuilder : FirDeclarationBuilder, FirClassBuilder, FirAnn override val typeParameters: MutableList = mutableListOf() override lateinit var classKind: ClassKind override val superTypeRefs: MutableList = mutableListOf() - override val declarations: MutableList> = mutableListOf() + override val declarations: MutableList = mutableListOf() override val annotations: MutableList = mutableListOf() override lateinit var scopeProvider: FirScopeProvider lateinit var symbol: FirAnonymousObjectSymbol diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirClassBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirClassBuilder.kt index 574361a8a6e..f621fd10b1e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirClassBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirClassBuilder.kt @@ -38,7 +38,7 @@ interface FirClassBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilder abstract val typeParameters: MutableList abstract var classKind: ClassKind abstract val superTypeRefs: MutableList - abstract val declarations: MutableList> + abstract val declarations: MutableList abstract var scopeProvider: FirScopeProvider - override fun build(): FirClass<*> + override fun build(): FirClass } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDeclarationBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDeclarationBuilder.kt index 27bdce9a7b1..5805b59a3ed 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDeclarationBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirDeclarationBuilder.kt @@ -26,5 +26,5 @@ interface FirDeclarationBuilder { abstract var resolvePhase: FirResolvePhase abstract var origin: FirDeclarationOrigin abstract var attributes: FirDeclarationAttributes - fun build(): FirDeclaration<*> + fun build(): FirDeclaration } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt index fb054572e84..fb891411e95 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFieldBuilder.kt @@ -22,7 +22,7 @@ import org.jetbrains.kotlin.fir.declarations.builder.FirDeclarationBuilder import org.jetbrains.kotlin.fir.declarations.impl.FirFieldImpl import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression -import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.visitors.* @@ -47,10 +47,10 @@ open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilde open var containerSource: DeserializedContainerSource? = null open var dispatchReceiverType: ConeKotlinType? = null open lateinit var name: Name - open lateinit var symbol: FirVariableSymbol open var initializer: FirExpression? = null open var isVar: Boolean by kotlin.properties.Delegates.notNull() override val annotations: MutableList = mutableListOf() + open lateinit var symbol: FirFieldSymbol @OptIn(FirImplementationDetail::class) override fun build(): FirField { @@ -66,10 +66,10 @@ open class FirFieldBuilder : FirDeclarationBuilder, FirAnnotationContainerBuilde containerSource, dispatchReceiverType, name, - symbol, initializer, isVar, annotations, + symbol, ) } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFileBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFileBuilder.kt index e1800431404..53e24234557 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFileBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFileBuilder.kt @@ -36,7 +36,7 @@ class FirFileBuilder : FirAnnotationContainerBuilder { var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override val annotations: MutableList = mutableListOf() val imports: MutableList = mutableListOf() - val declarations: MutableList> = mutableListOf() + val declarations: MutableList = mutableListOf() lateinit var name: String lateinit var packageFqName: FqName diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt index a125bcd641d..57c793ef0fe 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirFunctionBuilder.kt @@ -42,5 +42,5 @@ interface FirFunctionBuilder : FirDeclarationBuilder, FirAnnotationContainerBuil abstract var dispatchReceiverType: ConeKotlinType? abstract val valueParameters: MutableList abstract var body: FirBlock? - override fun build(): FirFunction<*> + override fun build(): FirFunction } diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt index ae712c72269..f633e54cacc 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/builder/FirRegularClassBuilder.kt @@ -43,7 +43,7 @@ open class FirRegularClassBuilder : FirClassBuilder, FirTypeParameterRefsOwnerBu override var attributes: FirDeclarationAttributes = FirDeclarationAttributes() override val typeParameters: MutableList = mutableListOf() override lateinit var classKind: ClassKind - override val declarations: MutableList> = mutableListOf() + override val declarations: MutableList = mutableListOf() override val annotations: MutableList = mutableListOf() override lateinit var scopeProvider: FirScopeProvider open lateinit var status: FirDeclarationStatus diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt index 14f9883376c..77f6d58676c 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirAnonymousObjectImpl.kt @@ -35,7 +35,7 @@ internal class FirAnonymousObjectImpl( override val typeParameters: MutableList, override val classKind: ClassKind, override val superTypeRefs: MutableList, - override val declarations: MutableList>, + override val declarations: MutableList, override val annotations: MutableList, override val scopeProvider: FirScopeProvider, override val symbol: FirAnonymousObjectSymbol, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt index 11d8d77ee2c..afa3d980435 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFieldImpl.kt @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.fir.declarations.FirTypeParameterRef import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall import org.jetbrains.kotlin.fir.expressions.FirExpression -import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirFieldSymbol import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.name.Name @@ -41,10 +41,10 @@ class FirFieldImpl @FirImplementationDetail constructor( override val containerSource: DeserializedContainerSource?, override val dispatchReceiverType: ConeKotlinType?, override val name: Name, - override val symbol: FirVariableSymbol, override var initializer: FirExpression?, override val isVar: Boolean, override val annotations: MutableList, + override val symbol: FirFieldSymbol, ) : FirField() { override val receiverTypeRef: FirTypeRef? get() = null override val delegate: FirExpression? get() = null diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFileImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFileImpl.kt index e90b5b39136..8bc53103440 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFileImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirFileImpl.kt @@ -31,7 +31,7 @@ internal class FirFileImpl( override val attributes: FirDeclarationAttributes, override val annotations: MutableList, override val imports: MutableList, - override val declarations: MutableList>, + override val declarations: MutableList, override val name: String, override val packageFqName: FqName, ) : FirFile() { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt index 2e856a35112..ae44658cf4f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/declarations/impl/FirRegularClassImpl.kt @@ -36,7 +36,7 @@ internal class FirRegularClassImpl( override val attributes: FirDeclarationAttributes, override val typeParameters: MutableList, override val classKind: ClassKind, - override val declarations: MutableList>, + override val declarations: MutableList, override val annotations: MutableList, override val scopeProvider: FirScopeProvider, override var status: FirDeclarationStatus, diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirReturnExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirReturnExpression.kt index 91a20019b0a..75e6aa0df9e 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirReturnExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirReturnExpression.kt @@ -17,11 +17,11 @@ import org.jetbrains.kotlin.fir.visitors.* * DO NOT MODIFY IT MANUALLY */ -abstract class FirReturnExpression : FirJump>() { +abstract class FirReturnExpression : FirJump() { abstract override val source: FirSourceElement? abstract override val typeRef: FirTypeRef abstract override val annotations: List - abstract override val target: FirTarget> + abstract override val target: FirTarget abstract val result: FirExpression override fun accept(visitor: FirVisitor, data: D): R = visitor.visitReturnExpression(this, data) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhenExpression.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhenExpression.kt index 315a44b90c4..5572fbc1cfb 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhenExpression.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/FirWhenExpression.kt @@ -23,7 +23,7 @@ abstract class FirWhenExpression : FirExpression(), FirResolvable { abstract override val annotations: List abstract override val calleeReference: FirReference abstract val subject: FirExpression? - abstract val subjectVariable: FirVariable<*>? + abstract val subjectVariable: FirVariable? abstract val branches: List abstract val exhaustivenessStatus: ExhaustivenessStatus? abstract val usedAsExpression: Boolean diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirReturnExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirReturnExpressionBuilder.kt index 4a02021d440..a6e959599df 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirReturnExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirReturnExpressionBuilder.kt @@ -31,7 +31,7 @@ import org.jetbrains.kotlin.fir.visitors.* class FirReturnExpressionBuilder : FirAnnotationContainerBuilder, FirExpressionBuilder { override var source: FirSourceElement? = null override val annotations: MutableList = mutableListOf() - lateinit var target: FirTarget> + lateinit var target: FirTarget lateinit var result: FirExpression override fun build(): FirReturnExpression { diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhenExpressionBuilder.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhenExpressionBuilder.kt index 8c1f741507e..bb4775c5d66 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhenExpressionBuilder.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/builder/FirWhenExpressionBuilder.kt @@ -35,7 +35,7 @@ class FirWhenExpressionBuilder : FirAnnotationContainerBuilder, FirExpressionBui override val annotations: MutableList = mutableListOf() var calleeReference: FirReference = FirStubReference var subject: FirExpression? = null - var subjectVariable: FirVariable<*>? = null + var subjectVariable: FirVariable? = null val branches: MutableList = mutableListOf() var exhaustivenessStatus: ExhaustivenessStatus? = null var usedAsExpression: Boolean by kotlin.properties.Delegates.notNull() diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirReturnExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirReturnExpressionImpl.kt index 1a163dc4fc7..528f0d0cf76 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirReturnExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirReturnExpressionImpl.kt @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.fir.visitors.* internal class FirReturnExpressionImpl( override val source: FirSourceElement?, override val annotations: MutableList, - override val target: FirTarget>, + override val target: FirTarget, override var result: FirExpression, ) : FirReturnExpression() { override var typeRef: FirTypeRef = FirImplicitNothingTypeRef(source?.fakeElement(FirFakeSourceElementKind.ImplicitTypeRef)) diff --git a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhenExpressionImpl.kt b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhenExpressionImpl.kt index a616a2ed208..69cec83bf4f 100644 --- a/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhenExpressionImpl.kt +++ b/compiler/fir/tree/gen/org/jetbrains/kotlin/fir/expressions/impl/FirWhenExpressionImpl.kt @@ -27,7 +27,7 @@ internal class FirWhenExpressionImpl( override val annotations: MutableList, override var calleeReference: FirReference, override var subject: FirExpression?, - override var subjectVariable: FirVariable<*>?, + override var subjectVariable: FirVariable?, override val branches: MutableList, override var exhaustivenessStatus: ExhaustivenessStatus?, override val usedAsExpression: Boolean, 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 382ee61a901..4bbac9efbd8 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 @@ -187,11 +187,11 @@ abstract class FirTransformer : FirVisitor() { return transformElement(expression, data) } - open fun > transformDeclaration(declaration: FirDeclaration, data: D): FirDeclaration { + open fun transformDeclaration(declaration: FirDeclaration, data: D): FirDeclaration { return transformElement(declaration, data) } - open fun > transformAnnotatedDeclaration(annotatedDeclaration: FirAnnotatedDeclaration, data: D): FirAnnotatedDeclaration { + open fun transformAnnotatedDeclaration(annotatedDeclaration: FirAnnotatedDeclaration, data: D): FirAnnotatedDeclaration { return transformElement(annotatedDeclaration, data) } @@ -199,11 +199,11 @@ abstract class FirTransformer : FirVisitor() { return transformElement(anonymousInitializer, data) } - open fun > transformTypedDeclaration(typedDeclaration: FirTypedDeclaration, data: D): FirTypedDeclaration { + 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) } @@ -227,11 +227,11 @@ abstract class FirTransformer : FirVisitor() { return transformElement(statusOwner, data) } - open fun > transformCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration, data: D): FirCallableMemberDeclaration { + open fun transformCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration, data: D): FirCallableMemberDeclaration { return transformElement(callableMemberDeclaration, data) } - open fun > transformVariable(variable: FirVariable, data: D): FirStatement { + open fun transformVariable(variable: FirVariable, data: D): FirStatement { return transformElement(variable, data) } @@ -251,11 +251,11 @@ abstract class FirTransformer : FirVisitor() { return transformElement(enumEntry, data) } - open fun > transformClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration, data: D): FirStatement { + open fun transformClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration, data: D): FirStatement { return transformElement(classLikeDeclaration, data) } - open fun > transformClass(klass: FirClass, data: D): FirStatement { + open fun transformClass(klass: FirClass, data: D): FirStatement { return transformElement(klass, data) } @@ -267,7 +267,7 @@ abstract class FirTransformer : FirVisitor() { return transformElement(typeAlias, data) } - open fun > transformFunction(function: FirFunction, data: D): FirStatement { + open fun transformFunction(function: FirFunction, data: D): FirStatement { return transformElement(function, data) } @@ -699,11 +699,11 @@ abstract class FirTransformer : FirVisitor() { return transformExpression(expression, data) } - final override fun > visitDeclaration(declaration: FirDeclaration, data: D): FirDeclaration { + final override fun visitDeclaration(declaration: FirDeclaration, data: D): FirDeclaration { return transformDeclaration(declaration, data) } - final override fun > visitAnnotatedDeclaration(annotatedDeclaration: FirAnnotatedDeclaration, data: D): FirAnnotatedDeclaration { + final override fun visitAnnotatedDeclaration(annotatedDeclaration: FirAnnotatedDeclaration, data: D): FirAnnotatedDeclaration { return transformAnnotatedDeclaration(annotatedDeclaration, data) } @@ -711,11 +711,11 @@ abstract class FirTransformer : FirVisitor() { return transformAnonymousInitializer(anonymousInitializer, data) } - final override fun > visitTypedDeclaration(typedDeclaration: FirTypedDeclaration, data: D): FirTypedDeclaration { + 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) } @@ -739,11 +739,11 @@ abstract class FirTransformer : FirVisitor() { return transformStatusOwner(statusOwner, data) } - final override fun > visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration, data: D): FirCallableMemberDeclaration { + final override fun visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration, data: D): FirCallableMemberDeclaration { return transformCallableMemberDeclaration(callableMemberDeclaration, data) } - final override fun > visitVariable(variable: FirVariable, data: D): FirStatement { + final override fun visitVariable(variable: FirVariable, data: D): FirStatement { return transformVariable(variable, data) } @@ -763,11 +763,11 @@ abstract class FirTransformer : FirVisitor() { return transformEnumEntry(enumEntry, data) } - final override fun > visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration, data: D): FirStatement { + final override fun visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration, data: D): FirStatement { return transformClassLikeDeclaration(classLikeDeclaration, data) } - final override fun > visitClass(klass: FirClass, data: D): FirStatement { + final override fun visitClass(klass: FirClass, data: D): FirStatement { return transformClass(klass, data) } @@ -779,7 +779,7 @@ abstract class FirTransformer : FirVisitor() { return transformTypeAlias(typeAlias, data) } - final override fun > visitFunction(function: FirFunction, data: D): FirStatement { + final override fun visitFunction(function: FirFunction, data: D): FirStatement { return transformFunction(function, 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 ee304f53f1e..95978c49622 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 @@ -164,15 +164,15 @@ abstract class FirVisitor { open fun visitExpression(expression: FirExpression, data: D): R = visitElement(expression, data) - open fun > visitDeclaration(declaration: FirDeclaration, data: D): R = visitElement(declaration, data) + open fun visitDeclaration(declaration: FirDeclaration, data: D): R = visitElement(declaration, data) - open fun > visitAnnotatedDeclaration(annotatedDeclaration: FirAnnotatedDeclaration, data: D): R = visitElement(annotatedDeclaration, data) + open fun visitAnnotatedDeclaration(annotatedDeclaration: FirAnnotatedDeclaration, data: D): R = visitElement(annotatedDeclaration, 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 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) @@ -184,9 +184,9 @@ abstract class FirVisitor { open fun visitStatusOwner(statusOwner: FirStatusOwner, data: D): R = visitElement(statusOwner, data) - open fun > visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration, data: D): R = visitElement(callableMemberDeclaration, data) + open fun visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration, data: D): R = visitElement(callableMemberDeclaration, data) - open fun > visitVariable(variable: FirVariable, data: D): R = visitElement(variable, data) + open fun visitVariable(variable: FirVariable, data: D): R = visitElement(variable, data) open fun visitValueParameter(valueParameter: FirValueParameter, data: D): R = visitElement(valueParameter, data) @@ -196,15 +196,15 @@ abstract class FirVisitor { open fun visitEnumEntry(enumEntry: FirEnumEntry, data: D): R = visitElement(enumEntry, data) - open fun > visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration, data: D): R = visitElement(classLikeDeclaration, data) + open fun visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration, data: D): R = visitElement(classLikeDeclaration, data) - open fun > visitClass(klass: FirClass, data: D): R = visitElement(klass, data) + open fun visitClass(klass: FirClass, data: D): R = visitElement(klass, data) open fun visitRegularClass(regularClass: FirRegularClass, data: D): R = visitElement(regularClass, data) open fun visitTypeAlias(typeAlias: FirTypeAlias, data: D): R = visitElement(typeAlias, data) - open fun > visitFunction(function: FirFunction, data: D): R = visitElement(function, data) + open fun visitFunction(function: FirFunction, data: D): R = visitElement(function, data) open fun visitContractDescriptionOwner(contractDescriptionOwner: FirContractDescriptionOwner, data: D): R = visitElement(contractDescriptionOwner, 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 c7020875fdd..f783981bce3 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 @@ -186,11 +186,11 @@ abstract class FirVisitorVoid : FirVisitor() { visitElement(expression) } - open fun > visitDeclaration(declaration: FirDeclaration) { + open fun visitDeclaration(declaration: FirDeclaration) { visitElement(declaration) } - open fun > visitAnnotatedDeclaration(annotatedDeclaration: FirAnnotatedDeclaration) { + open fun visitAnnotatedDeclaration(annotatedDeclaration: FirAnnotatedDeclaration) { visitElement(annotatedDeclaration) } @@ -198,11 +198,11 @@ abstract class FirVisitorVoid : FirVisitor() { visitElement(anonymousInitializer) } - open fun > visitTypedDeclaration(typedDeclaration: FirTypedDeclaration) { + open fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration) { visitElement(typedDeclaration) } - open fun > visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) { + open fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) { visitElement(callableDeclaration) } @@ -226,11 +226,11 @@ abstract class FirVisitorVoid : FirVisitor() { visitElement(statusOwner) } - open fun > visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration) { + open fun visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration) { visitElement(callableMemberDeclaration) } - open fun > visitVariable(variable: FirVariable) { + open fun visitVariable(variable: FirVariable) { visitElement(variable) } @@ -250,11 +250,11 @@ abstract class FirVisitorVoid : FirVisitor() { visitElement(enumEntry) } - open fun > visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration) { + open fun visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration) { visitElement(classLikeDeclaration) } - open fun > visitClass(klass: FirClass) { + open fun visitClass(klass: FirClass) { visitElement(klass) } @@ -266,7 +266,7 @@ abstract class FirVisitorVoid : FirVisitor() { visitElement(typeAlias) } - open fun > visitFunction(function: FirFunction) { + open fun visitFunction(function: FirFunction) { visitElement(function) } @@ -698,11 +698,11 @@ abstract class FirVisitorVoid : FirVisitor() { visitExpression(expression) } - final override fun > visitDeclaration(declaration: FirDeclaration, data: Nothing?) { + final override fun visitDeclaration(declaration: FirDeclaration, data: Nothing?) { visitDeclaration(declaration) } - final override fun > visitAnnotatedDeclaration(annotatedDeclaration: FirAnnotatedDeclaration, data: Nothing?) { + final override fun visitAnnotatedDeclaration(annotatedDeclaration: FirAnnotatedDeclaration, data: Nothing?) { visitAnnotatedDeclaration(annotatedDeclaration) } @@ -710,11 +710,11 @@ abstract class FirVisitorVoid : FirVisitor() { visitAnonymousInitializer(anonymousInitializer) } - final override fun > visitTypedDeclaration(typedDeclaration: FirTypedDeclaration, data: Nothing?) { + 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) } @@ -738,11 +738,11 @@ abstract class FirVisitorVoid : FirVisitor() { visitStatusOwner(statusOwner) } - final override fun > visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration, data: Nothing?) { + final override fun visitCallableMemberDeclaration(callableMemberDeclaration: FirCallableMemberDeclaration, data: Nothing?) { visitCallableMemberDeclaration(callableMemberDeclaration) } - final override fun > visitVariable(variable: FirVariable, data: Nothing?) { + final override fun visitVariable(variable: FirVariable, data: Nothing?) { visitVariable(variable) } @@ -762,11 +762,11 @@ abstract class FirVisitorVoid : FirVisitor() { visitEnumEntry(enumEntry) } - final override fun > visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration, data: Nothing?) { + final override fun visitClassLikeDeclaration(classLikeDeclaration: FirClassLikeDeclaration, data: Nothing?) { visitClassLikeDeclaration(classLikeDeclaration) } - final override fun > visitClass(klass: FirClass, data: Nothing?) { + final override fun visitClass(klass: FirClass, data: Nothing?) { visitClass(klass) } @@ -778,7 +778,7 @@ abstract class FirVisitorVoid : FirVisitor() { visitTypeAlias(typeAlias) } - final override fun > visitFunction(function: FirFunction, data: Nothing?) { + final override fun visitFunction(function: FirFunction, data: Nothing?) { visitFunction(function) } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/ClassMembers.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/ClassMembers.kt index 6d5e503c61c..07b17cbdd2f 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/ClassMembers.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/ClassMembers.kt @@ -16,46 +16,46 @@ import org.jetbrains.kotlin.fir.types.ConeIntersectionType import org.jetbrains.kotlin.fir.types.ConeKotlinType fun FirCallableSymbol<*>.dispatchReceiverTypeOrNull(): ConeKotlinType? = - (fir as? FirCallableMemberDeclaration<*>)?.dispatchReceiverType + (fir as? FirCallableMemberDeclaration)?.dispatchReceiverType fun FirCallableSymbol<*>.dispatchReceiverClassOrNull(): ConeClassLikeLookupTag? = - (fir as? FirCallableMemberDeclaration<*>)?.dispatchReceiverClassOrNull() + (fir as? FirCallableMemberDeclaration)?.dispatchReceiverClassOrNull() -fun FirCallableDeclaration<*>.dispatchReceiverClassOrNull(): ConeClassLikeLookupTag? = - (this as? FirCallableMemberDeclaration<*>)?.dispatchReceiverClassOrNull() +fun FirCallableDeclaration.dispatchReceiverClassOrNull(): ConeClassLikeLookupTag? = + (this as? FirCallableMemberDeclaration)?.dispatchReceiverClassOrNull() -fun FirCallableMemberDeclaration<*>.dispatchReceiverClassOrNull(): ConeClassLikeLookupTag? { +fun FirCallableMemberDeclaration.dispatchReceiverClassOrNull(): ConeClassLikeLookupTag? { if (dispatchReceiverType is ConeIntersectionType && isIntersectionOverride) return symbol.baseForIntersectionOverride!!.fir.dispatchReceiverClassOrNull() return (dispatchReceiverType as? ConeClassLikeType)?.lookupTag } fun FirCallableSymbol<*>.containingClass(): ConeClassLikeLookupTag? = fir.containingClass() -fun FirCallableDeclaration<*>.containingClass(): ConeClassLikeLookupTag? { +fun FirCallableDeclaration.containingClass(): ConeClassLikeLookupTag? { return (containingClassAttr ?: dispatchReceiverClassOrNull()) } -fun FirCallableMemberDeclaration<*>.containingClass(): ConeClassLikeLookupTag? { +fun FirCallableMemberDeclaration.containingClass(): ConeClassLikeLookupTag? { return (containingClassAttr ?: dispatchReceiverClassOrNull()) } fun FirRegularClass.containingClassForLocal(): ConeClassLikeLookupTag? = if (isLocal) containingClassForLocalAttr else null private object ContainingClassKey : FirDeclarationDataKey() -var FirCallableDeclaration<*>.containingClassAttr: ConeClassLikeLookupTag? by FirDeclarationDataRegistry.data(ContainingClassKey) +var FirCallableDeclaration.containingClassAttr: ConeClassLikeLookupTag? by FirDeclarationDataRegistry.data(ContainingClassKey) var FirRegularClass.containingClassForLocalAttr: ConeClassLikeLookupTag? by FirDeclarationDataRegistry.data(ContainingClassKey) -val FirCallableDeclaration<*>.isIntersectionOverride get() = origin == FirDeclarationOrigin.IntersectionOverride -val FirCallableDeclaration<*>.isSubstitutionOverride get() = origin == FirDeclarationOrigin.SubstitutionOverride -val FirCallableDeclaration<*>.isSubstitutionOrIntersectionOverride get() = isSubstitutionOverride || isIntersectionOverride +val FirCallableDeclaration.isIntersectionOverride get() = origin == FirDeclarationOrigin.IntersectionOverride +val FirCallableDeclaration.isSubstitutionOverride get() = origin == FirDeclarationOrigin.SubstitutionOverride +val FirCallableDeclaration.isSubstitutionOrIntersectionOverride get() = isSubstitutionOverride || isIntersectionOverride -inline val > D.originalForSubstitutionOverride: D? +inline val D.originalForSubstitutionOverride: D? get() = if (isSubstitutionOverride) originalForSubstitutionOverrideAttr else null inline val > S.originalForSubstitutionOverride: S? get() = fir.originalForSubstitutionOverride?.symbol as S? -inline val > D.baseForIntersectionOverride: D? +inline val D.baseForIntersectionOverride: D? get() = if (isIntersectionOverride) originalForIntersectionOverrideAttr else null inline val > S.baseForIntersectionOverride: S? @@ -67,13 +67,13 @@ val FirSimpleFunction.isJavaDefault: Boolean return origin == FirDeclarationOrigin.Enhancement && modality == Modality.OPEN } -inline fun > D.originalIfFakeOverride(): D? = +inline fun D.originalIfFakeOverride(): D? = originalForSubstitutionOverride ?: baseForIntersectionOverride inline fun > S.originalIfFakeOverride(): S? = fir.originalIfFakeOverride()?.symbol as S? -inline fun > D.originalOrSelf(): D { +inline fun D.originalOrSelf(): D { var result = this while (result.isSubstitutionOrIntersectionOverride) { result = result.originalIfFakeOverride() ?: break @@ -83,7 +83,7 @@ inline fun > D.originalOrSelf(): D { inline fun > S.originalOrSelf(): S = fir.originalOrSelf().symbol as S -inline fun > D.unwrapFakeOverrides(): D { +inline fun D.unwrapFakeOverrides(): D { var current = this do { @@ -96,13 +96,13 @@ inline fun > S.unwrapFakeOverrides(): S = fir.u private object SubstitutedOverrideOriginalKey : FirDeclarationDataKey() -var > +var D.originalForSubstitutionOverrideAttr: D? by FirDeclarationDataRegistry.data(SubstitutedOverrideOriginalKey) private object IntersectionOverrideOriginalKey : FirDeclarationDataKey() -var > +var D.originalForIntersectionOverrideAttr: D? by FirDeclarationDataRegistry.data(IntersectionOverrideOriginalKey) private object InitialSignatureKey : FirDeclarationDataKey() -var FirCallableDeclaration<*>.initialSignatureAttr: FirCallableDeclaration<*>? by FirDeclarationDataRegistry.data(InitialSignatureKey) +var FirCallableDeclaration.initialSignatureAttr: FirCallableDeclaration? by FirDeclarationDataRegistry.data(InitialSignatureKey) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirFunctionTarget.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirFunctionTarget.kt index 8242d979537..7733bec1566 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirFunctionTarget.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirFunctionTarget.kt @@ -11,10 +11,10 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol class FirFunctionTarget( labelName: String?, val isLambda: Boolean -) : FirAbstractTarget>(labelName) { +) : FirAbstractTarget(labelName) { private lateinit var targetSymbol: FirFunctionSymbol<*> - override var _labeledElement: FirFunction<*> + override var _labeledElement: FirFunction get() = targetSymbol.fir set(value) { targetSymbol = value.symbol 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 5f34f4aa42a..80a62196e7f 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/FirRenderer.kt @@ -215,7 +215,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM } } - override fun > visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) { + override fun visitCallableDeclaration(callableDeclaration: FirCallableDeclaration) { callableDeclaration.annotations.renderAnnotations() if (callableDeclaration is FirStatusOwner) { visitStatusOwner(callableDeclaration) @@ -236,7 +236,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM print(callableDeclaration.symbol.callableId) } } - is FirVariable<*> -> { + is FirVariable -> { if (!mode.renderCallableFqNames) { print(callableDeclaration.name) } else { @@ -245,7 +245,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM } } - if (callableDeclaration is FirFunction<*>) { + if (callableDeclaration is FirFunction) { callableDeclaration.valueParameters.renderParameters() } print(": ") @@ -253,7 +253,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM callableDeclaration.renderContractDescription() } - private fun FirDeclaration<*>.renderContractDescription() { + private fun FirDeclaration.renderContractDescription() { val contractDescription = (this as? FirContractDescriptionOwner)?.contractDescription ?: return pushIndent() contractDescription.accept(this@FirRenderer) @@ -275,7 +275,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM private fun FirStatusOwner.modalityAsString(): String { return modality?.name?.toLowerCaseAsciiOnly() ?: run { - if (this is FirCallableMemberDeclaration<*> && this.isOverride) { + if (this is FirCallableMemberDeclaration && this.isOverride) { "open?" } else { "final?" @@ -367,9 +367,9 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM print("lateinit ") } - visitDeclaration(statusOwner as FirDeclaration<*>) + visitDeclaration(statusOwner as FirDeclaration) when (statusOwner) { - is FirClassLikeDeclaration<*> -> { + is FirClassLikeDeclaration -> { if (statusOwner is FirRegularClass) { print(" " + statusOwner.name) } @@ -378,7 +378,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM } statusOwner.typeParameters.renderTypeParameters() } - is FirCallableDeclaration<*> -> { + is FirCallableDeclaration -> { // Name is handled by visitCallableDeclaration if (statusOwner.typeParameters.isNotEmpty()) { print(" ") @@ -388,7 +388,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM } } - override fun > visitDeclaration(declaration: FirDeclaration) { + override fun visitDeclaration(declaration: FirDeclaration) { declaration.renderDeclarationData() print( when (declaration) { @@ -406,19 +406,19 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM ) } - private fun FirDeclaration<*>.renderDeclarationData() { + private fun FirDeclaration.renderDeclarationData() { renderDeclarationResolvePhaseIfNeeded() renderDeclarationAttributesIfNeeded() renderDeclarationOriginIfNeeded() } - private fun FirDeclaration<*>.renderDeclarationResolvePhaseIfNeeded() { + private fun FirDeclaration.renderDeclarationResolvePhaseIfNeeded() { if (mode.renderDeclarationResolvePhase) { print("[${resolvePhase}] ") } } - private fun FirDeclaration<*>.renderDeclarationAttributesIfNeeded() { + private fun FirDeclaration.renderDeclarationAttributesIfNeeded() { if (mode.renderDeclarationAttributes && attributes.isNotEmpty()) { val attributes = getAttributesWithValues().mapNotNull { (klass, value) -> value?.let { klass.simpleName to value.renderAsDeclarationAttributeValue() } @@ -427,13 +427,13 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM } } - private fun FirDeclaration<*>.renderDeclarationOriginIfNeeded() { + private fun FirDeclaration.renderDeclarationOriginIfNeeded() { if (mode.renderDeclarationOrigin) { print("[$origin] ") } } - private fun FirDeclaration<*>.getAttributesWithValues(): List, Any?>> { + private fun FirDeclaration.getAttributesWithValues(): List, Any?>> { val attributesMap = FirDeclarationDataRegistry.allValuesThreadUnsafeForRendering() return attributesMap.entries.sortedBy { it.key.simpleName }.map { (klass, index) -> klass to attributes[index] } } @@ -445,7 +445,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM } - private fun List>.renderDeclarations() { + private fun List.renderDeclarations() { renderInBraces { for (declaration in this) { declaration.accept(this@FirRenderer) @@ -495,7 +495,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM anonymousObject.declarations.renderDeclarations() } - override fun > visitVariable(variable: FirVariable) { + override fun visitVariable(variable: FirVariable) { visitCallableDeclaration(variable) variable.initializer?.let { print(" = ") @@ -616,7 +616,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM } } - override fun > visitFunction(function: FirFunction) { + override fun visitFunction(function: FirFunction) { function.valueParameters.renderParameters() visitDeclaration(function) function.body?.renderBody() @@ -686,7 +686,7 @@ class FirRenderer(builder: StringBuilder, private val mode: RenderMode = RenderM print("\$subj\$") } - override fun > visitTypedDeclaration(typedDeclaration: FirTypedDeclaration) { + override fun visitTypedDeclaration(typedDeclaration: FirTypedDeclaration) { visitDeclaration(typedDeclaration) } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/Primitives.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/Primitives.kt index 4a89fc8afcb..18db501d4ec 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/Primitives.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/Primitives.kt @@ -43,19 +43,19 @@ fun ConeClassLikeType.isPrimitiveNumberType(): Boolean = lookupTag.classId in PR fun ConeClassLikeType.isPrimitiveUnsignedNumberType(): Boolean = lookupTag.classId in PRIMITIVE_UNSIGNED_NUMBER_CLASS_IDS fun ConeClassLikeType.isPrimitiveNumberOrUnsignedNumberType(): Boolean = isPrimitiveNumberType() || isPrimitiveUnsignedNumberType() -fun FirClass<*>.isDouble(): Boolean = classId == StandardClassIds.Double -fun FirClass<*>.isFloat(): Boolean = classId == StandardClassIds.Float -fun FirClass<*>.isLong(): Boolean = classId == StandardClassIds.Long -fun FirClass<*>.isInt(): Boolean = classId == StandardClassIds.Int -fun FirClass<*>.isShort(): Boolean = classId == StandardClassIds.Short -fun FirClass<*>.isByte(): Boolean = classId == StandardClassIds.Byte -fun FirClass<*>.isBoolean(): Boolean = classId == StandardClassIds.Boolean -fun FirClass<*>.isChar(): Boolean = classId == StandardClassIds.Char +fun FirClass.isDouble(): Boolean = classId == StandardClassIds.Double +fun FirClass.isFloat(): Boolean = classId == StandardClassIds.Float +fun FirClass.isLong(): Boolean = classId == StandardClassIds.Long +fun FirClass.isInt(): Boolean = classId == StandardClassIds.Int +fun FirClass.isShort(): Boolean = classId == StandardClassIds.Short +fun FirClass.isByte(): Boolean = classId == StandardClassIds.Byte +fun FirClass.isBoolean(): Boolean = classId == StandardClassIds.Boolean +fun FirClass.isChar(): Boolean = classId == StandardClassIds.Char -fun FirClass<*>.isPrimitiveType(): Boolean = isPrimitiveNumberOrUnsignedNumberType() || isBoolean() || isByte() || isShort() || isChar() -fun FirClass<*>.isPrimitiveNumberType(): Boolean = classId in PRIMITIVE_NUMBER_CLASS_IDS -fun FirClass<*>.isPrimitiveUnsignedNumberType(): Boolean = classId in PRIMITIVE_UNSIGNED_NUMBER_CLASS_IDS -fun FirClass<*>.isPrimitiveNumberOrUnsignedNumberType(): Boolean = isPrimitiveNumberType() || isPrimitiveUnsignedNumberType() +fun FirClass.isPrimitiveType(): Boolean = isPrimitiveNumberOrUnsignedNumberType() || isBoolean() || isByte() || isShort() || isChar() +fun FirClass.isPrimitiveNumberType(): Boolean = classId in PRIMITIVE_NUMBER_CLASS_IDS +fun FirClass.isPrimitiveUnsignedNumberType(): Boolean = classId in PRIMITIVE_UNSIGNED_NUMBER_CLASS_IDS +fun FirClass.isPrimitiveNumberOrUnsignedNumberType(): Boolean = isPrimitiveNumberType() || isPrimitiveUnsignedNumberType() private val PRIMITIVE_NUMBER_CLASS_IDS: Set = setOf( StandardClassIds.Double, StandardClassIds.Float, StandardClassIds.Long, StandardClassIds.Int, diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationAttributes.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationAttributes.kt index c26baae0f44..08db07b21fb 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationAttributes.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/FirDeclarationAttributes.kt @@ -37,7 +37,7 @@ class FirDeclarationAttributes : AttributeArrayOwner * Example of adding new attribute for declaration: * * object SomeKey : FirDeclarationDataKey() - * var FirDeclaration<*>.someString: String? by FirDeclarationDataRegistry.data(SomeKey) + * var FirDeclaration.someString: String? by FirDeclarationDataRegistry.data(SomeKey) */ object FirDeclarationDataRegistry : TypeRegistry() { fun data(key: K): DeclarationDataAccessor { @@ -54,12 +54,12 @@ object FirDeclarationDataRegistry : TypeRegistry() { private val dataAccessor: NullableArrayMapAccessor, val key: KClass ) { - operator fun getValue(thisRef: FirDeclaration<*>, property: KProperty<*>): V? { + operator fun getValue(thisRef: FirDeclaration, property: KProperty<*>): V? { @Suppress("UNCHECKED_CAST") return dataAccessor.getValue(thisRef.attributes, property) as? V } - operator fun setValue(thisRef: FirDeclaration<*>, property: KProperty<*>, value: V?) { + operator fun setValue(thisRef: FirDeclaration, property: KProperty<*>, value: V?) { thisRef.attributes[key] = value } } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/comparators/FirCallableMemberDeclarationComparator.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/comparators/FirCallableMemberDeclarationComparator.kt index 93d42a4423a..5756f07fc2c 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/comparators/FirCallableMemberDeclarationComparator.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/comparators/FirCallableMemberDeclarationComparator.kt @@ -5,12 +5,13 @@ package org.jetbrains.kotlin.fir.declarations.comparators -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration +import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.types.FirTypeRefComparator -object FirCallableMemberDeclarationComparator : Comparator> { - override fun compare(a: FirCallableMemberDeclaration<*>, b: FirCallableMemberDeclaration<*>): Int { +object FirCallableMemberDeclarationComparator : Comparator { + override fun compare(a: FirCallableMemberDeclaration, b: FirCallableMemberDeclaration): Int { val typeAndNameDiff = FirMemberDeclarationComparator.TypeAndNameComparator.compare(a, b) if (typeAndNameDiff != 0) { return typeAndNameDiff @@ -34,8 +35,8 @@ object FirCallableMemberDeclarationComparator : Comparator) { - require(b is FirFunction<*>) { + if (a is FirFunction) { + require(b is FirFunction) { "TypeAndNameComparator is inconsistent: ${a.render()} v.s. ${b.render()}" } val valueParameterSizeDiff = a.valueParameters.size - b.valueParameters.size diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/comparators/FirMemberDeclarationComparator.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/comparators/FirMemberDeclarationComparator.kt index a675d10d8ac..0f289884830 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/comparators/FirMemberDeclarationComparator.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/comparators/FirMemberDeclarationComparator.kt @@ -20,8 +20,8 @@ object FirMemberDeclarationComparator : Comparator { is FirConstructor -> 6 is FirProperty -> 5 is FirField -> 4 - is FirFunction<*> -> 3 - is FirClass<*> -> 2 + is FirFunction -> 3 + is FirClass -> 2 is FirTypeAlias -> 1 is FirErrorProperty -> 0 is FirValueParameter -> 0 @@ -29,9 +29,9 @@ object FirMemberDeclarationComparator : Comparator { private val FirStatusOwner.name: Name get() = when (this) { - is FirCallableMemberDeclaration<*> -> + is FirCallableMemberDeclaration -> this.symbol.callableId.callableName - is FirClass<*> -> + is FirClass -> this.classId.shortClassName is FirTypeAlias -> this.name @@ -55,7 +55,7 @@ object FirMemberDeclarationComparator : Comparator { } override fun compare(a: FirStatusOwner, b: FirStatusOwner): Int { - if (a is FirCallableMemberDeclaration<*> && b is FirCallableMemberDeclaration<*>) { + if (a is FirCallableMemberDeclaration && b is FirCallableMemberDeclaration) { return FirCallableMemberDeclarationComparator.compare(a, b) } @@ -66,8 +66,8 @@ object FirMemberDeclarationComparator : Comparator { // Note that names are already compared. Check other details per kind. when (a) { - is FirClass<*> -> { - require(b is FirClass<*>) { + is FirClass -> { + require(b is FirClass) { "priority is inconsistent: ${a.render()} v.s. ${b.render()}" } return a.classId.packageFqName.asString().compareTo(b.classId.packageFqName.asString()) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/FirDeclarationBuildingUtils.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/FirDeclarationBuildingUtils.kt index b636b45c967..3de6858ea9a 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/FirDeclarationBuildingUtils.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/FirDeclarationBuildingUtils.kt @@ -29,23 +29,23 @@ fun FirTypeParameterBuilder.addDefaultBoundIfNecessary(isFlexible: Boolean = fal } } -fun FirRegularClassBuilder.addDeclaration(declaration: FirDeclaration<*>) { +fun FirRegularClassBuilder.addDeclaration(declaration: FirDeclaration) { declarations += declaration if (companionObject == null && declaration is FirRegularClass && declaration.isCompanion) { companionObject = declaration } } -fun FirRegularClassBuilder.addDeclarations(declarations: Collection>) { +fun FirRegularClassBuilder.addDeclarations(declarations: Collection) { declarations.forEach(this::addDeclaration) } -fun FirFile.addDeclaration(declaration: FirDeclaration<*>) { +fun FirFile.addDeclaration(declaration: FirDeclaration) { require(this is FirFileImpl) declarations += declaration } -fun FirRegularClass.addDeclaration(declaration: FirDeclaration<*>) { +fun FirRegularClass.addDeclaration(declaration: FirDeclaration) { @Suppress("LiftReturnOrAssignment") when (this) { is FirRegularClassImpl -> declarations += declaration diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/FirDeclarationUtil.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/FirDeclarationUtil.kt index 8f2f4f9a214..8dd686a4eae 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/FirDeclarationUtil.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/FirDeclarationUtil.kt @@ -5,7 +5,7 @@ package org.jetbrains.kotlin.fir.declarations.utils -import org.jetbrains.kotlin.descriptors.* +import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccess import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference @@ -19,13 +19,13 @@ import org.jetbrains.kotlin.name.ClassId val FirTypeAlias.expandedConeType: ConeClassLikeType? get() = expandedTypeRef.coneTypeSafe() -val FirClassLikeDeclaration<*>.classId +val FirClassLikeDeclaration.classId get() = when (this) { - is FirClass<*> -> symbol.classId + is FirClass -> symbol.classId is FirTypeAlias -> symbol.classId } -val FirClass<*>.classId: ClassId get() = symbol.classId +val FirClass.classId: ClassId get() = symbol.classId val FirClassSymbol<*>.superConeTypes: List get() = when (this) { @@ -33,22 +33,22 @@ val FirClassSymbol<*>.superConeTypes: List is FirAnonymousObjectSymbol -> fir.superConeTypes } -val FirClass<*>.superConeTypes: List get() = superTypeRefs.mapNotNull { it.coneTypeSafe() } +val FirClass.superConeTypes: List get() = superTypeRefs.mapNotNull { it.coneTypeSafe() } -val FirClass<*>.anonymousInitializers: List +val FirClass.anonymousInitializers: List get() = declarations.filterIsInstance() -val FirClass<*>.constructors: List +val FirClass.constructors: List get() = declarations.filterIsInstance() val FirConstructor.delegatedThisConstructor: FirConstructor? get() = delegatedConstructor?.takeIf { it.isThis } ?.let { (it.calleeReference as? FirResolvedNamedReference)?.resolvedSymbol?.fir as? FirConstructor } -val FirClass<*>.constructorsSortedByDelegation: List +val FirClass.constructorsSortedByDelegation: List get() = constructors.sortedWith(ConstructorDelegationComparator) -val FirClass<*>.primaryConstructor: FirConstructor? +val FirClass.primaryConstructor: FirConstructor? get() = constructors.find(FirConstructor::isPrimary) fun FirRegularClass.collectEnumEntries(): Collection { @@ -62,11 +62,11 @@ val FirQualifiedAccess.referredPropertySymbol: FirPropertySymbol? return reference.resolvedSymbol as? FirPropertySymbol } -inline val FirDeclaration<*>.isJava: Boolean +inline val FirDeclaration.isJava: Boolean get() = origin == FirDeclarationOrigin.Java -inline val FirDeclaration<*>.isFromLibrary: Boolean +inline val FirDeclaration.isFromLibrary: Boolean get() = origin == FirDeclarationOrigin.Library -inline val FirDeclaration<*>.isSynthetic: Boolean +inline val FirDeclaration.isSynthetic: Boolean get() = origin == FirDeclarationOrigin.Synthetic private object ConstructorDelegationComparator : Comparator { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/FirStatusUtils.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/FirStatusUtils.kt index 26496f982b4..11c4fce0b0b 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/FirStatusUtils.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/FirStatusUtils.kt @@ -45,12 +45,12 @@ inline val FirStatusOwner.isFromSealedClass: Boolean get() = status.isFromSealed inline val FirStatusOwner.isFromEnumClass: Boolean get() = status.isFromEnumClass inline val FirStatusOwner.isFun: Boolean get() = status.isFun -inline val FirClassLikeDeclaration<*>.isLocal: Boolean get() = symbol.classId.isLocal +inline val FirClassLikeDeclaration.isLocal: Boolean get() = symbol.classId.isLocal -inline val FirClass<*>.isInterface: Boolean +inline val FirClass.isInterface: Boolean get() = classKind == ClassKind.INTERFACE -inline val FirClass<*>.isEnumClass: Boolean +inline val FirClass.isEnumClass: Boolean get() = classKind == ClassKind.ENUM_CLASS inline val FirRegularClass.isSealed: Boolean get() = status.modality == Modality.SEALED @@ -61,7 +61,7 @@ inline val FirRegularClass.canHaveAbstractDeclaration: Boolean inline val FirRegularClass.isCompanion: Boolean get() = status.isCompanion inline val FirRegularClass.isData: Boolean get() = status.isData -inline val FirFunction<*>.hasBody: Boolean get() = body != null +inline val FirFunction.hasBody: Boolean get() = body != null inline val FirPropertyAccessor.hasBody: Boolean get() = body != null inline val FirPropertyAccessor.allowsToHaveFakeOverride: Boolean get() = visibility.allowsToHaveFakeOverride diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/declarationAttributes.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/declarationAttributes.kt index 2f749937dcf..2ed657d63b5 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/declarationAttributes.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/declarations/utils/declarationAttributes.kt @@ -30,14 +30,14 @@ var FirRegularClass.moduleName: String? by FirDeclarationDataRegistry.data(Modul data class DanglingTypeConstraint(val name: Name, val source: FirSourceElement) var T.danglingTypeConstraints: List? - where T : FirDeclaration, T : FirTypeParameterRefsOwner + where T : FirDeclaration, T : FirTypeParameterRefsOwner by FirDeclarationDataRegistry.data(DanglingTypeConstraintsKey) // ----------------------------------- Utils ----------------------------------- val FirStatusOwner.containerSource: SourceElement? get() = when (this) { - is FirCallableMemberDeclaration<*> -> containerSource + is FirCallableMemberDeclaration -> containerSource is FirRegularClass -> sourceElement is FirTypeAlias -> sourceElement } @@ -62,7 +62,7 @@ val FirProperty.hasBackingField: Boolean } } -fun FirDeclaration<*>.getDanglingTypeConstraintsOrEmpty(): List { +fun FirDeclaration.getDanglingTypeConstraintsOrEmpty(): List { return when (this) { is FirRegularClass -> danglingTypeConstraints is FirSimpleFunction -> danglingTypeConstraints diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/scopes/FirScopeProvider.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/scopes/FirScopeProvider.kt index 09d4e6b8747..3f54296e4a2 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/scopes/FirScopeProvider.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/scopes/FirScopeProvider.kt @@ -11,25 +11,25 @@ import org.jetbrains.kotlin.fir.resolve.ScopeSession abstract class FirScopeProvider { abstract fun getUseSiteMemberScope( - klass: FirClass<*>, + klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession ): FirTypeScope abstract fun getStaticMemberScopeForCallables( - klass: FirClass<*>, + klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession ): FirScope? abstract fun getNestedClassifierScope( - klass: FirClass<*>, + klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession ): FirScope? fun getStaticScope( - klass: FirClass<*>, + klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession ): FirScope? { diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/FirBasedSymbol.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/FirBasedSymbol.kt index f9fdeab8bfc..273e66001f0 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/FirBasedSymbol.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/FirBasedSymbol.kt @@ -7,7 +7,7 @@ package org.jetbrains.kotlin.fir.symbols import org.jetbrains.kotlin.fir.declarations.FirDeclaration -abstract class FirBasedSymbol> { +abstract class FirBasedSymbol { private var _fir: E? = null val fir: E diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirCallableSymbol.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirCallableSymbol.kt index 27c4071300c..33f500dd58e 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirCallableSymbol.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirCallableSymbol.kt @@ -7,12 +7,12 @@ package org.jetbrains.kotlin.fir.symbols.impl import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration import org.jetbrains.kotlin.fir.declarations.FirFunction -import org.jetbrains.kotlin.fir.declarations.FirStatusOwner import org.jetbrains.kotlin.fir.declarations.FirProperty +import org.jetbrains.kotlin.fir.declarations.FirStatusOwner import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.name.CallableId -abstract class FirCallableSymbol> : FirBasedSymbol() { +abstract class FirCallableSymbol : FirBasedSymbol() { abstract val callableId: CallableId override fun toString(): String = "${this::class.simpleName} $callableId" diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirClassLikeSymbol.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirClassLikeSymbol.kt index a6d47af0e73..aaa72ba4701 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirClassLikeSymbol.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirClassLikeSymbol.kt @@ -11,7 +11,7 @@ import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name -sealed class FirClassLikeSymbol>( +sealed class FirClassLikeSymbol( val classId: ClassId ) : FirClassifierSymbol() { abstract override fun toLookupTag(): ConeClassLikeLookupTag @@ -19,7 +19,7 @@ sealed class FirClassLikeSymbol>( override fun toString(): String = "${this::class.simpleName} ${classId.asString()}" } -sealed class FirClassSymbol>(classId: ClassId) : FirClassLikeSymbol(classId) { +sealed class FirClassSymbol(classId: ClassId) : FirClassLikeSymbol(classId) { private val lookupTag = if (classId.isLocal) ConeClassLookupTagWithFixedSymbol(classId, this) else ConeClassLikeLookupTagImpl(classId) diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirClassifierSymbol.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirClassifierSymbol.kt index f9eb2374575..66fb291a07c 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirClassifierSymbol.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirClassifierSymbol.kt @@ -9,6 +9,6 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.symbols.ConeClassifierLookupTag import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol -sealed class FirClassifierSymbol> : FirBasedSymbol() { +sealed class FirClassifierSymbol : FirBasedSymbol() { abstract fun toLookupTag(): ConeClassifierLookupTag } diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirFunctionSymbol.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirFunctionSymbol.kt index 54201497423..89307bf277c 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirFunctionSymbol.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirFunctionSymbol.kt @@ -7,12 +7,12 @@ package org.jetbrains.kotlin.fir.symbols.impl import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.symbols.AccessorSymbol -import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.fir.types.ConeKotlinType +import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name -sealed class FirFunctionSymbol>( +sealed class FirFunctionSymbol( override val callableId: CallableId ) : FirCallableSymbol() { open val parameters: List @@ -45,7 +45,7 @@ open class FirAccessorSymbol( // ------------------------ unnamed ------------------------ -sealed class FirFunctionWithoutNameSymbol>( +sealed class FirFunctionWithoutNameSymbol( stubName: Name ) : FirFunctionSymbol(CallableId(FqName("special"), stubName)) { override val parameters: List diff --git a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt index 8c9fd0633f8..c75d7c813e0 100644 --- a/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt +++ b/compiler/fir/tree/src/org/jetbrains/kotlin/fir/symbols/impl/FirVariableSymbol.kt @@ -12,7 +12,7 @@ import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name -sealed class FirVariableSymbol>(override val callableId: CallableId) : FirCallableSymbol() +sealed class FirVariableSymbol(override val callableId: CallableId) : FirCallableSymbol() open class FirPropertySymbol( callableId: CallableId, 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 1aa039e1b07..abc5a648fd8 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 @@ -71,8 +71,7 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild } declaration.configure { - withArg("E", declaration) - +symbolWithPackage("fir.symbols", "FirBasedSymbol", "E") + +symbolWithPackage("fir.symbols", "FirBasedSymbol", "out FirDeclaration") +field("moduleData", firModuleDataType) +field("resolvePhase", resolvePhaseType, withReplace = true).apply { isMutable = true } +field("origin", declarationOriginType) @@ -80,41 +79,27 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild shouldBeAbstractClass() } - annotatedDeclaration.configure { - withArg("E", annotatedDeclaration) - parentArg(declaration, "E", "E") - } - typedDeclaration.configure { - withArg("E", typedDeclaration) - parentArg(annotatedDeclaration, "E", "E") +field("returnTypeRef", typeRef, withReplace = true).withTransform() } callableDeclaration.configure { - withArg("E", "FirCallableDeclaration") - parentArg(typedDeclaration, "E", "E") +field("receiverTypeRef", typeRef, nullable = true, withReplace = true).withTransform() - +symbol("FirCallableSymbol", "E") + +symbol("FirCallableSymbol", "out FirCallableDeclaration") } callableMemberDeclaration.configure { - withArg("E", "FirCallableMemberDeclaration") - parentArg(callableDeclaration, "E", "E") +field("containerSource", type(DeserializedContainerSource::class), nullable = true) +field("dispatchReceiverType", coneKotlinTypeType, nullable = true) } function.configure { - withArg("E", "FirFunction") - parentArg(callableMemberDeclaration, "E", "E") - +symbol("FirFunctionSymbol", "E") + +symbol("FirFunctionSymbol", "out FirFunction") +fieldList(valueParameter, withReplace = true).withTransform() +body(nullable = true, withReplace = true).withTransform() } errorFunction.configure { - parentArg(function, "E", errorFunction) +symbol("FirErrorFunctionSymbol") +typeParameters } @@ -243,15 +228,11 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild } classLikeDeclaration.configure { - withArg("E", "FirClassLikeDeclaration") - parentArg(annotatedDeclaration, "E", "E") - +symbol("FirClassLikeSymbol", "E") + +symbol("FirClassLikeSymbol", "out FirClassLikeDeclaration") } klass.configure { - withArg("E", "FirClass") - parentArg(classLikeDeclaration, "E", "E") - +symbol("FirClassSymbol", "E") + +symbol("FirClassSymbol", "out FirClass") +classKind +superTypeRefs(withReplace = true).withTransform() +declarations.withTransform() @@ -260,7 +241,6 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild } regularClass.configure { - parentArg(klass, "E", regularClass) +name +symbol("FirRegularClassSymbol") +field("companionObject", regularClass, nullable = true).withTransform() @@ -269,7 +249,6 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild } anonymousObject.configure { - parentArg(klass, "E", anonymousObject) +symbol("FirAnonymousObjectSymbol") } @@ -279,7 +258,6 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild typeAlias.configure { +typeParameters - parentArg(classLikeDeclaration, "E", typeAlias) +name +symbol("FirTypeAliasSymbol") +field("expandedTypeRef", typeRef, withReplace = true).withTransform() @@ -287,7 +265,6 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild } anonymousFunction.configure { - parentArg(function, "E", anonymousFunction) +symbol("FirAnonymousFunctionSymbol") +field(label, nullable = true) +field("invocationKind", eventOccurrencesRangeType, nullable = true, withReplace = true).apply { @@ -306,7 +283,6 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild } typeParameter.configure { - parentArg(annotatedDeclaration, "E", typeParameter) +name +symbol("FirTypeParameterSymbol") +field(varianceType) @@ -316,7 +292,6 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild } simpleFunction.configure { - parentArg(function, "E", simpleFunction) +name +symbol("FirNamedFunctionSymbol") +annotations @@ -328,7 +303,6 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild } property.configure { - parentArg(variable, "E", property) +symbol("FirPropertySymbol") +field("backingFieldSymbol", backingFieldSymbolType) +field("delegateFieldSymbol", delegateFieldSymbolType, nullable = true) @@ -337,7 +311,6 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild } propertyAccessor.configure { - parentArg(function, "E", propertyAccessor) +symbol("FirPropertyAccessorSymbol") +booleanField("isGetter") +booleanField("isSetter") @@ -361,7 +334,6 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild } constructor.configure { - parentArg(function, "E", constructor) +annotations +symbol("FirConstructorSymbol") +field("delegatedConstructor", delegatedConstructorCall, nullable = true).withTransform() @@ -377,17 +349,14 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild } valueParameter.configure { - parentArg(variable, "E", valueParameter) +symbol("FirValueParameterSymbol") +field("defaultValue", expression, nullable = true) generateBooleanFields("crossinline", "noinline", "vararg") } variable.configure { - withArg("E", variable) - parentArg(callableMemberDeclaration, "E", "E") +name - +symbol("FirVariableSymbol", "E") + +symbol("FirVariableSymbol", "out FirVariable") +initializer.withTransform().withReplace() +field("delegate", expression, nullable = true).withTransform() generateBooleanFields("var", "val") @@ -398,27 +367,23 @@ object NodeConfigurator : AbstractFieldConfigurator(FirTreeBuild } errorProperty.configure { - parentArg(variable, "E", errorProperty) +symbol("FirErrorPropertySymbol") } enumEntry.configure { - parentArg(variable, "E", enumEntry) +symbol("FirEnumEntrySymbol") } field.configure { - parentArg(variable, "E", field) + +symbol("FirFieldSymbol") } anonymousInitializer.configure { - parentArg(declaration, "E", anonymousInitializer) +body(nullable = true) +symbol("FirAnonymousInitializerSymbol") } file.configure { - parentArg(annotatedDeclaration, "E", file) +fieldList(import).withTransform() +declarations.withTransform() +stringField("name") diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/handlers/FirDiagnosticsHandler.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/handlers/FirDiagnosticsHandler.kt index ccb121551cb..cb02460fe04 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/handlers/FirDiagnosticsHandler.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/handlers/FirDiagnosticsHandler.kt @@ -12,7 +12,6 @@ import org.jetbrains.kotlin.checkers.utils.TypeOfCall import org.jetbrains.kotlin.diagnostics.rendering.Renderers import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.analysis.diagnostics.* -import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirProperty @@ -31,7 +30,6 @@ import org.jetbrains.kotlin.fir.types.FirTypeRef import org.jetbrains.kotlin.fir.types.coneTypeSafe import org.jetbrains.kotlin.fir.visitors.FirDefaultVisitorVoid import org.jetbrains.kotlin.name.FqNameUnsafe -import org.jetbrains.kotlin.psi.KtDotQualifiedExpression import org.jetbrains.kotlin.psi.KtQualifiedExpression import org.jetbrains.kotlin.resolve.AnalyzingUtils import org.jetbrains.kotlin.test.directives.AdditionalFilesDirectives @@ -294,7 +292,7 @@ class FirDiagnosticsHandler(testServices: TestServices) : FirAnalysisHandler(tes is FirProperty -> { TypeOfCall.PROPERTY_GETTER.nameToRender } - is FirFunction<*> -> buildString { + is FirFunction -> buildString { if (fir.status.isInline) append("inline ") if (fir.status.isInfix) append("infix ") if (fir.status.isOperator) append("operator ") diff --git a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/handlers/FirScopeDumpHandler.kt b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/handlers/FirScopeDumpHandler.kt index ad8c4e0ed6e..5a2da2dc2b8 100644 --- a/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/handlers/FirScopeDumpHandler.kt +++ b/compiler/tests-common-new/tests/org/jetbrains/kotlin/test/frontend/fir/handlers/FirScopeDumpHandler.kt @@ -111,7 +111,7 @@ class FirScopeDumpHandler(testServices: TestServices) : FirAnalysisHandler(testS } } - private fun SmartPrinter.printInfo(declaration: FirCallableMemberDeclaration<*>, counter: SymbolCounter) { + private fun SmartPrinter.printInfo(declaration: FirCallableMemberDeclaration, counter: SymbolCounter) { print("[${declaration.origin}]: ") print(declaration.render(FirRenderer.RenderMode.NoBodies).trim()) print(" from ${declaration.dispatchReceiverType?.render()}") diff --git a/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirDiagnosticTest.kt b/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirDiagnosticTest.kt index a4f5d1cf8a6..96804f0cb06 100644 --- a/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirDiagnosticTest.kt +++ b/compiler/tests-common/tests/org/jetbrains/kotlin/fir/AbstractFirDiagnosticTest.kt @@ -13,7 +13,6 @@ import org.jetbrains.kotlin.diagnostics.rendering.Renderers import org.jetbrains.kotlin.fir.analysis.collectors.AbstractDiagnosticCollector import org.jetbrains.kotlin.fir.analysis.collectors.FirDiagnosticsCollector import org.jetbrains.kotlin.fir.analysis.diagnostics.* -import org.jetbrains.kotlin.fir.declarations.FirCallableMemberDeclaration import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.declarations.FirFunction import org.jetbrains.kotlin.fir.declarations.FirProperty @@ -250,7 +249,7 @@ abstract class AbstractFirDiagnosticsTest : AbstractFirBaseDiagnosticsTest() { is FirProperty -> { TypeOfCall.PROPERTY_GETTER.nameToRender } - is FirFunction<*> -> buildString { + is FirFunction -> buildString { if (fir.status.isInline) append("inline ") if (fir.status.isInfix) append("infix ") if (fir.status.isOperator) append("operator ") 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 8f88a6f6ab8..67f1ec6fccd 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() @@ -171,7 +171,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { private fun renderVariableType(variable: KtVariableDeclaration) { stack.addName(variable.nameAsSafeName) - variable.firstOfTypeWithRender>(variable.nameIdentifier) + variable.firstOfTypeWithRender(variable.nameIdentifier) variable.acceptChildren(this) } @@ -193,7 +193,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { override fun visitParameter(parameter: KtParameter) { stack.addName(parameter.nameAsSafeName) if ((parameter.isLoopParameter && parameter.destructuringDeclaration == null) || parameter.ownerFunction is KtPropertyAccessor) { - parameter.firstOfTypeWithRender>(parameter.nameIdentifier) + parameter.firstOfTypeWithRender(parameter.nameIdentifier) } super.visitParameter(parameter) } @@ -450,7 +450,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { } } - private inline fun > D.originalIfFakeOverrideOrDelegated(): D? { + private inline fun D.originalIfFakeOverrideOrDelegated(): D? { return when (origin) { FirDeclarationOrigin.SubstitutionOverride, FirDeclarationOrigin.IntersectionOverride -> originalIfFakeOverride() FirDeclarationOrigin.Delegated -> delegatedWrapperData!!.wrapped @@ -458,7 +458,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { } } - private inline fun > D.getOriginal(): D { + private inline fun D.getOriginal(): D { var current = this var next = this.originalIfFakeOverrideOrDelegated() ?: this while (current != next) { @@ -469,7 +469,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { } private fun renderImplicitReceiver(symbol: FirBasedSymbol<*>, psi: PsiElement?) { - val receiverType = (symbol.fir as? FirCallableMemberDeclaration<*>)?.dispatchReceiverType ?: return + val receiverType = (symbol.fir as? FirCallableMemberDeclaration)?.dispatchReceiverType ?: return val implicitReceiverIndex = implicitReceivers.indexOf(receiverType) if (implicitReceiverIndex != -1) addAnnotation("this@$implicitReceiverIndex", psi) } @@ -492,7 +492,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { .append(original.returnTypeRef.coneType.tryToRenderConeAsFunctionType()) } - private fun renderVariable(variable: FirVariable<*>, data: StringBuilder) { + private fun renderVariable(variable: FirVariable, data: StringBuilder) { when { variable is FirEnumEntry -> { data.append("enum entry ") @@ -661,7 +661,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { valueParameter.defaultValue?.let { data.append(" = ...") } } - override fun > visitVariable(variable: FirVariable, data: StringBuilder) { + override fun visitVariable(variable: FirVariable, data: StringBuilder) { data.append(variable.returnTypeRef.render()) } @@ -686,7 +686,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { .append(fir.dispatchReceiverType?.tryToRenderConeAsFunctionType()) } symbol is FirFieldSymbol -> renderField(symbol.fir, data) - else -> (symbol.fir as? FirVariable<*>)?.let { renderVariable(it, data) } + else -> (symbol.fir as? FirVariable)?.let { renderVariable(it, data) } } } @@ -698,7 +698,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { is FirNamedFunctionSymbol -> { renderFunctionSymbol(symbol, data) - val fir = symbol.firUnsafe>() + val fir = symbol.firUnsafe() visitValueParameters(fir.valueParameters, data) data.append(": ") fir.returnTypeRef.accept(this, data) @@ -843,7 +843,7 @@ class FirVisualizer(private val firFile: FirFile) : BaseRenderer() { private fun FirBasedSymbol<*>.isLocalDeclaration(): Boolean { return when (val fir = this.fir) { is FirConstructor -> fir.returnTypeRef.coneType.isLocal() - is FirCallableDeclaration<*> -> { + is FirCallableDeclaration -> { fir.dispatchReceiverClassOrNull()?.toFirRegularClass(session)?.isLocal ?: false } else -> false diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirDesignationState.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirDesignationState.kt index 19c3065bc75..c56de78eeec 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirDesignationState.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirDesignationState.kt @@ -13,7 +13,7 @@ abstract class ContextByDesignationCollector(private val designation: F private val designationState = FirDesignationState(designation) protected abstract fun getCurrentContext(): C - protected abstract fun goToNestedDeclaration(declaration: FirDeclaration<*>) + protected abstract fun goToNestedDeclaration(declaration: FirDeclaration) fun getCollectedContext(): C { return context @@ -47,14 +47,14 @@ private class FirDesignationState(val designation: FirDeclarationDesignation) { fun canGoNext(): Boolean = currentIndex < designation.path.size - val currentDeclarationIfPresent: FirDeclaration<*>? + val currentDeclarationIfPresent: FirDeclaration? get() = when (currentIndex) { in designation.path.indices -> designation.path[currentIndex] designation.path.size -> designation.declaration else -> null } - val currentDeclaration: FirDeclaration<*> + val currentDeclaration: FirDeclaration get() = currentDeclarationIfPresent ?: error("Went inside target declaration") diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirModuleResolveStateDepended.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirModuleResolveStateDepended.kt index 3890c6cec68..2bbc33ae248 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirModuleResolveStateDepended.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirModuleResolveStateDepended.kt @@ -59,13 +59,13 @@ internal class FirModuleResolveStateDepended( override fun getOrBuildFirFile(ktFile: KtFile): FirFile = originalState.getOrBuildFirFile(ktFile) - override fun > resolveFirToPhase(declaration: D, toPhase: FirResolvePhase): D = + override fun resolveFirToPhase(declaration: D, toPhase: FirResolvePhase): D = originalState.resolveFirToPhase(declaration, toPhase) - override fun > resolveFirToResolveType(declaration: D, type: ResolveType): D = + override fun resolveFirToResolveType(declaration: D, type: ResolveType): D = originalState.resolveFirToResolveType(declaration, type) - override fun tryGetCachedFirFile(declaration: FirDeclaration<*>, cache: ModuleFileCache): FirFile? { + override fun tryGetCachedFirFile(declaration: FirDeclaration, cache: ModuleFileCache): FirFile? { val ktFile = declaration.containingKtFileIfAny ?: return null cache.getCachedFirFile(ktFile)?.let { return it } ktFile.originalKtFile?.let(cache::getCachedFirFile)?.let { return it } @@ -79,11 +79,11 @@ internal class FirModuleResolveStateDepended( TODO("Diagnostics are not implemented for depended state") @OptIn(InternalForInline::class) - override fun findSourceFirDeclaration(ktDeclaration: KtLambdaExpression): FirDeclaration<*> = + override fun findSourceFirDeclaration(ktDeclaration: KtLambdaExpression): FirDeclaration = originalState.findSourceFirDeclaration(ktDeclaration) @OptIn(InternalForInline::class) - override fun findSourceFirDeclaration(ktDeclaration: KtDeclaration): FirDeclaration<*> = + override fun findSourceFirDeclaration(ktDeclaration: KtDeclaration): FirDeclaration = originalState.findSourceFirDeclaration(ktDeclaration) @OptIn(InternalForInline::class) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirModuleResolveStateImpl.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirModuleResolveStateImpl.kt index 47e6f57120f..d152dc6ae71 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirModuleResolveStateImpl.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/FirModuleResolveStateImpl.kt @@ -74,7 +74,7 @@ internal class FirModuleResolveStateImpl( override fun getOrBuildFirFile(ktFile: KtFile): FirFile = firFileBuilder.buildRawFirFileWithCaching(ktFile, rootModuleSession.cache, preferLazyBodies = false) - override fun tryGetCachedFirFile(declaration: FirDeclaration<*>, cache: ModuleFileCache): FirFile? = + override fun tryGetCachedFirFile(declaration: FirDeclaration, cache: ModuleFileCache): FirFile? = cache.getContainerFirFile(declaration) override fun getDiagnostics(element: KtElement, filter: DiagnosticCheckerFilter): List = @@ -84,17 +84,17 @@ internal class FirModuleResolveStateImpl( diagnosticsCollector.collectDiagnosticsForFile(ktFile, filter) @OptIn(InternalForInline::class) - override fun findSourceFirDeclaration(ktDeclaration: KtDeclaration): FirDeclaration<*> = + override fun findSourceFirDeclaration(ktDeclaration: KtDeclaration): FirDeclaration = findSourceFirDeclarationByExpression(ktDeclaration) @OptIn(InternalForInline::class) - override fun findSourceFirDeclaration(ktDeclaration: KtLambdaExpression): FirDeclaration<*> = + override fun findSourceFirDeclaration(ktDeclaration: KtLambdaExpression): FirDeclaration = findSourceFirDeclarationByExpression(ktDeclaration) /** * [ktDeclaration] should be either [KtDeclaration] or [KtLambdaExpression] */ - private fun findSourceFirDeclarationByExpression(ktDeclaration: KtExpression): FirDeclaration<*> { + private fun findSourceFirDeclarationByExpression(ktDeclaration: KtExpression): FirDeclaration { require(ktDeclaration.getModuleInfo() is ModuleSourceInfoBase) { "Declaration should have ModuleSourceInfo, instead it had ${ktDeclaration.getModuleInfo()}" } @@ -116,7 +116,7 @@ internal class FirModuleResolveStateImpl( toPhase = FirResolvePhase.BODY_RESOLVE, checkPCE = false, /*TODO*/ ) - val firDeclaration = FirElementFinder.findElementIn>(nonLocalFirForNamedDeclaration) { firDeclaration -> + val firDeclaration = FirElementFinder.findElementIn(nonLocalFirForNamedDeclaration) { firDeclaration -> when (val realPsi = firDeclaration.realPsi) { is KtObjectLiteralExpression -> realPsi.objectDeclaration == ktDeclaration is KtFunctionLiteral -> realPsi.parent == ktDeclaration @@ -128,7 +128,7 @@ internal class FirModuleResolveStateImpl( } @OptIn(InternalForInline::class) - override fun findSourceFirCompiledDeclaration(ktDeclaration: KtDeclaration): FirDeclaration<*> { + override fun findSourceFirCompiledDeclaration(ktDeclaration: KtDeclaration): FirDeclaration { require(ktDeclaration.containingKtFile.isCompiled) { "This method will only work on compiled declarations, but this declaration is not compiled: ${ktDeclaration.getElementTextInContext()}" } @@ -145,7 +145,7 @@ internal class FirModuleResolveStateImpl( } } - override fun > resolveFirToPhase(declaration: D, toPhase: FirResolvePhase): D { + override fun resolveFirToPhase(declaration: D, toPhase: FirResolvePhase): D { if (toPhase == FirResolvePhase.RAW_FIR) return declaration val fileCache = when (val session = declaration.moduleData.session) { is FirIdeSourcesSession -> session.cache @@ -161,7 +161,7 @@ internal class FirModuleResolveStateImpl( return declaration } - override fun > resolveFirToResolveType(declaration: D, type: ResolveType): D { + override fun resolveFirToResolveType(declaration: D, type: ResolveType): D { if (type == ResolveType.NoResolve) return declaration val fileCache = when (val session = declaration.moduleData.session) { is FirIdeSourcesSession -> session.cache diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/DeclarationCopyBuilder.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/DeclarationCopyBuilder.kt index bdc8d9015c5..5d13422e4fb 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/DeclarationCopyBuilder.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/DeclarationCopyBuilder.kt @@ -65,15 +65,15 @@ internal object DeclarationCopyBuilder { } private fun FirDeclarationBuilder.initDeclaration( - originalDeclaration: FirDeclaration<*>, - builtDeclaration: FirDeclaration<*>, + originalDeclaration: FirDeclaration, + builtDeclaration: FirDeclaration, ) { resolvePhase = minOf(originalDeclaration.resolvePhase, FirResolvePhase.DECLARATIONS) source = builtDeclaration.source moduleData = originalDeclaration.moduleData } - private fun FirFunction<*>.reassignAllReturnTargets(from: FirFunction<*>) { + private fun FirFunction.reassignAllReturnTargets(from: FirFunction) { this.accept(object : FirVisitorVoid() { override fun visitElement(element: FirElement) { if (element is FirReturnExpression && element.target.labeledElement == from) { diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/FirDeclarationDesignation.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/FirDeclarationDesignation.kt index ec82a391091..9e7db0bc764 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/FirDeclarationDesignation.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/FirDeclarationDesignation.kt @@ -17,14 +17,14 @@ import org.jetbrains.kotlin.fir.resolve.toFirRegularClass import org.jetbrains.kotlin.idea.fir.low.level.api.util.getContainingFile class FirDeclarationDesignationWithFile( - path: List>, - declaration: FirDeclaration<*>, + path: List, + declaration: FirDeclaration, val firFile: FirFile ) : FirDeclarationDesignation( path, declaration, ) { - fun toSequenceWithFile(includeTarget: Boolean): Sequence> = sequence { + fun toSequenceWithFile(includeTarget: Boolean): Sequence = sequence { yield(firFile) yieldAll(path) if (includeTarget) yield(declaration) @@ -32,20 +32,20 @@ class FirDeclarationDesignationWithFile( } open class FirDeclarationDesignation( - val path: List>, - val declaration: FirDeclaration<*>, + val path: List, + val declaration: FirDeclaration, ) { - fun toSequence(includeTarget: Boolean): Sequence> = sequence { + fun toSequence(includeTarget: Boolean): Sequence = sequence { yieldAll(path) if (includeTarget) yield(declaration) } } -private fun FirRegularClass.collectForNonLocal(): List> { +private fun FirRegularClass.collectForNonLocal(): List { require(!isLocal) val firProvider = moduleData.session.firProvider var containingClassId = classId.outerClassId - val designation = mutableListOf>(this) + val designation = mutableListOf(this) while (containingClassId != null) { val currentClass = firProvider.getFirClassifierByFqName(containingClassId) ?: break designation.add(currentClass) @@ -54,11 +54,11 @@ private fun FirRegularClass.collectForNonLocal(): List> { return designation } -private fun collectDesignationPath(declaration: FirDeclaration<*>): List>? { +private fun collectDesignationPath(declaration: FirDeclaration): List? { val containingClass = when (declaration) { - is FirCallableDeclaration<*> -> { + is FirCallableDeclaration -> { if (declaration.symbol.callableId.isLocal) return null - if ((declaration as? FirCallableMemberDeclaration<*>)?.status?.visibility == Visibilities.Local) return null + if ((declaration as? FirCallableMemberDeclaration)?.status?.visibility == Visibilities.Local) return null when (declaration) { is FirSimpleFunction, is FirProperty, is FirField, is FirConstructor -> { val klass = declaration.containingClass() ?: return emptyList() @@ -68,7 +68,7 @@ private fun collectDesignationPath(declaration: FirDeclaration<*>): List return null } } - is FirClassLikeDeclaration<*> -> { + is FirClassLikeDeclaration -> { if (declaration.isLocal) return null declaration.symbol.classId.outerClassId?.let(declaration.moduleData.session.firProvider::getFirClassifierByFqName) } @@ -81,26 +81,26 @@ private fun collectDesignationPath(declaration: FirDeclaration<*>): List.collectDesignation(firFile: FirFile): FirDeclarationDesignationWithFile = +fun FirDeclaration.collectDesignation(firFile: FirFile): FirDeclarationDesignationWithFile = tryCollectDesignation(firFile) ?: error("No designation of local declaration ${this.render()}") -fun FirDeclaration<*>.collectDesignation(): FirDeclarationDesignation = +fun FirDeclaration.collectDesignation(): FirDeclarationDesignation = tryCollectDesignation() ?: error("No designation of local declaration ${this.render()}") -fun FirDeclaration<*>.collectDesignationWithFile(): FirDeclarationDesignationWithFile = +fun FirDeclaration.collectDesignationWithFile(): FirDeclarationDesignationWithFile = tryCollectDesignationWithFile() ?: error("No designation of local declaration ${this.render()}") -fun FirDeclaration<*>.tryCollectDesignation(firFile: FirFile): FirDeclarationDesignationWithFile? = +fun FirDeclaration.tryCollectDesignation(firFile: FirFile): FirDeclarationDesignationWithFile? = collectDesignationPath(this)?.let { FirDeclarationDesignationWithFile(it, this, firFile) } -fun FirDeclaration<*>.tryCollectDesignation(): FirDeclarationDesignation? = +fun FirDeclaration.tryCollectDesignation(): FirDeclarationDesignation? = collectDesignationPath(this)?.let { FirDeclarationDesignation(it, this) } -fun FirDeclaration<*>.tryCollectDesignationWithFile(): FirDeclarationDesignationWithFile? { +fun FirDeclaration.tryCollectDesignationWithFile(): FirDeclarationDesignationWithFile? { val path = collectDesignationPath(this) ?: return null val firFile = getContainingFile() ?: return null return FirDeclarationDesignationWithFile(path, this, firFile) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/FirModuleResolveState.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/FirModuleResolveState.kt index 1739601b286..19153fc95bd 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/FirModuleResolveState.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/FirModuleResolveState.kt @@ -44,14 +44,14 @@ abstract class FirModuleResolveState { /** * Try get [FirFile] from the cache in undefined phase */ - internal abstract fun tryGetCachedFirFile(declaration: FirDeclaration<*>, cache: ModuleFileCache): FirFile? + internal abstract fun tryGetCachedFirFile(declaration: FirDeclaration, cache: ModuleFileCache): FirFile? internal abstract fun getDiagnostics(element: KtElement, filter: DiagnosticCheckerFilter): List internal abstract fun collectDiagnosticsForFile(ktFile: KtFile, filter: DiagnosticCheckerFilter): Collection - internal inline fun , R> withLock(declaration: D, declarationLockType: DeclarationLockType, action: (D) -> R): R { - val originalDeclaration = (declaration as? FirCallableDeclaration<*>)?.unwrapFakeOverrides() ?: declaration + internal inline fun withLock(declaration: D, declarationLockType: DeclarationLockType, action: (D) -> R): R { + val originalDeclaration = (declaration as? FirCallableDeclaration)?.unwrapFakeOverrides() ?: declaration val session = originalDeclaration.moduleData.session return when { originalDeclaration.origin == FirDeclarationOrigin.Source && session is FirIdeSourcesSession -> { @@ -67,12 +67,12 @@ abstract class FirModuleResolveState { @InternalForInline abstract fun findSourceFirDeclaration( ktDeclaration: KtDeclaration, - ): FirDeclaration<*> + ): FirDeclaration @InternalForInline abstract fun findSourceFirDeclaration( ktDeclaration: KtLambdaExpression, - ): FirDeclaration<*> + ): FirDeclaration /** * Looks for compiled non-local [ktDeclaration] declaration by querying its classId/callableId from the SymbolProvider. @@ -82,10 +82,10 @@ abstract class FirModuleResolveState { @InternalForInline abstract fun findSourceFirCompiledDeclaration( ktDeclaration: KtDeclaration - ): FirDeclaration<*> + ): FirDeclaration - internal abstract fun > resolveFirToPhase(declaration: D, toPhase: FirResolvePhase): D + internal abstract fun resolveFirToPhase(declaration: D, toPhase: FirResolvePhase): D - internal abstract fun > resolveFirToResolveType(declaration: D, type: ResolveType): D + internal abstract fun resolveFirToResolveType(declaration: D, type: ResolveType): D } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/KtDeclarationAndFirDeclarationEqualityChecker.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/KtDeclarationAndFirDeclarationEqualityChecker.kt index baa1aac64b2..881a5cff6b9 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/KtDeclarationAndFirDeclarationEqualityChecker.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/KtDeclarationAndFirDeclarationEqualityChecker.kt @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.types.Variance // TODO replace with structural type comparison? object KtDeclarationAndFirDeclarationEqualityChecker { - fun representsTheSameDeclaration(psi: KtFunction, fir: FirFunction<*>): Boolean { + fun representsTheSameDeclaration(psi: KtFunction, fir: FirFunction): Boolean { if ((fir.receiverTypeRef != null) != (psi.receiverTypeReference != null)) return false if (fir.receiverTypeRef != null && !isTheSameTypes( @@ -176,7 +176,7 @@ object KtDeclarationAndFirDeclarationEqualityChecker { } @TestOnly - fun renderFir(firFunction: FirFunction<*>): String = buildString { + fun renderFir(firFunction: FirFunction): String = buildString { appendLine("receiver: ${firFunction.receiverTypeRef?.renderTypeAsKotlinType()}") firFunction.valueParameters.forEach { parameter -> appendLine("${parameter.name}: ${parameter.returnTypeRef.renderTypeAsKotlinType()}") @@ -185,19 +185,19 @@ object KtDeclarationAndFirDeclarationEqualityChecker { } private object DummyScopeProvider : FirScopeProvider() { - override fun getUseSiteMemberScope(klass: FirClass<*>, useSiteSession: FirSession, scopeSession: ScopeSession): FirTypeScope { + override fun getUseSiteMemberScope(klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession): FirTypeScope { shouldNotBeCalled() } override fun getStaticMemberScopeForCallables( - klass: FirClass<*>, + klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession ): FirScope? { shouldNotBeCalled() } - override fun getNestedClassifierScope(klass: FirClass<*>, useSiteSession: FirSession, scopeSession: ScopeSession): FirScope? { + override fun getNestedClassifierScope(klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession): FirScope? { shouldNotBeCalled() } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/LowLevelFirApiFacade.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/LowLevelFirApiFacade.kt index c93c75f4bd1..cd5a3745283 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/LowLevelFirApiFacade.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/LowLevelFirApiFacade.kt @@ -43,7 +43,7 @@ fun ModuleInfo.getResolveState(project: Project): FirModuleResolveState = inline fun KtDeclaration.withFirDeclaration( resolveState: FirModuleResolveState, phase: FirResolvePhase = FirResolvePhase.RAW_FIR, - action: (FirDeclaration<*>) -> R + action: (FirDeclaration) -> R ): R { val firDeclaration = if (containingKtFile.isCompiled) { resolveState.findSourceFirCompiledDeclaration(this) @@ -71,7 +71,7 @@ inline fun KtDeclaration.withFirDeclaration( inline fun KtDeclaration.withFirDeclaration( resolveState: FirModuleResolveState, resolveType: ResolveType = ResolveType.NoResolve, - action: (FirDeclaration<*>) -> R + action: (FirDeclaration) -> R ): R { val firDeclaration = resolveState.findSourceFirDeclaration(this) firDeclaration.resolvedFirToType(resolveType, resolveState) @@ -88,7 +88,7 @@ inline fun KtDeclaration.withFirDeclaration( * Otherwise, some threading problems may arise, */ @OptIn(InternalForInline::class) -inline fun , R> KtDeclaration.withFirDeclarationOfType( +inline fun KtDeclaration.withFirDeclarationOfType( resolveState: FirModuleResolveState, phase: FirResolvePhase = FirResolvePhase.RAW_FIR, action: (F) -> R @@ -106,7 +106,7 @@ inline fun , R> KtDeclaration.withFirDeclarationOf * Otherwise, some threading problems may arise, */ @OptIn(InternalForInline::class) -inline fun , R> KtLambdaExpression.withFirDeclarationOfType( +inline fun KtLambdaExpression.withFirDeclarationOfType( resolveState: FirModuleResolveState, action: (F) -> R ): R { @@ -119,7 +119,7 @@ inline fun , R> KtLambdaExpression.withFirDeclarat * Executes [action] with given [FirDeclaration] under read action, so resolve **is not possible** inside [action] * [FirDeclaration] passed to [action] will be resolved at least to [phase] when executing [action] on it */ -fun , R> D.withFirDeclaration( +fun D.withFirDeclaration( resolveState: FirModuleResolveState, phase: FirResolvePhase = FirResolvePhase.RAW_FIR, action: (D) -> R, @@ -132,7 +132,7 @@ fun , R> D.withFirDeclaration( * Executes [action] with given [FirDeclaration] under read action, so resolve **is not possible** inside [action] * [FirDeclaration] passed to [action] will be resolved at least to [phase] when executing [action] on it */ -fun , R> D.withFirDeclaration( +fun D.withFirDeclaration( type: ResolveType, resolveState: FirModuleResolveState, action: (D) -> R, @@ -144,7 +144,7 @@ fun , R> D.withFirDeclaration( /** * Executes [action] with given [FirDeclaration] under write lock, so resolve **is possible** inside [action] */ -fun , R> D.withFirDeclarationInWriteLock( +fun D.withFirDeclarationInWriteLock( resolveState: FirModuleResolveState, phase: FirResolvePhase = FirResolvePhase.RAW_FIR, action: (D) -> R, @@ -156,7 +156,7 @@ fun , R> D.withFirDeclarationInWriteLock( /** * Executes [action] with given [FirDeclaration] under write lock, so resolve **is possible** inside [action] */ -fun , R> D.withFirDeclarationInWriteLock( +fun D.withFirDeclarationInWriteLock( resolveState: FirModuleResolveState, resolveType: ResolveType = ResolveType.BodyResolveWithChildren, action: (D) -> R, @@ -187,7 +187,7 @@ fun KtFile.collectDiagnosticsForFile( * * Should not be called form [withFirDeclaration], [withFirDeclarationOfType] functions, as it it may cause deadlock */ -fun > D.resolvedFirToPhase( +fun D.resolvedFirToPhase( phase: FirResolvePhase, resolveState: FirModuleResolveState ): D = @@ -198,7 +198,7 @@ fun > D.resolvedFirToPhase( * * Should not be called form [withFirDeclaration], [withFirDeclarationOfType] functions, as it it may cause deadlock */ -fun > D.resolvedFirToType( +fun D.resolvedFirToType( type: ResolveType, resolveState: FirModuleResolveState ): D = diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/LowLevelFirApiFacadeForResolveOnAir.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/LowLevelFirApiFacadeForResolveOnAir.kt index 8554fe5aa7f..f3620ea3616 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/LowLevelFirApiFacadeForResolveOnAir.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/api/LowLevelFirApiFacadeForResolveOnAir.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.idea.fir.low.level.api.api import com.intellij.psi.util.PsiTreeUtil -import org.jetbrains.kotlin.descriptors.annotations.AnnotationUseSiteTarget import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall @@ -235,7 +234,7 @@ object LowLevelFirApiFacadeForResolveOnAir { } val originalDeclaration = nonLocalDeclaration.getOrBuildFir(state) - check(originalDeclaration is FirDeclaration<*>) { "Invalid original declaration type ${originalDeclaration::class.simpleName}" } + check(originalDeclaration is FirDeclaration) { "Invalid original declaration type ${originalDeclaration::class.simpleName}" } val originalDesignation = originalDeclaration.collectDesignation() diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/BeforeElementDiagnosticCollectionHandler.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/BeforeElementDiagnosticCollectionHandler.kt index b7f29dfd82b..9e112782e7d 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/BeforeElementDiagnosticCollectionHandler.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/BeforeElementDiagnosticCollectionHandler.kt @@ -13,7 +13,7 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration abstract class BeforeElementDiagnosticCollectionHandler: FirSessionComponent { open fun beforeCollectingForElement(element: FirElement) {} - open fun beforeGoingNestedDeclaration(declaration: FirDeclaration<*>, context: PersistentCheckerContext) {} + open fun beforeGoingNestedDeclaration(declaration: FirDeclaration, context: PersistentCheckerContext) {} } val FirSession.beforeElementDiagnosticCollectionHandler: BeforeElementDiagnosticCollectionHandler? by FirSession.nullableSessionComponentAccessor() diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/FileStructureElementDiagnosticRetriever.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/FileStructureElementDiagnosticRetriever.kt index b6019020d18..4009146b0d3 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/FileStructureElementDiagnosticRetriever.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/FileStructureElementDiagnosticRetriever.kt @@ -24,7 +24,7 @@ internal abstract class FileStructureElementDiagnosticRetriever { } internal class SingleNonLocalDeclarationDiagnosticRetriever( - private val structureElementDeclaration: FirDeclaration<*> + private val structureElementDeclaration: FirDeclaration ) : FileStructureElementDiagnosticRetriever() { override fun retrieve( firFile: FirFile, @@ -41,13 +41,13 @@ internal class SingleNonLocalDeclarationDiagnosticRetriever( } private class Visitor( - private val structureElementDeclaration: FirDeclaration<*>, + private val structureElementDeclaration: FirDeclaration, context: PersistentCheckerContext, components: List ) : FirIdeDiagnosticVisitor(context, components) { private var insideAlwaysVisitableDeclarations = 0 - override fun shouldVisitDeclaration(declaration: FirDeclaration<*>): Boolean { + override fun shouldVisitDeclaration(declaration: FirDeclaration): Boolean { if (declaration.shouldVisitWithNestedDeclarations()) { insideAlwaysVisitableDeclarations++ } @@ -64,7 +64,7 @@ internal class SingleNonLocalDeclarationDiagnosticRetriever( } } - private fun FirDeclaration<*>.shouldVisitWithNestedDeclarations(): Boolean { + private fun FirDeclaration.shouldVisitWithNestedDeclarations(): Boolean { if (shouldDiagnosticsAlwaysBeCheckedOn(this)) return true return when (this) { is FirAnonymousInitializer -> true @@ -75,7 +75,7 @@ internal class SingleNonLocalDeclarationDiagnosticRetriever( } } - override fun onDeclarationExit(declaration: FirDeclaration<*>) { + override fun onDeclarationExit(declaration: FirDeclaration) { if (declaration.shouldVisitWithNestedDeclarations()) { insideAlwaysVisitableDeclarations-- } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/FileStructureElementDiagnosticsCollector.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/FileStructureElementDiagnosticsCollector.kt index bbe24a3aed3..1e0e62ff0b9 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/FileStructureElementDiagnosticsCollector.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/FileStructureElementDiagnosticsCollector.kt @@ -17,7 +17,7 @@ internal class FileStructureElementDiagnosticsCollector private constructor(priv } fun collectForStructureElement( - firDeclaration: FirDeclaration<*>, + firDeclaration: FirDeclaration, createVisitor: (components: List) -> CheckerRunningDiagnosticCollectorVisitor, ): FileStructureElementDiagnosticList { val reporter = FirIdeDiagnosticReporter() diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/FirIdeDiagnosticVisitor.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/FirIdeDiagnosticVisitor.kt index 5d4af1c6035..8fce03aa726 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/FirIdeDiagnosticVisitor.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/FirIdeDiagnosticVisitor.kt @@ -19,7 +19,7 @@ internal open class FirIdeDiagnosticVisitor( private val beforeElementDiagnosticCollectionHandler = context.session.beforeElementDiagnosticCollectionHandler override fun visitNestedElements(element: FirElement) { - if (element is FirDeclaration<*>) { + if (element is FirDeclaration) { beforeElementDiagnosticCollectionHandler?.beforeGoingNestedDeclaration(element, context) } super.visitNestedElements(element) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/fir/ContextCollectingDiagnosticCollectorVisitor.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/fir/ContextCollectingDiagnosticCollectorVisitor.kt index d7a0399b214..f0af846322e 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/fir/ContextCollectingDiagnosticCollectorVisitor.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostics/fir/ContextCollectingDiagnosticCollectorVisitor.kt @@ -27,13 +27,13 @@ private class ContextCollectingDiagnosticCollectorVisitor private constructor( private val contextCollector = object : ContextByDesignationCollector(designation) { override fun getCurrentContext(): PersistentCheckerContext = context - override fun goToNestedDeclaration(declaration: FirDeclaration<*>) { + override fun goToNestedDeclaration(declaration: FirDeclaration) { declaration.accept(this@ContextCollectingDiagnosticCollectorVisitor, null) } } override fun visitNestedElements(element: FirElement) { - if (element is FirDeclaration<*>) { + if (element is FirDeclaration) { contextCollector.nextStep() } else { element.accept(this, null) @@ -55,11 +55,11 @@ internal object PersistenceContextCollector { fun collectContext( sessionHolder: SessionHolder, firFile: FirFile, - declaration: FirDeclaration<*>, + declaration: FirDeclaration, ): PersistentCheckerContext { val isLocal = when (declaration) { - is FirClassLikeDeclaration<*> -> declaration.symbol.classId.isLocal - is FirCallableDeclaration<*> -> declaration.symbol.callableId.isLocal + is FirClassLikeDeclaration -> declaration.symbol.classId.isLocal + is FirCallableDeclaration -> declaration.symbol.callableId.isLocal else -> error("Unsupported declaration ${declaration.renderWithType()}") } require(!isLocal) { diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/element/builder/FirIdeDesignatedBodyResolveTransformerForReturnTypeCalculator.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/element/builder/FirIdeDesignatedBodyResolveTransformerForReturnTypeCalculator.kt index 5e3f0d9a9dd..64f6806b5bb 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/element/builder/FirIdeDesignatedBodyResolveTransformerForReturnTypeCalculator.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/element/builder/FirIdeDesignatedBodyResolveTransformerForReturnTypeCalculator.kt @@ -59,7 +59,7 @@ class FirIdeDesignatedBodyResolveTransformerForReturnTypeCalculatorImpl( returnTypeCalculator, outerBodyResolveContext ) { - private val declarationDesignation = designation.filterIsInstance>() + private val declarationDesignation = designation.filterIsInstance() override fun transformSimpleFunction( simpleFunction: FirSimpleFunction, diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/element/builder/FirTowerDataContextCollector.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/element/builder/FirTowerDataContextCollector.kt index 540fde1a871..8e03e643271 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/element/builder/FirTowerDataContextCollector.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/element/builder/FirTowerDataContextCollector.kt @@ -40,7 +40,7 @@ internal class FirTowerDataContextAllElementsCollector : FirTowerDataContextColl elementsToContext[closestStatementInBlock] = context } - override fun addDeclarationContext(declaration: FirDeclaration<*>, context: FirTowerDataContext) { + override fun addDeclarationContext(declaration: FirDeclaration, context: FirTowerDataContext) { val psi = declaration.psi as? KtElement ?: return elementsToContext[psi] = context } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/builder/ModuleFileCache.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/builder/ModuleFileCache.kt index 10d1f158e7b..259fee9e2bb 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/builder/ModuleFileCache.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/builder/ModuleFileCache.kt @@ -31,7 +31,7 @@ internal abstract class ModuleFileCache { * Maps [ClassId] to corresponding classifiers * If classifier with required [ClassId] is not found in given module then map contains [Optional.EMPTY] */ - abstract val classifierByClassId: ConcurrentHashMap>> + abstract val classifierByClassId: ConcurrentHashMap> /** * Maps [CallableId] to corresponding callable @@ -45,13 +45,13 @@ internal abstract class ModuleFileCache { */ abstract fun fileCached(file: KtFile, createValue: () -> FirFile): FirFile - abstract fun getContainerFirFile(declaration: FirDeclaration<*>): FirFile? + abstract fun getContainerFirFile(declaration: FirDeclaration): FirFile? abstract fun getCachedFirFile(ktFile: KtFile): FirFile? abstract val firFileLockProvider: LockProvider - inline fun , R> withReadLockOn(declaration: D, action: (D) -> R): R { + inline fun withReadLockOn(declaration: D, action: (D) -> R): R { val file = getContainerFirFile(declaration) ?: error("No fir file found for\n${declaration.render()}") return firFileLockProvider.withReadLock(file) { action(declaration) } @@ -61,7 +61,7 @@ internal abstract class ModuleFileCache { internal class ModuleFileCacheImpl(override val session: FirSession) : ModuleFileCache() { private val ktFileToFirFile = ConcurrentCollectionFactory.createConcurrentIdentityMap() - override val classifierByClassId: ConcurrentHashMap>> = ConcurrentHashMap() + override val classifierByClassId: ConcurrentHashMap> = ConcurrentHashMap() override val callableByCallableId: ConcurrentHashMap>> = ConcurrentHashMap() override fun fileCached(file: KtFile, createValue: () -> FirFile): FirFile = @@ -69,7 +69,7 @@ internal class ModuleFileCacheImpl(override val session: FirSession) : ModuleFil override fun getCachedFirFile(ktFile: KtFile): FirFile? = ktFileToFirFile[ktFile] - override fun getContainerFirFile(declaration: FirDeclaration<*>): FirFile? { + override fun getContainerFirFile(declaration: FirDeclaration): FirFile? { val ktFile = declaration.psi?.containingFile as? KtFile ?: return null return getCachedFirFile(ktFile) } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileElementFactory.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileElementFactory.kt index 40c80135a94..d964f562492 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileElementFactory.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileElementFactory.kt @@ -19,7 +19,7 @@ internal object FileElementFactory { * should be consistent with [isReanalyzableContainer] */ fun createFileStructureElement( - firDeclaration: FirDeclaration<*>, + firDeclaration: FirDeclaration, ktDeclaration: KtDeclaration, firFile: FirFile, firFileLockProvider: LockProvider, diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureElement.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureElement.kt index 2a9f5872e8c..c437e704c2a 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureElement.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureElement.kt @@ -222,7 +222,7 @@ internal class ReanalyzablePropertyStructureElement( internal class NonReanalyzableDeclarationStructureElement( firFile: FirFile, - val fir: FirDeclaration<*>, + val fir: FirDeclaration, override val psi: KtDeclaration, lockProvider: LockProvider, ) : FileStructureElement(firFile, lockProvider) { @@ -263,7 +263,7 @@ internal class RootStructureElement( companion object { private val recorder = object : FirElementsRecorder() { override fun visitElement(element: FirElement, data: MutableMap) { - if (element !is FirDeclaration<*> || element is FirFile) { + if (element !is FirDeclaration || element is FirFile) { super.visitElement(element, data) } } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureUtil.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureUtil.kt index cb3ceecf034..97ee95568a6 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureUtil.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/file/structure/FileStructureUtil.kt @@ -27,14 +27,14 @@ internal object FileStructureUtil { else -> false } - fun replaceDeclaration(firFile: FirFile, from: FirCallableDeclaration<*>, to: FirCallableDeclaration<*>) { + fun replaceDeclaration(firFile: FirFile, from: FirCallableDeclaration, to: FirCallableDeclaration) { val declarations = if (from.symbol.callableId.className == null) { - firFile.declarations as MutableList> + firFile.declarations as MutableList } else { val classLikeLookupTag = from.containingClass() ?: error("Class name should not be null for non-top-level & non-local declarations, but was null for\n${from.render()}") val containingClass = classLikeLookupTag.toSymbol(firFile.moduleData.session)?.fir as FirRegularClass - containingClass.declarations as MutableList> + containingClass.declarations as MutableList } declarations.replaceFirst(from, to) } @@ -42,8 +42,8 @@ internal object FileStructureUtil { inline fun withDeclarationReplaced( firFile: FirFile, cache: ModuleFileCache, - from: FirCallableDeclaration<*>, - to: FirCallableDeclaration<*>, + from: FirCallableDeclaration, + to: FirCallableDeclaration, action: () -> R, ): R { cache.firFileLockProvider.withWriteLock(firFile) { replaceDeclaration(firFile, from, to) } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyBodiesCalculator.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyBodiesCalculator.kt index c2d73ed9c46..0894166bb36 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyBodiesCalculator.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyBodiesCalculator.kt @@ -21,14 +21,14 @@ import org.jetbrains.kotlin.psi.KtSecondaryConstructor internal object FirLazyBodiesCalculator { fun calculateLazyBodiesInside(designation: FirDeclarationDesignation) { - designation.declaration.transform>>( + designation.declaration.transform>( FirLazyBodiesCalculatorTransformer, designation.toSequence(includeTarget = true).toMutableList() ) } fun calculateLazyBodies(firFile: FirFile) { - firFile.transform>>(FirLazyBodiesCalculatorTransformer, mutableListOf()) + firFile.transform>(FirLazyBodiesCalculatorTransformer, mutableListOf()) } fun calculateLazyBodiesForFunction(designation: FirDeclarationDesignation) { @@ -104,16 +104,16 @@ internal object FirLazyBodiesCalculator { || (firProperty.delegate as? FirWrappedDelegateExpression)?.expression is FirLazyExpression } -private object FirLazyBodiesCalculatorTransformer : FirTransformer>>() { +private object FirLazyBodiesCalculatorTransformer : FirTransformer>() { - override fun transformFile(file: FirFile, data: MutableList>): FirFile { + override fun transformFile(file: FirFile, data: MutableList): FirFile { file.declarations.forEach { it.transformSingle(this, data) } return file } - override fun transformElement(element: E, data: MutableList>): E { + override fun transformElement(element: E, data: MutableList): E { if (element is FirRegularClass) { data.add(element) element.declarations.forEach { @@ -127,7 +127,7 @@ private object FirLazyBodiesCalculatorTransformer : FirTransformer> + data: MutableList ): FirSimpleFunction { if (simpleFunction.body is FirLazyBlock) { val designation = FirDeclarationDesignation(data, simpleFunction) @@ -138,7 +138,7 @@ private object FirLazyBodiesCalculatorTransformer : FirTransformer> + data: MutableList ): FirConstructor { if (constructor.body is FirLazyBlock) { val designation = FirDeclarationDesignation(data, constructor) @@ -147,7 +147,7 @@ private object FirLazyBodiesCalculatorTransformer : FirTransformer>): FirProperty { + override fun transformProperty(property: FirProperty, data: MutableList): FirProperty { if (FirLazyBodiesCalculator.needCalculatingLazyBodyForProperty(property)) { val designation = FirDeclarationDesignation(data, property) FirLazyBodiesCalculator.calculateLazyBodyForProperty(designation) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyDeclarationResolveToType.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyDeclarationResolveToType.kt index 7255a285d33..e76ad5ef6d3 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyDeclarationResolveToType.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyDeclarationResolveToType.kt @@ -29,7 +29,7 @@ enum class ResolveType { } internal fun FirLazyDeclarationResolver.lazyResolveDeclaration( - firDeclaration: FirDeclaration<*>, + firDeclaration: FirDeclaration, moduleFileCache: ModuleFileCache, toResolveType: ResolveType, scopeSession: ScopeSession, @@ -38,7 +38,7 @@ internal fun FirLazyDeclarationResolver.lazyResolveDeclaration( when (toResolveType) { ResolveType.NoResolve -> return ResolveType.CallableReturnType -> { - require(firDeclaration is FirCallableDeclaration<*>) { + require(firDeclaration is FirCallableDeclaration) { "CallableReturnType type cannot be applied to ${firDeclaration::class.qualifiedName}" } //Need to be sync @@ -77,7 +77,7 @@ internal fun FirLazyDeclarationResolver.lazyResolveDeclaration( } } ResolveType.BodyResolveWithChildren, ResolveType.CallableBodyResolve -> { - require(firDeclaration is FirCallableDeclaration<*> || toResolveType != ResolveType.CallableBodyResolve) { + require(firDeclaration is FirCallableDeclaration || toResolveType != ResolveType.CallableBodyResolve) { "BodyResolveWithChildren and CallableBodyResolve types cannot be applied to ${firDeclaration::class.qualifiedName}" } lazyResolveDeclaration( @@ -109,7 +109,7 @@ internal fun FirLazyDeclarationResolver.lazyResolveDeclaration( } } ResolveType.ClassSuperTypes -> { - require(firDeclaration is FirClassLikeDeclaration<*>) { + require(firDeclaration is FirClassLikeDeclaration) { "ClassSuperTypes type cannot be applied to ${firDeclaration::class.qualifiedName}" } lazyResolveDeclaration( @@ -121,7 +121,7 @@ internal fun FirLazyDeclarationResolver.lazyResolveDeclaration( ) } ResolveType.CallableContracts -> { - require(firDeclaration is FirCallableDeclaration<*>) { + require(firDeclaration is FirCallableDeclaration) { "CallableContracts type cannot be applied to ${firDeclaration::class.qualifiedName}" } lazyResolveDeclaration( diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyDeclarationResolver.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyDeclarationResolver.kt index 82ca0a417da..e5232a19a9d 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyDeclarationResolver.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/FirLazyDeclarationResolver.kt @@ -26,10 +26,6 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.transformers.LazyTransformerF import org.jetbrains.kotlin.idea.fir.low.level.api.util.checkCanceled import org.jetbrains.kotlin.idea.fir.low.level.api.util.ensurePhase import org.jetbrains.kotlin.idea.fir.low.level.api.util.findSourceNonLocalFirDeclaration -import org.jetbrains.kotlin.idea.fir.low.level.api.transformers.* -import org.jetbrains.kotlin.idea.fir.low.level.api.util.* -import org.jetbrains.kotlin.psi.* -import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject internal class FirLazyDeclarationResolver(private val firFileBuilder: FirFileBuilder) { /** @@ -84,7 +80,7 @@ internal class FirLazyDeclarationResolver(private val firFileBuilder: FirFileBui ).transformDeclaration(firFileBuilder.firPhaseRunner) } - private fun FirDeclaration<*>.isValidForResolve(): Boolean = when (origin) { + private fun FirDeclaration.isValidForResolve(): Boolean = when (origin) { is FirDeclarationOrigin.Source, is FirDeclarationOrigin.ImportedFromObject, is FirDeclarationOrigin.Delegated, @@ -190,7 +186,7 @@ internal class FirLazyDeclarationResolver(private val firFileBuilder: FirFileBui * @param firDeclarationToResolve target non-local declaration */ fun lazyResolveDeclaration( - firDeclarationToResolve: FirDeclaration<*>, + firDeclarationToResolve: FirDeclaration, moduleFileCache: ModuleFileCache, scopeSession: ScopeSession, toPhase: FirResolvePhase, diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/NonLocalDeclarationUtils.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/NonLocalDeclarationUtils.kt index 13b7abb7b2e..1ff5d0873cb 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/NonLocalDeclarationUtils.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/NonLocalDeclarationUtils.kt @@ -9,19 +9,12 @@ import org.jetbrains.kotlin.fir.FirFakeSourceElement import org.jetbrains.kotlin.fir.FirFakeSourceElementKind import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.psi -import org.jetbrains.kotlin.fir.resolve.providers.FirProvider -import org.jetbrains.kotlin.fir.resolve.symbolProvider -import org.jetbrains.kotlin.idea.fir.low.level.api.api.* -import org.jetbrains.kotlin.idea.fir.low.level.api.element.builder.getNonLocalContainingOrThisDeclaration -import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.FirFileBuilder -import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache -import org.jetbrains.kotlin.idea.fir.low.level.api.util.findSourceNonLocalFirDeclaration import org.jetbrains.kotlin.idea.fir.low.level.api.util.parentOfType import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject import org.jetbrains.kotlin.psi.psiUtil.getParentOfType -internal fun FirDeclaration<*>.getKtDeclarationForFirElement(): KtDeclaration { +internal fun FirDeclaration.getKtDeclarationForFirElement(): KtDeclaration { require(this !is FirFile) val ktDeclaration = (psi as? KtDeclaration) ?: run { diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/RawFirNonLocalDeclarationBuilder.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/RawFirNonLocalDeclarationBuilder.kt index 3511a5d95c3..e00ddc7d1b3 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/RawFirNonLocalDeclarationBuilder.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/lazy/resolve/RawFirNonLocalDeclarationBuilder.kt @@ -22,7 +22,7 @@ internal class RawFirNonLocalDeclarationBuilder private constructor( session: FirSession, baseScopeProvider: FirScopeProvider, private val declarationToBuild: KtDeclaration, - private val functionsToRebind: Set>? = null, + private val functionsToRebind: Set? = null, private val replacementApplier: RawFirReplacement.Applier? = null ) : RawFirBuilder(session, baseScopeProvider, RawFirBuilderMode.NORMAL) { @@ -33,7 +33,7 @@ internal class RawFirNonLocalDeclarationBuilder private constructor( designation: FirDeclarationDesignation, rootNonLocalDeclaration: KtDeclaration, replacement: RawFirReplacement? - ): FirDeclaration<*> { + ): FirDeclaration { val replacementApplier = replacement?.Applier() val builder = RawFirNonLocalDeclarationBuilder( session = session, @@ -52,7 +52,7 @@ internal class RawFirNonLocalDeclarationBuilder private constructor( scopeProvider: FirScopeProvider, designation: FirDeclarationDesignation, rootNonLocalDeclaration: KtDeclaration, - ): FirDeclaration<*> { + ): FirDeclaration { val functionsToRebind = when (val originalDeclaration = designation.declaration) { is FirSimpleFunction -> setOf(originalDeclaration) is FirProperty -> setOfNotNull(originalDeclaration.getter, originalDeclaration.setter) @@ -70,7 +70,7 @@ internal class RawFirNonLocalDeclarationBuilder private constructor( } } - override fun bindFunctionTarget(target: FirFunctionTarget, function: FirFunction<*>) { + override fun bindFunctionTarget(target: FirFunctionTarget, function: FirFunction) { val rewrittenTarget = functionsToRebind?.firstOrNull { it.realPsi == function.realPsi } ?: function super.bindFunctionTarget(target, rewrittenTarget) } @@ -103,7 +103,7 @@ internal class RawFirNonLocalDeclarationBuilder private constructor( } } - private fun moveNext(iterator: Iterator>, containingClass: FirRegularClass?): FirDeclaration<*> { + private fun moveNext(iterator: Iterator, containingClass: FirRegularClass?): FirDeclaration { if (!iterator.hasNext()) { val visitor = VisitorWithReplacement() return when (declarationToBuild) { @@ -113,7 +113,7 @@ internal class RawFirNonLocalDeclarationBuilder private constructor( visitor.convertProperty(declarationToBuild, ownerSymbol, ownerTypeArgumentsCount) } else -> visitor.convertElement(declarationToBuild) - } as FirDeclaration<*> + } as FirDeclaration } val parent = iterator.next() diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/providers/FirIdeBuiltinsAndCloneableSessionProvider.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/providers/FirIdeBuiltinsAndCloneableSessionProvider.kt index 347315d70f2..3a385409176 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/providers/FirIdeBuiltinsAndCloneableSessionProvider.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/providers/FirIdeBuiltinsAndCloneableSessionProvider.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name internal class FirIdeBuiltinsAndCloneableSessionProvider(override val symbolProvider: FirSymbolProvider) : FirProvider() { - override fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration<*>? = + override fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration? = symbolProvider.getClassLikeSymbolByFqName(classId)?.fir override fun getFirClassifierContainerFile(fqName: ClassId): FirFile = shouldNotBeCalled() @@ -25,10 +25,10 @@ internal class FirIdeBuiltinsAndCloneableSessionProvider(override val symbolProv override fun getFirFilesByPackage(fqName: FqName): List = emptyList() @FirProviderInternals - override fun recordGeneratedClass(owner: FirAnnotatedDeclaration<*>, klass: FirRegularClass) = shouldNotBeCalled() + override fun recordGeneratedClass(owner: FirAnnotatedDeclaration, klass: FirRegularClass) = shouldNotBeCalled() @FirProviderInternals - override fun recordGeneratedMember(owner: FirAnnotatedDeclaration<*>, klass: FirDeclaration<*>) = shouldNotBeCalled() + override fun recordGeneratedMember(owner: FirAnnotatedDeclaration, klass: FirDeclaration) = shouldNotBeCalled() override fun getClassNamesInPackage(fqName: FqName): Set = shouldNotBeCalled() diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/providers/FirIdeLibrariesSessionProvider.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/providers/FirIdeLibrariesSessionProvider.kt index 9f95196c07e..1d7fb027af4 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/providers/FirIdeLibrariesSessionProvider.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/providers/FirIdeLibrariesSessionProvider.kt @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.name.Name internal class FirIdeLibrariesSessionProvider( override val symbolProvider: FirSymbolProvider ) : FirProvider() { - override fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration<*>? = + override fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration? = symbolProvider.getClassLikeSymbolByFqName(classId)?.fir override fun getFirClassifierContainerFile(fqName: ClassId): FirFile = shouldNotBeCalled() @@ -27,10 +27,10 @@ internal class FirIdeLibrariesSessionProvider( override fun getFirFilesByPackage(fqName: FqName): List = emptyList() @FirProviderInternals - override fun recordGeneratedClass(owner: FirAnnotatedDeclaration<*>, klass: FirRegularClass) = shouldNotBeCalled() + override fun recordGeneratedClass(owner: FirAnnotatedDeclaration, klass: FirRegularClass) = shouldNotBeCalled() @FirProviderInternals - override fun recordGeneratedMember(owner: FirAnnotatedDeclaration<*>, klass: FirDeclaration<*>) = shouldNotBeCalled() + override fun recordGeneratedMember(owner: FirAnnotatedDeclaration, klass: FirDeclaration) = shouldNotBeCalled() override fun getClassNamesInPackage(fqName: FqName): Set = shouldNotBeCalled() diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/providers/FirIdeProvider.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/providers/FirIdeProvider.kt index ff4fd3700e4..b18b5a9d0a1 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/providers/FirIdeProvider.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/providers/FirIdeProvider.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.idea.fir.low.level.api.providers -import com.intellij.openapi.components.ServiceManager import com.intellij.openapi.project.Project import org.jetbrains.kotlin.analyzer.ModuleSourceInfoBase import org.jetbrains.kotlin.fir.FirSession @@ -22,9 +21,6 @@ import org.jetbrains.kotlin.fir.scopes.FirKotlinScopeProvider import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.idea.fir.low.level.api.DeclarationProvider import org.jetbrains.kotlin.idea.fir.low.level.api.KtPackageProvider -import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveStateConfigurator -import org.jetbrains.kotlin.idea.fir.low.level.api.api.stateConfigurator -import org.jetbrains.kotlin.idea.fir.low.level.api.createPackageProvider import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.FirFileBuilder import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache import org.jetbrains.kotlin.name.ClassId @@ -53,7 +49,7 @@ internal class FirIdeProvider( override val isPhasedFirAllowed: Boolean get() = true - override fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration<*>? = + override fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration? = providerHelper.getFirClassifierByFqName(classId) override fun getFirClassifierContainerFile(fqName: ClassId): FirFile { @@ -92,12 +88,12 @@ internal class FirIdeProvider( @FirProviderInternals - override fun recordGeneratedClass(owner: FirAnnotatedDeclaration<*>, klass: FirRegularClass) { + override fun recordGeneratedClass(owner: FirAnnotatedDeclaration, klass: FirRegularClass) { TODO() } @FirProviderInternals - override fun recordGeneratedMember(owner: FirAnnotatedDeclaration<*>, klass: FirDeclaration<*>) { + override fun recordGeneratedMember(owner: FirAnnotatedDeclaration, klass: FirDeclaration) { TODO() } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/providers/FirProviderHelper.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/providers/FirProviderHelper.kt index 38107ab57de..4d0316976c7 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/providers/FirProviderHelper.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/providers/FirProviderHelper.kt @@ -9,7 +9,6 @@ import com.google.common.collect.Sets import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration import org.jetbrains.kotlin.fir.declarations.FirFile -import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol @@ -19,6 +18,7 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.FirFileBuilder import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache import org.jetbrains.kotlin.idea.fir.low.level.api.util.FirElementFinder import org.jetbrains.kotlin.idea.fir.low.level.api.util.executeOrReturnDefaultValueOnPCE +import org.jetbrains.kotlin.name.CallableId import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name @@ -31,7 +31,7 @@ internal class FirProviderHelper( private val declarationProvider: DeclarationProvider, private val packageProvider: KtPackageProvider, ) { - fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration<*>? { + fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration? { if (classId.isLocal) return null return executeOrReturnDefaultValueOnPCE(null) { cache.classifierByClassId.computeIfAbsent(classId) { @@ -40,7 +40,7 @@ internal class FirProviderHelper( else -> if (klass.getClassId() == null) null else klass } ?: return@computeIfAbsent Optional.empty() val firFile = firFileBuilder.buildRawFirFileWithCaching(ktClass.containingKtFile, cache, preferLazyBodies = true) - val classifier = FirElementFinder.findElementIn>(firFile) { classifier -> + val classifier = FirElementFinder.findElementIn(firFile) { classifier -> classifier.symbol.classId == classId } ?: error("Classifier $classId was found in file ${ktClass.containingKtFile.virtualFilePath} but was not found in FirFile") @@ -79,7 +79,7 @@ internal class FirProviderHelper( private fun FirFile.collectCallableDeclarationsTo(list: MutableList>, name: Name) { declarations.mapNotNullTo(list) { declaration -> - if (declaration is FirCallableDeclaration<*> && declaration.symbol.callableId.callableName == name) { + if (declaration is FirCallableDeclaration && declaration.symbol.callableId.callableName == name) { declaration.symbol } else null } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedBodyResolveTransformerForIDE.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedBodyResolveTransformerForIDE.kt index 941f16d8ba4..96ef178c374 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedBodyResolveTransformerForIDE.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedBodyResolveTransformerForIDE.kt @@ -49,12 +49,12 @@ internal class FirDesignatedBodyResolveTransformerForIDE( ) { private val ideDeclarationTransformer = IDEDeclarationTransformer(designation) - override fun transformDeclarationContent(declaration: FirDeclaration<*>, data: ResolutionMode): FirDeclaration<*> = + override fun transformDeclarationContent(declaration: FirDeclaration, data: ResolutionMode): FirDeclaration = ideDeclarationTransformer.transformDeclarationContent(this, declaration, data) { super.transformDeclarationContent(declaration, data) } - override fun needReplacePhase(firDeclaration: FirDeclaration<*>): Boolean = + override fun needReplacePhase(firDeclaration: FirDeclaration): Boolean = ideDeclarationTransformer.needReplacePhase && firDeclaration !is FirFile && super.needReplacePhase(firDeclaration) override fun transformDeclaration(phaseRunner: FirPhaseRunner) { @@ -62,7 +62,7 @@ internal class FirDesignatedBodyResolveTransformerForIDE( designation.declaration.updateResolvedPhaseForDeclarationAndChildren(FirResolvePhase.BODY_RESOLVE) if (designation.isTargetCallableDeclarationAndInPhase(FirResolvePhase.BODY_RESOLVE)) return - (designation.declaration as? FirCallableDeclaration<*>)?.ensurePhase(FirResolvePhase.CONTRACTS) + (designation.declaration as? FirCallableDeclaration)?.ensurePhase(FirResolvePhase.CONTRACTS) designation.ensurePhaseForClasses(FirResolvePhase.STATUS) phaseRunner.runPhaseWithCustomResolve(FirResolvePhase.BODY_RESOLVE) { @@ -76,7 +76,7 @@ internal class FirDesignatedBodyResolveTransformerForIDE( ensureResolvedDeep(designation.declaration) } - override fun ensureResolved(declaration: FirDeclaration<*>) { + override fun ensureResolved(declaration: FirDeclaration) { when (declaration) { is FirSimpleFunction, is FirConstructor, is FirTypeAlias, is FirField, is FirAnonymousInitializer -> declaration.ensurePhase(FirResolvePhase.BODY_RESOLVE) @@ -85,7 +85,7 @@ internal class FirDesignatedBodyResolveTransformerForIDE( declaration.getter?.ensurePhase(FirResolvePhase.BODY_RESOLVE) declaration.setter?.ensurePhase(FirResolvePhase.BODY_RESOLVE) } - is FirEnumEntry, is FirClass<*> -> Unit + is FirEnumEntry, is FirClass -> Unit else -> error("Unexpected type: ${declaration::class.simpleName}") } } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedContractsResolveTransformerForIDE.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedContractsResolveTransformerForIDE.kt index f5d691826e4..ace1bccf44d 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedContractsResolveTransformerForIDE.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedContractsResolveTransformerForIDE.kt @@ -33,7 +33,7 @@ internal class FirDesignatedContractsResolveTransformerForIDE( private val ideDeclarationTransformer = IDEDeclarationTransformer(designation) override val declarationsTransformer: FirDeclarationsResolveTransformer = object : FirDeclarationsContractResolveTransformer(this) { - override fun transformDeclarationContent(firClass: FirClass<*>, data: ResolutionMode) { + override fun transformDeclarationContent(firClass: FirClass, data: ResolutionMode) { ideDeclarationTransformer.transformDeclarationContent(this, firClass, data) { super.transformDeclarationContent(firClass, data) firClass @@ -41,13 +41,13 @@ internal class FirDesignatedContractsResolveTransformerForIDE( } } - override fun transformDeclarationContent(declaration: FirDeclaration<*>, data: ResolutionMode): FirDeclaration<*> = + override fun transformDeclarationContent(declaration: FirDeclaration, data: ResolutionMode): FirDeclaration = ideDeclarationTransformer.transformDeclarationContent(this, declaration, data) { designation.declaration.updateResolvedPhaseForDeclarationAndChildren(FirResolvePhase.CONTRACTS) super.transformDeclarationContent(declaration, data) } - override fun needReplacePhase(firDeclaration: FirDeclaration<*>): Boolean = + override fun needReplacePhase(firDeclaration: FirDeclaration): Boolean = ideDeclarationTransformer.needReplacePhase && firDeclaration !is FirFile && super.needReplacePhase(firDeclaration) override fun transformDeclaration(phaseRunner: FirPhaseRunner) { @@ -66,7 +66,7 @@ internal class FirDesignatedContractsResolveTransformerForIDE( ensureResolvedDeep(designation.declaration) } - override fun ensureResolved(declaration: FirDeclaration<*>) { + override fun ensureResolved(declaration: FirDeclaration) { when (declaration) { is FirSimpleFunction, is FirConstructor, is FirAnonymousInitializer -> declaration.ensurePhase(FirResolvePhase.CONTRACTS) @@ -75,7 +75,7 @@ internal class FirDesignatedContractsResolveTransformerForIDE( declaration.getter?.ensurePhase(FirResolvePhase.CONTRACTS) declaration.setter?.ensurePhase(FirResolvePhase.CONTRACTS) } - is FirClass<*>, is FirTypeAlias, is FirEnumEntry, is FirField -> Unit + is FirClass, is FirTypeAlias, is FirEnumEntry, is FirField -> Unit else -> error("Unexpected type: ${declaration::class.simpleName}") } } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedImplicitTypesTransformerForIDE.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedImplicitTypesTransformerForIDE.kt index 8e50fbdb769..90bcfa831df 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedImplicitTypesTransformerForIDE.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedImplicitTypesTransformerForIDE.kt @@ -49,12 +49,12 @@ internal class FirDesignatedImplicitTypesTransformerForIDE( ) { private val ideDeclarationTransformer = IDEDeclarationTransformer(designation) - override fun transformDeclarationContent(declaration: FirDeclaration<*>, data: ResolutionMode): FirDeclaration<*> = + override fun transformDeclarationContent(declaration: FirDeclaration, data: ResolutionMode): FirDeclaration = ideDeclarationTransformer.transformDeclarationContent(this, declaration, data) { super.transformDeclarationContent(declaration, data) } - override fun needReplacePhase(firDeclaration: FirDeclaration<*>): Boolean = + override fun needReplacePhase(firDeclaration: FirDeclaration): Boolean = ideDeclarationTransformer.needReplacePhase && firDeclaration !is FirFile && super.needReplacePhase(firDeclaration) override fun transformDeclaration(phaseRunner: FirPhaseRunner) { @@ -62,7 +62,7 @@ internal class FirDesignatedImplicitTypesTransformerForIDE( designation.declaration.updateResolvedPhaseForDeclarationAndChildren(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) if (designation.isTargetCallableDeclarationAndInPhase(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE)) return - val callableDeclaration = designation.declaration as? FirCallableDeclaration<*> + val callableDeclaration = designation.declaration as? FirCallableDeclaration if (callableDeclaration != null) { if (callableDeclaration.returnTypeRef is FirResolvedTypeRef) return callableDeclaration.ensurePhase(FirResolvePhase.CONTRACTS) @@ -78,11 +78,11 @@ internal class FirDesignatedImplicitTypesTransformerForIDE( ensureResolvedDeep(designation.declaration) } - override fun ensureResolved(declaration: FirDeclaration<*>) { + override fun ensureResolved(declaration: FirDeclaration) { when (declaration) { is FirSimpleFunction -> check(declaration.returnTypeRef is FirResolvedTypeRef) is FirField -> check(declaration.returnTypeRef is FirResolvedTypeRef) - is FirClass<*>, is FirConstructor, is FirTypeAlias, is FirEnumEntry, is FirAnonymousInitializer -> Unit + is FirClass, is FirConstructor, is FirTypeAlias, is FirEnumEntry, is FirAnonymousInitializer -> Unit is FirProperty -> { check(declaration.returnTypeRef is FirResolvedTypeRef) //Not resolved for some getters and setters #KT-46995 diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedStatusResolveTransformerForIDE.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedStatusResolveTransformerForIDE.kt index 767a6a97e37..c838532eb0c 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedStatusResolveTransformerForIDE.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedStatusResolveTransformerForIDE.kt @@ -32,10 +32,10 @@ internal class FirDesignatedStatusResolveTransformerForIDE( val designationTransformer = IDEDeclarationTransformer(designation) - override fun needReplacePhase(firDeclaration: FirDeclaration<*>): Boolean = + override fun needReplacePhase(firDeclaration: FirDeclaration): Boolean = firDeclaration !is FirFile && super.needReplacePhase(firDeclaration) - override fun transformDeclarationContent(declaration: FirDeclaration<*>, data: FirResolvedDeclarationStatus?): FirDeclaration<*> = + override fun transformDeclarationContent(declaration: FirDeclaration, data: FirResolvedDeclarationStatus?): FirDeclaration = designationTransformer.transformDeclarationContent(this, declaration, data) { super.transformDeclarationContent(declaration, data) } @@ -57,7 +57,7 @@ internal class FirDesignatedStatusResolveTransformerForIDE( ensureResolvedDeep(designation.declaration) } - override fun ensureResolved(declaration: FirDeclaration<*>) { + override fun ensureResolved(declaration: FirDeclaration) { if (declaration !is FirAnonymousInitializer) { declaration.ensurePhase(FirResolvePhase.STATUS) } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedSupertypeResolverTransformerForIDE.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedSupertypeResolverTransformerForIDE.kt index 2189e5953f8..5a2bb4017ce 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedSupertypeResolverTransformerForIDE.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedSupertypeResolverTransformerForIDE.kt @@ -53,7 +53,7 @@ internal class FirDesignatedSupertypeResolverTransformerForIDE( ) { val declarationTransformer = IDEDeclarationTransformer(classDesignation) - override fun visitDeclarationContent(declaration: FirDeclaration<*>, data: Any?) { + override fun visitDeclarationContent(declaration: FirDeclaration, data: Any?) { declarationTransformer.visitDeclarationContent(this, declaration, data) { super.visitDeclarationContent(declaration, data) declaration @@ -64,7 +64,7 @@ internal class FirDesignatedSupertypeResolverTransformerForIDE( private inner class DesignatedFirApplySupertypesTransformer(classDesignation: FirDeclarationDesignation) : FirApplySupertypesTransformer(supertypeComputationSession) { - override fun needReplacePhase(firDeclaration: FirDeclaration<*>): Boolean = + override fun needReplacePhase(firDeclaration: FirDeclaration): Boolean = firDeclaration !is FirFile && super.needReplacePhase(firDeclaration) override fun transformRegularClass(regularClass: FirRegularClass, data: Any?): FirStatement { @@ -87,7 +87,7 @@ internal class FirDesignatedSupertypeResolverTransformerForIDE( val declarationTransformer = IDEDeclarationTransformer(classDesignation) - override fun transformDeclarationContent(declaration: FirDeclaration<*>, data: Any?): FirDeclaration<*> { + override fun transformDeclarationContent(declaration: FirDeclaration, data: Any?): FirDeclaration { return declarationTransformer.transformDeclarationContent(this, declaration, data) { super.transformDeclarationContent(declaration, data) } @@ -95,7 +95,7 @@ internal class FirDesignatedSupertypeResolverTransformerForIDE( } private fun collect(designation: FirDeclarationDesignationWithFile): Collection { - val visited = mutableMapOf, FirDeclarationDesignationWithFile>() + val visited = mutableMapOf() val toVisit = mutableListOf() toVisit.add(designation) @@ -122,7 +122,7 @@ internal class FirDesignatedSupertypeResolverTransformerForIDE( if (value !is SupertypeComputationStatus.Computed) continue for (reference in value.supertypeRefs) { val classLikeDeclaration = reference.type.toSymbol(session)?.fir - if (classLikeDeclaration !is FirClassLikeDeclaration<*>) continue + if (classLikeDeclaration !is FirClassLikeDeclaration) continue if (classLikeDeclaration is FirJavaClass) continue if (visited.containsKey(classLikeDeclaration)) continue val containingFile = moduleFileCache.getContainerFirFile(classLikeDeclaration) ?: continue @@ -157,9 +157,9 @@ internal class FirDesignatedSupertypeResolverTransformerForIDE( "Invalid resolve phase of file. Should be IMPORTS but found ${designation.firFile.resolvePhase}" } - val targetDesignation = if (designation.declaration !is FirClassLikeDeclaration<*>) { + val targetDesignation = if (designation.declaration !is FirClassLikeDeclaration) { val resolvableTarget = designation.path.lastOrNull() ?: return - check(resolvableTarget is FirClassLikeDeclaration<*>) + check(resolvableTarget is FirClassLikeDeclaration) val targetPath = designation.path.dropLast(1) FirDeclarationDesignationWithFile(targetPath, resolvableTarget, designation.firFile) } else designation @@ -178,9 +178,9 @@ internal class FirDesignatedSupertypeResolverTransformerForIDE( ensureResolvedDeep(designation.declaration) } - override fun ensureResolved(declaration: FirDeclaration<*>) { + override fun ensureResolved(declaration: FirDeclaration) { when (declaration) { - is FirFunction<*>, is FirProperty, is FirEnumEntry, is FirField, is FirAnonymousInitializer -> Unit + is FirFunction, is FirProperty, is FirEnumEntry, is FirField, is FirAnonymousInitializer -> Unit is FirRegularClass -> { declaration.ensurePhase(FirResolvePhase.SUPER_TYPES) check(declaration.superTypeRefs.all { it is FirResolvedTypeRef }) diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedTypeResolverTransformerForIDE.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedTypeResolverTransformerForIDE.kt index 0d22ae8e390..e0cacc66ba8 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedTypeResolverTransformerForIDE.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirDesignatedTypeResolverTransformerForIDE.kt @@ -16,7 +16,7 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.FirPhaseRunner import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirDeclarationDesignationWithFile import org.jetbrains.kotlin.idea.fir.low.level.api.transformers.FirLazyTransformerForIDE.Companion.isResolvedForAllDeclarations import org.jetbrains.kotlin.idea.fir.low.level.api.transformers.FirLazyTransformerForIDE.Companion.updateResolvedPhaseForDeclarationAndChildren -import org.jetbrains.kotlin.idea.fir.low.level.api.util.* +import org.jetbrains.kotlin.idea.fir.low.level.api.util.ensurePhase import org.jetbrains.kotlin.idea.fir.low.level.api.util.ensurePhaseForClasses /** @@ -32,7 +32,7 @@ internal class FirDesignatedTypeResolverTransformerForIDE( private val declarationTransformer = IDEDeclarationTransformer(designation) override fun transformElement(element: E, data: Any?): E { - return if (element is FirDeclaration<*> && (element is FirRegularClass || element is FirFile)) { + return if (element is FirDeclaration && (element is FirRegularClass || element is FirFile)) { @Suppress("UNCHECKED_CAST") declarationTransformer.transformDeclarationContent(this, element, data) { super.transformElement(element, data) @@ -58,12 +58,12 @@ internal class FirDesignatedTypeResolverTransformerForIDE( ensureResolvedDeep(designation.declaration) } - override fun ensureResolved(declaration: FirDeclaration<*>) { + override fun ensureResolved(declaration: FirDeclaration) { if (declaration !is FirAnonymousInitializer) { declaration.ensurePhase(FirResolvePhase.TYPES) } when (declaration) { - is FirFunction<*> -> { + is FirFunction -> { check(declaration.returnTypeRef is FirResolvedTypeRef || declaration.returnTypeRef is FirImplicitTypeRef) check(declaration.receiverTypeRef?.let { it is FirResolvedTypeRef } ?: true) declaration.valueParameters.forEach { @@ -77,7 +77,7 @@ internal class FirDesignatedTypeResolverTransformerForIDE( declaration.setter?.run(::ensureResolved) } is FirField -> check(declaration.returnTypeRef is FirResolvedTypeRef || declaration.returnTypeRef is FirImplicitTypeRef) - is FirClass<*>, is FirTypeAlias, is FirAnonymousInitializer -> Unit + is FirClass, is FirTypeAlias, is FirAnonymousInitializer -> Unit is FirEnumEntry -> check(declaration.returnTypeRef is FirResolvedTypeRef) else -> error("Unexpected type: ${declaration::class.simpleName}") } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirFileAnnotationsResolveTransformer.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirFileAnnotationsResolveTransformer.kt index 4c098e5cb76..a8589228599 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirFileAnnotationsResolveTransformer.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirFileAnnotationsResolveTransformer.kt @@ -36,7 +36,7 @@ internal class FirFileAnnotationsResolveTransformer( firTowerDataContextCollector = firTowerDataContextCollector ), FirLazyTransformerForIDE { - override fun transformDeclarationContent(declaration: FirDeclaration<*>, data: ResolutionMode): FirDeclaration<*> { + override fun transformDeclarationContent(declaration: FirDeclaration, data: ResolutionMode): FirDeclaration { require(declaration is FirFile) { "Unexpected declaration ${declaration::class.simpleName}" } annotations.forEach { if (it.resolveStatus != FirAnnotationResolveStatus.Resolved) { @@ -54,7 +54,7 @@ internal class FirFileAnnotationsResolveTransformer( check(annotations.all { it.resolveStatus == FirAnnotationResolveStatus.Resolved }) { "Annotation was not resolved" } } - override fun ensureResolved(declaration: FirDeclaration<*>) = error("Not implemented") + override fun ensureResolved(declaration: FirDeclaration) = error("Not implemented") - override fun needReplacePhase(firDeclaration: FirDeclaration<*>): Boolean = false + override fun needReplacePhase(firDeclaration: FirDeclaration): Boolean = false } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirLazyTransformerForIDE.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirLazyTransformerForIDE.kt index 3f8c35f2b39..13f4fb8e7c8 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirLazyTransformerForIDE.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirLazyTransformerForIDE.kt @@ -12,8 +12,8 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirDeclarationDesignation internal interface FirLazyTransformerForIDE { fun transformDeclaration(phaseRunner: FirPhaseRunner) - fun ensureResolved(declaration: FirDeclaration<*>) - fun ensureResolvedDeep(declaration: FirDeclaration<*>) { + fun ensureResolved(declaration: FirDeclaration) + fun ensureResolvedDeep(declaration: FirDeclaration) { if (!enableDeepEnsure) return ensureResolved(declaration) if (declaration is FirRegularClass) { @@ -27,19 +27,19 @@ internal interface FirLazyTransformerForIDE { private object ResolvePhaseWithForAllDeclarationsKey : FirDeclarationDataKey() - private var FirDeclaration<*>.resolvePhaseForDeclarationAndChildrenAttr: FirResolvePhase? + private var FirDeclaration.resolvePhaseForDeclarationAndChildrenAttr: FirResolvePhase? by FirDeclarationDataRegistry.data(ResolvePhaseWithForAllDeclarationsKey) /** * This resolve phase is used to check if current declaration and it's children were resolved for phase */ - var FirDeclaration<*>.resolvePhaseForDeclarationAndChildren: FirResolvePhase + var FirDeclaration.resolvePhaseForDeclarationAndChildren: FirResolvePhase get() = resolvePhaseForDeclarationAndChildrenAttr ?: FirResolvePhase.RAW_FIR set(value) { resolvePhaseForDeclarationAndChildrenAttr = value } - fun FirDeclaration<*>.updateResolvedPhaseForDeclarationAndChildren(phase: FirResolvePhase) { + fun FirDeclaration.updateResolvedPhaseForDeclarationAndChildren(phase: FirResolvePhase) { val allDeclaration = resolvePhaseForDeclarationAndChildren if (allDeclaration < phase) { resolvePhaseForDeclarationAndChildren = phase @@ -67,7 +67,7 @@ internal interface FirLazyTransformerForIDE { val DUMMY = object : FirLazyTransformerForIDE { override fun transformDeclaration(phaseRunner: FirPhaseRunner) = Unit - override fun ensureResolved(declaration: FirDeclaration<*>) = error("Not implemented") + override fun ensureResolved(declaration: FirDeclaration) = error("Not implemented") } } } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirProviderInterceptorForIDE.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirProviderInterceptorForIDE.kt index 1400e7a730d..009b3106700 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirProviderInterceptorForIDE.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/FirProviderInterceptorForIDE.kt @@ -19,22 +19,22 @@ internal class FirProviderInterceptorForIDE private constructor( private val firFile: FirFile, private val session: FirSession, private val symbolSet: Set>, - private val classIdToElementMap: Map> + private val classIdToElementMap: Map ) : FirProviderInterceptor { override fun getFirClassifierContainerFileIfAny(symbol: FirClassLikeSymbol<*>): FirFile? = if (symbolSet.contains(symbol)) firFile else session.firProvider.getFirClassifierContainerFileIfAny(symbol) - override fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration<*>? = + override fun getFirClassifierByFqName(classId: ClassId): FirClassLikeDeclaration? = classIdToElementMap[classId] ?: session.firProvider.getFirClassifierByFqName(classId) companion object { fun createForFirElement(session: FirSession, firFile: FirFile, element: FirElement): FirProviderInterceptor { val nodeInfoCollector = object : FirVisitorVoid() { val symbolSet = mutableSetOf>() - val classIdToElementMap = mutableMapOf>() + val classIdToElementMap = mutableMapOf() override fun visitElement(element: FirElement) { - if (element is FirClassLikeDeclaration<*>) { + if (element is FirClassLikeDeclaration) { symbolSet.add(element.symbol) classIdToElementMap[element.symbol.classId] = element } @@ -46,4 +46,4 @@ internal class FirProviderInterceptorForIDE private constructor( return FirProviderInterceptorForIDE(firFile, session, nodeInfoCollector.symbolSet, nodeInfoCollector.classIdToElementMap) } } -} \ No newline at end of file +} diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/IDEDeclarationTransformer.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/IDEDeclarationTransformer.kt index a69fa63941a..780363da762 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/IDEDeclarationTransformer.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/transformers/IDEDeclarationTransformer.kt @@ -19,19 +19,19 @@ internal class IDEDeclarationTransformer(private val designation: FirDeclaration inline fun visitDeclarationContent( visitor: FirVisitor, - declaration: FirDeclaration<*>, + declaration: FirDeclaration, data: D, - default: () -> FirDeclaration<*> - ): FirDeclaration<*> = processDeclarationContent(declaration, default) { + default: () -> FirDeclaration + ): FirDeclaration = processDeclarationContent(declaration, default) { it.accept(visitor, data) } inline fun transformDeclarationContent( transformer: FirDefaultTransformer, - declaration: FirDeclaration<*>, + declaration: FirDeclaration, data: D, - default: () -> FirDeclaration<*> - ): FirDeclaration<*> = processDeclarationContent(declaration, default) { toTransform -> + default: () -> FirDeclaration + ): FirDeclaration = processDeclarationContent(declaration, default) { toTransform -> toTransform.transform(transformer, data).also { transformed -> check(transformed === toTransform) { "become $transformed `${transformed.render()}`, was ${toTransform}: `${toTransform.render()}`" @@ -40,10 +40,10 @@ internal class IDEDeclarationTransformer(private val designation: FirDeclaration } private inline fun processDeclarationContent( - declaration: FirDeclaration<*>, - default: () -> FirDeclaration<*>, - applyToDesignated: (FirDeclaration<*>) -> Unit, - ): FirDeclaration<*> { + declaration: FirDeclaration, + default: () -> FirDeclaration, + applyToDesignated: (FirDeclaration) -> Unit, + ): FirDeclaration { //It means that we are inside the target declaration if (isInsideTargetDeclaration) { return default() diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/FirDeclarationForCompiledElementSearcher.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/FirDeclarationForCompiledElementSearcher.kt index 310d8f7acb2..35388c478dc 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/FirDeclarationForCompiledElementSearcher.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/FirDeclarationForCompiledElementSearcher.kt @@ -24,7 +24,7 @@ import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject * Allows to search for FIR declarations by compiled [KtDeclaration]s. */ internal class FirDeclarationForCompiledElementSearcher(private val symbolProvider: FirSymbolProvider) { - fun findNonLocalClass(declaration: KtClassOrObject): FirClassLikeDeclaration<*> { + fun findNonLocalClass(declaration: KtClassOrObject): FirClassLikeDeclaration { require(!declaration.isLocal) val classId = declaration.getClassId() ?: error("Non-local class should have classId. The class is ${declaration.getElementTextInContext()}") @@ -51,7 +51,7 @@ internal class FirDeclarationForCompiledElementSearcher(private val symbolProvid return constructorCandidate.fir } - fun findNonLocalFunction(declaration: KtNamedFunction): FirFunction<*> { + fun findNonLocalFunction(declaration: KtNamedFunction): FirFunction { require(!declaration.isLocal) val functionCandidate = @@ -96,7 +96,7 @@ private fun FirSymbolProvider.findCallableCandidates( getClassDeclaredPropertySymbols(containerClassId, declaration.nameAsSafeName) } -private fun representSameFunction(psiFunction: KtNamedFunction, it: FirFunction<*>): Boolean = +private fun representSameFunction(psiFunction: KtNamedFunction, it: FirFunction): Boolean = KtDeclarationAndFirDeclarationEqualityChecker.representsTheSameDeclaration(psiFunction, it) private fun representSameConstructor(psiConstructor: KtConstructor<*>, firConstructor: FirConstructor): Boolean { diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/contrainingFileUtils.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/contrainingFileUtils.kt index f9cdbae8dff..c55125b6730 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/contrainingFileUtils.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/contrainingFileUtils.kt @@ -11,12 +11,12 @@ import org.jetbrains.kotlin.fir.declarations.FirDeclaration import org.jetbrains.kotlin.fir.declarations.FirFile import org.jetbrains.kotlin.fir.resolve.firProvider -fun FirDeclaration<*>.getContainingFile(): FirFile? { +fun FirDeclaration.getContainingFile(): FirFile? { val provider = moduleData.session.firProvider return when (this) { is FirFile -> this - is FirCallableDeclaration<*> -> provider.getFirCallableContainerFile(symbol) - is FirClassLikeDeclaration<*> -> provider.getFirClassifierContainerFile(symbol) + is FirCallableDeclaration -> provider.getFirCallableContainerFile(symbol) + is FirClassLikeDeclaration -> provider.getFirClassifierContainerFile(symbol) else -> error("Unsupported declaration ${this::class.java}") } } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/declarationUtils.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/declarationUtils.kt index cfaca11e196..0486e410050 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/declarationUtils.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/declarationUtils.kt @@ -27,7 +27,7 @@ internal fun KtDeclaration.findSourceNonLocalFirDeclaration( firSymbolProvider: FirSymbolProvider, moduleFileCache: ModuleFileCache, containerFirFile: FirFile? = null -): FirDeclaration<*> { +): FirDeclaration { //TODO test what way faster findSourceNonLocalFirDeclarationByProvider(firFileBuilder, firSymbolProvider, moduleFileCache, containerFirFile)?.let { return it } findSourceOfNonLocalFirDeclarationByTraversingWholeTree(firFileBuilder, moduleFileCache, containerFirFile)?.let { return it } @@ -38,23 +38,23 @@ internal fun KtDeclaration.findFirDeclarationForAnyFirSourceDeclaration( firFileBuilder: FirFileBuilder, firSymbolProvider: FirSymbolProvider, moduleFileCache: ModuleFileCache -): FirDeclaration<*> { +): FirDeclaration { val nonLocalDeclaration = getNonLocalContainingOrThisDeclaration() ?.findSourceNonLocalFirDeclaration(firFileBuilder, firSymbolProvider, moduleFileCache) ?: firFileBuilder.buildRawFirFileWithCaching(containingKtFile, moduleFileCache, preferLazyBodies = true) val originalDeclaration = originalDeclaration - val fir = FirElementFinder.findElementIn>(nonLocalDeclaration) { firDeclaration -> + val fir = FirElementFinder.findElementIn(nonLocalDeclaration) { firDeclaration -> firDeclaration.psi == this || firDeclaration.psi == originalDeclaration } return fir ?: error("FirDeclaration was not found for\n${getElementTextInContext()}") } -internal inline fun > KtDeclaration.findFirDeclarationForAnyFirSourceDeclarationOfType( +internal inline fun KtDeclaration.findFirDeclarationForAnyFirSourceDeclarationOfType( firFileBuilder: FirFileBuilder, firSymbolProvider: FirSymbolProvider, moduleFileCache: ModuleFileCache -): FirDeclaration<*> { +): FirDeclaration { val fir = findFirDeclarationForAnyFirSourceDeclaration(firFileBuilder, firSymbolProvider, moduleFileCache) if (fir !is F) throw InvalidFirElementTypeException(this, F::class, fir::class) return fir @@ -64,7 +64,7 @@ private fun KtDeclaration.findSourceOfNonLocalFirDeclarationByTraversingWholeTre firFileBuilder: FirFileBuilder, moduleFileCache: ModuleFileCache, containerFirFile: FirFile?, -): FirDeclaration<*>? { +): FirDeclaration? { val firFile = containerFirFile ?: firFileBuilder.buildRawFirFileWithCaching(containingKtFile, moduleFileCache, preferLazyBodies = true) val originalDeclaration = originalDeclaration return FirElementFinder.findElementIn(firFile, goInside = { it is FirRegularClass }) { firDeclaration -> @@ -77,7 +77,7 @@ private fun KtDeclaration.findSourceNonLocalFirDeclarationByProvider( firSymbolProvider: FirSymbolProvider, moduleFileCache: ModuleFileCache, containerFirFile: FirFile? -): FirDeclaration<*>? { +): FirDeclaration? { val candidate = when { this is KtClassOrObject -> findFir(firSymbolProvider) this is KtNamedDeclaration && (this is KtProperty || this is KtNamedFunction) -> { @@ -117,7 +117,7 @@ private val ORIGINAL_KT_FILE_KEY = com.intellij.openapi.util.Key("ORIGIN var KtFile.originalKtFile by UserDataProperty(ORIGINAL_KT_FILE_KEY) -private fun KtClassLikeDeclaration.findFir(firSymbolProvider: FirSymbolProvider): FirClassLikeDeclaration<*>? { +private fun KtClassLikeDeclaration.findFir(firSymbolProvider: FirSymbolProvider): FirClassLikeDeclaration? { val classId = getClassId() ?: return null return executeWithoutPCE { firSymbolProvider.getClassLikeSymbolByFqName(classId)?.fir as? FirRegularClass @@ -125,5 +125,5 @@ private fun KtClassLikeDeclaration.findFir(firSymbolProvider: FirSymbolProvider) } -val FirDeclaration<*>.isGeneratedDeclaration +val FirDeclaration.isGeneratedDeclaration get() = realPsi == null diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/firDeclarationDesignationUtils.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/firDeclarationDesignationUtils.kt index 7ab48ab9aa8..50f5772cbc8 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/firDeclarationDesignationUtils.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/firDeclarationDesignationUtils.kt @@ -5,10 +5,13 @@ package org.jetbrains.kotlin.idea.fir.low.level.api.util -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration +import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration +import org.jetbrains.kotlin.fir.declarations.FirDeclaration +import org.jetbrains.kotlin.fir.declarations.FirResolvePhase import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirDeclarationDesignation -internal fun FirDeclaration<*>.ensurePhase(firResolvePhase: FirResolvePhase) = +internal fun FirDeclaration.ensurePhase(firResolvePhase: FirResolvePhase) = check(resolvePhase >= firResolvePhase) { "Element phase required to be $firResolvePhase but element resolved to $resolvePhase" } @@ -22,7 +25,7 @@ internal fun FirDeclarationDesignation.ensureDesignation(firResolvePhase: FirRes } internal fun FirDeclarationDesignation.ensurePhaseForClasses(firResolvePhase: FirResolvePhase) { ensurePathPhase(firResolvePhase) - if (declaration is FirClassLikeDeclaration<*>) { + if (declaration is FirClassLikeDeclaration) { check(declaration.resolvePhase >= firResolvePhase) { "Expected $firResolvePhase but found ${declaration.resolvePhase}" } @@ -30,6 +33,6 @@ internal fun FirDeclarationDesignation.ensurePhaseForClasses(firResolvePhase: Fi } internal fun FirDeclarationDesignation.isTargetCallableDeclarationAndInPhase(firResolvePhase: FirResolvePhase): Boolean = - (declaration as? FirCallableDeclaration<*>)?.let { it.resolvePhase >= firResolvePhase } ?: false + (declaration as? FirCallableDeclaration)?.let { it.resolvePhase >= firResolvePhase } ?: false -internal fun FirDeclarationDesignation.targetContainingDeclaration(): FirDeclaration<*>? = path.lastOrNull() +internal fun FirDeclarationDesignation.targetContainingDeclaration(): FirDeclaration? = path.lastOrNull() diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/utils.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/utils.kt index 337d01ff06c..77df6046e6e 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/utils.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/src/org/jetbrains/kotlin/idea/fir/low/level/api/util/utils.kt @@ -67,7 +67,7 @@ internal inline fun checkCanceled() { internal val FirElement.isErrorElement get() = this is FirDiagnosticHolder -internal val FirDeclaration<*>.ktDeclaration: KtDeclaration +internal val FirDeclaration.ktDeclaration: KtDeclaration get() { val psi = psi ?: error("PSI element was not found for${render()}") @@ -85,7 +85,7 @@ internal val FirDeclaration<*>.ktDeclaration: KtDeclaration } } -internal val FirDeclaration<*>.containingKtFileIfAny: KtFile? +internal val FirDeclaration.containingKtFileIfAny: KtFile? get() = psi?.containingFile as? KtFile diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLazyDeclarationResolveTest.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLazyDeclarationResolveTest.kt index 5faef6a428e..6dca3a76a26 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLazyDeclarationResolveTest.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractFirLazyDeclarationResolveTest.kt @@ -30,13 +30,13 @@ import org.junit.jupiter.api.parallel.ExecutionMode @Execution(ExecutionMode.SAME_THREAD) abstract class AbstractFirLazyDeclarationResolveTest : AbstractLowLevelApiSingleFileTest() { - private fun FirFile.findResolveMe(): FirDeclaration<*> { + private fun FirFile.findResolveMe(): FirDeclaration { val visitor = object : FirVisitorVoid() { - var result: FirDeclaration<*>? = null + var result: FirDeclaration? = null override fun visitElement(element: FirElement) { if (result != null) return val declaration = element.realPsi as? KtDeclaration - if (element is FirDeclaration<*> && declaration != null && declaration.name == "resolveMe") { + if (element is FirDeclaration && declaration != null && declaration.name == "resolveMe") { result = element return } @@ -76,8 +76,8 @@ abstract class AbstractFirLazyDeclarationResolveTest : AbstractLowLevelApiSingle when (resolveType) { ResolveType.CallableReturnType, ResolveType.CallableBodyResolve, - ResolveType.CallableContracts -> if (declarationToResolve !is FirCallableDeclaration<*>) return@resolveWithClearCaches - ResolveType.ClassSuperTypes -> if (declarationToResolve !is FirClassLikeDeclaration<*>) return@resolveWithClearCaches + ResolveType.CallableContracts -> if (declarationToResolve !is FirCallableDeclaration) return@resolveWithClearCaches + ResolveType.ClassSuperTypes -> if (declarationToResolve !is FirClassLikeDeclaration) return@resolveWithClearCaches else -> { } } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractPartialRawFirBuilderTestCase.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractPartialRawFirBuilderTestCase.kt index b6d4774184d..ee3599e5057 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractPartialRawFirBuilderTestCase.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/AbstractPartialRawFirBuilderTestCase.kt @@ -54,7 +54,7 @@ abstract class AbstractPartialRawFirBuilderTestCase : AbstractLowLevelApiSingleF } private class DesignationBuilder(private val elementToBuild: KtDeclaration) : FirVisitorVoid() { - private val path = mutableListOf>() + private val path = mutableListOf() var resultDesignation: FirDeclarationDesignation? = null private set @@ -63,7 +63,7 @@ abstract class AbstractPartialRawFirBuilderTestCase : AbstractLowLevelApiSingleF when (element) { is FirSimpleFunction, is FirProperty -> { if (element.psi == elementToBuild) { - val originalDeclaration = element as FirDeclaration<*> + val originalDeclaration = element as FirDeclaration resultDesignation = FirDeclarationDesignation(path, originalDeclaration) } else { element.acceptChildren(this) @@ -91,17 +91,17 @@ abstract class AbstractPartialRawFirBuilderTestCase : AbstractLowLevelApiSingleF val elementToBuild = findPsiElement(file) as KtDeclaration val scopeProvider = object : FirScopeProvider() { - override fun getUseSiteMemberScope(klass: FirClass<*>, useSiteSession: FirSession, scopeSession: ScopeSession): FirTypeScope = + override fun getUseSiteMemberScope(klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession): FirTypeScope = error("Should not be called") override fun getStaticMemberScopeForCallables( - klass: FirClass<*>, + klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession ): FirScope = error("Should not be called") - override fun getNestedClassifierScope(klass: FirClass<*>, useSiteSession: FirSession, scopeSession: ScopeSession): FirScope = + override fun getNestedClassifierScope(klass: FirClass, useSiteSession: FirSession, scopeSession: ScopeSession): FirScope = error("Should not be called") } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostic/AbstractDiagnosticTraversalCounterTest.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostic/AbstractDiagnosticTraversalCounterTest.kt index a5fb11128d1..ffa83450e09 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostic/AbstractDiagnosticTraversalCounterTest.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostic/AbstractDiagnosticTraversalCounterTest.kt @@ -107,7 +107,7 @@ abstract class AbstractDiagnosticTraversalCounterTest : AbstractLowLevelApiSing firFile: FirElement, ): Set { val elementUsageCount = mutableMapOf() - val sessionHolder = SessionHolderImpl((firFile as FirDeclaration<*>).moduleData.session, ScopeSession()) + val sessionHolder = SessionHolderImpl((firFile as FirDeclaration).moduleData.session, ScopeSession()) val visitor = object : AbstractDiagnosticCollectorVisitor( PersistentCheckerContextFactory.createEmptyPersistenceCheckerContext(sessionHolder) ) { diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostic/AbstractFirContextCollectionTest.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostic/AbstractFirContextCollectionTest.kt index c5ee747efeb..23afb934a8e 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostic/AbstractFirContextCollectionTest.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/diagnostic/AbstractFirContextCollectionTest.kt @@ -14,7 +14,6 @@ import org.jetbrains.kotlin.fir.resolve.PersistentImplicitReceiverStack import org.jetbrains.kotlin.fir.resolve.SessionHolderImpl import org.jetbrains.kotlin.idea.fir.low.level.api.FirModuleResolveStateImpl import org.jetbrains.kotlin.idea.fir.low.level.api.api.DiagnosticCheckerFilter -import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState import org.jetbrains.kotlin.idea.fir.low.level.api.api.getDiagnostics import org.jetbrains.kotlin.idea.fir.low.level.api.api.getOrBuildFirFile import org.jetbrains.kotlin.idea.fir.low.level.api.diagnostics.BeforeElementDiagnosticCollectionHandler @@ -25,10 +24,8 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.file.structure.ReanalyzableSt import org.jetbrains.kotlin.idea.fir.low.level.api.file.structure.RootStructureElement import org.jetbrains.kotlin.idea.fir.low.level.api.name import org.jetbrains.kotlin.idea.fir.low.level.api.resolveWithClearCaches -import org.jetbrains.kotlin.idea.fir.low.level.api.sessions.FirIdeSession import org.jetbrains.kotlin.idea.fir.low.level.api.test.base.AbstractLowLevelApiSingleFileTest import org.jetbrains.kotlin.psi.KtFile -import org.jetbrains.kotlin.test.model.TestModule import org.jetbrains.kotlin.test.services.AssertionsService import org.jetbrains.kotlin.test.services.TestModuleStructure import org.jetbrains.kotlin.test.services.TestServices @@ -57,7 +54,7 @@ abstract class AbstractFirContextCollectionTest : AbstractLowLevelApiSingleFileT } } - private fun FileStructureElement.getFirDeclaration(): FirDeclaration<*> = when (this) { + private fun FileStructureElement.getFirDeclaration(): FirDeclaration = when (this) { is NonReanalyzableDeclarationStructureElement -> fir is ReanalyzableStructureElement<*, *> -> firSymbol.fir is RootStructureElement -> firFile @@ -68,10 +65,10 @@ abstract class AbstractFirContextCollectionTest : AbstractLowLevelApiSingleFileT private val assertions: AssertionsService ) : BeforeElementDiagnosticCollectionHandler() { - lateinit var elementsToCheckContext: List> + lateinit var elementsToCheckContext: List lateinit var firFile: FirFile - override fun beforeGoingNestedDeclaration(declaration: FirDeclaration<*>, context: PersistentCheckerContext) { + override fun beforeGoingNestedDeclaration(declaration: FirDeclaration, context: PersistentCheckerContext) { if (declaration is FirFile) { return } @@ -93,8 +90,8 @@ abstract class AbstractFirContextCollectionTest : AbstractLowLevelApiSingleFileT private fun PersistentImplicitReceiverStack.asString() = joinToString { it.boundSymbol.name() } - private fun PersistentList>.asString() = - joinToString(transform = FirDeclaration<*>::name) + private fun PersistentList.asString() = + joinToString(transform = FirDeclaration::name) } } diff --git a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/firTestUtils.kt b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/firTestUtils.kt index 1ae6d43d99a..6ad8eff8838 100644 --- a/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/firTestUtils.kt +++ b/idea/idea-frontend-fir/idea-fir-low-level-api/tests/org/jetbrains/kotlin/idea/fir/low/level/api/firTestUtils.kt @@ -18,7 +18,6 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirClassLikeSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirFileSymbol import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState import org.jetbrains.kotlin.idea.fir.low.level.api.api.getModuleInfo -import org.jetbrains.kotlin.idea.fir.low.level.api.api.getResolveState import org.jetbrains.kotlin.idea.fir.low.level.api.sessions.FirIdeSession import org.jetbrains.kotlin.psi.KtElement @@ -37,7 +36,7 @@ internal fun FirBasedSymbol<*>.name(): String = when (this) { else -> error("unknown symbol ${this::class.simpleName}") } -internal fun FirDeclaration<*>.name(): String = symbol.name() +internal fun FirDeclaration.name(): String = symbol.name() internal inline fun resolveWithClearCaches( context: KtElement, diff --git a/idea/idea-frontend-fir/idea-frontend-fir-generator/src/org/jetbrains/kotlin/idea/frontend/api/fir/generator/HLDiagnosticConverter.kt b/idea/idea-frontend-fir/idea-frontend-fir-generator/src/org/jetbrains/kotlin/idea/frontend/api/fir/generator/HLDiagnosticConverter.kt index f111568b596..1b0eee93472 100644 --- a/idea/idea-frontend-fir/idea-frontend-fir-generator/src/org/jetbrains/kotlin/idea/frontend/api/fir/generator/HLDiagnosticConverter.kt +++ b/idea/idea-frontend-fir/idea-frontend-fir-generator/src/org/jetbrains/kotlin/idea/frontend/api/fir/generator/HLDiagnosticConverter.kt @@ -175,7 +175,7 @@ private object FirToKtConversionCreator { importsToAdd = listOf("org.jetbrains.kotlin.fir.declarations.FirDeclaration") ), FirClassLikeSymbol::class to HLFunctionCallConversion( - "firSymbolBuilder.classifierBuilder.buildClassLikeSymbol({0}.fir as FirClass<*>)", + "firSymbolBuilder.classifierBuilder.buildClassLikeSymbol({0}.fir as FirClass)", KtClassLikeSymbol::class.createType(), importsToAdd = listOf("org.jetbrains.kotlin.fir.declarations.FirClass") ), @@ -185,7 +185,7 @@ private object FirToKtConversionCreator { importsToAdd = listOf("org.jetbrains.kotlin.fir.declarations.FirRegularClass") ), FirStatusOwner::class to HLFunctionCallConversion( - "firSymbolBuilder.buildSymbol({0} as FirDeclaration<*>)", + "firSymbolBuilder.buildSymbol({0} as FirDeclaration)", KtSymbol::class.createType(), importsToAdd = listOf("org.jetbrains.kotlin.fir.declarations.FirDeclaration") ), diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/fir/FirIdeDeserializedDeclarationSourceProvider.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/fir/FirIdeDeserializedDeclarationSourceProvider.kt index 802097fc60c..7ca7167fe43 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/fir/FirIdeDeserializedDeclarationSourceProvider.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/fir/FirIdeDeserializedDeclarationSourceProvider.kt @@ -10,11 +10,9 @@ import com.intellij.psi.PsiElement import com.intellij.psi.search.GlobalSearchScope import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.declarations.* -import org.jetbrains.kotlin.idea.fir.FirIdeDeserializedDeclarationSourceProvider.scope import org.jetbrains.kotlin.idea.fir.low.level.api.api.KtDeclarationAndFirDeclarationEqualityChecker import org.jetbrains.kotlin.idea.fir.low.level.api.createDeclarationProvider import org.jetbrains.kotlin.idea.fir.low.level.api.sessions.FirIdeSession - import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.Name @@ -31,7 +29,7 @@ object FirIdeDeserializedDeclarationSourceProvider { return when (fir) { is FirSimpleFunction -> provideSourceForFunction(fir, project) is FirProperty -> provideSourceForProperty(fir, project) - is FirClass<*> -> provideSourceForClass(fir, project) + is FirClass -> provideSourceForClass(fir, project) is FirTypeAlias -> provideSourceForTypeAlias(fir, project) is FirConstructor -> provideSourceForConstructor(fir, project) else -> null @@ -66,7 +64,7 @@ object FirIdeDeserializedDeclarationSourceProvider { return candidates.firstOrNull(KtElement::isCompiled) } - private fun provideSourceForClass(klass: FirClass<*>, project: Project): PsiElement? = + private fun provideSourceForClass(klass: FirClass, project: Project): PsiElement? = classByClassId(klass.symbol.classId, klass.scope(project), project) private fun provideSourceForTypeAlias(alias: FirTypeAlias, project: Project): PsiElement? { @@ -84,7 +82,7 @@ object FirIdeDeserializedDeclarationSourceProvider { return constructor.unwrapFakeOverrides().chooseCorrespondingPsi(containingKtClass.secondaryConstructors) } - private fun FirFunction<*>.chooseCorrespondingPsi( + private fun FirFunction.chooseCorrespondingPsi( candidates: Collection ): KtFunction? { if (candidates.isEmpty()) return null @@ -99,14 +97,14 @@ object FirIdeDeserializedDeclarationSourceProvider { return null } - private fun FirDeclaration<*>.scope(project: Project): GlobalSearchScope { + private fun FirDeclaration.scope(project: Project): GlobalSearchScope { return GlobalSearchScope.allScope(project) /* TODO: val session = session as? FirLibrarySession return session?.scope ?: GlobalSearchScope.allScope(project)*/ } - private fun FirCallableDeclaration<*>.containingKtClass(project: Project): KtClassOrObject? = + private fun FirCallableDeclaration.containingKtClass(project: Project): KtClassOrObject? = unwrapFakeOverrides().containingClass()?.classId?.let { classByClassId(it, scope(project), project) } private fun classByClassId(classId: ClassId, scope: GlobalSearchScope, project: Project): KtClassOrObject? { @@ -116,7 +114,7 @@ object FirIdeDeserializedDeclarationSourceProvider { .firstOrNull(KtElement::isCompiled) } - private val FirCallableDeclaration<*>.isTopLevel + private val FirCallableDeclaration.isTopLevel get() = symbol.callableId.className == null private val classIdMapping = (0..23).associate { i -> @@ -150,5 +148,5 @@ fun FirElement.findPsi(session: FirSession): PsiElement? = * For data classes & enums generated members like `copy` `componentN`, `values` it will return corresponding enum/data class * Otherwise, behaves the same way as [findPsi] returns exact PSI declaration corresponding to passed [FirDeclaration] */ -fun FirDeclaration<*>.findReferencePsi(): PsiElement? = +fun FirDeclaration.findReferencePsi(): PsiElement? = psi ?: FirIdeDeserializedDeclarationSourceProvider.findPsi(this, (moduleData.session as FirIdeSession).project) diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/fir/evaluate/FirCompileTimeConstantEvaluator.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/fir/evaluate/FirCompileTimeConstantEvaluator.kt index 15b149c73dc..e83ce5b1c61 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/fir/evaluate/FirCompileTimeConstantEvaluator.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/fir/evaluate/FirCompileTimeConstantEvaluator.kt @@ -8,7 +8,10 @@ package org.jetbrains.kotlin.idea.fir.evaluate import org.jetbrains.kotlin.fir.FirSourceElement import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction -import org.jetbrains.kotlin.fir.expressions.* +import org.jetbrains.kotlin.fir.expressions.FirConstExpression +import org.jetbrains.kotlin.fir.expressions.FirExpression +import org.jetbrains.kotlin.fir.expressions.FirFunctionCall +import org.jetbrains.kotlin.fir.expressions.argument import org.jetbrains.kotlin.fir.expressions.builder.buildConstExpression import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol @@ -203,11 +206,11 @@ internal class FirCompileTimeConstantEvaluator { @Suppress("UNCHECKED_CAST") buildConstExpression(source, this, value as T) - private fun FirFunctionCall.getOriginalFunction(): FirCallableDeclaration<*>? { + private fun FirFunctionCall.getOriginalFunction(): FirCallableDeclaration? { val symbol: FirBasedSymbol<*>? = when (val reference = calleeReference) { is FirResolvedNamedReference -> reference.resolvedSymbol else -> null } - return symbol?.fir as? FirCallableDeclaration<*> + return symbol?.fir as? FirCallableDeclaration } } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt index 31b27ca4cd4..c109164b58c 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt @@ -5,7 +5,6 @@ package org.jetbrains.kotlin.idea.frontend.api.fir -import com.google.common.collect.MapMaker import com.intellij.openapi.project.Project import com.intellij.psi.JavaPsiFacade import com.intellij.psi.search.GlobalSearchScope @@ -53,7 +52,7 @@ internal class KtSymbolByFirBuilder private constructor( resolveState: FirModuleResolveState, override val token: ValidityToken, val withReadOnlyCaching: Boolean, - private val symbolsCache: BuilderCache, KtSymbol>, + private val symbolsCache: BuilderCache, private val filesCache: BuilderCache, private val backingFieldCache: BuilderCache, private val typesCache: BuilderCache, @@ -100,11 +99,11 @@ internal class KtSymbolByFirBuilder private constructor( } - fun buildSymbol(fir: FirDeclaration<*>): KtSymbol { + fun buildSymbol(fir: FirDeclaration): KtSymbol { return when (fir) { - is FirClassLikeDeclaration<*> -> classifierBuilder.buildClassLikeSymbol(fir) + is FirClassLikeDeclaration -> classifierBuilder.buildClassLikeSymbol(fir) is FirTypeParameter -> classifierBuilder.buildTypeParameterSymbol(fir) - is FirCallableDeclaration<*> -> callableBuilder.buildCallableSymbol(fir) + is FirCallableDeclaration -> callableBuilder.buildCallableSymbol(fir) else -> throwUnexpectedElementError(fir) } } @@ -141,15 +140,15 @@ internal class KtSymbolByFirBuilder private constructor( } - fun buildClassLikeSymbol(fir: FirClassLikeDeclaration<*>): KtClassLikeSymbol { + fun buildClassLikeSymbol(fir: FirClassLikeDeclaration): KtClassLikeSymbol { return when (fir) { - is FirClass<*> -> buildClassOrObjectSymbol(fir) + is FirClass -> buildClassOrObjectSymbol(fir) is FirTypeAlias -> buildTypeAliasSymbol(fir) else -> throwUnexpectedElementError(fir) } } - fun buildClassOrObjectSymbol(fir: FirClass<*>): KtClassOrObjectSymbol { + fun buildClassOrObjectSymbol(fir: FirClass): KtClassOrObjectSymbol { return when (fir) { is FirAnonymousObject -> buildAnonymousObjectSymbol(fir) is FirRegularClass -> buildNamedClassOrObjectSymbol(fir) @@ -190,7 +189,7 @@ internal class KtSymbolByFirBuilder private constructor( } inner class FunctionLikeSymbolBuilder { - fun buildFunctionLikeSymbol(fir: FirFunction<*>): KtFunctionLikeSymbol { + fun buildFunctionLikeSymbol(fir: FirFunction): KtFunctionLikeSymbol { return when (fir) { is FirSimpleFunction -> buildFunctionSymbol(fir) is FirConstructor -> buildConstructorSymbol(fir) @@ -216,7 +215,7 @@ internal class KtSymbolByFirBuilder private constructor( } inner class VariableLikeSymbolBuilder { - fun buildVariableLikeSymbol(fir: FirVariable<*>): KtVariableLikeSymbol { + fun buildVariableLikeSymbol(fir: FirVariable): KtVariableLikeSymbol { return when (fir) { is FirProperty -> buildVariableSymbol(fir) is FirValueParameter -> buildValueParameterSymbol(fir) @@ -284,11 +283,11 @@ internal class KtSymbolByFirBuilder private constructor( } inner class CallableSymbolBuilder { - fun buildCallableSymbol(fir: FirCallableDeclaration<*>): KtCallableSymbol { + fun buildCallableSymbol(fir: FirCallableDeclaration): KtCallableSymbol { return when (fir) { is FirPropertyAccessor -> buildPropertyAccessorSymbol(fir) - is FirFunction<*> -> functionLikeBuilder.buildFunctionLikeSymbol(fir) - is FirVariable<*> -> variableLikeBuilder.buildVariableLikeSymbol(fir) + is FirFunction -> functionLikeBuilder.buildFunctionLikeSymbol(fir) + is FirVariable -> variableLikeBuilder.buildVariableLikeSymbol(fir) else -> throwUnexpectedElementError(fir) } } @@ -400,7 +399,7 @@ private class BuilderCache private constructor( } internal fun FirElement.buildSymbol(builder: KtSymbolByFirBuilder) = - (this as? FirDeclaration<*>)?.let(builder::buildSymbol) + (this as? FirDeclaration)?.let(builder::buildSymbol) -internal fun FirDeclaration<*>.buildSymbol(builder: KtSymbolByFirBuilder) = +internal fun FirDeclaration.buildSymbol(builder: KtSymbolByFirBuilder) = builder.buildSymbol(this) diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirCompletionCandidateChecker.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirCompletionCandidateChecker.kt index cceb85e7f5c..b90ce15ccf7 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirCompletionCandidateChecker.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirCompletionCandidateChecker.kt @@ -5,7 +5,10 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.components -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration +import org.jetbrains.kotlin.fir.declarations.FirFile +import org.jetbrains.kotlin.fir.declarations.FirResolvePhase +import org.jetbrains.kotlin.fir.declarations.FirVariable import org.jetbrains.kotlin.fir.expressions.FirExpression import org.jetbrains.kotlin.fir.resolve.calls.ImplicitReceiverValue import org.jetbrains.kotlin.fir.resolve.inference.receiverType @@ -45,13 +48,13 @@ internal class KtFirCompletionCandidateChecker( return firSymbolForCandidate.firRef.withFirWithPossibleResolveInside( phase = FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE ) { declaration -> - check(declaration is FirCallableDeclaration<*>) + check(declaration is FirCallableDeclaration) checkExtension(declaration, originalFile, nameExpression, possibleExplicitReceiver) } } private fun checkExtension( - candidateSymbol: FirCallableDeclaration<*>, + candidateSymbol: FirCallableDeclaration, originalFile: KtFile, nameExpression: KtSimpleNameExpression, possibleExplicitReceiver: KtExpression?, @@ -69,7 +72,7 @@ internal class KtFirCompletionCandidateChecker( ) resolver.resolveSingleCandidate(resolutionParameters)?.let { return when { - candidateSymbol is FirVariable<*> && candidateSymbol.returnTypeRef.coneType.receiverType(rootModuleSession) != null -> { + candidateSymbol is FirVariable && candidateSymbol.returnTypeRef.coneType.receiverType(rootModuleSession) != null -> { KtExtensionApplicabilityResult.ApplicableAsFunctionalVariableCall } else -> { diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirExpressionTypeProvider.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirExpressionTypeProvider.kt index 864cdb5afdf..c9ce4739e00 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirExpressionTypeProvider.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirExpressionTypeProvider.kt @@ -30,7 +30,7 @@ internal class KtFirExpressionTypeProvider( override val token: ValidityToken, ) : KtExpressionTypeProvider(), KtFirAnalysisSessionComponent { override fun getReturnTypeForKtDeclaration(declaration: KtDeclaration): KtType = withValidityAssertion { - val firDeclaration = declaration.getOrBuildFirOfType>(firResolveState) + val firDeclaration = declaration.getOrBuildFirOfType(firResolveState) firDeclaration.returnTypeRef.coneType.asKtType() } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirScopeProvider.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirScopeProvider.kt index f67340ba5f3..7659af77574 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirScopeProvider.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirScopeProvider.kt @@ -19,7 +19,6 @@ import org.jetbrains.kotlin.fir.scopes.impl.* import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState import org.jetbrains.kotlin.idea.fir.low.level.api.api.LowLevelFirApiFacadeForResolveOnAir.getTowerContextProvider import org.jetbrains.kotlin.idea.fir.low.level.api.util.getElementTextInContext -import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityToken import org.jetbrains.kotlin.idea.frontend.api.ValidityTokenOwner import org.jetbrains.kotlin.idea.frontend.api.components.KtImplicitReceiver import org.jetbrains.kotlin.idea.frontend.api.components.KtScopeContext @@ -35,6 +34,7 @@ import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFileSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPackageSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithDeclarations import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtSymbolWithMembers +import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityToken import org.jetbrains.kotlin.idea.frontend.api.types.KtType import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion import org.jetbrains.kotlin.psi.KtElement @@ -58,7 +58,7 @@ internal class KtFirScopeProvider( private val fileScopeCache = IdentityHashMap>() private val packageMemberScopeCache = IdentityHashMap() - private inline fun KtSymbolWithMembers.withFirForScope(crossinline body: (FirClass<*>) -> T): T? = when (this) { + private inline fun KtSymbolWithMembers.withFirForScope(crossinline body: (FirClass) -> T): T? = when (this) { is KtFirNamedClassOrObjectSymbol -> firRef.withFirWithPossibleResolveInside(FirResolvePhase.TYPES, body) is KtFirAnonymousObjectSymbol -> firRef.withFirWithPossibleResolveInside(FirResolvePhase.TYPES, body) is KtFirEnumEntrySymbol -> firRef.withFir(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) { diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirSymbolDeclarationOverridesProvider.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirSymbolDeclarationOverridesProvider.kt index 2081c56adcd..03d60a08830 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirSymbolDeclarationOverridesProvider.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirSymbolDeclarationOverridesProvider.kt @@ -48,15 +48,15 @@ internal class KtFirSymbolDeclarationOverridesProvider( return overriddenElement.map { analysisSession.firSymbolBuilder.callableBuilder.buildCallableSymbol(it.fir) } } - private fun FirTypeScope.processCallableByName(declaration: FirDeclaration<*>) = when (declaration) { + private fun FirTypeScope.processCallableByName(declaration: FirDeclaration) = when (declaration) { is FirSimpleFunction -> processFunctionsByName(declaration.name) { } is FirProperty -> processPropertiesByName(declaration.name) { } else -> error { "Invalid FIR symbol to process: ${declaration::class}" } } private fun FirTypeScope.processAllOverriddenDeclarations( - declaration: FirDeclaration<*>, - processor: (FirCallableDeclaration<*>) -> Unit + declaration: FirDeclaration, + processor: (FirCallableDeclaration) -> Unit ) = when (declaration) { is FirSimpleFunction -> processOverriddenFunctions(declaration.symbol) { symbol -> processor.invoke(symbol.fir) @@ -70,8 +70,8 @@ internal class KtFirSymbolDeclarationOverridesProvider( } private fun FirTypeScope.processDirectOverriddenDeclarations( - declaration: FirDeclaration<*>, - processor: (FirCallableDeclaration<*>) -> Unit + declaration: FirDeclaration, + processor: (FirCallableDeclaration) -> Unit ) = when (declaration) { is FirSimpleFunction -> processDirectOverriddenFunctionsWithBaseScope(declaration.symbol) { symbol, _ -> processor.invoke(symbol.fir) @@ -86,7 +86,7 @@ internal class KtFirSymbolDeclarationOverridesProvider( private inline fun processOverrides( callableSymbol: T, - crossinline process: (FirTypeScope, FirDeclaration<*>) -> Unit + crossinline process: (FirTypeScope, FirDeclaration) -> Unit ) { require(callableSymbol is KtFirSymbol<*>) val containingDeclaration = with(analysisSession) { @@ -100,7 +100,7 @@ internal class KtFirSymbolDeclarationOverridesProvider( private inline fun processOverrides( containingDeclaration: KtFirNamedClassOrObjectSymbol, callableSymbol: KtFirSymbol<*>, - crossinline process: (FirTypeScope, FirDeclaration<*>) -> Unit + crossinline process: (FirTypeScope, FirDeclaration) -> Unit ) { containingDeclaration.firRef.withFir(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) { firContainer -> callableSymbol.firRef.withFirUnsafe { firCallableDeclaration -> diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirTypeCreator.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirTypeCreator.kt index 639e7550214..7d04c116aea 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirTypeCreator.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirTypeCreator.kt @@ -7,12 +7,10 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.components import org.jetbrains.kotlin.fir.declarations.FirClassLikeDeclaration import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnresolvedSymbolError -import org.jetbrains.kotlin.fir.resolve.inference.inferenceComponents import org.jetbrains.kotlin.fir.resolve.symbolProvider import org.jetbrains.kotlin.fir.typeContext import org.jetbrains.kotlin.fir.types.ConeClassErrorType import org.jetbrains.kotlin.fir.types.ConeClassLikeType -import org.jetbrains.kotlin.fir.types.ConeKotlinType import org.jetbrains.kotlin.idea.frontend.api.components.KtClassTypeBuilder import org.jetbrains.kotlin.idea.frontend.api.components.KtTypeCreator import org.jetbrains.kotlin.idea.frontend.api.fir.KtFirAnalysisSession @@ -36,7 +34,7 @@ internal class KtFirTypeCreator( is KtClassTypeBuilder.BySymbol -> { val symbol = builder.symbol check(symbol is KtFirSymbol<*>) - symbol.firRef.withFir { (it as FirClassLikeDeclaration<*>).symbol.toLookupTag() } + symbol.firRef.withFir { (it as FirClassLikeDeclaration).symbol.toLookupTag() } } } @@ -49,4 +47,4 @@ internal class KtFirTypeCreator( return coneType.asKtType() as KtClassType } -} \ No newline at end of file +} diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirVisibilityChecker.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirVisibilityChecker.kt index 2be1e4e6d46..3a132cc465c 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirVisibilityChecker.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/components/KtFirVisibilityChecker.kt @@ -45,7 +45,7 @@ internal class KtFirVisibilityChecker( return useSiteFile.firRef.withFir { useSiteFirFile -> val containers = nonLocalContainingDeclaration - ?.getOrBuildFirSafe>(analysisSession.firResolveState) + ?.getOrBuildFirSafe(analysisSession.firResolveState) ?.collectDesignation() ?.path .orEmpty() diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDataClassConverters.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDataClassConverters.kt index d87f3f8ee1a..2fdf59b80af 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDataClassConverters.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/diagnostics/KtFirDataClassConverters.kt @@ -841,7 +841,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert add(FirErrors.EXPOSED_TYPEALIAS_EXPANDED_TYPE) { firDiagnostic -> ExposedTypealiasExpandedTypeImpl( firDiagnostic.a, - firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration), firDiagnostic.c, firDiagnostic as FirPsiDiagnostic, token, @@ -850,7 +850,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert add(FirErrors.EXPOSED_FUNCTION_RETURN_TYPE) { firDiagnostic -> ExposedFunctionReturnTypeImpl( firDiagnostic.a, - firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration), firDiagnostic.c, firDiagnostic as FirPsiDiagnostic, token, @@ -859,7 +859,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert add(FirErrors.EXPOSED_RECEIVER_TYPE) { firDiagnostic -> ExposedReceiverTypeImpl( firDiagnostic.a, - firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration), firDiagnostic.c, firDiagnostic as FirPsiDiagnostic, token, @@ -868,7 +868,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert add(FirErrors.EXPOSED_PROPERTY_TYPE) { firDiagnostic -> ExposedPropertyTypeImpl( firDiagnostic.a, - firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration), firDiagnostic.c, firDiagnostic as FirPsiDiagnostic, token, @@ -877,7 +877,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert add(FirErrors.EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR) { firDiagnostic -> ExposedPropertyTypeInConstructorImpl( firDiagnostic.a, - firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration), firDiagnostic.c, firDiagnostic as FirPsiDiagnostic, token, @@ -886,7 +886,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert add(FirErrors.EXPOSED_PARAMETER_TYPE) { firDiagnostic -> ExposedParameterTypeImpl( firDiagnostic.a, - firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration), firDiagnostic.c, firDiagnostic as FirPsiDiagnostic, token, @@ -895,7 +895,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert add(FirErrors.EXPOSED_SUPER_INTERFACE) { firDiagnostic -> ExposedSuperInterfaceImpl( firDiagnostic.a, - firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration), firDiagnostic.c, firDiagnostic as FirPsiDiagnostic, token, @@ -904,7 +904,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert add(FirErrors.EXPOSED_SUPER_CLASS) { firDiagnostic -> ExposedSuperClassImpl( firDiagnostic.a, - firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration), firDiagnostic.c, firDiagnostic as FirPsiDiagnostic, token, @@ -913,7 +913,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert add(FirErrors.EXPOSED_TYPE_PARAMETER_BOUND) { firDiagnostic -> ExposedTypeParameterBoundImpl( firDiagnostic.a, - firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration), firDiagnostic.c, firDiagnostic as FirPsiDiagnostic, token, @@ -1300,7 +1300,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert add(FirErrors.WRONG_NUMBER_OF_TYPE_ARGUMENTS) { firDiagnostic -> WrongNumberOfTypeArgumentsImpl( firDiagnostic.a, - firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(firDiagnostic.b.fir as FirClass<*>), + firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(firDiagnostic.b.fir as FirClass), firDiagnostic as FirPsiDiagnostic, token, ) @@ -1308,7 +1308,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert add(FirErrors.NO_TYPE_ARGUMENTS_ON_RHS) { firDiagnostic -> NoTypeArgumentsOnRhsImpl( firDiagnostic.a, - firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(firDiagnostic.b.fir as FirClass<*>), + firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(firDiagnostic.b.fir as FirClass), firDiagnostic as FirPsiDiagnostic, token, ) @@ -1590,7 +1590,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert } add(FirErrors.NOTHING_TO_OVERRIDE) { firDiagnostic -> NothingToOverrideImpl( - firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration), firDiagnostic as FirPsiDiagnostic, token, ) @@ -1687,32 +1687,32 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert } add(FirErrors.RETURN_TYPE_MISMATCH_ON_OVERRIDE) { firDiagnostic -> ReturnTypeMismatchOnOverrideImpl( - firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration<*>), - firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration), + firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration), firDiagnostic as FirPsiDiagnostic, token, ) } add(FirErrors.PROPERTY_TYPE_MISMATCH_ON_OVERRIDE) { firDiagnostic -> PropertyTypeMismatchOnOverrideImpl( - firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration<*>), - firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration), + firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration), firDiagnostic as FirPsiDiagnostic, token, ) } add(FirErrors.VAR_TYPE_MISMATCH_ON_OVERRIDE) { firDiagnostic -> VarTypeMismatchOnOverrideImpl( - firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration<*>), - firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration), + firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration), firDiagnostic as FirPsiDiagnostic, token, ) } add(FirErrors.VAR_OVERRIDDEN_BY_VAL) { firDiagnostic -> VarOverriddenByValImpl( - firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration<*>), - firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration), + firSymbolBuilder.buildSymbol(firDiagnostic.b as FirDeclaration), firDiagnostic as FirPsiDiagnostic, token, ) @@ -1731,7 +1731,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert } add(FirErrors.VIRTUAL_MEMBER_HIDDEN) { firDiagnostic -> VirtualMemberHiddenImpl( - firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration), firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(firDiagnostic.b) as KtNamedClassOrObjectSymbol, firDiagnostic as FirPsiDiagnostic, token, @@ -1783,7 +1783,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert } add(FirErrors.ABSTRACT_FUNCTION_IN_NON_ABSTRACT_CLASS) { firDiagnostic -> AbstractFunctionInNonAbstractClassImpl( - firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration), firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(firDiagnostic.b), firDiagnostic as FirPsiDiagnostic, token, @@ -1791,28 +1791,28 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert } add(FirErrors.ABSTRACT_FUNCTION_WITH_BODY) { firDiagnostic -> AbstractFunctionWithBodyImpl( - firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration), firDiagnostic as FirPsiDiagnostic, token, ) } add(FirErrors.NON_ABSTRACT_FUNCTION_WITH_NO_BODY) { firDiagnostic -> NonAbstractFunctionWithNoBodyImpl( - firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration), firDiagnostic as FirPsiDiagnostic, token, ) } add(FirErrors.PRIVATE_FUNCTION_WITH_NO_BODY) { firDiagnostic -> PrivateFunctionWithNoBodyImpl( - firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration), firDiagnostic as FirPsiDiagnostic, token, ) } add(FirErrors.NON_MEMBER_FUNCTION_NO_BODY) { firDiagnostic -> NonMemberFunctionNoBodyImpl( - firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration), firDiagnostic as FirPsiDiagnostic, token, ) @@ -1904,7 +1904,7 @@ internal val KT_DIAGNOSTIC_CONVERTER = KtDiagnosticConverterBuilder.buildConvert } add(FirErrors.ABSTRACT_PROPERTY_IN_NON_ABSTRACT_CLASS) { firDiagnostic -> AbstractPropertyInNonAbstractClassImpl( - firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration<*>), + firSymbolBuilder.buildSymbol(firDiagnostic.a as FirDeclaration), firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(firDiagnostic.b), firDiagnostic as FirPsiDiagnostic, token, diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/renderer/ConeTypeIdeRenderer.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/renderer/ConeTypeIdeRenderer.kt index fa7216af8db..231a9f0ea91 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/renderer/ConeTypeIdeRenderer.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/renderer/ConeTypeIdeRenderer.kt @@ -12,8 +12,8 @@ import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.declarations.utils.isInner import org.jetbrains.kotlin.fir.declarations.utils.isLocal import org.jetbrains.kotlin.fir.expressions.FirAnnotationCall -import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnresolvedError import org.jetbrains.kotlin.fir.renderWithType +import org.jetbrains.kotlin.fir.resolve.diagnostics.ConeUnresolvedError import org.jetbrains.kotlin.fir.resolve.inference.* import org.jetbrains.kotlin.fir.resolve.toFirRegularClass import org.jetbrains.kotlin.fir.resolve.toSymbol @@ -179,10 +179,10 @@ internal class ConeTypeIdeRenderer( return null } - private fun FirRegularClass.collectForLocal(): List> { + private fun FirRegularClass.collectForLocal(): List { require(isLocal) var containingClassLookUp = containingClassForLocal() - val designation = mutableListOf>(this) + val designation = mutableListOf(this) while (containingClassLookUp != null && containingClassLookUp.classId.isLocal) { val currentClass = containingClassLookUp.toFirRegularClass(moduleData.session) ?: break designation.add(currentClass) @@ -191,11 +191,11 @@ internal class ConeTypeIdeRenderer( return designation } - private fun collectDesignationPathForLocal(declaration: FirDeclaration<*>): List>? { + private fun collectDesignationPathForLocal(declaration: FirDeclaration): List? { val containingClass = when (declaration) { - is FirCallableDeclaration<*> -> declaration.containingClass()?.toFirRegularClass(declaration.moduleData.session) + is FirCallableDeclaration -> declaration.containingClass()?.toFirRegularClass(declaration.moduleData.session) is FirAnonymousObject -> return listOf(declaration) - is FirClassLikeDeclaration<*> -> declaration.let { + is FirClassLikeDeclaration -> declaration.let { if (!declaration.isLocal) return null (it as? FirRegularClass)?.containingClassForLocal()?.toFirRegularClass(declaration.moduleData.session) } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/renderer/FirIdeRenderer.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/renderer/FirIdeRenderer.kt index 63ba3cfebed..ba33753e84d 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/renderer/FirIdeRenderer.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/renderer/FirIdeRenderer.kt @@ -29,14 +29,14 @@ import org.jetbrains.kotlin.renderer.render import org.jetbrains.kotlin.util.capitalizeDecapitalize.toLowerCaseAsciiOnly internal class FirIdeRenderer private constructor( - private var containingDeclaration: FirDeclaration<*>?, + private var containingDeclaration: FirDeclaration?, private val options: KtDeclarationRendererOptions, private val session: FirSession ) : FirVisitor() { private val typeIdeRenderer: ConeTypeIdeRenderer = ConeTypeIdeRenderer(session, options.typeRendererOptions) - private fun StringBuilder.renderAnnotations(annotated: FirAnnotatedDeclaration<*>) { + private fun StringBuilder.renderAnnotations(annotated: FirAnnotatedDeclaration) { if (RendererModifier.ANNOTATIONS in options.modifiers) { renderAnnotations(typeIdeRenderer, annotated.annotations, session) } @@ -59,7 +59,7 @@ internal class FirIdeRenderer private constructor( return renderType(approximatedIfNeeded, annotations) } - private fun StringBuilder.renderName(declaration: FirDeclaration<*>) { + private fun StringBuilder.renderName(declaration: FirDeclaration) { if (declaration is FirAnonymousObject) { append("") return @@ -110,12 +110,12 @@ internal class FirIdeRenderer private constructor( renderModifier(RendererModifier.MODALITY in options.modifiers, modality.name.toLowerCaseAsciiOnly()) } - private fun FirStatusOwner.implicitModalityWithoutExtensions(containingDeclaration: FirDeclaration<*>?): Modality { + private fun FirStatusOwner.implicitModalityWithoutExtensions(containingDeclaration: FirDeclaration?): Modality { if (this is FirRegularClass) { return if (classKind == ClassKind.INTERFACE) Modality.ABSTRACT else Modality.FINAL } val containingFirClass = containingDeclaration as? FirRegularClass ?: return Modality.FINAL - if (this !is FirCallableMemberDeclaration<*>) return Modality.FINAL + if (this !is FirCallableMemberDeclaration) return Modality.FINAL if (isOverride) { if (containingFirClass.modality != Modality.FINAL) return Modality.OPEN } @@ -126,8 +126,8 @@ internal class FirIdeRenderer private constructor( } private fun StringBuilder.renderModalityForCallable( - callable: FirCallableMemberDeclaration<*>, - containingDeclaration: FirDeclaration<*>? + callable: FirCallableMemberDeclaration, + containingDeclaration: FirDeclaration? ) { val modality = callable.modality ?: return val isTopLevel = containingDeclaration == null @@ -137,7 +137,7 @@ internal class FirIdeRenderer private constructor( } } - private fun StringBuilder.renderOverride(callableMember: FirCallableMemberDeclaration<*>) { + private fun StringBuilder.renderOverride(callableMember: FirCallableMemberDeclaration) { if (RendererModifier.OVERRIDE !in options.modifiers) return renderModifier(callableMember.isOverride || options.forceRenderingOverrideModifier, "override") } @@ -315,7 +315,7 @@ internal class FirIdeRenderer private constructor( appendLine() appendTabs() val containingClass = containingDeclaration - check(containingClass is FirDeclaration && (containingClass is FirClass<*> || containingClass is FirEnumEntry)) { + check(containingClass is FirDeclaration && (containingClass is FirClass || containingClass is FirEnumEntry)) { "Invalid renderer containing declaration for constructor" } if (options.renderDeclarationHeader) { @@ -378,14 +378,14 @@ internal class FirIdeRenderer private constructor( renderWhereSuffix(typeParameters) } - fun FirDeclaration<*>.isDefaultPrimaryConstructor() = + fun FirDeclaration.isDefaultPrimaryConstructor() = this is FirConstructor && isPrimary && valueParameters.isEmpty() && !hasBody && (visibility == Visibilities.DEFAULT_VISIBILITY || regularClass.classKind == ClassKind.OBJECT) - fun FirDeclaration<*>.skipDeclarationForEnumClass(): Boolean { + fun FirDeclaration.skipDeclarationForEnumClass(): Boolean { if (this is FirConstructor) return isPrimary && valueParameters.isEmpty() if (this !is FirSimpleFunction) return false @@ -441,14 +441,14 @@ internal class FirIdeRenderer private constructor( tabbedString = oldTabbedString } - private inline fun underContainingDeclaration(firDeclaration: FirDeclaration<*>, body: () -> Unit) { + private inline fun underContainingDeclaration(firDeclaration: FirDeclaration, body: () -> Unit) { val oldContainingDeclaration = containingDeclaration containingDeclaration = firDeclaration body() containingDeclaration = oldContainingDeclaration } - private inline fun StringBuilder.underBlockDeclaration(firDeclaration: FirDeclaration<*>, withBrackets: Boolean = true, body: () -> Unit) { + private inline fun StringBuilder.underBlockDeclaration(firDeclaration: FirDeclaration, withBrackets: Boolean = true, body: () -> Unit) { val oldLength = length if (withBrackets) append(" {") val unchangedLength = length @@ -470,7 +470,7 @@ internal class FirIdeRenderer private constructor( private fun StringBuilder.appendTabs() = append(tabbedString) - private fun underBlockDeclaration(firDeclaration: FirDeclaration<*>, firBlock: FirBlock, data: StringBuilder) { + private fun underBlockDeclaration(firDeclaration: FirDeclaration, firBlock: FirBlock, data: StringBuilder) { data.underBlockDeclaration(firDeclaration) { firBlock.accept(this, data) } @@ -503,8 +503,8 @@ internal class FirIdeRenderer private constructor( companion object { fun render( - firDeclaration: FirDeclaration<*>, - containingDeclaration: FirDeclaration<*>?, + firDeclaration: FirDeclaration, + containingDeclaration: FirDeclaration?, options: KtDeclarationRendererOptions, session: FirSession ): String { @@ -578,7 +578,7 @@ internal class FirIdeRenderer private constructor( } } - private fun StringBuilder.renderReceiver(firCallableDeclaration: FirCallableDeclaration<*>) { + private fun StringBuilder.renderReceiver(firCallableDeclaration: FirCallableDeclaration) { val receiverType = firCallableDeclaration.receiverTypeRef if (receiverType != null) { if (options.renderDeclarationHeader) { @@ -638,13 +638,13 @@ internal class FirIdeRenderer private constructor( } } - private fun StringBuilder.renderValVarPrefix(variable: FirVariable<*>, isInPrimaryConstructor: Boolean = false) { + private fun StringBuilder.renderValVarPrefix(variable: FirVariable, isInPrimaryConstructor: Boolean = false) { if (!isInPrimaryConstructor || variable !is FirValueParameter) { append(if (variable.isVar) "var" else "val").append(" ") } } - private fun StringBuilder.renderVariable(variable: FirVariable<*>) { + private fun StringBuilder.renderVariable(variable: FirVariable) { val typeToRender = variable.returnTypeRef val isVarArg = (variable as? FirValueParameter)?.isVararg ?: false renderModifier(isVarArg, "vararg") @@ -658,7 +658,7 @@ internal class FirIdeRenderer private constructor( } } - private fun StringBuilder.renderSuperTypes(klass: FirClass<*>) { + private fun StringBuilder.renderSuperTypes(klass: FirClass) { if (klass.defaultType().isNothing) return @@ -680,7 +680,7 @@ internal class FirIdeRenderer private constructor( } - private fun getClassifierKindPrefix(classifier: FirDeclaration<*>): String = when (classifier) { + private fun getClassifierKindPrefix(classifier: FirDeclaration): String = when (classifier) { is FirTypeAlias -> "typealias" is FirRegularClass -> if (classifier.isCompanion) { diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirOverrideInfoProvider.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirOverrideInfoProvider.kt index adbe6931848..52e9060bbf6 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirOverrideInfoProvider.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirOverrideInfoProvider.kt @@ -35,9 +35,9 @@ class KtFirOverrideInfoProvider( require(memberSymbol is KtFirSymbol<*>) require(classSymbol is KtFirSymbol<*>) return memberSymbol.firRef.withFir { memberFir -> - if (memberFir !is FirCallableMemberDeclaration<*>) return@withFir false + if (memberFir !is FirCallableMemberDeclaration) return@withFir false classSymbol.firRef.withFir inner@{ parentClassFir -> - if (parentClassFir !is FirClass<*>) return@inner false + if (parentClassFir !is FirClass) return@inner false memberFir.isVisibleInClass(parentClassFir) } } @@ -47,9 +47,9 @@ class KtFirOverrideInfoProvider( require(memberSymbol is KtFirSymbol<*>) require(parentClassSymbol is KtFirSymbol<*>) return memberSymbol.firRef.withFir { memberFir -> - if (memberFir !is FirCallableMemberDeclaration<*>) return@withFir null + if (memberFir !is FirCallableMemberDeclaration) return@withFir null parentClassSymbol.firRef.withFir inner@{ parentClassFir -> - if (parentClassFir !is FirClass<*>) return@inner null + if (parentClassFir !is FirClass) return@inner null memberFir.getImplementationStatus(SessionHolderImpl(firAnalysisSession.rootModuleSession, ScopeSession()), parentClassFir) } } @@ -58,7 +58,7 @@ class KtFirOverrideInfoProvider( override fun getOriginalContainingClassForOverride(symbol: KtCallableSymbol): KtClassOrObjectSymbol? { require(symbol is KtFirSymbol<*>) return symbol.firRef.withFir { firDeclaration -> - if (firDeclaration !is FirCallableMemberDeclaration<*>) return@withFir null + if (firDeclaration !is FirCallableMemberDeclaration) return@withFir null with(analysisSession) { getOriginalOverriddenSymbol(firDeclaration)?.containingClass()?.classId?.getCorrespondingToplevelClassOrObjectSymbol() } @@ -68,7 +68,7 @@ class KtFirOverrideInfoProvider( override fun getOriginalOverriddenSymbol(symbol: KtCallableSymbol): KtCallableSymbol? { require(symbol is KtFirSymbol<*>) return symbol.firRef.withFir { firDeclaration -> - if (firDeclaration !is FirCallableMemberDeclaration<*>) return@withFir null + if (firDeclaration !is FirCallableMemberDeclaration) return@withFir null with(analysisSession) { getOriginalOverriddenSymbol(firDeclaration) ?.buildSymbol((analysisSession as KtFirAnalysisSession).firSymbolBuilder) as KtCallableSymbol? @@ -76,7 +76,7 @@ class KtFirOverrideInfoProvider( } } - private fun getOriginalOverriddenSymbol(member: FirCallableMemberDeclaration<*>): FirCallableMemberDeclaration<*>? { + private fun getOriginalOverriddenSymbol(member: FirCallableMemberDeclaration): FirCallableMemberDeclaration? { val originalForSubstitutionOverride = member.originalForSubstitutionOverride if (originalForSubstitutionOverride != null) return getOriginalOverriddenSymbol(originalForSubstitutionOverride) @@ -88,4 +88,4 @@ class KtFirOverrideInfoProvider( return member } -} \ No newline at end of file +} diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSymbol.kt index fb8036dd6ce..d86420cacc1 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSymbol.kt @@ -18,14 +18,14 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.utils.FirRefWithValidityCheck import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSymbolOrigin -internal interface KtFirSymbol> : KtSymbol, ValidityTokenOwner { +internal interface KtFirSymbol : KtSymbol, ValidityTokenOwner { val firRef: FirRefWithValidityCheck override val origin: KtSymbolOrigin get() = firRef.withFir { it.ktSymbolOrigin() } } -private tailrec fun FirDeclaration<*>.ktSymbolOrigin(): KtSymbolOrigin = when (origin) { +private tailrec fun FirDeclaration.ktSymbolOrigin(): KtSymbolOrigin = when (origin) { FirDeclarationOrigin.Source -> { if (source?.kind == FirFakeSourceElementKind.DataClassGeneratedMembers || source?.kind == FirFakeSourceElementKind.EnumGeneratedDeclaration @@ -47,18 +47,18 @@ private tailrec fun FirDeclaration<*>.ktSymbolOrigin(): KtSymbolOrigin = when (o } } FirDeclarationOrigin.ImportedFromObject -> { - val importedFromObjectData = (this as FirCallableDeclaration<*>).importedFromObjectData + val importedFromObjectData = (this as FirCallableDeclaration).importedFromObjectData ?: error("Declaration has ImportedFromObject origin, but no importedFromObjectData present") importedFromObjectData.original.ktSymbolOrigin() } else -> { - val overridden = (this as? FirCallableDeclaration<*>)?.originalIfFakeOverride() + val overridden = (this as? FirCallableDeclaration)?.originalIfFakeOverride() ?: throw InvalidFirDeclarationOriginForSymbol(this) overridden.ktSymbolOrigin() } } -class InvalidFirDeclarationOriginForSymbol(declaration: FirDeclaration<*>) : +class InvalidFirDeclarationOriginForSymbol(declaration: FirDeclaration) : IllegalStateException("Invalid FirDeclarationOrigin ${declaration.origin::class.simpleName} for ${declaration.render()}") diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSymbolProvider.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSymbolProvider.kt index ec7474a5a15..3dad120cc16 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSymbolProvider.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSymbolProvider.kt @@ -15,10 +15,10 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.api.getOrBuildFirOfType import org.jetbrains.kotlin.idea.fir.low.level.api.api.withFirDeclarationOfType import org.jetbrains.kotlin.idea.frontend.api.KtAnalysisSession import org.jetbrains.kotlin.idea.frontend.api.ValidityTokenOwner -import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityToken import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef import org.jetbrains.kotlin.idea.frontend.api.symbols.* +import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityToken import org.jetbrains.kotlin.idea.frontend.api.withValidityAssertion import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.FqName @@ -45,7 +45,7 @@ internal class KtFirSymbolProvider( } override fun getFunctionLikeSymbol(psi: KtNamedFunction): KtFunctionLikeSymbol = withValidityAssertion { - psi.withFirDeclarationOfType, KtFunctionLikeSymbol>(resolveState) { fir -> + psi.withFirDeclarationOfType(resolveState) { fir -> when (fir) { is FirSimpleFunction -> firSymbolBuilder.functionLikeBuilder.buildFunctionSymbol(fir) is FirAnonymousFunction -> firSymbolBuilder.functionLikeBuilder.buildAnonymousFunctionSymbol(fir) @@ -104,7 +104,7 @@ internal class KtFirSymbolProvider( } override fun getClassOrObjectSymbol(psi: KtClassOrObject): KtClassOrObjectSymbol = withValidityAssertion { - psi.withFirDeclarationOfType, KtClassOrObjectSymbol>(resolveState) { + psi.withFirDeclarationOfType(resolveState) { firSymbolBuilder.classifierBuilder.buildClassOrObjectSymbol(it) } } @@ -133,4 +133,4 @@ internal class KtFirSymbolProvider( } override val ROOT_PACKAGE_SYMBOL: KtPackageSymbol = KtFirPackageSymbol(FqName.ROOT, resolveState.project, token) -} \ No newline at end of file +} diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirTypeAndAnnotations.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirTypeAndAnnotations.kt index c8c2c45d096..059620726d0 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirTypeAndAnnotations.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirTypeAndAnnotations.kt @@ -21,7 +21,7 @@ import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypeAndAnnotatio import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityToken import org.jetbrains.kotlin.idea.frontend.api.types.KtType -internal class KtFirTypeAndAnnotations>( +internal class KtFirTypeAndAnnotations( private val containingDeclaration: FirRefWithValidityCheck, typeResolvePhase: FirResolvePhase, _builder: KtSymbolByFirBuilder, @@ -59,7 +59,7 @@ internal class KtSimpleFirTypeAndAnnotations( override val annotations: List get() = annotationsListRef } -internal fun FirRefWithValidityCheck>.superTypesAndAnnotationsList(builder: KtSymbolByFirBuilder): List = +internal fun FirRefWithValidityCheck.superTypesAndAnnotationsList(builder: KtSymbolByFirBuilder): List = withFir(FirResolvePhase.SUPER_TYPES) { fir -> fir.superTypeRefs.mapToTypeAndAnnotations(this, builder) } @@ -75,7 +75,7 @@ internal fun FirRefWithValidityCheck.superTypesAndAnnotationsLi } private fun List.mapToTypeAndAnnotations( - containingDeclaration: FirRefWithValidityCheck>, + containingDeclaration: FirRefWithValidityCheck, builder: KtSymbolByFirBuilder, ) = map { typeRef -> val annotations = typeRef.annotations.map { annotation -> @@ -84,12 +84,12 @@ private fun List.mapToTypeAndAnnotations( KtSimpleFirTypeAndAnnotations(typeRef.coneType, annotations, builder, containingDeclaration.token) } -internal fun FirRefWithValidityCheck>.returnTypeAndAnnotations( +internal fun FirRefWithValidityCheck.returnTypeAndAnnotations( typeResolvePhase: FirResolvePhase, builder: KtSymbolByFirBuilder ) = KtFirTypeAndAnnotations(this, typeResolvePhase, builder) { it.returnTypeRef } -internal fun FirRefWithValidityCheck>.receiverTypeAndAnnotations(builder: KtSymbolByFirBuilder) = withFir { fir -> +internal fun FirRefWithValidityCheck.receiverTypeAndAnnotations(builder: KtSymbolByFirBuilder) = withFir { fir -> fir.receiverTypeRef?.let { _ -> KtFirTypeAndAnnotations(this, FirResolvePhase.TYPES, builder) { it.receiverTypeRef ?: error { "Receiver expected for callable declaration but it is null" } @@ -97,7 +97,7 @@ internal fun FirRefWithValidityCheck>.receiverTypeAndA } } -internal fun FirRefWithValidityCheck>.dispatchReceiverTypeAndAnnotations(builder: KtSymbolByFirBuilder) = +internal fun FirRefWithValidityCheck.dispatchReceiverTypeAndAnnotations(builder: KtSymbolByFirBuilder) = withFir { fir -> fir.dispatchReceiverType?.let { builder.typeBuilder.buildKtType(it) diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/annotations/KtFirAnnotationCall.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/annotations/KtFirAnnotationCall.kt index fa5012f983c..ec5fc1e47dd 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/annotations/KtFirAnnotationCall.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/annotations/KtFirAnnotationCall.kt @@ -18,7 +18,7 @@ import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.psi.KtCallElement internal class KtFirAnnotationCall( - private val containingDeclaration: FirRefWithValidityCheck>, + private val containingDeclaration: FirRefWithValidityCheck, annotationCall: FirAnnotationCall ) : KtAnnotationCall() { diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/annotations/firAnnotationUtils.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/annotations/firAnnotationUtils.kt index 750f8c7d7e0..c79f98f6c9f 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/annotations/firAnnotationUtils.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/annotations/firAnnotationUtils.kt @@ -19,16 +19,16 @@ import org.jetbrains.kotlin.name.ClassId internal fun FirAnnotationCall.getClassId(session: FirSession): ClassId? = coneClassLikeType?.fullyExpandedType(session)?.classId -internal fun FirRefWithValidityCheck>.toAnnotationsList() = withFir { fir -> +internal fun FirRefWithValidityCheck.toAnnotationsList() = withFir { fir -> fir.annotations.map { KtFirAnnotationCall(this, it) } } -internal fun FirRefWithValidityCheck>.containsAnnotation(classId: ClassId): Boolean = +internal fun FirRefWithValidityCheck.containsAnnotation(classId: ClassId): Boolean = withFir(ResolveType.AnnotationType) { fir -> fir.annotations.any { it.getClassId(fir.moduleData.session) == classId } } -internal fun FirRefWithValidityCheck>.getAnnotationClassIds(): Collection = +internal fun FirRefWithValidityCheck.getAnnotationClassIds(): Collection = withFir(ResolveType.AnnotationType) { fir -> fir.annotations.mapNotNull { it.getClassId(fir.moduleData.session) } } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/firSymbolUtils.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/firSymbolUtils.kt index b6f5bc4beb5..fd347e5e153 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/firSymbolUtils.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/firSymbolUtils.kt @@ -8,7 +8,10 @@ package org.jetbrains.kotlin.idea.frontend.api.fir.symbols import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibility import org.jetbrains.kotlin.fir.FirRenderer -import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.FirCallableDeclaration +import org.jetbrains.kotlin.fir.declarations.FirDeclaration +import org.jetbrains.kotlin.fir.declarations.FirResolvePhase +import org.jetbrains.kotlin.fir.declarations.FirStatusOwner import org.jetbrains.kotlin.fir.declarations.utils.modality import org.jetbrains.kotlin.fir.declarations.utils.visibility import org.jetbrains.kotlin.fir.psi @@ -20,7 +23,7 @@ import org.jetbrains.kotlin.psi.KtDeclaration internal fun KtFirSymbol.getModality( phase: FirResolvePhase = FirResolvePhase.STATUS, defaultModality: Modality? = null -): Modality where F : FirDeclaration<*>, F : FirStatusOwner { +): Modality where F : FirDeclaration, F : FirStatusOwner { return firRef.withFir(phase) { fir -> fir.modality ?: defaultModality @@ -28,7 +31,7 @@ internal fun KtFirSymbol.getModality( } } -private fun FirDeclaration<*>.invalidModalityError(): Nothing { +private fun FirDeclaration.invalidModalityError(): Nothing { error( """|Symbol modality should not be null, looks like the FIR symbol was not properly resolved | @@ -41,8 +44,8 @@ private fun FirDeclaration<*>.invalidModalityError(): Nothing { internal fun KtFirSymbol.getVisibility( phase: FirResolvePhase = FirResolvePhase.STATUS -): Visibility where F : FirStatusOwner, F : FirDeclaration<*> = +): Visibility where F : FirStatusOwner, F : FirDeclaration = firRef.withFir(phase) { fir -> fir.visibility } -internal fun KtFirSymbol>.getCallableIdIfNonLocal(): CallableId? = +internal fun KtFirSymbol.getCallableIdIfNonLocal(): CallableId? = firRef.withFir { fir -> fir.symbol.callableId.takeUnless { it.isLocal } } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/pointers/pointerUtils.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/pointers/pointerUtils.kt index 44c24604b55..07b985b62a5 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/pointers/pointerUtils.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/pointers/pointerUtils.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol import org.jetbrains.kotlin.idea.fir.low.level.api.ideSessionComponents import org.jetbrains.kotlin.ir.util.IdSignature -internal inline fun > FirScope.findDeclarationWithSignature( +internal inline fun FirScope.findDeclarationWithSignature( signature: IdSignature, firSession: FirSession, processor: FirScope.((FirBasedSymbol<*>) -> Unit) -> Unit @@ -31,7 +31,7 @@ internal inline fun > FirScope.findDeclarationWith return foundSymbol } -internal inline fun > Collection>.findDeclarationWithSignatureBySymbols( +internal inline fun Collection>.findDeclarationWithSignatureBySymbols( signature: IdSignature, firSession: FirSession ): D? { @@ -45,7 +45,7 @@ internal inline fun > Collection.createSignature(): IdSignature { +internal fun FirDeclaration.createSignature(): IdSignature { val signatureComposer = moduleData.session.ideSessionComponents.signatureComposer return signatureComposer.composeSignature(this) ?: error("Could not compose signature for ${this.renderWithType(FirRenderer.RenderMode.WithResolvePhases)}, looks like it is private or local") diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/FirRefWithValidityCheck.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/FirRefWithValidityCheck.kt index 4c97a2ec6e7..387a2853727 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/FirRefWithValidityCheck.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/FirRefWithValidityCheck.kt @@ -17,7 +17,7 @@ import org.jetbrains.kotlin.idea.frontend.api.tokens.ValidityToken import org.jetbrains.kotlin.idea.frontend.api.tokens.assertIsValidAndAccessible import java.lang.ref.WeakReference -internal class FirRefWithValidityCheck>(fir: D, resolveState: FirModuleResolveState, val token: ValidityToken) { +internal class FirRefWithValidityCheck(fir: D, resolveState: FirModuleResolveState, val token: ValidityToken) { private val firWeakRef = WeakReference(fir) private val resolveStateWeakRef = WeakReference(resolveState) @@ -138,5 +138,5 @@ internal class FirRefWithValidityCheck>(fir: D, resolv } @Suppress("NOTHING_TO_INLINE") -internal inline fun > ValidityTokenOwner.firRef(fir: D, resolveState: FirModuleResolveState) = +internal inline fun ValidityTokenOwner.firRef(fir: D, resolveState: FirModuleResolveState) = FirRefWithValidityCheck(fir, resolveState, token) diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/KtAnalysisSessionFe10BindingHolder.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/KtAnalysisSessionFe10BindingHolder.kt index 5372909f6b9..4e6d04b254c 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/KtAnalysisSessionFe10BindingHolder.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/KtAnalysisSessionFe10BindingHolder.kt @@ -31,7 +31,7 @@ class KtAnalysisSessionFe10BindingHolder private constructor( val firResolveState: FirModuleResolveState get() = firAnalysisSession.firResolveState - fun buildClassLikeSymbol(fir: FirClassLikeDeclaration<*>): KtClassLikeSymbol = + fun buildClassLikeSymbol(fir: FirClassLikeDeclaration): KtClassLikeSymbol = firAnalysisSession.firSymbolBuilder.classifierBuilder.buildClassLikeSymbol(fir) fun buildKtType(coneType: FirTypeRef): KtType = @@ -40,7 +40,7 @@ class KtAnalysisSessionFe10BindingHolder private constructor( fun buildSymbol(firElement: FirElement): KtSymbol? = firElement.buildSymbol(firAnalysisSession.firSymbolBuilder) @Suppress("UNCHECKED_CAST", "NON_PUBLIC_CALL_FROM_PUBLIC_INLINE") - inline fun , R> withFir(ktSymbol: KtSymbol, crossinline action: (T) -> R) = + inline fun withFir(ktSymbol: KtSymbol, crossinline action: (T) -> R) = (ktSymbol as KtFirSymbol).firRef.withFir(action = action) fun toSignature(ktSymbol: KtSymbol): IdSignature = (ktSymbol as KtFirSymbol<*>).firRef.withFir { it.createSignature() } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/firUtils.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/firUtils.kt index e8b31091ceb..c8d610033c4 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/firUtils.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/utils/firUtils.kt @@ -30,7 +30,7 @@ internal fun FirNamedReference.getReferencedElementType(): ConeKotlinType { is FirErrorNamedReference -> FirReferenceResolveHelper.getFirSymbolsByErrorNamedReference(this) else -> error("Unexpected ${this::class}") } - val firCallableDeclaration = symbols.singleOrNull()?.fir as? FirCallableDeclaration<*> + val firCallableDeclaration = symbols.singleOrNull()?.fir as? FirCallableDeclaration return firCallableDeclaration?.returnTypeRef?.coneType ?: ConeClassErrorType(ConeUnresolvedNameError(name)) } diff --git a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenStatusTransformer.kt b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenStatusTransformer.kt index 086b9e659c6..1d10a11c02f 100644 --- a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenStatusTransformer.kt +++ b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenStatusTransformer.kt @@ -24,7 +24,7 @@ class AllOpenStatusTransformer(session: FirSession) : FirStatusTransformerExtens private val ALL_OPEN = FqName("org.jetbrains.kotlin.fir.plugin.AllOpen") } - override fun transformStatus(declaration: FirDeclaration<*>, owners: List>, status: FirDeclarationStatus): FirDeclarationStatus { + override fun transformStatus(declaration: FirDeclaration, owners: List, status: FirDeclarationStatus): FirDeclarationStatus { if (status.modality != null) return status return status.transform(modality = Modality.OPEN) } diff --git a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenSupertypeGenerator.kt b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenSupertypeGenerator.kt index 779cbfc17d1..d526d755747 100644 --- a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenSupertypeGenerator.kt +++ b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenSupertypeGenerator.kt @@ -25,7 +25,7 @@ class AllOpenSupertypeGenerator(session: FirSession) : FirSupertypeGenerationExt } override fun computeAdditionalSupertypes( - classLikeDeclaration: FirClassLikeDeclaration<*>, + classLikeDeclaration: FirClassLikeDeclaration, resolvedSupertypes: List ): List { return listOf( @@ -39,4 +39,4 @@ class AllOpenSupertypeGenerator(session: FirSession) : FirSupertypeGenerationExt get() = AllOpenPluginKey override val predicate: DeclarationPredicate = has("C".fqn()) -} \ No newline at end of file +} diff --git a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenVisibilityTransformer.kt b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenVisibilityTransformer.kt index 1365da78d2f..b034ea958ee 100644 --- a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenVisibilityTransformer.kt +++ b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/AllOpenVisibilityTransformer.kt @@ -39,8 +39,8 @@ class AllOpenVisibilityTransformer(session: FirSession) : FirStatusTransformerEx } override fun transformStatus( - declaration: FirDeclaration<*>, - owners: List>, + declaration: FirDeclaration, + owners: List, status: FirDeclarationStatus ): FirDeclarationStatus { val visibility = findVisibility(declaration, owners) ?: return status @@ -48,7 +48,7 @@ class AllOpenVisibilityTransformer(session: FirSession) : FirStatusTransformerEx return status.transform(visibility = visibility) } - private fun findVisibility(declaration: FirDeclaration<*>, owners: List>): Visibility? { + private fun findVisibility(declaration: FirDeclaration, owners: List): Visibility? { (declaration as? FirAnnotatedDeclaration)?.visibilityFromAnnotation()?.let { return it } for (owner in owners) { owner.visibilityFromAnnotation()?.let { return it } @@ -56,7 +56,7 @@ class AllOpenVisibilityTransformer(session: FirSession) : FirStatusTransformerEx return null } - private fun FirAnnotatedDeclaration<*>.visibilityFromAnnotation(): Visibility? { + private fun FirAnnotatedDeclaration.visibilityFromAnnotation(): Visibility? { val annotation = annotations.firstOrNull { it.annotationTypeRef.coneTypeSafe()?.lookupTag?.classId == AllPublicClassId } ?: return null diff --git a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenMemberGenerator.kt b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenMemberGenerator.kt index 9bd4c30ebe3..220456dafa5 100644 --- a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenMemberGenerator.kt +++ b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenMemberGenerator.kt @@ -24,19 +24,19 @@ import org.jetbrains.kotlin.name.Name class AllOpenMemberGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) { override fun generateClasses( - annotatedDeclaration: FirDeclaration<*>, - owners: List> + annotatedDeclaration: FirDeclaration, + owners: List ): List> { return emptyList() } - override fun generateMembersForGeneratedClass(generatedClass: GeneratedClass): List> { + override fun generateMembersForGeneratedClass(generatedClass: GeneratedClass): List { return emptyList() } override fun generateMembers( - annotatedDeclaration: FirDeclaration<*>, - owners: List> + annotatedDeclaration: FirDeclaration, + owners: List ): List> { if (annotatedDeclaration !is FirProperty) return emptyList() val owner = owners.last() as? FirRegularClass ?: return emptyList() diff --git a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenNestedClassGenerator.kt b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenNestedClassGenerator.kt index 53a6afa1a97..c7d41047f46 100644 --- a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenNestedClassGenerator.kt +++ b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenNestedClassGenerator.kt @@ -33,8 +33,8 @@ import org.jetbrains.kotlin.name.Name class AllOpenNestedClassGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) { override fun generateClasses( - annotatedDeclaration: FirDeclaration<*>, - owners: List> + annotatedDeclaration: FirDeclaration, + owners: List ): List> { val owner = annotatedDeclaration as? FirRegularClass ?: return emptyList() val newClass = buildRegularClass { @@ -56,7 +56,7 @@ class AllOpenNestedClassGenerator(session: FirSession) : FirDeclarationGeneratio return listOf(GeneratedDeclaration(newClass, owner)) } - override fun generateMembersForGeneratedClass(generatedClass: GeneratedClass): List> { + override fun generateMembersForGeneratedClass(generatedClass: GeneratedClass): List { val klass = generatedClass.klass val classId = klass.symbol.classId @@ -92,8 +92,8 @@ class AllOpenNestedClassGenerator(session: FirSession) : FirDeclarationGeneratio } override fun generateMembers( - annotatedDeclaration: FirDeclaration<*>, - owners: List> + annotatedDeclaration: FirDeclaration, + owners: List ): List> { return emptyList() } diff --git a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenRecursiveNestedClassGenerator.kt b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenRecursiveNestedClassGenerator.kt index aa69eb67155..f37d8bd3b34 100644 --- a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenRecursiveNestedClassGenerator.kt +++ b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenRecursiveNestedClassGenerator.kt @@ -30,8 +30,8 @@ import org.jetbrains.kotlin.name.Name class AllOpenRecursiveNestedClassGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) { override fun generateClasses( - annotatedDeclaration: FirDeclaration<*>, - owners: List> + annotatedDeclaration: FirDeclaration, + owners: List ): List> { if (owners.size > 2) return emptyList() val owner = annotatedDeclaration as? FirRegularClass ?: return emptyList() @@ -62,13 +62,13 @@ class AllOpenRecursiveNestedClassGenerator(session: FirSession) : FirDeclaration return listOf(GeneratedDeclaration(newClass, owner)) } - override fun generateMembersForGeneratedClass(generatedClass: GeneratedClass): List> { + override fun generateMembersForGeneratedClass(generatedClass: GeneratedClass): List { return emptyList() } override fun generateMembers( - annotatedDeclaration: FirDeclaration<*>, - owners: List> + annotatedDeclaration: FirDeclaration, + owners: List ): List> { return emptyList() } diff --git a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenTopLevelDeclarationsGenerator.kt b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenTopLevelDeclarationsGenerator.kt index e9842530b31..83bff14a847 100644 --- a/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenTopLevelDeclarationsGenerator.kt +++ b/plugins/fir/fir-plugin-prototype/src/org/jetbrains/kotlin/fir/plugin/generators/AllOpenTopLevelDeclarationsGenerator.kt @@ -28,8 +28,8 @@ import org.jetbrains.kotlin.name.Name class AllOpenTopLevelDeclarationsGenerator(session: FirSession) : FirDeclarationGenerationExtension(session) { override fun generateClasses( - annotatedDeclaration: FirDeclaration<*>, - owners: List> + annotatedDeclaration: FirDeclaration, + owners: List ): List> { val file = owners.first() as FirFile val klass = annotatedDeclaration as? FirRegularClass ?: return emptyList() @@ -50,7 +50,7 @@ class AllOpenTopLevelDeclarationsGenerator(session: FirSession) : FirDeclaration return listOf(GeneratedDeclaration(newClass, file)) } - override fun generateMembersForGeneratedClass(generatedClass: GeneratedClass): List> { + override fun generateMembersForGeneratedClass(generatedClass: GeneratedClass): List { val klass = generatedClass.klass val function = buildSimpleFunction { moduleData = session.moduleData @@ -69,8 +69,8 @@ class AllOpenTopLevelDeclarationsGenerator(session: FirSession) : FirDeclaration } override fun generateMembers( - annotatedDeclaration: FirDeclaration<*>, - owners: List> + annotatedDeclaration: FirDeclaration, + owners: List ): List> { return emptyList() }