1
0
Fork 0
mirror of https://github.com/ethauvin/kobalt.git synced 2025-04-26 00:17:11 -07:00

Better compilation error reporting.

This commit is contained in:
Cedric Beust 2017-02-17 10:09:26 -08:00
parent 54fe92fee8
commit 475bdfffdb

View file

@ -181,19 +181,26 @@ class KotlinCompiler @Inject constructor(
throw UnsupportedOperationException("not implemented")
}
fun CompilerMessageLocation.dump(s: String) = "$lineContent\n$path:$line:$column $s"
fun dump(location: CompilerMessageLocation?, s: String) =
if (location != null && location.lineContent != null) {
with(location) {
"$lineContent\n$path:$line:$column $s"
}
} else {
s
}
override fun report(severity: CompilerMessageSeverity,
message: String, location: CompilerMessageLocation) {
if (severity.isError) {
"Couldn't compile file: ${location.dump(message)}".let { fullMessage ->
"Couldn't compile file: ${dump(location, message)}".let { fullMessage ->
System.err.println(fullMessage)
throw KobaltException(fullMessage)
}
} else if (severity == CompilerMessageSeverity.WARNING && KobaltLogger.LOG_LEVEL >= 2) {
warn(location.dump(message))
warn(dump(location, message))
} else if (severity == CompilerMessageSeverity.INFO && KobaltLogger.LOG_LEVEL >= 2) {
logk(2, location.dump(message))
logk(2, dump(location, message))
}
}
}