diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/IdeaModuleInfos.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/IdeaModuleInfos.kt index a4873eb2716..282c74d4d0f 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/IdeaModuleInfos.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/project/IdeaModuleInfos.kt @@ -48,7 +48,8 @@ import java.util.* internal val LOG = Logger.getInstance(IdeaModuleInfo::class.java) -interface IdeaModuleInfo : ModuleInfo { +@Suppress("DEPRECATION_ERROR") +interface IdeaModuleInfo : org.jetbrains.kotlin.idea.caches.resolve.IdeaModuleInfo { fun contentScope(): GlobalSearchScope val moduleOrigin: ModuleOrigin @@ -179,9 +180,9 @@ data class ModuleProductionSourceInfo internal constructor( } //TODO: (module refactoring) do not create ModuleTestSourceInfo when there are no test roots for module -data class ModuleTestSourceInfo internal constructor( - override val module: Module -) : ModuleSourceInfoWithExpectedBy(forProduction = false) { +@Suppress("DEPRECATION_ERROR") +data class ModuleTestSourceInfo internal constructor(override val module: Module) : + ModuleSourceInfoWithExpectedBy(forProduction = false), org.jetbrains.kotlin.idea.caches.resolve.ModuleTestSourceInfo { override val name = Name.special("") diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinCacheServiceImpl.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinCacheServiceImpl.kt index 79c16e2feb0..8f55538c9e0 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinCacheServiceImpl.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/KotlinCacheServiceImpl.kt @@ -36,6 +36,7 @@ import org.jetbrains.kotlin.context.GlobalContext import org.jetbrains.kotlin.context.GlobalContextImpl import org.jetbrains.kotlin.descriptors.annotations.AnnotationDescriptor import org.jetbrains.kotlin.idea.caches.project.* +import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo import org.jetbrains.kotlin.idea.caches.resolve.util.contextWithNewLockAndCompositeExceptionTracker import org.jetbrains.kotlin.idea.compiler.IDELanguageSettingsProvider import org.jetbrains.kotlin.idea.core.script.ScriptDependenciesModificationTracker diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ModuleTestSourceInfo.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ModuleTestSourceInfo.kt new file mode 100644 index 00000000000..8c797c4826c --- /dev/null +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ModuleTestSourceInfo.kt @@ -0,0 +1,36 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ +@file:JvmName("GetModuleInfoKt") +@file:Suppress("DEPRECATION_ERROR") + +package org.jetbrains.kotlin.idea.caches.resolve + +import com.intellij.psi.PsiElement +import org.jetbrains.kotlin.analyzer.ModuleInfo +import org.jetbrains.kotlin.idea.caches.project.getNullableModuleInfo as getNullableModuleInfoNew + +@Deprecated( + "Temporary interface to support binary compatibility in other plugins. " + + "Works only for instanceof check. Will be removed in Kotlin plugin bundled to 2018.2.", + ReplaceWith("org.jetbrains.kotlin.idea.caches.project.ModuleTestSourceInfo"), + level = DeprecationLevel.ERROR +) +interface IdeaModuleInfo : ModuleInfo + +@Deprecated( + "Temporary interface to support binary compatibility in other plugins. " + + "Works only for instanceof check. Will be removed in Kotlin plugin bundled to 2018.2.", + ReplaceWith("org.jetbrains.kotlin.idea.caches.project.ModuleTestSourceInfo"), + level = DeprecationLevel.ERROR +) +interface ModuleTestSourceInfo : IdeaModuleInfo + +@Deprecated( + "Temporary function to support binary compatibility after for other plugins after move." + + "Will be removed in Kotlin plugin bundled to 2018.2.", + ReplaceWith("org.jetbrains.kotlin.idea.caches.project.getNullableModuleInfo"), + level = DeprecationLevel.ERROR +) +fun PsiElement.getNullableModuleInfo(): IdeaModuleInfo? = getNullableModuleInfoNew() diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ProjectResolutionFacade.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ProjectResolutionFacade.kt index 4287661d591..b0176d3a9bd 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ProjectResolutionFacade.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/caches/resolve/ProjectResolutionFacade.kt @@ -31,6 +31,8 @@ import org.jetbrains.kotlin.context.GlobalContextImpl import org.jetbrains.kotlin.context.withProject import org.jetbrains.kotlin.descriptors.ModuleDescriptor import org.jetbrains.kotlin.idea.caches.project.* +import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo +import org.jetbrains.kotlin.idea.caches.project.getNullableModuleInfo import org.jetbrains.kotlin.idea.compiler.IDELanguageSettingsProvider import org.jetbrains.kotlin.idea.project.IdeaEnvironment import org.jetbrains.kotlin.load.java.structure.JavaClass diff --git a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeaModuleInfoTest.kt b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeaModuleInfoTest.kt index 24bc81b16fc..080befdc306 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeaModuleInfoTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/caches/resolve/IdeaModuleInfoTest.kt @@ -33,6 +33,8 @@ import com.intellij.testFramework.PsiTestUtil import com.intellij.testFramework.UsefulTestCase import org.jetbrains.kotlin.codegen.forTestCompile.ForTestCompileRuntime import org.jetbrains.kotlin.idea.caches.project.* +import org.jetbrains.kotlin.idea.caches.project.IdeaModuleInfo +import org.jetbrains.kotlin.idea.caches.project.ModuleTestSourceInfo import org.jetbrains.kotlin.idea.framework.CommonLibraryKind import org.jetbrains.kotlin.idea.framework.JSLibraryKind import org.jetbrains.kotlin.idea.test.PluginTestCaseBase.*