Fix script filename extension discovery from asm-readed class

and improve diagnostics on definition loading failure
This commit is contained in:
Ilya Chernikov
2018-12-14 17:58:51 +01:00
parent 7c7c11e916
commit a3217982f7
@@ -58,7 +58,7 @@ class LazyScriptDefinitionFromDiscoveredClass internal constructor(
} catch (ex: Exception) { } catch (ex: Exception) {
messageCollector.report( messageCollector.report(
CompilerMessageSeverity.ERROR, CompilerMessageSeverity.ERROR,
"Error processing script definition class $className: ${ex.message}" "Error processing script definition class $className: ${ex.message}\nclasspath:\n${classpath.joinToString("\n", " ")}"
) )
InvalidScriptDefinition InvalidScriptDefinition
} }
@@ -66,7 +66,7 @@ class LazyScriptDefinitionFromDiscoveredClass internal constructor(
override val fileExtension: String by lazy(LazyThreadSafetyMode.PUBLICATION) { override val fileExtension: String by lazy(LazyThreadSafetyMode.PUBLICATION) {
annotationsFromAsm.find { it.name == KotlinScript::class.simpleName }?.args annotationsFromAsm.find { it.name == KotlinScript::class.simpleName }?.args
?.find { it.name == "extension" }?.value ?.find { it.name == "fileExtension" }?.value
?: scriptCompilationConfiguration.let { ?: scriptCompilationConfiguration.let {
it[ScriptCompilationConfiguration.fileExtension] ?: super.fileExtension it[ScriptCompilationConfiguration.fileExtension] ?: super.fileExtension
} }