Skip to content

Commit

Permalink
Use iterators rather than foreach
Browse files Browse the repository at this point in the history
This is not to improve performance, but rather to give cleaner profiles.
  • Loading branch information
retronym committed Feb 22, 2018
1 parent be05038 commit 8ca9eff
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions internal/compiler-bridge/src/main/scala/xsbt/API.scala
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,17 @@ final class API(val global: CallbackGlobal) extends Compat with GlobalHelpers {
val classApis = traverser.allNonLocalClasses
val mainClasses = traverser.mainClasses

classApis.foreach(callback.api(sourceFile, _))
mainClasses.foreach(callback.mainClass(sourceFile, _))
// Use of iterators make this code easier to profile

val classApisIt = classApis.iterator
while (classApisIt.hasNext) {
callback.api(sourceFile, classApisIt.next())
}

val mainClassesIt = mainClasses.iterator
while (mainClassesIt.hasNext) {
callback.mainClass(sourceFile, mainClassesIt.next())
}
}
}

Expand Down

0 comments on commit 8ca9eff

Please sign in to comment.