From a41205fff78328aab71d8b5ac43b437a80222fde Mon Sep 17 00:00:00 2001 From: Dmitry Jemerov Date: Wed, 27 May 2015 18:18:19 +0200 Subject: [PATCH] Allow calling KotlinCacheService.getResolutionFacade() with an empty set of Kotlin files. This is needed in Dokka, where a project to be documented can contain only Java files, but we will still attempt to resolve links in Markdown files containing package documentation through the KDoc reference resolver. The attempts will fail when there are no Kotlin files, but at least we won't crash trying to retrieve the first element of an empty list. --- .../kotlin/idea/caches/resolve/KotlinCacheService.kt | 7 ++++++- .../kotlin/idea/project/TargetPlatformDetector.java | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinCacheService.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinCacheService.kt index 18459138d21..3c063f6712a 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinCacheService.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinCacheService.kt @@ -202,7 +202,12 @@ public class KotlinCacheService(val project: Project) { getCacheForSyntheticFiles(syntheticFiles) } else { - getGlobalCache(TargetPlatformDetector.getPlatform(files.first())) + val firstFile = files.firstOrNull() + val targetPlatform = if (firstFile != null) + TargetPlatformDetector.getPlatform(firstFile) + else + TargetPlatformDetector.getDefaultPlatform() + getGlobalCache(targetPlatform) } } diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/TargetPlatformDetector.java b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/TargetPlatformDetector.java index 9d64749e8d3..9d347425240 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/TargetPlatformDetector.java +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/TargetPlatformDetector.java @@ -53,7 +53,7 @@ public class TargetPlatformDetector { } @NotNull - private static TargetPlatform getDefaultPlatform() { + public static TargetPlatform getDefaultPlatform() { LOG.info("Using default platform"); return TargetPlatform.JVM; }