FIR IDE: refactor, simplify structure element class names

This commit is contained in:
Ilya Kirillov
2020-11-05 08:54:37 +03:00
parent 15277c0974
commit ff7857a812
3 changed files with 9 additions and 12 deletions
@@ -21,14 +21,14 @@ internal object FileElementFactory {
firFile: FirFile, firFile: FirFile,
): FileStructureElement = when { ): FileStructureElement = when {
ktDeclaration is KtNamedFunction && ktDeclaration.name != null && ktDeclaration.hasExplicitTypeOrUnit -> ktDeclaration is KtNamedFunction && ktDeclaration.name != null && ktDeclaration.hasExplicitTypeOrUnit ->
IncrementallyReanalyzableFunction( ReanalyzableFunctionStructureElement(
firFile, firFile,
ktDeclaration, ktDeclaration,
(firDeclaration as FirSimpleFunction).symbol, (firDeclaration as FirSimpleFunction).symbol,
ktDeclaration.modificationStamp ktDeclaration.modificationStamp
) )
else -> NonLocalDeclarationFileStructureElement( else -> NonReanalyzableDeclarationStructureElement(
firFile, firFile,
firDeclaration, firDeclaration,
ktDeclaration, ktDeclaration,
@@ -45,6 +45,6 @@ internal object FileElementFactory {
else -> false else -> false
} }
val KtNamedFunction.hasExplicitTypeOrUnit private val KtNamedFunction.hasExplicitTypeOrUnit
get() = hasBlockBody() || typeReference != null get() = hasBlockBody() || typeReference != null
} }
@@ -13,11 +13,8 @@ import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache
import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.FirLazyDeclarationResolver import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.FirLazyDeclarationResolver
import org.jetbrains.kotlin.idea.fir.low.level.api.providers.firIdeProvider import org.jetbrains.kotlin.idea.fir.low.level.api.providers.firIdeProvider
import org.jetbrains.kotlin.idea.fir.low.level.api.util.findSourceNonLocalFirDeclaration import org.jetbrains.kotlin.idea.fir.low.level.api.util.findSourceNonLocalFirDeclaration
import org.jetbrains.kotlin.idea.search.getKotlinFqName
import org.jetbrains.kotlin.idea.util.getElementTextInContext import org.jetbrains.kotlin.idea.util.getElementTextInContext
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.psi.* import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
import org.jetbrains.kotlin.psi.psiUtil.forEachDescendantOfType import org.jetbrains.kotlin.psi.psiUtil.forEachDescendantOfType
import java.util.concurrent.ConcurrentHashMap import java.util.concurrent.ConcurrentHashMap
@@ -97,7 +94,7 @@ internal class FileStructure(
FirResolvePhase.IMPORTS, FirResolvePhase.IMPORTS,
checkPCE = true checkPCE = true
) )
FileWithoutDeclarationsFileStructureElement( RootStructureElement(
firFile, firFile,
container, container,
) )
@@ -64,7 +64,7 @@ internal sealed class ReanalyzableStructureElement<KT : KtDeclaration> : FileStr
} }
} }
internal class IncrementallyReanalyzableFunction( internal class ReanalyzableFunctionStructureElement(
override val firFile: FirFile, override val firFile: FirFile,
override val psi: KtNamedFunction, override val psi: KtNamedFunction,
override val firSymbol: FirFunctionSymbol<*>, override val firSymbol: FirFunctionSymbol<*>,
@@ -90,7 +90,7 @@ internal class IncrementallyReanalyzableFunction(
cache: ModuleFileCache, cache: ModuleFileCache,
firLazyDeclarationResolver: FirLazyDeclarationResolver, firLazyDeclarationResolver: FirLazyDeclarationResolver,
firIdeProvider: FirIdeProvider, firIdeProvider: FirIdeProvider,
): IncrementallyReanalyzableFunction { ): ReanalyzableFunctionStructureElement {
val newFunction = firIdeProvider.buildFunctionWithBody(newKtDeclaration) as FirSimpleFunction val newFunction = firIdeProvider.buildFunctionWithBody(newKtDeclaration) as FirSimpleFunction
val originalFunction = firSymbol.fir as FirSimpleFunction val originalFunction = firSymbol.fir as FirSimpleFunction
@@ -108,7 +108,7 @@ internal class IncrementallyReanalyzableFunction(
reresolveFile = true, reresolveFile = true,
) )
return cache.firFileLockProvider.withReadLock(firFile) { return cache.firFileLockProvider.withReadLock(firFile) {
IncrementallyReanalyzableFunction( ReanalyzableFunctionStructureElement(
firFile, firFile,
newKtDeclaration, newKtDeclaration,
newFunction.symbol, newFunction.symbol,
@@ -124,7 +124,7 @@ internal class IncrementallyReanalyzableFunction(
} }
} }
internal class NonLocalDeclarationFileStructureElement( internal class NonReanalyzableDeclarationStructureElement(
override val firFile: FirFile, override val firFile: FirFile,
fir: FirDeclaration, fir: FirDeclaration,
override val psi: KtDeclaration, override val psi: KtDeclaration,
@@ -172,7 +172,7 @@ internal class NonLocalDeclarationFileStructureElement(
} }
internal data class FileWithoutDeclarationsFileStructureElement( internal data class RootStructureElement(
override val firFile: FirFile, override val firFile: FirFile,
override val psi: KtFile, override val psi: KtFile,
) : FileStructureElement() { ) : FileStructureElement() {