/ / ¿Se puede codificar un scala dsl para que emita sus propios errores de compilación especializados? - scala, dsl

¿Se puede codificar un scala dsl para que emita sus propios errores de compilación especializados? - scala, dsl

He usado algunos Scala DSL "s, y me preguntabaSi se está desarrollando uno, también se pueden incluir errores de compilación específicos de DSL. La idea es que un lenguaje específico del dominio también tenga mensajes de error de compilación específicos del dominio, ayudando al experto en el dominio a hacer las cosas bien. ¿Es eso posible en Scala?

Respuestas

4 para la respuesta № 1

Una de las cosas que podría ser útil es annotation.implicitNotFound. Puede personalizar los errores del compilador en las implicaciones no resueltas con su ayuda.

Como lo señaló @Dylan, si estás "hackeando Scala con macroses" puedes usar c.abort, c.info y c.error Para que Compiller produzca algún error personalizado / información adicional.

En este caso annotation.compileTimeOnly También podría ser útil. Permite restringir el uso de algunas partes de su código y generar un mensaje de error personalizado si alguien intenta acceder a él.