Skip to content

Commit abaa935

Browse files
committed
Wrap compiler messages into Try block to avoid lazy exceptions
1 parent f35edbb commit abaa935

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

scaladoc/src/dotty/tools/scaladoc/snippets/SnippetCompiler.scala

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ import dotty.tools.repl.AbstractFileClassLoader
1818
import dotty.tools.dotc.util.SourceFile
1919
import dotty.tools.dotc.interfaces.Diagnostic._
2020

21+
import scala.util.{ Try, Success, Failure }
22+
2123
class SnippetCompiler(
2224
classpath: String,
2325
val scalacOptions: String = "",
@@ -54,7 +56,11 @@ class SnippetCompiler(
5456
val pos = Some(
5557
Position(diagPos.line + line - innerLineOffset, diagPos.column + column - innerColumnOffset, diagPos.lineContent, if arg.debug then diagPos.line else diagPos.line - innerLineOffset)
5658
)
57-
val msg = nullableMessage(diagnostic.message)
59+
val dmsg = Try(diagnostic.message) match {
60+
case Success(msg) => msg
61+
case Failure(ex) => ex.getMessage
62+
}
63+
val msg = nullableMessage(dmsg)
5864
val level = MessageLevel.fromOrdinal(diagnostic.level)
5965
SnippetCompilerMessage(pos, msg, level)
6066
case d =>

0 commit comments

Comments
 (0)