[FIR] Mark all session components respectively to they have mutable state or not

Also add documentation for all fir annotations
This commit is contained in:
Dmitriy Novozhilov
2020-09-08 16:34:39 +03:00
parent 8686e3779e
commit 1a84ec9677
34 changed files with 117 additions and 30 deletions
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.idea.fir.low.level.api
import org.jetbrains.kotlin.fir.ThreadSafeMutableState
import org.jetbrains.kotlin.fir.declarations.FirDeclaration
import org.jetbrains.kotlin.fir.declarations.FirResolvePhase
import org.jetbrains.kotlin.fir.render
@@ -14,6 +15,7 @@ import org.jetbrains.kotlin.fir.symbols.AbstractFirBasedSymbol
import org.jetbrains.kotlin.idea.fir.low.level.api.file.builder.ModuleFileCache
import org.jetbrains.kotlin.idea.fir.low.level.api.lazy.resolve.FirLazyDeclarationResolver
@ThreadSafeMutableState
internal class IdeFirPhaseManager(
private val lazyDeclarationResolver: FirLazyDeclarationResolver,
private val cache: ModuleFileCache
@@ -7,9 +7,11 @@ package org.jetbrains.kotlin.idea.fir.low.level.api
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.FirSessionComponent
import org.jetbrains.kotlin.fir.NoMutableState
import org.jetbrains.kotlin.fir.backend.jvm.FirJvmKotlinMangler
import org.jetbrains.kotlin.fir.signaturer.FirBasedSignatureComposer
@NoMutableState
data class IdeSessionComponents(val signatureComposer: FirBasedSignatureComposer): FirSessionComponent {
companion object {
fun create(session: FirSession) = IdeSessionComponents(
@@ -8,6 +8,8 @@ package org.jetbrains.kotlin.idea.fir.low.level.api.providers
import com.intellij.openapi.project.Project
import com.intellij.psi.search.GlobalSearchScope
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.NoMutableState
import org.jetbrains.kotlin.fir.ThreadSafeMutableState
import org.jetbrains.kotlin.fir.builder.RawFirBuilder
import org.jetbrains.kotlin.fir.declarations.*
import org.jetbrains.kotlin.fir.declarations.synthetic.FirSyntheticProperty
@@ -30,6 +32,7 @@ import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.KtNamedFunction
@ThreadSafeMutableState
internal class FirIdeProvider(
project: Project,
val session: FirSession,
@@ -116,6 +119,7 @@ internal class FirIdeProvider(
return emptySet()
}
@NoMutableState
private inner class SymbolProvider : FirSymbolProvider(session) {
override fun getTopLevelCallableSymbols(packageFqName: FqName, name: Name): List<FirCallableSymbol<*>> =
providerHelper.getTopLevelCallableSymbols(packageFqName, name)