то есть это if($expr) проверяет выражение в компайл тайме?
Нет, смотри как оно работает:
1. У тебя есть inline def assert(...) - это функция работает и раскрывается целиком в компайл тайме.
2. У неё в теле есть ${ assertImpl('expr) }, это запись значит: в компайл тайме всунуть сюда тот Expr[Unit], что вёрнет assertImpl. А 'expr - значит в компайл тайме разобрать expr и перевести его в Expr[Unit]
3. Тело assertImpl - это функция из Expr[Boolean] в Expr[Unit],
'{ ... } - значит, представь, что внутри скобок как Expr, $expr - значит вставь в этот Expr, дерево expr как оно есть.