diff --git a/compiler/cli/cli-common/cli-common.iml b/compiler/cli/cli-common/cli-common.iml index a44850e98ce..bafec7375bb 100644 --- a/compiler/cli/cli-common/cli-common.iml +++ b/compiler/cli/cli-common/cli-common.iml @@ -10,6 +10,6 @@ - + \ No newline at end of file diff --git a/compiler/util/src/org/jetbrains/kotlin/config/JvmTarget.kt b/compiler/frontend.java/src/org/jetbrains/kotlin/config/JvmTarget.kt similarity index 90% rename from compiler/util/src/org/jetbrains/kotlin/config/JvmTarget.kt rename to compiler/frontend.java/src/org/jetbrains/kotlin/config/JvmTarget.kt index f339829bb64..5591772d556 100644 --- a/compiler/util/src/org/jetbrains/kotlin/config/JvmTarget.kt +++ b/compiler/frontend.java/src/org/jetbrains/kotlin/config/JvmTarget.kt @@ -1,5 +1,5 @@ /* - * Copyright 2010-2016 JetBrains s.r.o. + * Copyright 2010-2017 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -16,10 +16,9 @@ package org.jetbrains.kotlin.config -import org.jetbrains.kotlin.utils.DescriptionAware import org.jetbrains.org.objectweb.asm.Opcodes -enum class JvmTarget(override val description: String) : DescriptionAware { +enum class JvmTarget(override val description: String) : TargetPlatformVersion { JVM_1_6("1.6"), JVM_1_8("1.8"), ; diff --git a/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt b/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt index f7df83ab895..d83e8427666 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/analyzer/AnalyzerFacade.kt @@ -23,6 +23,7 @@ import org.jetbrains.kotlin.builtins.DefaultBuiltIns import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.config.LanguageVersionSettings import org.jetbrains.kotlin.config.LanguageVersionSettingsImpl +import org.jetbrains.kotlin.config.TargetPlatformVersion import org.jetbrains.kotlin.container.ComponentProvider import org.jetbrains.kotlin.context.ModuleContext import org.jetbrains.kotlin.context.ProjectContext @@ -37,7 +38,6 @@ import org.jetbrains.kotlin.resolve.CompilerEnvironment import org.jetbrains.kotlin.resolve.MultiTargetPlatform import org.jetbrains.kotlin.resolve.TargetEnvironment import org.jetbrains.kotlin.resolve.TargetPlatform -import org.jetbrains.kotlin.utils.DescriptionAware import org.jetbrains.kotlin.utils.singletonOrEmptyList import java.util.* @@ -261,15 +261,15 @@ private class DelegatingPackageFragmentProvider( interface LanguageSettingsProvider { fun getLanguageVersionSettings(moduleInfo: ModuleInfo, project: Project): LanguageVersionSettings - fun getTargetPlatform(moduleInfo: ModuleInfo): DescriptionAware + fun getTargetPlatform(moduleInfo: ModuleInfo): TargetPlatformVersion object Default : LanguageSettingsProvider { override fun getLanguageVersionSettings(moduleInfo: ModuleInfo, project: Project) = LanguageVersionSettingsImpl.DEFAULT - override fun getTargetPlatform(moduleInfo: ModuleInfo): DescriptionAware = DescriptionAware.NoVersion + override fun getTargetPlatform(moduleInfo: ModuleInfo): TargetPlatformVersion = TargetPlatformVersion.NoVersion } companion object { fun getInstance(project: Project) = ServiceManager.getService(project, LanguageSettingsProvider::class.java) ?: Default } -} \ No newline at end of file +} diff --git a/compiler/util/src/org/jetbrains/kotlin/config/TargetPlatformVersion.kt b/compiler/util/src/org/jetbrains/kotlin/config/TargetPlatformVersion.kt new file mode 100644 index 00000000000..594342206b0 --- /dev/null +++ b/compiler/util/src/org/jetbrains/kotlin/config/TargetPlatformVersion.kt @@ -0,0 +1,25 @@ +/* + * Copyright 2010-2017 JetBrains s.r.o. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.jetbrains.kotlin.config + +import org.jetbrains.kotlin.utils.DescriptionAware + +interface TargetPlatformVersion : DescriptionAware { + object NoVersion : TargetPlatformVersion { + override val description = "" + } +} diff --git a/compiler/util/src/org/jetbrains/kotlin/utils/DescriptionAware.kt b/compiler/util/src/org/jetbrains/kotlin/utils/DescriptionAware.kt index d5338b60207..e05f9c7be67 100644 --- a/compiler/util/src/org/jetbrains/kotlin/utils/DescriptionAware.kt +++ b/compiler/util/src/org/jetbrains/kotlin/utils/DescriptionAware.kt @@ -14,12 +14,8 @@ * limitations under the License. */ -package org.jetbrains.kotlin.utils; +package org.jetbrains.kotlin.utils interface DescriptionAware { val description: String - - object NoVersion : DescriptionAware { - override val description = "" - } -} \ No newline at end of file +} diff --git a/idea/idea-jps-common/idea-jps-common.iml b/idea/idea-jps-common/idea-jps-common.iml index e38866647e8..8f2dd089f68 100644 --- a/idea/idea-jps-common/idea-jps-common.iml +++ b/idea/idea-jps-common/idea-jps-common.iml @@ -12,5 +12,6 @@ + \ No newline at end of file diff --git a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt index 8dafa4c77e5..392af29446b 100644 --- a/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt +++ b/idea/idea-jps-common/src/org/jetbrains/kotlin/config/KotlinFacetSettings.kt @@ -25,7 +25,7 @@ import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments import org.jetbrains.kotlin.cli.common.arguments.K2MetadataCompilerArguments import org.jetbrains.kotlin.utils.DescriptionAware -sealed class TargetPlatformKind( +sealed class TargetPlatformKind( val version: Version, val name: String ) : DescriptionAware { @@ -39,9 +39,9 @@ sealed class TargetPlatformKind( } } - object JavaScript : TargetPlatformKind(DescriptionAware.NoVersion, "JavaScript") + object JavaScript : TargetPlatformKind(TargetPlatformVersion.NoVersion, "JavaScript") - object Common : TargetPlatformKind(DescriptionAware.NoVersion, "Common (experimental)") + object Common : TargetPlatformKind(TargetPlatformVersion.NoVersion, "Common (experimental)") companion object { val ALL_PLATFORMS: List> by lazy { Jvm.JVM_PLATFORMS + JavaScript + Common } @@ -141,4 +141,4 @@ interface KotlinFacetSettingsProvider { companion object { fun getInstance(project: Project) = ServiceManager.getService(project, KotlinFacetSettingsProvider::class.java)!! } -} \ No newline at end of file +} diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/LanguageVersionSettingsProviderImpl.kt b/idea/src/org/jetbrains/kotlin/idea/compiler/LanguageVersionSettingsProviderImpl.kt index 566fd97de2c..1254741f939 100644 --- a/idea/src/org/jetbrains/kotlin/idea/compiler/LanguageVersionSettingsProviderImpl.kt +++ b/idea/src/org/jetbrains/kotlin/idea/compiler/LanguageVersionSettingsProviderImpl.kt @@ -20,18 +20,18 @@ import com.intellij.openapi.project.Project import org.jetbrains.kotlin.analyzer.LanguageSettingsProvider import org.jetbrains.kotlin.analyzer.ModuleInfo import org.jetbrains.kotlin.config.LanguageVersionSettings +import org.jetbrains.kotlin.config.TargetPlatformVersion import org.jetbrains.kotlin.idea.caches.resolve.ModuleSourceInfo import org.jetbrains.kotlin.idea.project.getLanguageVersionSettings import org.jetbrains.kotlin.idea.project.languageVersionSettings import org.jetbrains.kotlin.idea.project.targetPlatform -import org.jetbrains.kotlin.utils.DescriptionAware class LanguageVersionSettingsProviderImpl : LanguageSettingsProvider { override fun getLanguageVersionSettings(moduleInfo: ModuleInfo, project: Project): LanguageVersionSettings { return (moduleInfo as? ModuleSourceInfo)?.module?.languageVersionSettings ?: project.getLanguageVersionSettings() } - override fun getTargetPlatform(moduleInfo: ModuleInfo): DescriptionAware { - return (moduleInfo as? ModuleSourceInfo)?.module?.targetPlatform?.version ?: DescriptionAware.NoVersion + override fun getTargetPlatform(moduleInfo: ModuleInfo): TargetPlatformVersion { + return (moduleInfo as? ModuleSourceInfo)?.module?.targetPlatform?.version ?: TargetPlatformVersion.NoVersion } }