diff options
author | Simon Ogorodnik <Simon.Ogorodnik@jetbrains.com> | 2017-10-09 18:50:54 +0300 |
---|---|---|
committer | Simon Ogorodnik <Simon.Ogorodnik@jetbrains.com> | 2017-10-09 18:50:54 +0300 |
commit | c202931be1fc2a0e57ad1cb26931b80055b9df65 (patch) | |
tree | 239ef08090ee0f8979dca0448ea85e1817fdaebd /core/src/main/kotlin/Analysis/AnalysisEnvironment.kt | |
parent | aa3534c8e13f69ebb2700f24065cdb0c3f14b512 (diff) | |
download | dokka-c202931be1fc2a0e57ad1cb26931b80055b9df65.tar.gz dokka-c202931be1fc2a0e57ad1cb26931b80055b9df65.tar.bz2 dokka-c202931be1fc2a0e57ad1cb26931b80055b9df65.zip |
Update kotlin-compiler to 1.1.51
Diffstat (limited to 'core/src/main/kotlin/Analysis/AnalysisEnvironment.kt')
-rw-r--r-- | core/src/main/kotlin/Analysis/AnalysisEnvironment.kt | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt b/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt index 1a6ccbd0..be4285c0 100644 --- a/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt +++ b/core/src/main/kotlin/Analysis/AnalysisEnvironment.kt @@ -12,15 +12,20 @@ import com.intellij.openapi.roots.OrderEnumerationHandler import com.intellij.openapi.roots.ProjectFileIndex import com.intellij.openapi.roots.ProjectRootManager import com.intellij.openapi.util.Disposer +import com.intellij.openapi.vfs.StandardFileSystems +import com.intellij.openapi.vfs.VirtualFileManager import com.intellij.psi.PsiElement import com.intellij.psi.search.GlobalSearchScope +import com.intellij.util.io.URLUtil import org.jetbrains.kotlin.analyzer.* import org.jetbrains.kotlin.cli.common.CLIConfigurationKeys import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.cli.jvm.compiler.EnvironmentConfigFiles import org.jetbrains.kotlin.cli.jvm.compiler.JvmPackagePartProvider import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreEnvironment +import org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM import org.jetbrains.kotlin.cli.jvm.config.* +import org.jetbrains.kotlin.cli.jvm.index.JavaRoot import org.jetbrains.kotlin.config.* import org.jetbrains.kotlin.container.getService import org.jetbrains.kotlin.context.ProjectContext @@ -35,10 +40,9 @@ import org.jetbrains.kotlin.psi.KtElement import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.BindingContext import org.jetbrains.kotlin.resolve.CompilerEnvironment -import org.jetbrains.kotlin.resolve.MultiTargetPlatform import org.jetbrains.kotlin.resolve.jvm.JvmAnalyzerFacade import org.jetbrains.kotlin.resolve.jvm.JvmPlatformParameters -import org.jetbrains.kotlin.resolve.jvm.TopDownAnalyzerFacadeForJVM +import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.kotlin.resolve.lazy.ResolveSession import java.io.File @@ -109,7 +113,14 @@ class AnalysisEnvironment(val messageCollector: MessageCollector) : Disposable { val builtIns = JvmBuiltIns(projectContext.storageManager) - val resolverForProject = AnalyzerFacade.setupResolverForProject( + + val javaRoots = run { + val jvfs = VirtualFileManager.getInstance().getFileSystem(StandardFileSystems.JAR_PROTOCOL) + + classpath.map { JavaRoot(jvfs.findFileByPath("${it.absolutePath}${URLUtil.JAR_SEPARATOR}")!!, JavaRoot.RootType.BINARY) } + } + + val resolverForProject = ResolverForProjectImpl( "Dokka", projectContext, listOf(library, module), @@ -129,12 +140,13 @@ class AnalysisEnvironment(val messageCollector: MessageCollector) : Disposable { library }, CompilerEnvironment, - packagePartProviderFactory = { - info, content -> - JvmPackagePartProvider(environment, content.moduleContentScope) + packagePartProviderFactory = { info, content -> + JvmPackagePartProvider(LanguageVersionSettingsImpl.DEFAULT, content.moduleContentScope).apply { + addRoots(javaRoots) + } }, - builtIns = { builtIns }, - modulePlatforms = { MultiTargetPlatform.Specific("JVM") } + builtIns = builtIns, + modulePlatforms = { JvmPlatform.multiTargetPlatform } ) resolverForProject.resolverForModule(library) // Required before module to initialize library properly @@ -209,6 +221,10 @@ fun contentRootFromPath(path: String): ContentRoot { class DokkaResolutionFacade(override val project: Project, override val moduleDescriptor: ModuleDescriptor, val resolverForModule: ResolverForModule) : ResolutionFacade { + override fun <T : Any> tryGetFrontendService(element: PsiElement, serviceClass: Class<T>): T? { + return null + } + override fun resolveToDescriptor(declaration: KtDeclaration, bodyResolveMode: BodyResolveMode): DeclarationDescriptor { return resolveSession.resolveToDescriptor(declaration) } |