-
Notifications
You must be signed in to change notification settings - Fork 86
Open
Description
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)Upstream issue: scalameta/metals#4796
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: VirtusLab/scala-cli#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).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels