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
}
}