Refactoring scripting infrastructure:

- add a helper for new constructing Compilation Configuration only when necessary
- add more converters for legacy diagnostics
- add helpers for simpler creating of failure results
This commit is contained in:
Ilya Chernikov
2019-05-14 10:54:05 +02:00
parent b7fd898bb8
commit e5054f9648
3 changed files with 40 additions and 0 deletions
@@ -39,5 +39,17 @@ fun mapToLegacyScriptReportSeverity(severity: ScriptDiagnostic.Severity): Script
fun mapLegacyScriptPosition(pos: ScriptContents.Position?): SourceCode.Location? =
pos?.let { SourceCode.Location(SourceCode.Position(pos.line, pos.col)) }
fun mapLegacyScriptPosition(pos: ScriptReport.Position?): SourceCode.Location? =
pos?.let {
val endPos =
if (pos.endLine == null || pos.endColumn == null) null
else SourceCode.Position(pos.endLine!!, pos.endColumn!!)
SourceCode.Location(SourceCode.Position(pos.startLine, pos.startColumn), endPos)
}
fun mapToLegacyScriptReportPosition(pos: SourceCode.Location?): ScriptReport.Position? =
pos?.let { ScriptReport.Position(pos.start.line, pos.start.col) }
fun Iterable<ScriptReport>.mapToDiagnostics(): List<ScriptDiagnostic> = map { (message, severity, position: ScriptReport.Position?) ->
ScriptDiagnostic(message, mapLegacyDiagnosticSeverity(severity), null, mapLegacyScriptPosition(position))
}