Consider the simple file A.scala.
object Macros {
inline def q : Int = ${ '[ Int ] }
val x : Int = 1 + q
}
Running dotc A.scala causes a runtime failure.
The program is bogus because splicing a type does not yield a value of that type. The splice should instead result in a type.