diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionTypeProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionTypeProvider.kt index 1a46c91b769..2870bdc545c 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionTypeProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirExpressionTypeProvider.kt @@ -66,7 +66,7 @@ internal class KtFirExpressionTypeProvider( } } is FirExpression -> fir.typeRef.coneType.asKtType() - is FirNamedReference -> fir.getReferencedElementType(firResolveState).asKtType() + is FirNamedReference -> fir.getReferencedElementType().asKtType() is FirStatement -> with(analysisSession) { builtinTypes.UNIT } is FirTypeRef, is FirImport, is FirPackageDirective, is FirLabel -> null // For invalid code like the following, diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/utils/firUtils.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/utils/firUtils.kt index 8b00e01f0f9..2a41a4cf177 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/utils/firUtils.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/utils/firUtils.kt @@ -13,7 +13,6 @@ import org.jetbrains.kotlin.analysis.api.fir.getCandidateSymbols import org.jetbrains.kotlin.analysis.api.types.KtTypeNullability import org.jetbrains.kotlin.analysis.low.level.api.fir.api.FirModuleResolveState import org.jetbrains.kotlin.analysis.low.level.api.fir.api.withFirDeclaration -import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.ResolveType import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.analysis.checkers.classKind @@ -52,7 +51,7 @@ internal fun KtExpression.unwrap(): KtExpression { } ?: this } -internal fun FirNamedReference.getReferencedElementType(resolveState: FirModuleResolveState): ConeKotlinType { +internal fun FirNamedReference.getReferencedElementType(): ConeKotlinType { val symbols = when (this) { is FirResolvedNamedReference -> listOf(resolvedSymbol) is FirErrorNamedReference -> getCandidateSymbols() @@ -61,9 +60,7 @@ internal fun FirNamedReference.getReferencedElementType(resolveState: FirModuleR val firCallableDeclaration = symbols.singleOrNull()?.fir as? FirCallableDeclaration ?: return ConeClassErrorType(ConeUnresolvedNameError(name)) - return firCallableDeclaration.withFirDeclaration(ResolveType.CallableReturnType, resolveState) { - it.returnTypeRef.coneType - } + return firCallableDeclaration.symbol.resolvedReturnType } internal fun KtTypeNullability.toConeNullability() = when (this) { diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/FirModuleResolveState.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/FirModuleResolveState.kt index d5c1f6526b2..f613b5f9ac6 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/FirModuleResolveState.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/FirModuleResolveState.kt @@ -8,7 +8,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.api import com.intellij.openapi.project.Project import org.jetbrains.kotlin.analysis.api.impl.barebone.annotations.InternalForInline import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.ModuleFileCache -import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.ResolveType import org.jetbrains.kotlin.analysis.project.structure.KtModule import org.jetbrains.kotlin.diagnostics.KtPsiDiagnostic import org.jetbrains.kotlin.fir.FirElement @@ -72,7 +71,5 @@ abstract class FirModuleResolveState { ): FirDeclaration - internal abstract fun resolveFirToPhase(declaration: D, toPhase: FirResolvePhase): D - - internal abstract fun resolveFirToResolveType(declaration: D, type: ResolveType): D + internal abstract fun resolveFirToPhase(declaration: FirDeclaration, toPhase: FirResolvePhase) } diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LowLevelFirApiFacade.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LowLevelFirApiFacade.kt index 5188f6648ae..6a0ce31cf1b 100644 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LowLevelFirApiFacade.kt +++ b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/api/LowLevelFirApiFacade.kt @@ -8,12 +8,11 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir.api import com.intellij.openapi.project.Project import org.jetbrains.kotlin.analysis.api.impl.barebone.annotations.InternalForInline import org.jetbrains.kotlin.analysis.low.level.api.fir.FirIdeResolveStateService -import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.ResolveType import org.jetbrains.kotlin.analysis.project.structure.KtModule import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule import org.jetbrains.kotlin.analysis.project.structure.getKtModule -import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.diagnostics.KtPsiDiagnostic +import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.declarations.* import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol import org.jetbrains.kotlin.psi.KtDeclaration @@ -55,31 +54,11 @@ inline fun KtDeclaration.withFirSymbol( resolveState.findSourceFirDeclaration(this) } - val resolvedDeclaration = if (firDeclaration.resolvePhase < phase) { + if (firDeclaration.resolvePhase < phase) { firDeclaration.resolvedFirToPhase(phase, resolveState) - } else { - firDeclaration } - return action(resolvedDeclaration.symbol) -} - -/** - * Creates [FirDeclaration] by [KtDeclaration] and executes an [action] on it - * [FirDeclaration] passed to [action] will be resolved at least to [resolveType] when executing [action] on it - * - * [FirDeclaration] passed to [action] should not be leaked outside [action] lambda - * Otherwise, some threading problems may arise, - */ -@OptIn(InternalForInline::class) -inline fun KtDeclaration.withFirSymbolDeclaration( - resolveState: FirModuleResolveState, - resolveType: ResolveType = ResolveType.NoResolve, - action: (FirBasedSymbol<*>) -> R -): R { - val firDeclaration = resolveState.findSourceFirDeclaration(this) - val resolvedDeclaration = firDeclaration.resolvedFirToType(resolveType, resolveState) - return action(resolvedDeclaration.symbol) + return action(firDeclaration.symbol) } /** @@ -128,22 +107,10 @@ fun D.withFirDeclaration( phase: FirResolvePhase = FirResolvePhase.RAW_FIR, action: (D) -> R, ): R { - val resolvedDeclaration = resolvedFirToPhase(phase, resolveState) - return action(resolvedDeclaration) + resolvedFirToPhase(phase, resolveState) + return action(this) } -/** - * 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 D.withFirDeclaration( - type: ResolveType, - resolveState: FirModuleResolveState, - action: (D) -> R, -): R { - val resolvedDeclaration = resolvedFirToType(type, resolveState) - return action(resolvedDeclaration) -} /** * Returns a list of Diagnostics compiler finds for given [KtElement] @@ -167,22 +134,12 @@ fun KtFile.collectDiagnosticsForFile( * * Should not be called form [withFirSymbol], [withFirDeclarationOfType] functions, as it it may cause deadlock */ -fun D.resolvedFirToPhase( +fun FirDeclaration.resolvedFirToPhase( phase: FirResolvePhase, resolveState: FirModuleResolveState -): D = +) { resolveState.resolveFirToPhase(this, phase) - -/** - * Resolves a given [FirDeclaration] to [phase] and returns resolved declaration - * - * Should not be called form [withFirSymbol], [withFirDeclarationOfType] functions, as it it may cause deadlock - */ -fun D.resolvedFirToType( - type: ResolveType, - resolveState: FirModuleResolveState -): D = - resolveState.resolveFirToResolveType(this, type) +} /** diff --git a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/FirLazyDeclarationResolveToType.kt b/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/FirLazyDeclarationResolveToType.kt deleted file mode 100644 index b76586cb5b3..00000000000 --- a/analysis/low-level-api-fir/src/org/jetbrains/kotlin/analysis/low/level/api/fir/lazy/resolve/FirLazyDeclarationResolveToType.kt +++ /dev/null @@ -1,151 +0,0 @@ -/* - * Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve - -import org.jetbrains.kotlin.fir.declarations.* -import org.jetbrains.kotlin.fir.resolve.ScopeSession -import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef -import org.jetbrains.kotlin.analysis.low.level.api.fir.file.builder.ModuleFileCache - -enum class ResolveType { - NoResolve, - BodyResolveWithChildren, - CallableBodyResolve, - CallableReturnType, - AnnotationType, - AnnotationsArguments, - ClassSuperTypes, - CallableContracts, - DeclarationStatus, - ValueParametersTypes, - TypeParametersTypes, -// ResolveForMemberScope, -// ResolveForSuperMembers, -} - -internal fun FirLazyDeclarationResolver.lazyResolveDeclaration( - firDeclaration: D, - moduleFileCache: ModuleFileCache, - toResolveType: ResolveType, - scopeSession: ScopeSession, - checkPCE: Boolean = false, -): D { - return when (toResolveType) { - ResolveType.NoResolve -> return firDeclaration - ResolveType.CallableReturnType -> { - require(firDeclaration is FirCallableDeclaration) { - "CallableReturnType type cannot be applied to ${firDeclaration::class.qualifiedName}" - } - var currentDeclaration = firDeclaration as FirCallableDeclaration - if (currentDeclaration.resolvePhase < FirResolvePhase.TYPES) { - if (currentDeclaration.returnTypeRef !is FirResolvedTypeRef) { - currentDeclaration = lazyResolveDeclaration( - firDeclarationToResolve = currentDeclaration, - moduleFileCache = moduleFileCache, - toPhase = FirResolvePhase.TYPES, - scopeSession = scopeSession, - checkPCE = checkPCE, - ) - } - } - if (currentDeclaration.returnTypeRef !is FirResolvedTypeRef) { - currentDeclaration = lazyResolveDeclaration( - firDeclarationToResolve = currentDeclaration, - moduleFileCache = moduleFileCache, - toPhase = FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE, - scopeSession = scopeSession, - checkPCE = checkPCE, - ) - } - - check(currentDeclaration.returnTypeRef is FirResolvedTypeRef) - @Suppress("UNCHECKED_CAST") - currentDeclaration as D - } - ResolveType.BodyResolveWithChildren, ResolveType.CallableBodyResolve -> { - require(firDeclaration is FirCallableDeclaration || toResolveType != ResolveType.CallableBodyResolve) { - "BodyResolveWithChildren and CallableBodyResolve types cannot be applied to ${firDeclaration::class.qualifiedName}" - } - lazyResolveDeclaration( - firDeclarationToResolve = firDeclaration, - moduleFileCache = moduleFileCache, - toPhase = FirResolvePhase.BODY_RESOLVE, - scopeSession = scopeSession, - checkPCE = checkPCE, - ) - } - ResolveType.AnnotationType, ResolveType.AnnotationsArguments -> { - if (firDeclaration is FirFile) { - resolveFileAnnotations( - firFile = firDeclaration, - annotations = firDeclaration.annotations, - moduleFileCache = moduleFileCache, - scopeSession = scopeSession, - checkPCE = checkPCE - ) - firDeclaration - } else { - val toPhase = - if (toResolveType == ResolveType.AnnotationType) FirResolvePhase.TYPES else FirResolvePhase.ARGUMENTS_OF_ANNOTATIONS - lazyResolveDeclaration( - firDeclarationToResolve = firDeclaration, - moduleFileCache = moduleFileCache, - toPhase = toPhase, - scopeSession = scopeSession, - checkPCE = checkPCE, - ) - } - } - ResolveType.ClassSuperTypes -> { - require(firDeclaration is FirClassLikeDeclaration) { - "ClassSuperTypes type cannot be applied to ${firDeclaration::class.qualifiedName}" - } - lazyResolveDeclaration( - firDeclarationToResolve = firDeclaration, - moduleFileCache = moduleFileCache, - toPhase = FirResolvePhase.SUPER_TYPES, - scopeSession = scopeSession, - checkPCE = checkPCE, - ) - } - ResolveType.CallableContracts -> { - require(firDeclaration is FirCallableDeclaration) { - "CallableContracts type cannot be applied to ${firDeclaration::class.qualifiedName}" - } - lazyResolveDeclaration( - firDeclarationToResolve = firDeclaration, - moduleFileCache = moduleFileCache, - toPhase = FirResolvePhase.CONTRACTS, - scopeSession = scopeSession, - checkPCE = checkPCE, - ) - } - ResolveType.DeclarationStatus -> { - require(firDeclaration !is FirFile) { - "DeclarationStatus type cannot be applied to ${firDeclaration::class.qualifiedName}" - } - lazyResolveDeclaration( - firDeclarationToResolve = firDeclaration, - moduleFileCache = moduleFileCache, - toPhase = FirResolvePhase.STATUS, - scopeSession = scopeSession, - checkPCE = checkPCE, - ) - } - ResolveType.ValueParametersTypes, ResolveType.TypeParametersTypes -> { - require(firDeclaration !is FirFile) { - "ValueParametersTypes and TypeParametersTypes types cannot be applied to ${firDeclaration::class.qualifiedName}" - } - lazyResolveDeclaration( - firDeclarationToResolve = firDeclaration, - moduleFileCache = moduleFileCache, - toPhase = FirResolvePhase.TYPES, - scopeSession = scopeSession, - checkPCE = checkPCE, - ) - } - } -} diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/localDeclaration.kt b/analysis/low-level-api-fir/testdata/lazyResolve/localDeclaration.kt deleted file mode 100644 index d25701e44da..00000000000 --- a/analysis/low-level-api-fir/testdata/lazyResolve/localDeclaration.kt +++ /dev/null @@ -1,7 +0,0 @@ -class A { - fun x() { - class resolveMe() { - val e = 2 - } - } -} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/localDeclaration.txt b/analysis/low-level-api-fir/testdata/lazyResolve/localDeclaration.txt deleted file mode 100644 index ce5f3698093..00000000000 --- a/analysis/low-level-api-fir/testdata/lazyResolve/localDeclaration.txt +++ /dev/null @@ -1,395 +0,0 @@ -RAW_FIR: -FILE: localDeclaration.kt - public? final? [RAW_FIR] class A : R|kotlin/Any| { - public? [RAW_FIR] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public? final? [RAW_FIR] fun x(): R|kotlin/Unit| { - local final? [RAW_FIR] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public? [RAW_FIR] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public? final? [RAW_FIR] val e: = IntegerLiteral(2) - [TYPES] [ContainingClassKey=resolveMe] public? get(): - - } - - } - - } - -IMPORTS: -FILE: localDeclaration.kt - public? final? [RAW_FIR] class A : R|kotlin/Any| { - public? [RAW_FIR] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public? final? [RAW_FIR] fun x(): R|kotlin/Unit| { - local final? [RAW_FIR] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public? [RAW_FIR] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public? final? [RAW_FIR] val e: = IntegerLiteral(2) - [TYPES] [ContainingClassKey=resolveMe] public? get(): - - } - - } - - } - -SUPER_TYPES: -FILE: localDeclaration.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public final [BODY_RESOLVE] val e: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=resolveMe] public get(): R|kotlin/Int| - - } - - } - - } - -TYPES: -FILE: localDeclaration.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public final [BODY_RESOLVE] val e: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=resolveMe] public get(): R|kotlin/Int| - - } - - } - - } - -STATUS: -FILE: localDeclaration.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public final [BODY_RESOLVE] val e: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=resolveMe] public get(): R|kotlin/Int| - - } - - } - - } - -ARGUMENTS_OF_ANNOTATIONS: -FILE: localDeclaration.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public final [BODY_RESOLVE] val e: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=resolveMe] public get(): R|kotlin/Int| - - } - - } - - } - -CONTRACTS: -FILE: localDeclaration.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public final [BODY_RESOLVE] val e: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=resolveMe] public get(): R|kotlin/Int| - - } - - } - - } - -IMPLICIT_TYPES_BODY_RESOLVE: -FILE: localDeclaration.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public final [BODY_RESOLVE] val e: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=resolveMe] public get(): R|kotlin/Int| - - } - - } - - } - -BODY_RESOLVE: -FILE: localDeclaration.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public final [BODY_RESOLVE] val e: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=resolveMe] public get(): R|kotlin/Int| - - } - - } - - } - -NoResolve: -FILE: localDeclaration.kt - public? final? [RAW_FIR] class A : R|kotlin/Any| { - public? [RAW_FIR] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public? final? [RAW_FIR] fun x(): R|kotlin/Unit| { - local final? [RAW_FIR] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public? [RAW_FIR] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public? final? [RAW_FIR] val e: = IntegerLiteral(2) - [TYPES] [ContainingClassKey=resolveMe] public? get(): - - } - - } - - } - -BodyResolveWithChildren: -FILE: localDeclaration.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public final [BODY_RESOLVE] val e: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=resolveMe] public get(): R|kotlin/Int| - - } - - } - - } - -AnnotationType: -FILE: localDeclaration.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public final [BODY_RESOLVE] val e: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=resolveMe] public get(): R|kotlin/Int| - - } - - } - - } - -AnnotationsArguments: -FILE: localDeclaration.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public final [BODY_RESOLVE] val e: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=resolveMe] public get(): R|kotlin/Int| - - } - - } - - } - -ClassSuperTypes: -FILE: localDeclaration.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public final [BODY_RESOLVE] val e: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=resolveMe] public get(): R|kotlin/Int| - - } - - } - - } - -DeclarationStatus: -FILE: localDeclaration.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public final [BODY_RESOLVE] val e: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=resolveMe] public get(): R|kotlin/Int| - - } - - } - - } - -ValueParametersTypes: -FILE: localDeclaration.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public final [BODY_RESOLVE] val e: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=resolveMe] public get(): R|kotlin/Int| - - } - - } - - } - -TypeParametersTypes: -FILE: localDeclaration.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public final [BODY_RESOLVE] val e: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=resolveMe] public get(): R|kotlin/Int| - - } - - } - - } - -FILE RAW TO BODY: -FILE: localDeclaration.kt - public final [BODY_RESOLVE] class A : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] [ContainingClassKey=A] class resolveMe : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=resolveMe] constructor(): R|A.resolveMe| { - super() - } - - public final [BODY_RESOLVE] val e: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=resolveMe] public get(): R|kotlin/Int| - - } - - } - - } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/localFunction.kt b/analysis/low-level-api-fir/testdata/lazyResolve/localFunction.kt deleted file mode 100644 index fd94d31e2bf..00000000000 --- a/analysis/low-level-api-fir/testdata/lazyResolve/localFunction.kt +++ /dev/null @@ -1,7 +0,0 @@ -class A { - fun x() { - fun resolveMe() { - - } - } -} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/localFunction.txt b/analysis/low-level-api-fir/testdata/lazyResolve/localFunction.txt deleted file mode 100644 index 1fa29c0041b..00000000000 --- a/analysis/low-level-api-fir/testdata/lazyResolve/localFunction.txt +++ /dev/null @@ -1,299 +0,0 @@ -RAW_FIR: -FILE: localFunction.kt - public? final? [RAW_FIR] class A : R|kotlin/Any| { - public? [RAW_FIR] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public? final? [RAW_FIR] fun x(): R|kotlin/Unit| { - local final? [RAW_FIR] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -IMPORTS: -FILE: localFunction.kt - public? final? [RAW_FIR] class A : R|kotlin/Any| { - public? [RAW_FIR] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public? final? [RAW_FIR] fun x(): R|kotlin/Unit| { - local final? [RAW_FIR] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -SUPER_TYPES: -FILE: localFunction.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -TYPES: -FILE: localFunction.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -STATUS: -FILE: localFunction.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -ARGUMENTS_OF_ANNOTATIONS: -FILE: localFunction.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -CONTRACTS: -FILE: localFunction.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -IMPLICIT_TYPES_BODY_RESOLVE: -FILE: localFunction.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -BODY_RESOLVE: -FILE: localFunction.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -NoResolve: -FILE: localFunction.kt - public? final? [RAW_FIR] class A : R|kotlin/Any| { - public? [RAW_FIR] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public? final? [RAW_FIR] fun x(): R|kotlin/Unit| { - local final? [RAW_FIR] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -BodyResolveWithChildren: -FILE: localFunction.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -CallableBodyResolve: -FILE: localFunction.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -CallableReturnType: -FILE: localFunction.kt - public? final? [RAW_FIR] class A : R|kotlin/Any| { - public? [RAW_FIR] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public? final? [RAW_FIR] fun x(): R|kotlin/Unit| { - local final? [RAW_FIR] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -AnnotationType: -FILE: localFunction.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -AnnotationsArguments: -FILE: localFunction.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -CallableContracts: -FILE: localFunction.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -DeclarationStatus: -FILE: localFunction.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -ValueParametersTypes: -FILE: localFunction.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -TypeParametersTypes: -FILE: localFunction.kt - public final [STATUS] class A : R|kotlin/Any| { - public [STATUS] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } - -FILE RAW TO BODY: -FILE: localFunction.kt - public final [BODY_RESOLVE] class A : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=A] constructor(): R|A| { - super() - } - - public final [BODY_RESOLVE] fun x(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun resolveMe(): R|kotlin/Unit| { - } - - } - - } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/parameterOfLocalSetter.kt b/analysis/low-level-api-fir/testdata/lazyResolve/parameterOfLocalSetter.kt deleted file mode 100644 index fe2999ca8e4..00000000000 --- a/analysis/low-level-api-fir/testdata/lazyResolve/parameterOfLocalSetter.kt +++ /dev/null @@ -1,6 +0,0 @@ -fun ddd() { - class XX { - var x: Int = 2 - set(resolveMe) = Unit - } -} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/parameterOfLocalSetter.txt b/analysis/low-level-api-fir/testdata/lazyResolve/parameterOfLocalSetter.txt deleted file mode 100644 index 5fe1ad52a7d..00000000000 --- a/analysis/low-level-api-fir/testdata/lazyResolve/parameterOfLocalSetter.txt +++ /dev/null @@ -1,359 +0,0 @@ -RAW_FIR: -FILE: parameterOfLocalSetter.kt - public? final? [RAW_FIR] fun ddd(): R|kotlin/Unit| { - local final? [RAW_FIR] class XX : R|kotlin/Any| { - public? [RAW_FIR] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public? final? [RAW_FIR] var x: Int = IntegerLiteral(2) - [TYPES] [ContainingClassKey=XX] public? get(): Int - [RAW_FIR] [ContainingClassKey=XX] public? set([RAW_FIR] resolveMe: Int): R|kotlin/Unit| { - ^ Unit# - } - - } - - } - -IMPORTS: -FILE: parameterOfLocalSetter.kt - public? final? [RAW_FIR] fun ddd(): R|kotlin/Unit| { - local final? [RAW_FIR] class XX : R|kotlin/Any| { - public? [RAW_FIR] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public? final? [RAW_FIR] var x: Int = IntegerLiteral(2) - [TYPES] [ContainingClassKey=XX] public? get(): Int - [RAW_FIR] [ContainingClassKey=XX] public? set([RAW_FIR] resolveMe: Int): R|kotlin/Unit| { - ^ Unit# - } - - } - - } - -SUPER_TYPES: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } - -TYPES: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } - -STATUS: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } - -ARGUMENTS_OF_ANNOTATIONS: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } - -CONTRACTS: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } - -IMPLICIT_TYPES_BODY_RESOLVE: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } - -BODY_RESOLVE: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } - -NoResolve: -FILE: parameterOfLocalSetter.kt - public? final? [RAW_FIR] fun ddd(): R|kotlin/Unit| { - local final? [RAW_FIR] class XX : R|kotlin/Any| { - public? [RAW_FIR] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public? final? [RAW_FIR] var x: Int = IntegerLiteral(2) - [TYPES] [ContainingClassKey=XX] public? get(): Int - [RAW_FIR] [ContainingClassKey=XX] public? set([RAW_FIR] resolveMe: Int): R|kotlin/Unit| { - ^ Unit# - } - - } - - } - -BodyResolveWithChildren: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } - -CallableBodyResolve: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } - -CallableReturnType: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } - -AnnotationType: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } - -AnnotationsArguments: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } - -CallableContracts: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } - -DeclarationStatus: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } - -ValueParametersTypes: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } - -TypeParametersTypes: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } - -FILE RAW TO BODY: -FILE: parameterOfLocalSetter.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] class XX : R|kotlin/Any| { - public [BODY_RESOLVE] [ContainingClassKey=XX] constructor(): R|XX| { - super() - } - - public final [BODY_RESOLVE] var x: R|kotlin/Int| = Int(2) - [BODY_RESOLVE] [ContainingClassKey=XX] public get(): R|kotlin/Int| - [BODY_RESOLVE] [ContainingClassKey=XX] public set([BODY_RESOLVE] resolveMe: R|kotlin/Int|): R|kotlin/Unit| { - ^ Q|kotlin/Unit| - } - - } - - } diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfLocalFunction.kt b/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfLocalFunction.kt deleted file mode 100644 index 75516f60d60..00000000000 --- a/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfLocalFunction.kt +++ /dev/null @@ -1,3 +0,0 @@ -fun ddd() { - fun kkk() {} -} \ No newline at end of file diff --git a/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfLocalFunction.txt b/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfLocalFunction.txt deleted file mode 100644 index f875a745b4f..00000000000 --- a/analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfLocalFunction.txt +++ /dev/null @@ -1,135 +0,0 @@ -RAW_FIR: -FILE: typeParameterOfLocalFunction.kt - public? final? [RAW_FIR] fun ddd(): R|kotlin/Unit| { - local final? [RAW_FIR] fun kkk(): R|kotlin/Unit| { - } - - } - -IMPORTS: -FILE: typeParameterOfLocalFunction.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun kkk(): R|kotlin/Unit| { - } - - } - -SUPER_TYPES: -FILE: typeParameterOfLocalFunction.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun kkk(): R|kotlin/Unit| { - } - - } - -TYPES: -FILE: typeParameterOfLocalFunction.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun kkk(): R|kotlin/Unit| { - } - - } - -STATUS: -FILE: typeParameterOfLocalFunction.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun kkk(): R|kotlin/Unit| { - } - - } - -ARGUMENTS_OF_ANNOTATIONS: -FILE: typeParameterOfLocalFunction.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun kkk(): R|kotlin/Unit| { - } - - } - -CONTRACTS: -FILE: typeParameterOfLocalFunction.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun kkk(): R|kotlin/Unit| { - } - - } - -IMPLICIT_TYPES_BODY_RESOLVE: -FILE: typeParameterOfLocalFunction.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun kkk(): R|kotlin/Unit| { - } - - } - -BODY_RESOLVE: -FILE: typeParameterOfLocalFunction.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun kkk(): R|kotlin/Unit| { - } - - } - -NoResolve: -FILE: typeParameterOfLocalFunction.kt - public? final? [RAW_FIR] fun ddd(): R|kotlin/Unit| { - local final? [RAW_FIR] fun kkk(): R|kotlin/Unit| { - } - - } - -BodyResolveWithChildren: -FILE: typeParameterOfLocalFunction.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun kkk(): R|kotlin/Unit| { - } - - } - -AnnotationType: -FILE: typeParameterOfLocalFunction.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun kkk(): R|kotlin/Unit| { - } - - } - -AnnotationsArguments: -FILE: typeParameterOfLocalFunction.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun kkk(): R|kotlin/Unit| { - } - - } - -DeclarationStatus: -FILE: typeParameterOfLocalFunction.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun kkk(): R|kotlin/Unit| { - } - - } - -ValueParametersTypes: -FILE: typeParameterOfLocalFunction.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun kkk(): R|kotlin/Unit| { - } - - } - -TypeParametersTypes: -FILE: typeParameterOfLocalFunction.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun kkk(): R|kotlin/Unit| { - } - - } - -FILE RAW TO BODY: -FILE: typeParameterOfLocalFunction.kt - public final [BODY_RESOLVE] fun ddd(): R|kotlin/Unit| { - local final [BODY_RESOLVE] fun kkk(): R|kotlin/Unit| { - } - - } diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyDeclarationResolveTest.kt b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyDeclarationResolveTest.kt index db504c16382..ddace68fe43 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyDeclarationResolveTest.kt +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/AbstractFirLazyDeclarationResolveTest.kt @@ -6,7 +6,6 @@ package org.jetbrains.kotlin.analysis.low.level.api.fir import org.jetbrains.kotlin.analysis.low.level.api.fir.api.withFirDeclaration -import org.jetbrains.kotlin.analysis.low.level.api.fir.lazy.resolve.ResolveType import org.jetbrains.kotlin.analysis.low.level.api.fir.test.base.AbstractLowLevelApiSingleFileTest import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.FirRenderer @@ -16,6 +15,7 @@ import org.jetbrains.kotlin.fir.render import org.jetbrains.kotlin.fir.visitors.FirVisitorVoid import org.jetbrains.kotlin.psi.KtDeclaration import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.psi.KtVisitorVoid import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder import org.jetbrains.kotlin.test.directives.ConfigurationDirectives import org.jetbrains.kotlin.test.services.TestModuleStructure @@ -66,30 +66,6 @@ abstract class AbstractFirLazyDeclarationResolveTest : AbstractLowLevelApiSingle } } - for (resolveType in ResolveType.values()) { - resolveWithClearCaches(ktFile) { firModuleResolveState -> - check(firModuleResolveState is FirModuleResolveStateImpl) - val declarationToResolve = firModuleResolveState - .getOrBuildFirFile(ktFile) - .findResolveMe() - - when (resolveType) { - ResolveType.CallableReturnType, - ResolveType.CallableBodyResolve, - ResolveType.CallableContracts -> if (declarationToResolve !is FirCallableDeclaration) return@resolveWithClearCaches - ResolveType.ClassSuperTypes -> if (declarationToResolve !is FirClassLikeDeclaration) return@resolveWithClearCaches - else -> { - } - } - - declarationToResolve.withFirDeclaration(resolveType, firModuleResolveState) { - val firFile = firModuleResolveState.getOrBuildFirFile(ktFile) - resultBuilder.append("\n${resolveType.name}:\n") - resultBuilder.append(firFile.render(rendererOption)) - } - } - } - resolveWithClearCaches(ktFile) { firModuleResolveState -> check(firModuleResolveState is FirModuleResolveStateImpl) val firFile = firModuleResolveState.getOrBuildFirFile(ktFile) diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirLazyDeclarationResolveTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirLazyDeclarationResolveTestGenerated.java index 52359b45143..000343a60db 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirLazyDeclarationResolveTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/FirLazyDeclarationResolveTestGenerated.java @@ -54,24 +54,6 @@ public class FirLazyDeclarationResolveTestGenerated extends AbstractFirLazyDecla runTest("analysis/low-level-api-fir/testdata/lazyResolve/functionWithParameter.kt"); } - @Test - @TestMetadata("localDeclaration.kt") - public void testLocalDeclaration() throws Exception { - runTest("analysis/low-level-api-fir/testdata/lazyResolve/localDeclaration.kt"); - } - - @Test - @TestMetadata("localFunction.kt") - public void testLocalFunction() throws Exception { - runTest("analysis/low-level-api-fir/testdata/lazyResolve/localFunction.kt"); - } - - @Test - @TestMetadata("parameterOfLocalSetter.kt") - public void testParameterOfLocalSetter() throws Exception { - runTest("analysis/low-level-api-fir/testdata/lazyResolve/parameterOfLocalSetter.kt"); - } - @Test @TestMetadata("parameterOfNonLocalSetter.kt") public void testParameterOfNonLocalSetter() throws Exception { @@ -132,12 +114,6 @@ public class FirLazyDeclarationResolveTestGenerated extends AbstractFirLazyDecla runTest("analysis/low-level-api-fir/testdata/lazyResolve/topLevelFunctionsWithImplicitType.kt"); } - @Test - @TestMetadata("typeParameterOfLocalFunction.kt") - public void testTypeParameterOfLocalFunction() throws Exception { - runTest("analysis/low-level-api-fir/testdata/lazyResolve/typeParameterOfLocalFunction.kt"); - } - @Test @TestMetadata("typeParameterOfNonLocalFunction.kt") public void testTypeParameterOfNonLocalFunction() throws Exception {