For the following code evaluation gets stuck in a loop for Scala 2 and throws StackOverflowException for Scala 3.
class Animal(age: Int)
class Rabbit(age: Int) extends Animal(age):
val id = Rabbit.tag
Rabbit.tag += 1
def getId = id
object Rabbit:
val basic = Rabbit(0)
var tag: Int = 0
val peter = Rabbit(2)
The problem is caused by class MdocApp wrapper. Changing it to object MdocApp fixes the issue but causes other issues (with thread deadlocks), full track of this problem in kept in scala-cli repository: https://github.com/VirtusLab/scala-cli/issues/2247.
A proper fix should divide the code so classes/objects etc. are put in an object and rest is put inside of a class. Preferably the solution should be done in such a way it can be shared between mdoc and scala-cli (e.g. the compiler repl).
For the following code evaluation gets stuck in a loop for Scala 2 and throws
StackOverflowException
for Scala 3.Upstream issue: https://github.com/scalameta/metals/issues/4796
The problem is caused by
class MdocApp
wrapper. Changing it toobject MdocApp
fixes the issue but causes other issues (with thread deadlocks), full track of this problem in kept inscala-cli
repository: https://github.com/VirtusLab/scala-cli/issues/2247.A proper fix should divide the code so
class
es/object
s etc. are put in an object and rest is put inside of a class. Preferably the solution should be done in such a way it can be shared betweenmdoc
andscala-cli
(e.g. the compiler repl).