Dotty introduces new simpler and safer metaprogramming language features!
What are these features?
Metaprogramming in Dotty
Scala 2 macros have been a great success in the community. Unfortunately, their design is tightly linked to the Scala 2 compiler internals which makes them incompatible with Dotty and hence Scala 3. With new technologies such as Typed Abstract Syntax Trees (TASTy) files, we redesigned the macros to not depend on the compiler internals.
Dotty also introduces exciting new simpler and safer metaprogramming language features. The core being the new inline methods, quotes '(...) and splices ~(...). All this while still having the possibility of interacting with tree reflection when needed.