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,
): FileStructureElement = when {
ktDeclaration is KtNamedFunction && ktDeclaration.name != null && ktDeclaration.hasExplicitTypeOrUnit ->
IncrementallyReanalyzableFunction(
ReanalyzableFunctionStructureElement(
firFile,
ktDeclaration,
(firDeclaration as FirSimpleFunction).symbol,
ktDeclaration.modificationStamp
)
else -> NonLocalDeclarationFileStructureElement(
else -> NonReanalyzableDeclarationStructureElement(
firFile,
firDeclaration,
ktDeclaration,
@@ -45,6 +45,6 @@ internal object FileElementFactory {
else -> false
}
val KtNamedFunction.hasExplicitTypeOrUnit
private val KtNamedFunction.hasExplicitTypeOrUnit
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.providers.firIdeProvider
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.name.FqName
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.containingClassOrObject
import org.jetbrains.kotlin.psi.psiUtil.forEachDescendantOfType
import java.util.concurrent.ConcurrentHashMap
@@ -97,7 +94,7 @@ internal class FileStructure(
FirResolvePhase.IMPORTS,
checkPCE = true
)
FileWithoutDeclarationsFileStructureElement(
RootStructureElement(
firFile,
container,
)
@@ -64,7 +64,7 @@ internal sealed class ReanalyzableStructureElement<KT : KtDeclaration> : FileStr
}
}
internal class IncrementallyReanalyzableFunction(
internal class ReanalyzableFunctionStructureElement(
override val firFile: FirFile,
override val psi: KtNamedFunction,
override val firSymbol: FirFunctionSymbol<*>,
@@ -90,7 +90,7 @@ internal class IncrementallyReanalyzableFunction(
cache: ModuleFileCache,
firLazyDeclarationResolver: FirLazyDeclarationResolver,
firIdeProvider: FirIdeProvider,
): IncrementallyReanalyzableFunction {
): ReanalyzableFunctionStructureElement {
val newFunction = firIdeProvider.buildFunctionWithBody(newKtDeclaration) as FirSimpleFunction
val originalFunction = firSymbol.fir as FirSimpleFunction
@@ -108,7 +108,7 @@ internal class IncrementallyReanalyzableFunction(
reresolveFile = true,
)
return cache.firFileLockProvider.withReadLock(firFile) {
IncrementallyReanalyzableFunction(
ReanalyzableFunctionStructureElement(
firFile,
newKtDeclaration,
newFunction.symbol,
@@ -124,7 +124,7 @@ internal class IncrementallyReanalyzableFunction(
}
}
internal class NonLocalDeclarationFileStructureElement(
internal class NonReanalyzableDeclarationStructureElement(
override val firFile: FirFile,
fir: FirDeclaration,
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 psi: KtFile,
) : FileStructureElement() {