Introduce FIR resolution API with lazy resolve to use in IDE

Now lazy resolve atomic element is a file (declaration-level resolve)
or a callable declaration (expression-level resolve)

#KT-24351 In Progress
This commit is contained in:
Mikhail Glukhikh
2019-07-26 21:25:57 +03:00
parent 1cd559a626
commit 760fb668bb
29 changed files with 683 additions and 35 deletions
@@ -15,6 +15,7 @@ import org.jetbrains.kotlin.fir.resolve.FirSymbolProvider
import org.jetbrains.kotlin.fir.resolve.impl.FirCompositeSymbolProvider
import org.jetbrains.kotlin.fir.resolve.impl.FirDependenciesSymbolProviderImpl
import org.jetbrains.kotlin.fir.resolve.impl.FirLibrarySymbolProviderImpl
import org.jetbrains.kotlin.fir.resolve.impl.FirProviderImpl
import org.jetbrains.kotlin.fir.scopes.impl.FirClassDeclaredMemberScopeProvider
import org.jetbrains.kotlin.fir.types.FirCorrespondingSupertypesCache
import org.jetbrains.kotlin.load.java.JavaClassFinder
@@ -33,6 +34,8 @@ class FirJavaModuleBasedSession(
init {
sessionProvider.sessionCache[moduleInfo] = this
val firProvider = FirProviderImpl(this)
registerComponent(FirProvider::class, firProvider)
registerComponent(
FirSymbolProvider::class,