diff --git a/libraries/scripting/common/build.gradle.kts b/libraries/scripting/common/build.gradle.kts index 335c4b20a36..3e3503941b4 100644 --- a/libraries/scripting/common/build.gradle.kts +++ b/libraries/scripting/common/build.gradle.kts @@ -8,9 +8,7 @@ jvmTarget = "1.6" dependencies { compile(kotlinStdlib()) - compileOnly(project(":kotlin-reflect-api")) compile(commonDep("org.jetbrains.kotlinx", "kotlinx-coroutines-core")) { isTransitive = false } - runtime(project(":kotlin-reflect")) testCompile(commonDep("junit")) } diff --git a/libraries/scripting/common/src/kotlin/script/experimental/api/kotlinType.kt b/libraries/scripting/common/src/kotlin/script/experimental/api/kotlinType.kt index fca22a448d1..8e09c1de48f 100644 --- a/libraries/scripting/common/src/kotlin/script/experimental/api/kotlinType.kt +++ b/libraries/scripting/common/src/kotlin/script/experimental/api/kotlinType.kt @@ -25,7 +25,7 @@ class KotlinType private constructor( /** * Constructs KotlinType from reflected [kclass] */ - constructor(kclass: KClass<*>) : this(kclass.qualifiedName!!, kclass) + constructor(kclass: KClass<*>) : this(kclass.java.name, kclass) // TODO: implement other approach for non-class types /** diff --git a/plugins/scripting/scripting-compiler-impl/build.gradle.kts b/plugins/scripting/scripting-compiler-impl/build.gradle.kts index d6d48fb344b..f5787e86e89 100644 --- a/plugins/scripting/scripting-compiler-impl/build.gradle.kts +++ b/plugins/scripting/scripting-compiler-impl/build.gradle.kts @@ -22,6 +22,8 @@ dependencies { // FIXME: drop after removing references to LocalFileSystem they don't exist in intellij-core compileOnly(intellijDep()) { includeJars("platform-api") } + runtime(project(":kotlin-reflect")) + testCompile(project(":compiler:frontend")) testCompile(project(":compiler:plugin-api")) testCompile(project(":compiler:util")) diff --git a/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/definitions/LazyScriptDefinitionFromDiscoveredClass.kt b/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/definitions/LazyScriptDefinitionFromDiscoveredClass.kt index d144a92baa3..af467e811f8 100644 --- a/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/definitions/LazyScriptDefinitionFromDiscoveredClass.kt +++ b/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/definitions/LazyScriptDefinitionFromDiscoveredClass.kt @@ -71,7 +71,7 @@ class LazyScriptDefinitionFromDiscoveredClass internal constructor( override val evaluationConfiguration: ScriptEvaluationConfiguration get() = configurations.second override val fileExtension: String by lazy(LazyThreadSafetyMode.PUBLICATION) { - annotationsFromAsm.find { it.name == KotlinScript::class.simpleName }?.args + annotationsFromAsm.find { it.name == KotlinScript::class.java.simpleName }?.args ?.find { it.name == "fileExtension" }?.value ?: compilationConfiguration.let { it[ScriptCompilationConfiguration.fileExtension] ?: super.fileExtension @@ -79,7 +79,7 @@ class LazyScriptDefinitionFromDiscoveredClass internal constructor( } override val name: String by lazy(LazyThreadSafetyMode.PUBLICATION) { - annotationsFromAsm.find { it.name == KotlinScript::class.simpleName!! }?.args?.find { it.name == "name" }?.value + annotationsFromAsm.find { it.name == KotlinScript::class.java.simpleName!! }?.args?.find { it.name == "name" }?.value ?: super.name } } diff --git a/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/definitions/ScriptiDefinitionsFromClasspathDiscoverySource.kt b/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/definitions/ScriptiDefinitionsFromClasspathDiscoverySource.kt index f7a3d7fd2d9..a9b0373dd58 100644 --- a/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/definitions/ScriptiDefinitionsFromClasspathDiscoverySource.kt +++ b/plugins/scripting/scripting-compiler-impl/src/org/jetbrains/kotlin/scripting/definitions/ScriptiDefinitionsFromClasspathDiscoverySource.kt @@ -289,7 +289,7 @@ private fun loadScriptDefinition( val anns = loadAnnotationsFromClass(templateClassBytes) for (ann in anns) { var def: ScriptDefinition? = null - if (ann.name == KotlinScript::class.simpleName) { + if (ann.name == KotlinScript::class.java.simpleName) { def = LazyScriptDefinitionFromDiscoveredClass( hostConfiguration, anns, @@ -297,7 +297,7 @@ private fun loadScriptDefinition( classpathWithLoader.classpath, messageReporter ) - } else if (ann.name == ScriptTemplateDefinition::class.simpleName) { + } else if (ann.name == ScriptTemplateDefinition::class.java.simpleName) { val templateClass = classpathWithLoader.classLoader.loadClass(templateClassName).kotlin def = ScriptDefinition.FromLegacy( hostConfiguration, diff --git a/plugins/scripting/scripting-compiler/build.gradle.kts b/plugins/scripting/scripting-compiler/build.gradle.kts index e66eb6bc5d0..da0812c7680 100644 --- a/plugins/scripting/scripting-compiler/build.gradle.kts +++ b/plugins/scripting/scripting-compiler/build.gradle.kts @@ -16,7 +16,6 @@ dependencies { compile(project(":kotlin-scripting-jvm")) compile(project(":kotlin-scripting-compiler-impl")) compile(kotlinStdlib()) - compileOnly(project(":kotlin-reflect-api")) compileOnly(intellijCoreDep()) { includeJars("intellij-core") } testCompile(project(":compiler:frontend")) diff --git a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/impl/errorReporting.kt b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/impl/errorReporting.kt index 01ac4e5ba99..2b7c25e8c87 100644 --- a/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/impl/errorReporting.kt +++ b/plugins/scripting/scripting-compiler/src/org/jetbrains/kotlin/scripting/compiler/plugin/impl/errorReporting.kt @@ -6,13 +6,14 @@ package org.jetbrains.kotlin.scripting.compiler.plugin.impl import org.jetbrains.kotlin.cli.common.arguments.Argument +import org.jetbrains.kotlin.cli.common.arguments.ArgumentParseErrors import org.jetbrains.kotlin.cli.common.arguments.K2JVMCompilerArguments import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation import org.jetbrains.kotlin.cli.common.messages.CompilerMessageSeverity import org.jetbrains.kotlin.cli.common.messages.MessageCollector import org.jetbrains.kotlin.scripting.definitions.MessageReporter +import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull import kotlin.reflect.KMutableProperty1 -import kotlin.reflect.full.findAnnotation import kotlin.script.experimental.api.ResultWithDiagnostics import kotlin.script.experimental.api.ScriptDiagnostic import kotlin.script.experimental.api.SourceCode @@ -136,7 +137,7 @@ private fun reportIgnoredArguments( ) { val ignoredArgKeys = toIgnore.mapNotNull { argProperty -> if (argProperty.get(arguments) != argProperty.get(reportingState.currentArguments)) { - argProperty.findAnnotation()?.value + argProperty.annotations.firstIsInstanceOrNull()?.value ?: throw IllegalStateException("unknown compiler argument property: $argProperty: no Argument annotation found") } else null }