Makes sense. Can’t have both inline and dynamic binding.
BTW, this was my naive attempt at trying to bring tail recursion to this pattern:
def process[A](queue: ConcurrentLinkedQueue[A]): Unit =
for (value <- Option(queue.poll())) do
println(value)
process(queue)
It looks nicer than the loop-based equivalent, but uses execution stack space.