Workaround NonClasspathClassFinder not supporting inner classes

Explicitly split qualified names, can be removed once platform is fixed

 #KT-19310 Fixed
This commit is contained in:
Pavel V. Talanov
2017-08-18 18:57:42 +03:00
parent a6c2135851
commit a120130069
5 changed files with 122 additions and 16 deletions
@@ -0,0 +1,13 @@
package lib;
public interface JavaInterface {
public interface F {
public interface I {
}
}
public class G {
}
}
@@ -0,0 +1,9 @@
import lib.*
fun f(
<warning>g</warning>: JavaInterface.G,
<warning>f</warning>: JavaInterface.F,
<warning>i</warning>: JavaInterface.F.I
) {
}
@@ -0,0 +1,28 @@
package custom.scriptDefinition
import kotlin.script.dependencies.*
import kotlin.script.templates.*
import java.io.File
import java.util.concurrent.CompletableFuture
import java.util.concurrent.Future
class TestDependenciesResolver : ScriptDependenciesResolver {
override fun resolve(
script: ScriptContents,
environment: Map<String, Any?>?,
report: (ScriptDependenciesResolver.ReportSeverity, String, ScriptContents.Position?) -> Unit, previousDependencies: KotlinScriptExternalDependencies?
): Future<KotlinScriptExternalDependencies?> {
return CompletableFuture.completedFuture(
object : KotlinScriptExternalDependencies {
override val classpath: Iterable<File> = listOf(
environment?.get("lib-classes") as File
)
override val imports: Iterable<String> = listOf("custom.library.*")
})
}
}
@ScriptTemplateDefinition(TestDependenciesResolver::class, scriptFilePattern = "script.kts")
class Template