Skip to main content

Overcoming macro annotations

Picture of Wojciech Mazur, Scala 3 compiler & Scala Native dev

Wojciech Mazur

Scala 3 compiler & Scala Native dev
Jun 14, 2024|11 min read
Scala logo on green
1class Record(elems: (String, Any)*) extends Selectable:
2 private val fields = elems.toMap
3 def selectDynamic(name: String): Any = fields(name)
4
5type Book = Record {
6 val title: String
7 val author: String
8}
9
10def show(book: Book): String = s"'${book.title}' by ${book.author}"
1class Record(elems: (String, Any)*) extends Selectable:
2 private val fields = elems.toMap
3 def selectDynamic(name: String): Any = fields(name)
4
5type Book = Record {
6 val title: String
7 val author: String
8}
9
10def show(book: Book): String = s"'${book.title}' by ${book.author}"
1// Macro-annotation based
2@mockable[MyService] object MyServiceMock2
3
4// Macro based
5val MyServiceMock3 = mockOf[MyService]

Subscribe to our newsletter and never miss an article