Safe object initialization is important to avoid a category of runtime errors in programming languages. In this paper, we provide a case study of the initialization patterns on the Dotty compiler. In particular, we find that calling dynamic-dispatching methods, the usage of closures and instantiating nested classes are important for initialization of Scala objects. Based on the study, we conclude that existing proposals for safe initialization are inadequate for Scala.
Adrien Ghosn, Charly Nicolas Lucien Castes
Aleksander Slawomir Boruch-Gruszecki
Martin Odersky, Olivier Eric Paul Blanvillain