lazy in Scala macro
めも
lazy
は macro 展開前に部分的に desugar される。ここからいくらか実装を察することができる。
展開前
lazy val a = 10
展開後
{ lazy <artifact> var a$lzy: Int = _; <stable> <accessor> lazy def a: Int = { a$lzy = 10; a$lzy }; () }
めも
lazy
は macro 展開前に部分的に desugar される。ここからいくらか実装を察することができる。
lazy val a = 10
{ lazy <artifact> var a$lzy: Int = _; <stable> <accessor> lazy def a: Int = { a$lzy = 10; a$lzy }; () }