Scripting: fix CLI REPL error reporting behavior
discrepancy after switching to the new REPL internals was discovered also on IJ plugin tests, so added a test emulating it. also some test infra refactoring
This commit is contained in:
+2
-2
@@ -139,8 +139,8 @@ class ReplFromTerminal(
|
||||
writer.outputCommandResult(tryInterpretResultAsValueClass(evalResult) ?: evalResult.toString())
|
||||
}
|
||||
}
|
||||
is ReplEvalResult.Error.Runtime -> writer.outputRuntimeError(evalResult.message)
|
||||
is ReplEvalResult.Error.CompileTime -> writer.outputCompileError(evalResult.message)
|
||||
is ReplEvalResult.Error.Runtime -> if (evalResult.message.isNotEmpty()) writer.outputRuntimeError(evalResult.message)
|
||||
is ReplEvalResult.Error.CompileTime -> if (evalResult.message.isNotEmpty()) writer.outputCompileError(evalResult.message)
|
||||
is ReplEvalResult.Incomplete -> writer.notifyIncomplete()
|
||||
is ReplEvalResult.HistoryMismatch -> {} // assuming handled elsewhere
|
||||
}
|
||||
|
||||
+2
-4
@@ -174,12 +174,11 @@ class ReplInterpreter(
|
||||
when (val compileResult = compiler.compile(listOf(snippet), compilationConfiguration)) {
|
||||
is ResultWithDiagnostics.Failure -> {
|
||||
val incompleteReport = compileResult.reports.find { it.code == ScriptDiagnostic.incompleteCode }
|
||||
val firstError = compileResult.reports.find { it.isError() }
|
||||
if (incompleteReport != null)
|
||||
ReplEvalResult.Incomplete(incompleteReport.message)
|
||||
else {
|
||||
compileResult.reportToMessageCollector()
|
||||
ReplEvalResult.Error.CompileTime(firstError?.message ?: "", firstError?.location?.toCompilerMessageLocation())
|
||||
ReplEvalResult.Error.CompileTime("")
|
||||
}
|
||||
}
|
||||
is ResultWithDiagnostics.Success -> {
|
||||
@@ -195,9 +194,8 @@ class ReplInterpreter(
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
val firstError = evalResult.reports.find { it.isError() }
|
||||
evalResult.reportToMessageCollector()
|
||||
ReplEvalResult.Error.Runtime(firstError?.message ?: "", firstError?.exception)
|
||||
ReplEvalResult.Error.Runtime("")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user