diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt index f433e3b6d2e..06b6b351346 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt @@ -151,6 +151,3 @@ abstract class PlatformConfigurator( fun createContainer(id: String, platform: TargetPlatform, init: StorageComponentContainer.() -> Unit) = composeContainer(id, platform.platformConfigurator.platformSpecificContainer, init) - - -var KtFile.targetPlatform: TargetPlatform? by UserDataProperty(Key.create("TARGET_PLATFORM")) \ No newline at end of file diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt.as32 b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt.as32 index bf033e0c340..77d0b26050d 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt.as32 +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/TargetPlatform.kt.as32 @@ -146,6 +146,3 @@ abstract class PlatformConfigurator( fun createContainer(id: String, platform: TargetPlatform, init: StorageComponentContainer.() -> Unit) = composeContainer(id, platform.platformConfigurator.platformSpecificContainer, init) - - -var KtFile.targetPlatform: TargetPlatform? by UserDataProperty(Key.create("TARGET_PLATFORM")) \ No newline at end of file diff --git a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/Platform.kt b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/Platform.kt index 841024dbdf6..a55ddf4f2e2 100644 --- a/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/Platform.kt +++ b/idea/idea-analysis/src/org/jetbrains/kotlin/idea/project/Platform.kt @@ -37,6 +37,8 @@ import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCommonCompilerArgu import org.jetbrains.kotlin.idea.compiler.configuration.KotlinCompilerSettings import org.jetbrains.kotlin.idea.facet.getLibraryLanguageLevel import org.jetbrains.kotlin.psi.KtElement +import org.jetbrains.kotlin.psi.KtFile +import org.jetbrains.kotlin.psi.UserDataProperty import org.jetbrains.kotlin.resolve.TargetPlatform import org.jetbrains.kotlin.utils.Jsr305State @@ -46,6 +48,8 @@ val KtElement.platform: TargetPlatform val KtElement.builtIns: KotlinBuiltIns get() = getResolutionFacade().moduleDescriptor.builtIns +var KtFile.forcedTargetPlatform: TargetPlatform? by UserDataProperty(Key.create("FORCED_TARGET_PLATFORM")) + fun Module.getAndCacheLanguageLevelByDependencies(): LanguageVersion { val facetSettings = KotlinFacetSettingsProvider.getInstance(project).getInitializedSettings(this) val languageLevel = getLibraryLanguageLevel(this, null, facetSettings.targetPlatformKind) 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 92685b0749b..493815596ba 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 @@ -27,7 +27,6 @@ import org.jetbrains.kotlin.psi.KtCodeFragment; import org.jetbrains.kotlin.psi.KtFile; import org.jetbrains.kotlin.psi.KtPsiFactoryKt; import org.jetbrains.kotlin.resolve.TargetPlatform; -import org.jetbrains.kotlin.resolve.TargetPlatformKt; import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform; public class TargetPlatformDetector { @@ -39,7 +38,7 @@ public class TargetPlatformDetector { @NotNull public static TargetPlatform getPlatform(@NotNull KtFile file) { - TargetPlatform explicitPlatform = TargetPlatformKt.getTargetPlatform(file); + TargetPlatform explicitPlatform = PlatformKt.getForcedTargetPlatform(file); if (explicitPlatform != null) return explicitPlatform; if (file instanceof KtCodeFragment) { diff --git a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/moveConflictUtils.kt b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/moveConflictUtils.kt index bb1e554d44a..fc0b317dd81 100644 --- a/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/moveConflictUtils.kt +++ b/idea/src/org/jetbrains/kotlin/idea/refactoring/move/moveDeclarations/moveConflictUtils.kt @@ -49,6 +49,7 @@ import org.jetbrains.kotlin.idea.codeInsight.DescriptorToSourceUtilsIde import org.jetbrains.kotlin.idea.core.isInTestSourceContentKotlinAware import org.jetbrains.kotlin.idea.imports.importableFqName import org.jetbrains.kotlin.idea.project.TargetPlatformDetector +import org.jetbrains.kotlin.idea.project.forcedTargetPlatform import org.jetbrains.kotlin.idea.refactoring.getUsageContext import org.jetbrains.kotlin.idea.refactoring.move.KotlinMoveUsage import org.jetbrains.kotlin.idea.search.and @@ -72,7 +73,6 @@ import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode import org.jetbrains.kotlin.resolve.lazy.descriptors.findPackageFragmentForFile import org.jetbrains.kotlin.resolve.source.KotlinSourceElement import org.jetbrains.kotlin.resolve.source.getPsi -import org.jetbrains.kotlin.resolve.targetPlatform import org.jetbrains.kotlin.util.isJavaDescriptor import org.jetbrains.kotlin.utils.SmartSet import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull @@ -290,7 +290,7 @@ class MoveConflictChecker( val targetModuleInfo = getModuleInfoByVirtualFile(project, targetScope) val dummyFile = KtPsiFactory(targetElement.project).createFile("dummy.kt", "").apply { moduleInfo = targetModuleInfo - targetPlatform = TargetPlatformDetector.getPlatform(targetModule) + forcedTargetPlatform = TargetPlatformDetector.getPlatform(targetModule) } val newTargetDescriptors = dummyFile.resolveImportReference(fqName) diff --git a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/AbstractCodeInsightActionTest.kt b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/AbstractCodeInsightActionTest.kt index 0ae4e7c5f6f..92eeadaaca0 100644 --- a/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/AbstractCodeInsightActionTest.kt +++ b/idea/tests/org/jetbrains/kotlin/idea/codeInsight/generate/AbstractCodeInsightActionTest.kt @@ -25,6 +25,7 @@ import com.intellij.testFramework.PlatformTestUtil import com.intellij.testFramework.TestActionEvent import junit.framework.ComparisonFailure import junit.framework.TestCase +import org.jetbrains.kotlin.idea.project.forcedTargetPlatform import org.jetbrains.kotlin.idea.test.ConfigLibraryUtil import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor @@ -32,7 +33,6 @@ import org.jetbrains.kotlin.js.resolve.JsPlatform import org.jetbrains.kotlin.psi.KtFile import org.jetbrains.kotlin.resolve.TargetPlatform import org.jetbrains.kotlin.resolve.jvm.platform.JvmPlatform -import org.jetbrains.kotlin.resolve.targetPlatform import org.jetbrains.kotlin.test.InTextDirectivesUtils import org.jetbrains.kotlin.test.KotlinTestUtils import java.io.File @@ -94,7 +94,7 @@ abstract class AbstractCodeInsightActionTest : KotlinLightCodeInsightFixtureTest "Common" -> TargetPlatform.Common else -> error("Unexpected platform name: $targetPlatformName") } - mainPsiFile.targetPlatform = targetPlatform + mainPsiFile.forcedTargetPlatform = targetPlatform } val action = createAction(fileText) @@ -122,7 +122,7 @@ abstract class AbstractCodeInsightActionTest : KotlinLightCodeInsightFixtureTest KotlinTestUtils.assertEqualsToFile(conflictFile, e.message!!) } finally { - mainPsiFile?.targetPlatform = null + mainPsiFile?.forcedTargetPlatform = null ConfigLibraryUtil.unconfigureLibrariesByDirective(myModule, fileText) } }