Skip to content

Commit 9f2aa0d

Browse files
committed
Improve performance of Symbol marking
1 parent 827d69d commit 9f2aa0d

File tree

1 file changed

+9
-3
lines changed

1 file changed

+9
-3
lines changed

src/reflect/scala/reflect/internal/Symbols.scala

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3676,9 +3676,15 @@ trait Symbols extends api.Symbols { self: SymbolTable =>
36763676
val AllOps = SymbolOps(isFlagRelated = false, mask = 0L)
36773677
def FlagOps(mask: Long) = SymbolOps(isFlagRelated = true, mask = mask)
36783678

3679-
private def relevantSymbols(syms: Seq[Symbol]) = syms.flatMap(sym => List(sym, sym.moduleClass, sym.sourceModule))
3680-
def markFlagsCompleted(syms: Symbol*)(mask: Long): Unit = relevantSymbols(syms).foreach(_.markFlagsCompleted(mask))
3681-
def markAllCompleted(syms: Symbol*): Unit = relevantSymbols(syms).foreach(_.markAllCompleted)
3679+
private def forEachRelevantSymbols(syms: Seq[Symbol], fn: Symbol => Unit): Unit =
3680+
syms.foreach { sym =>
3681+
fn(sym)
3682+
fn(sym.moduleClass)
3683+
fn(sym.sourceModule)
3684+
}
3685+
3686+
def markFlagsCompleted(syms: Symbol*)(mask: Long): Unit = forEachRelevantSymbols(syms, _.markFlagsCompleted(mask))
3687+
def markAllCompleted(syms: Symbol*): Unit = forEachRelevantSymbols(syms, _.markAllCompleted)
36823688
}
36833689

36843690
object SymbolsStats {

0 commit comments

Comments
 (0)