Get platform for scripts from script definition

Introduce 'platform' property in KotlinScripDefinition (should have a value which exists in TargetPlatform.ALL_KINDS)

^KT-27684 Fixed
This commit is contained in:
Natalia Selezneva
2018-12-21 16:37:13 +03:00
parent 0188cd5330
commit f3c828a17d
8 changed files with 122 additions and 0 deletions
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.idea.project.languageVersionSettings
import org.jetbrains.kotlin.idea.util.module
import org.jetbrains.kotlin.load.java.JvmAbi
import org.jetbrains.kotlin.psi.KtElement
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.resolve.calls.callUtil.getCall
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
@@ -49,6 +50,11 @@ class IdeaKotlinUastResolveProviderService : KotlinUastResolveProviderService {
}
override fun isJvmElement(psiElement: PsiElement): Boolean {
val containingFile = psiElement.containingFile
if (containingFile is KtFile) {
return TargetPlatformDetector.getPlatform(containingFile) is JvmPlatform
}
val module = psiElement.module
return module == null || TargetPlatformDetector.getPlatform(module) is JvmPlatform
}
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.idea.project.languageVersionSettings
import org.jetbrains.kotlin.idea.util.module
import org.jetbrains.kotlin.load.java.JvmAbi
import org.jetbrains.kotlin.psi.KtElement
import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
import org.jetbrains.uast.kotlin.KotlinUastResolveProviderService
@@ -45,6 +46,11 @@ class IdeaKotlinUastResolveProviderService : KotlinUastResolveProviderService {
}
override fun isJvmElement(psiElement: PsiElement): Boolean {
val containingFile = psiElement.containingFile
if (containingFile is KtFile) {
return TargetPlatformDetector.getPlatform(containingFile) is JvmPlatform
}
val module = psiElement.module
return module == null || TargetPlatformDetector.getPlatform(module) is JvmPlatform
}