Fix after review
This commit is contained in:
+3
-2
@@ -53,11 +53,12 @@ open class GenericReplCompiledEvaluator(baseClasspath: Iterable<File>,
|
||||
fun classNameFromPath(path: String) = JvmClassName.byInternalName(path.replaceFirst("\\.class$".toRegex(), ""))
|
||||
|
||||
fun processCompiledClasses() {
|
||||
val expectedClassName = "Line${codeLine.no}"
|
||||
compiledClasses.filter { it.path.endsWith(".class") }
|
||||
.forEach {
|
||||
val className = classNameFromPath(it.path)
|
||||
if (className.fqNameForClassNameWithoutDollars.shortName().asString() == "Line${codeLine.no}") {
|
||||
mainLineClassName = className.fqNameForClassNameWithoutDollars.asString()
|
||||
if (className.internalName == expectedClassName || className.internalName.endsWith("/$expectedClassName")) {
|
||||
mainLineClassName = className.internalName.replace('/', '.')
|
||||
}
|
||||
classLoader.addClass(className, it.bytes)
|
||||
}
|
||||
|
||||
@@ -102,7 +102,7 @@ class GenericReplTest : TestCase() {
|
||||
TestCase.assertNotNull("Unexpected eval result: $res11", res11e)
|
||||
TestCase.assertEquals(3, res11e!!.value)
|
||||
|
||||
val codeLine2 = ReplCodeLine(0, "x+4")
|
||||
val codeLine2 = ReplCodeLine(1, "x+4")
|
||||
val res2 = repl.replCompiler?.compile(codeLine2, listOf(codeLine1))
|
||||
val res2c = res2 as? ReplCompileResult.CompiledClasses
|
||||
TestCase.assertNotNull("Unexpected compile result: $res2", res2c)
|
||||
|
||||
@@ -95,8 +95,7 @@ private fun <T> tryCreateCallableMapping(callable: KCallable<*>, args: Iterator<
|
||||
}
|
||||
res.put(par, cvtRes.v)
|
||||
}
|
||||
// TODO: check if second part of the condition is necessary
|
||||
else if ((par.type.classifier as? KClass<*>)?.let { it.java.isArray || it.qualifiedName == Array<Any>::class.qualifiedName } ?: false) {
|
||||
else if ((par.type.classifier as? KClass<*>)?.java?.isArray ?: false) {
|
||||
// try vararg
|
||||
val cvtVRes = converter.tryConvertVararg(par, arg, argIt)
|
||||
if (cvtVRes is ArgsConverter.Result.Success) {
|
||||
@@ -197,8 +196,7 @@ private class StringArgsConverter : ArgsConverter<String> {
|
||||
}
|
||||
|
||||
try {
|
||||
// TODO: check if second part of the condition is necessary
|
||||
if ((parameter.type.classifier as? KClass<*>)?.let { it.java.isArray || it.qualifiedName == Array<Any>::class.qualifiedName } ?: false) {
|
||||
if ((parameter.type.classifier as? KClass<*>)?.java?.isArray ?: false) {
|
||||
val argsSequence = sequenceOf(firstArg.value) + restArgsIt.asSequence().map { it.value }
|
||||
val primArrayArgCandidate = convertPrimitivesArray(parameter.type, argsSequence)
|
||||
if (primArrayArgCandidate != null)
|
||||
|
||||
Reference in New Issue
Block a user