Add diagnostic code to the ScriptDiagnostic

to allow checking for specific errors, e.g. incomplete statements in
the REPL
This commit is contained in:
Ilya Chernikov
2020-02-10 18:03:00 +01:00
parent 77eacae958
commit b96109f23f
12 changed files with 38 additions and 12 deletions
@@ -43,10 +43,11 @@ class JsScriptCompilerWithDependenciesProxy(private val environment: KotlinCoreE
)
}
is ReplCompileResult.Incomplete -> ResultWithDiagnostics.Failure(
ScriptDiagnostic("Incomplete code")
ScriptDiagnostic(ScriptDiagnostic.unspecifiedError, "Incomplete code")
)
is ReplCompileResult.Error -> ResultWithDiagnostics.Failure(
ScriptDiagnostic(
ScriptDiagnostic.unspecifiedError,
message = compileResult.message,
severity = ScriptDiagnostic.Severity.ERROR
)
@@ -44,7 +44,7 @@ internal class ScriptDiagnosticsMessageCollector(private val parentMessageCollec
)
)
}
_diagnostics.add(ScriptDiagnostic(message, mappedSeverity, location?.path, mappedLocation))
_diagnostics.add(ScriptDiagnostic(ScriptDiagnostic.unspecifiedError, message, mappedSeverity, location?.path, mappedLocation))
}
parentMessageCollector?.report(severity, message, location)
}
@@ -57,12 +57,14 @@ fun getScriptKtFile(
return when {
ktFile == null -> ResultWithDiagnostics.Failure(
ScriptDiagnostic(
ScriptDiagnostic.unspecifiedError,
message = "Cannot create PSI",
severity = ScriptDiagnostic.Severity.ERROR
)
)
ktFile.declarations.firstIsInstanceOrNull<KtScript>() == null -> ResultWithDiagnostics.Failure(
ScriptDiagnostic(
ScriptDiagnostic.unspecifiedError,
message = "There is not Script",
severity = ScriptDiagnostic.Severity.ERROR
)