Skip to content

Commit d2d4a48

Browse files
committed
bugfix: Wrap isPublic in try
It seems that it can sometimes throw an exception, which will make no completions show up for example in some scope completions in metals codebase. Related to scala/scala3#16175
1 parent 5297aad commit d2d4a48

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

mtags/src/main/scala-3/scala/meta/internal/pc/CompilerSearchVisitor.scala

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
package scala.meta.internal.pc
22

3+
import java.util.logging.Level
4+
import java.util.logging.Logger
5+
6+
import scala.util.control.NonFatal
7+
38
import scala.meta.pc.*
49

510
import dotty.tools.dotc.core.Contexts.*
@@ -14,8 +19,14 @@ class CompilerSearchVisitor(
1419
)(using ctx: Context)
1520
extends SymbolSearchVisitor:
1621

17-
private def isAccessible(sym: Symbol): Boolean =
22+
val logger: Logger = Logger.getLogger(classOf[CompilerSearchVisitor].getName)
23+
24+
private def isAccessible(sym: Symbol): Boolean = try
1825
sym != NoSymbol && sym.isPublic
26+
catch
27+
case NonFatal(e) =>
28+
logger.log(Level.SEVERE, e.getMessage(), e)
29+
false
1930

2031
private def toSymbols(
2132
pkg: String,

0 commit comments

Comments
 (0)